diff --git a/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift b/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift index 48b79130..06af9336 100644 --- a/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift +++ b/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift @@ -1,8 +1,9 @@ +import Foundation import OrderedCollections /// The alias combines the global attributes of the basic attributes. @_documentation(visibility: internal) -public typealias GlobalAttributes = AccessKeyAttribute & AutocapitalizeAttribute & AutofocusAttribute & ClassAttribute & EditAttribute & DirectionAttribute & DragAttribute & EnterKeyHintAttribute & HiddenAttribute & InputModeAttribute & IsAttribute & ItemIdAttribute & ItemPropertyAttribute & ItemReferenceAttribute & ItemScopeAttribute & ItemTypeAttribute & IdentifierAttribute & LanguageAttribute & NonceAttribute & RoleAttribute & SpellCheckAttribute & StyleAttribute & TabulatorAttribute & TitleAttribute & TranslateAttribute & InertAttribute & PopoverAttribute +public typealias GlobalAttributes = AccessKeyAttribute & AutocapitalizeAttribute & AutofocusAttribute & ClassAttribute & EditAttribute & DirectionAttribute & DragAttribute & EnterKeyHintAttribute & HiddenAttribute & InputModeAttribute & IsAttribute & ItemAttribute & ItemIdAttribute & ItemPropertyAttribute & ItemReferenceAttribute & ItemScopeAttribute & ItemTypeAttribute & IdentifierAttribute & LanguageAttribute & NonceAttribute & RoleAttribute & SpellCheckAttribute & StyleAttribute & TabulatorAttribute & TitleAttribute & TranslateAttribute & InertAttribute & PopoverAttribute /// A type that provides the `accessKey` modifier. @_documentation(visibility: internal) @@ -1516,6 +1517,103 @@ extension IsAttribute where Self: EmptyNode { } } +/// A type that provides the `item` modifier. +@_documentation(visibility: internal) +public protocol ItemAttribute: Attribute { + + /// Create an new item. + /// + /// ```swift + /// DefinitionList { + /// } + /// .item(id: "urn:...", as: "https://...", for: ["foo", "bar"]) + /// ``` + /// + /// - Parameters: + /// - id: The identifier used to name the item. + /// - schema: The url of the schema the item should conform to. + /// - elements: The identifiers of elements to associated the item with. + /// + /// - Returns: The element + func item(id: String?, as schema: URL?, for elements: [String]?) -> Self + + /// Create an new item. + /// + /// ```swift + /// DefinitionList { + /// } + /// .item(id: "urn:...", as: "https://...", for: "foo", "bar") + /// ``` + /// + /// - Parameters: + /// - id: The identifier used to name the item. + /// - schema: The url of the schema the item should conform to. + /// - elements: The identifiers of elements to associated the item with. + /// + /// - Returns: The element + func item(id: String?, as schema: URL?, for elements: String...) -> Self +} + +extension ItemAttribute where Self: ContentNode { + + internal func mutate(itemid value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemid", value: value) + } + + return self + } + + internal func mutate(itemtype value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemtype", value: value) + } + + return self + } + + internal func mutate(itemref value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemref", value: value) + } + + return self + } +} + +extension ItemAttribute where Self: EmptyNode { + + internal func mutate(itemid value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemid", value: value) + } + + return self + } + + internal func mutate(itemtype value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemtype", value: value) + } + + return self + } + + internal func mutate(itemref value: String?) -> Self { + + if let value = value { + return self.mutate(key: "itemref", value: value) + } + + return self + } +} + /// A type that provides the `itemId` modifier. @_documentation(visibility: internal) public protocol ItemIdAttribute: Attribute { diff --git a/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift b/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift index 5bac9b4a..74205183 100644 --- a/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents a comment output. @@ -164,7 +165,16 @@ extension Html: GlobalAttributes, GlobalEventAttributes { public func `is`(_ value: String) -> Html { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Html { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Html { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Html { return mutate(itemid: value) } @@ -173,14 +183,17 @@ extension Html: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Html { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Html { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Html { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift b/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift index 5f58dfe1..6f1bb83c 100644 --- a/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``Navigation``. @@ -256,7 +257,16 @@ extension Article: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Article { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Article { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Article { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Article { return mutate(itemid: value) } @@ -265,14 +275,17 @@ extension Article: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Article { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Article { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Article { return mutate(itemtype: value) } @@ -552,7 +565,16 @@ extension Section: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Section { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Section { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Section { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Section { return mutate(itemid: value) } @@ -561,14 +583,17 @@ extension Section: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Section { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Section { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Section { return mutate(itemtype: value) } @@ -850,7 +875,16 @@ extension Navigation: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func `is`(_ value: String) -> Navigation { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Navigation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Navigation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Navigation { return mutate(itemid: value) } @@ -859,14 +893,17 @@ extension Navigation: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Navigation { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Navigation { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Navigation { return mutate(itemtype: value) } @@ -1144,7 +1181,16 @@ extension Aside: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Aside { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Aside { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Aside { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Aside { return mutate(itemid: value) } @@ -1153,14 +1199,17 @@ extension Aside: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Aside { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Aside { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Aside { return mutate(itemtype: value) } @@ -1436,6 +1485,15 @@ extension Heading1: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading1 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading1 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading1 { return mutate(itemid: value) } @@ -1444,14 +1502,17 @@ extension Heading1: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading1 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading1 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading1 { return mutate(itemtype: value) } @@ -1734,6 +1795,15 @@ extension Heading2: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading2 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading2 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading2 { return mutate(itemid: value) } @@ -1742,14 +1812,17 @@ extension Heading2: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading2 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading2 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading2 { return mutate(itemtype: value) } @@ -2031,7 +2104,16 @@ extension Heading3: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Heading3 { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading3 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading3 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading3 { return mutate(itemid: value) } @@ -2040,14 +2122,17 @@ extension Heading3: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading3 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading3 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading3 { return mutate(itemtype: value) } @@ -2329,7 +2414,16 @@ extension Heading4: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Heading4 { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading4 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading4 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading4 { return mutate(itemid: value) } @@ -2338,14 +2432,17 @@ extension Heading4: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading4 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading4 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading4 { return mutate(itemtype: value) } @@ -2627,7 +2724,16 @@ extension Heading5: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Heading5 { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading5 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading5 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading5 { return mutate(itemid: value) } @@ -2636,14 +2742,17 @@ extension Heading5: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading5 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading5 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading5 { return mutate(itemtype: value) } @@ -2925,7 +3034,16 @@ extension Heading6: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Heading6 { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Heading6 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Heading6 { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Heading6 { return mutate(itemid: value) } @@ -2934,14 +3052,17 @@ extension Heading6: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Heading6 { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Heading6 { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Heading6 { return mutate(itemtype: value) } @@ -3228,7 +3349,16 @@ extension HeadingGroup: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri public func `is`(_ value: String) -> HeadingGroup { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> HeadingGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> HeadingGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> HeadingGroup { return mutate(itemid: value) } @@ -3237,14 +3367,17 @@ extension HeadingGroup: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> HeadingGroup { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> HeadingGroup { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> HeadingGroup { return mutate(itemtype: value) } @@ -3520,7 +3653,16 @@ extension Header: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Header { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Header { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Header { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Header { return mutate(itemid: value) } @@ -3529,14 +3671,17 @@ extension Header: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Header { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Header { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Header { return mutate(itemtype: value) } @@ -3810,7 +3955,16 @@ extension Footer: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Footer { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Footer { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Footer { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Footer { return mutate(itemid: value) } @@ -3819,14 +3973,17 @@ extension Footer: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Footer { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Footer { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Footer { return mutate(itemtype: value) } @@ -4107,7 +4264,16 @@ extension Address: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Address { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Address { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Address { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Address { return mutate(itemid: value) } @@ -4116,14 +4282,17 @@ extension Address: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Address { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Address { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Address { return mutate(itemtype: value) } @@ -4398,7 +4567,16 @@ extension Paragraph: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> Paragraph { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Paragraph { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Paragraph { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Paragraph { return mutate(itemid: value) } @@ -4407,14 +4585,17 @@ extension Paragraph: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Paragraph { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Paragraph { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Paragraph { return mutate(itemtype: value) } @@ -4693,7 +4874,16 @@ extension HorizontalRule: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt public func `is`(_ value: String) -> HorizontalRule { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> HorizontalRule { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> HorizontalRule { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> HorizontalRule { return mutate(itemid: value) } @@ -4702,14 +4892,17 @@ extension HorizontalRule: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> HorizontalRule { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> HorizontalRule { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> HorizontalRule { return mutate(itemtype: value) } @@ -4990,7 +5183,16 @@ extension PreformattedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaA public func `is`(_ value: String) -> PreformattedText { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> PreformattedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> PreformattedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> PreformattedText { return mutate(itemid: value) } @@ -4999,14 +5201,17 @@ extension PreformattedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaA return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> PreformattedText { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> PreformattedText { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> PreformattedText { return mutate(itemtype: value) } @@ -5281,7 +5486,16 @@ extension Blockquote: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func `is`(_ value: String) -> Blockquote { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Blockquote { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Blockquote { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Blockquote { return mutate(itemid: value) } @@ -5289,15 +5503,18 @@ extension Blockquote: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func itemProperty(_ value: String) -> Blockquote { return mutate(itemprop: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Blockquote { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Blockquote { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Blockquote { return mutate(itemtype: value) } @@ -5588,7 +5805,16 @@ extension OrderedList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func `is`(_ value: String) -> OrderedList { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> OrderedList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> OrderedList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> OrderedList { return mutate(itemid: value) } @@ -5596,15 +5822,18 @@ extension OrderedList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func itemProperty(_ value: String) -> OrderedList { return mutate(itemprop: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> OrderedList { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> OrderedList { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> OrderedList { return mutate(itemtype: value) } @@ -5896,7 +6125,16 @@ extension UnorderedList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr public func `is`(_ value: String) -> UnorderedList { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> UnorderedList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> UnorderedList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> UnorderedList { return mutate(itemid: value) } @@ -5905,14 +6143,17 @@ extension UnorderedList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> UnorderedList { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> UnorderedList { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> UnorderedList { return mutate(itemtype: value) } @@ -6199,6 +6440,15 @@ extension Menu: GlobalAttributes { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Menu { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Menu { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Menu { return mutate(itemid: value) } @@ -6207,14 +6457,17 @@ extension Menu: GlobalAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Menu { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Menu { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Menu { return mutate(itemtype: value) } @@ -6400,7 +6653,16 @@ extension DescriptionList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAt public func `is`(_ value: String) -> DescriptionList { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> DescriptionList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> DescriptionList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> DescriptionList { return mutate(itemid: value) } @@ -6409,14 +6671,17 @@ extension DescriptionList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAt return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> DescriptionList { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> DescriptionList { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> DescriptionList { return mutate(itemtype: value) } @@ -6696,7 +6961,16 @@ extension Figure: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Figure { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Figure { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Figure { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Figure { return mutate(itemid: value) } @@ -6705,14 +6979,17 @@ extension Figure: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Figure { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Figure { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Figure { return mutate(itemtype: value) } @@ -6989,7 +7266,16 @@ extension Anchor: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Anchor { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Anchor { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Anchor { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Anchor { return mutate(itemid: value) } @@ -6997,15 +7283,18 @@ extension Anchor: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func itemProperty(_ value: String) -> Anchor { return mutate(itemprop: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Anchor { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Anchor { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Anchor { return mutate(itemtype: value) } @@ -7327,7 +7616,16 @@ extension Emphasize: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> Emphasize { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Emphasize { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Emphasize { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Emphasize { return mutate(itemid: value) } @@ -7336,14 +7634,17 @@ extension Emphasize: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Emphasize { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Emphasize { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Emphasize { return mutate(itemtype: value) } @@ -7620,7 +7921,16 @@ extension Strong: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Strong { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Strong { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Strong { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Strong { return mutate(itemid: value) } @@ -7629,14 +7939,17 @@ extension Strong: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Strong { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Strong { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Strong { return mutate(itemtype: value) } @@ -7913,7 +8226,16 @@ extension Small: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Small { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Small { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Small { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Small { return mutate(itemid: value) } @@ -7922,14 +8244,17 @@ extension Small: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Small { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Small { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Small { return mutate(itemtype: value) } @@ -8213,7 +8538,16 @@ extension StrikeThrough: GlobalAttributes, GlobalEventAttributes { public func `is`(_ value: String) -> StrikeThrough { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> StrikeThrough { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> StrikeThrough { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> StrikeThrough { return mutate(itemid: value) } @@ -8222,14 +8556,17 @@ extension StrikeThrough: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> StrikeThrough { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> StrikeThrough { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> StrikeThrough { return mutate(itemtype: value) } @@ -8445,7 +8782,16 @@ extension Main: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Main { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Main { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Main { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Main { return mutate(itemid: value) } @@ -8454,14 +8800,17 @@ extension Main: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Main { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Main { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Main { return mutate(itemtype: value) } @@ -8744,6 +9093,15 @@ extension Search: GlobalAttributes { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Search { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Search { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Search { return mutate(itemid: value) } @@ -8752,14 +9110,17 @@ extension Search: GlobalAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Search { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Search { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Search { return mutate(itemtype: value) } @@ -8939,7 +9300,16 @@ extension Division: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Division { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Division { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Division { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Division { return mutate(itemid: value) } @@ -8948,14 +9318,17 @@ extension Division: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Division { return mutate(itemref: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Division { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Division { return mutate(itemtype: value) } @@ -9235,7 +9608,16 @@ extension Definition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func `is`(_ value: String) -> Definition { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Definition { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Definition { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Definition { return mutate(itemid: value) } @@ -9244,14 +9626,17 @@ extension Definition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Definition { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Definition { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Definition { return mutate(itemtype: value) } @@ -9529,7 +9914,16 @@ extension Cite: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Cite { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Cite { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Cite { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Cite { return mutate(itemid: value) } @@ -9537,15 +9931,18 @@ extension Cite: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func itemProperty(_ value: String) -> Cite { return mutate(itemprop: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Cite { return mutate(itemref: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Cite { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Cite { return mutate(itemtype: value) } @@ -9822,7 +10219,16 @@ extension ShortQuote: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func `is`(_ value: String) -> ShortQuote { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> ShortQuote { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> ShortQuote { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> ShortQuote { return mutate(itemid: value) } @@ -9831,14 +10237,17 @@ extension ShortQuote: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> ShortQuote { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> ShortQuote { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> ShortQuote { return mutate(itemtype: value) } @@ -10120,7 +10529,16 @@ extension Abbreviation: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri public func `is`(_ value: String) -> Abbreviation { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Abbreviation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Abbreviation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Abbreviation { return mutate(itemid: value) } @@ -10129,14 +10547,17 @@ extension Abbreviation: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Abbreviation { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Abbreviation { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Abbreviation { return mutate(itemtype: value) } @@ -10415,6 +10836,15 @@ extension Ruby: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Ruby { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Ruby { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Ruby { return mutate(itemid: value) } @@ -10423,14 +10853,17 @@ extension Ruby: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Ruby { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Ruby { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Ruby { return mutate(itemtype: value) } @@ -10710,7 +11143,16 @@ extension Data: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, V public func `is`(_ value: String) -> Data { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Data { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Data { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Data { return mutate(itemid: value) } @@ -10719,14 +11161,17 @@ extension Data: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, V return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Data { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Data { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Data { return mutate(itemtype: value) } @@ -11018,7 +11463,16 @@ extension Time: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, D public func `is`(_ value: String) -> Time { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Time { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Time { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Time { return mutate(itemid: value) } @@ -11027,14 +11481,17 @@ extension Time: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, D return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Time { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Time { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Time { return mutate(itemtype: value) } @@ -11317,7 +11774,16 @@ extension Code: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Code { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Code { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Code { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Code { return mutate(itemid: value) } @@ -11326,14 +11792,17 @@ extension Code: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Code { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Code { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Code { return mutate(itemtype: value) } @@ -11612,7 +12081,16 @@ extension Variable: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Variable { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Variable { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Variable { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Variable { return mutate(itemid: value) } @@ -11621,14 +12099,17 @@ extension Variable: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Variable { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Variable { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Variable { return mutate(itemtype: value) } @@ -11903,7 +12384,16 @@ extension SampleOutput: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri public func `is`(_ value: String) -> SampleOutput { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> SampleOutput { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> SampleOutput { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> SampleOutput { return mutate(itemid: value) } @@ -11912,14 +12402,17 @@ extension SampleOutput: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> SampleOutput { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> SampleOutput { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> SampleOutput { return mutate(itemtype: value) } @@ -12198,7 +12691,16 @@ extension KeyboardInput: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr public func `is`(_ value: String) -> KeyboardInput { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> KeyboardInput { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> KeyboardInput { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> KeyboardInput { return mutate(itemid: value) } @@ -12207,14 +12709,17 @@ extension KeyboardInput: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> KeyboardInput { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> KeyboardInput { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> KeyboardInput { return mutate(itemtype: value) } @@ -12493,7 +12998,16 @@ extension Subscript: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> Subscript { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Subscript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Subscript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Subscript { return mutate(itemid: value) } @@ -12502,14 +13016,17 @@ extension Subscript: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Subscript { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Subscript { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Subscript { return mutate(itemtype: value) } @@ -12787,7 +13304,16 @@ extension Superscript: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func `is`(_ value: String) -> Superscript { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Superscript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Superscript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Superscript { return mutate(itemid: value) } @@ -12796,14 +13322,17 @@ extension Superscript: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Superscript { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Superscript { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Superscript { return mutate(itemtype: value) } @@ -13082,7 +13611,16 @@ extension Italic: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Italic { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Italic { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Italic { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Italic { return mutate(itemid: value) } @@ -13091,14 +13629,17 @@ extension Italic: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Italic { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Italic { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Italic { return mutate(itemtype: value) } @@ -13384,7 +13925,16 @@ extension Bold: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Bold { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Bold { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Bold { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Bold { return mutate(itemid: value) } @@ -13393,14 +13943,17 @@ extension Bold: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Bold { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Bold { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Bold { return mutate(itemtype: value) } @@ -13686,7 +14239,16 @@ extension Underline: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> Underline { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Underline { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Underline { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Underline { return mutate(itemid: value) } @@ -13695,14 +14257,17 @@ extension Underline: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Underline { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Underline { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Underline { return mutate(itemtype: value) } @@ -13988,7 +14553,16 @@ extension Mark: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Mark { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Mark { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Mark { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Mark { return mutate(itemid: value) } @@ -13997,14 +14571,17 @@ extension Mark: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Mark { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Mark { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Mark { return mutate(itemtype: value) } @@ -14283,7 +14860,16 @@ extension Bdi: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Bdi { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Bdi { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Bdi { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Bdi { return mutate(itemid: value) } @@ -14292,14 +14878,17 @@ extension Bdi: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Bdi { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Bdi { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Bdi { return mutate(itemtype: value) } @@ -14572,7 +15161,16 @@ extension Bdo: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Bdo { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Bdo { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Bdo { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Bdo { return mutate(itemid: value) } @@ -14581,14 +15179,17 @@ extension Bdo: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Bdo { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Bdo { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Bdo { return mutate(itemtype: value) } @@ -14863,7 +15464,16 @@ extension Span: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { public func `is`(_ value: String) -> Span { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Span { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Span { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Span { return mutate(itemid: value) } @@ -14872,14 +15482,17 @@ extension Span: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Span { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Span { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Span { return mutate(itemtype: value) } @@ -15145,7 +15758,16 @@ extension LineBreak: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> LineBreak { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> LineBreak { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> LineBreak { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> LineBreak { return mutate(itemid: value) } @@ -15154,14 +15776,17 @@ extension LineBreak: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> LineBreak { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> LineBreak { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> LineBreak { return mutate(itemtype: value) } @@ -15431,7 +16056,16 @@ extension WordBreak: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> WordBreak { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> WordBreak { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> WordBreak { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> WordBreak { return mutate(itemid: value) } @@ -15440,14 +16074,17 @@ extension WordBreak: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> WordBreak { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> WordBreak { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> WordBreak { return mutate(itemtype: value) } @@ -15722,7 +16359,16 @@ extension InsertedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri public func `is`(_ value: String) -> InsertedText { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> InsertedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> InsertedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> InsertedText { return mutate(itemid: value) } @@ -15731,14 +16377,17 @@ extension InsertedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttri return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> InsertedText { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> InsertedText { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> InsertedText { return mutate(itemtype: value) } @@ -16021,7 +16670,16 @@ extension DeletedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func `is`(_ value: String) -> DeletedText { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> DeletedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> DeletedText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> DeletedText { return mutate(itemid: value) } @@ -16030,14 +16688,17 @@ extension DeletedText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> DeletedText { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> DeletedText { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> DeletedText { return mutate(itemtype: value) } @@ -16325,7 +16986,16 @@ extension Picture: GlobalAttributes, GlobalEventAttributes { public func `is`(_ value: String) -> Picture { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Picture { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Picture { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Picture { return mutate(itemid: value) } @@ -16334,14 +17004,17 @@ extension Picture: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Picture { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Picture { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Picture { return mutate(itemtype: value) } @@ -16534,7 +17207,16 @@ extension Image: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Image { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Image { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Image { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Image { return mutate(itemid: value) } @@ -16543,14 +17225,17 @@ extension Image: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Image { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Image { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Image { return mutate(itemtype: value) } @@ -16887,7 +17572,16 @@ extension InlineFrame: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func `is`(_ value: String) -> InlineFrame { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> InlineFrame { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> InlineFrame { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> InlineFrame { return mutate(itemid: value) } @@ -16896,14 +17590,17 @@ extension InlineFrame: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> InlineFrame { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> InlineFrame { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> InlineFrame { return mutate(itemtype: value) } @@ -17211,7 +17908,16 @@ extension Embed: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Embed { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Embed { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Embed { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Embed { return mutate(itemid: value) } @@ -17220,14 +17926,17 @@ extension Embed: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Embed { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Embed { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Embed { return mutate(itemtype: value) } @@ -17523,7 +18232,16 @@ extension Object: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Object { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Object { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Object { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Object { return mutate(itemid: value) } @@ -17532,14 +18250,17 @@ extension Object: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Object { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Object { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Object { return mutate(itemtype: value) } @@ -17840,7 +18561,16 @@ extension Video: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Video { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Video { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Video { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Video { return mutate(itemid: value) } @@ -17849,14 +18579,17 @@ extension Video: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Video { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Video { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Video { return mutate(itemtype: value) } @@ -18192,7 +18925,16 @@ extension Audio: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Audio { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Audio { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Audio { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Audio { return mutate(itemid: value) } @@ -18201,14 +18943,17 @@ extension Audio: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Audio { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Audio { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Audio { return mutate(itemtype: value) } @@ -18533,7 +19278,16 @@ extension Map: GlobalAttributes, GlobalEventAttributes, NameAttribute { public func `is`(_ value: String) -> Map { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Map { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Map { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Map { return mutate(itemid: value) } @@ -18542,14 +19296,17 @@ extension Map: GlobalAttributes, GlobalEventAttributes, NameAttribute { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Map { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Map { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Map { return mutate(itemtype: value) } @@ -18758,7 +19515,16 @@ extension Form: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, A public func `is`(_ value: String) -> Form { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Form { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Form { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Form { return mutate(itemid: value) } @@ -18767,14 +19533,17 @@ extension Form: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, A return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Form { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Form { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Form { return mutate(itemtype: value) } @@ -19098,7 +19867,16 @@ extension DataList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> DataList { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> DataList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> DataList { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> DataList { return mutate(itemid: value) } @@ -19106,15 +19884,18 @@ extension DataList: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func itemProperty(_ value: String) -> DataList { return mutate(itemprop: value) } - + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> DataList { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> DataList { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> DataList { return mutate(itemtype: value) } @@ -19391,7 +20172,16 @@ extension Output: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Output { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Output { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Output { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Output { return mutate(itemid: value) } @@ -19400,14 +20190,17 @@ extension Output: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Output { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Output { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Output { return mutate(itemtype: value) } @@ -19696,7 +20489,16 @@ extension Progress: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Progress { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Progress { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Progress { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Progress { return mutate(itemid: value) } @@ -19705,14 +20507,17 @@ extension Progress: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Progress { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Progress { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Progress { return mutate(itemtype: value) } @@ -20008,7 +20813,16 @@ extension Meter: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Meter { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Meter { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Meter { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Meter { return mutate(itemid: value) } @@ -20017,14 +20831,17 @@ extension Meter: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Meter { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Meter { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Meter { return mutate(itemtype: value) } @@ -20337,7 +21154,16 @@ extension Details: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Details { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Details { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Details { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Details { return mutate(itemid: value) } @@ -20346,14 +21172,17 @@ extension Details: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Details { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Details { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Details { return mutate(itemtype: value) } @@ -20641,7 +21470,16 @@ extension Dialog: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Dialog { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Dialog { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Dialog { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Dialog { return mutate(itemid: value) } @@ -20650,14 +21488,17 @@ extension Dialog: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Dialog { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Dialog { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Dialog { return mutate(itemtype: value) } @@ -20936,7 +21777,16 @@ extension Script: GlobalAttributes, GlobalEventAttributes, AsynchronouslyAttribu public func `is`(_ value: String) -> Script { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Script { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Script { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Script { return mutate(itemid: value) } @@ -20945,14 +21795,17 @@ extension Script: GlobalAttributes, GlobalEventAttributes, AsynchronouslyAttribu return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Script { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Script { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Script { return mutate(itemtype: value) } @@ -21181,7 +22034,16 @@ extension NoScript: GlobalAttributes, GlobalEventAttributes { public func `is`(_ value: String) -> NoScript { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> NoScript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> NoScript { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> NoScript { return mutate(itemid: value) } @@ -21190,14 +22052,17 @@ extension NoScript: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> NoScript { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> NoScript { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> NoScript { return mutate(itemtype: value) } @@ -21403,7 +22268,16 @@ extension Template: GlobalAttributes, GlobalEventAttributes, ShadowRootModeAttri public func `is`(_ value: String) -> Template { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Template { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Template { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Template { return mutate(itemid: value) } @@ -21412,14 +22286,17 @@ extension Template: GlobalAttributes, GlobalEventAttributes, ShadowRootModeAttri return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Template { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Template { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Template { return mutate(itemtype: value) } @@ -21618,7 +22495,16 @@ extension Canvas: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Canvas { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Canvas { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Canvas { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Canvas { return mutate(itemid: value) } @@ -21627,14 +22513,17 @@ extension Canvas: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Canvas { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Canvas { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Canvas { return mutate(itemtype: value) } @@ -21924,7 +22813,16 @@ extension Table: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Table { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Table { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Table { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Table { return mutate(itemid: value) } @@ -21933,14 +22831,17 @@ extension Table: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Table { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Table { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Table { return mutate(itemtype: value) } @@ -22355,6 +23256,15 @@ extension Slot: GlobalAttributes, NameAttribute { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Slot { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Slot { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Slot { return mutate(itemid: value) } @@ -22363,14 +23273,17 @@ extension Slot: GlobalAttributes, NameAttribute { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Slot { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Slot { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Slot { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift b/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift index b5073300..2ec3e078 100644 --- a/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``TermName``. @@ -120,7 +121,16 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> TermName { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TermName { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TermName { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TermName { return mutate(itemid: value) } @@ -129,14 +139,17 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TermName { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TermName { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TermName { return mutate(itemtype: value) } @@ -416,7 +429,16 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt public func `is`(_ value: String) -> TermDefinition { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TermDefinition { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TermDefinition { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TermDefinition { return mutate(itemid: value) } @@ -425,14 +447,17 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TermDefinition { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TermDefinition { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TermDefinition { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift b/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift index eb824680..848288f9 100644 --- a/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``FigureCaption``. @@ -116,7 +117,16 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr public func `is`(_ value: String) -> FigureCaption { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> FigureCaption { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> FigureCaption { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> FigureCaption { return mutate(itemid: value) } @@ -125,14 +135,17 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> FigureCaption { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> FigureCaption { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> FigureCaption { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/FormElements.swift b/Sources/HTMLKit/Abstraction/Elements/FormElements.swift index f625d0cc..92f36466 100644 --- a/Sources/HTMLKit/Abstraction/Elements/FormElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/FormElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents a text control. @@ -104,7 +105,16 @@ extension Input: GlobalAttributes, GlobalEventAttributes, AcceptAttribute, Alter public func `is`(_ value: String) -> Input { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Input { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Input { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Input { return mutate(itemid: value) } @@ -113,14 +123,17 @@ extension Input: GlobalAttributes, GlobalEventAttributes, AcceptAttribute, Alter return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Input { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Input { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Input { return mutate(itemtype: value) } @@ -512,7 +525,16 @@ extension Label: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Label { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Label { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Label { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Label { return mutate(itemid: value) } @@ -521,14 +543,17 @@ extension Label: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Label { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Label { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Label { return mutate(itemtype: value) } @@ -823,7 +848,16 @@ extension Select: GlobalAttributes, GlobalEventAttributes, AutocompleteAttribute public func `is`(_ value: String) -> Select { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Select { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Select { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Select { return mutate(itemid: value) } @@ -832,14 +866,17 @@ extension Select: GlobalAttributes, GlobalEventAttributes, AutocompleteAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Select { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Select { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Select { return mutate(itemtype: value) } @@ -1100,7 +1137,16 @@ extension TextArea: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> TextArea { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TextArea { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TextArea { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TextArea { return mutate(itemid: value) } @@ -1109,14 +1155,17 @@ extension TextArea: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TextArea { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TextArea { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TextArea { return mutate(itemtype: value) } @@ -1490,7 +1539,16 @@ extension Button: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Button { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Button { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Button { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Button { return mutate(itemid: value) } @@ -1499,14 +1557,17 @@ extension Button: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Button { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Button { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Button { return mutate(itemtype: value) } @@ -1848,7 +1909,16 @@ extension Fieldset: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> Fieldset { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Fieldset { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Fieldset { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Fieldset { return mutate(itemid: value) } @@ -1857,14 +1927,17 @@ extension Fieldset: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Fieldset { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Fieldset { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Fieldset { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift b/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift index 39b86a44..50fe6662 100644 --- a/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents the document title. @@ -110,6 +111,15 @@ extension Title: GlobalAttributes, GlobalEventAttributes { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Title { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Title { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Title { return mutate(itemid: value) } @@ -118,14 +128,17 @@ extension Title: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Title { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Title { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Title { return mutate(itemtype: value) } @@ -320,6 +333,15 @@ extension Base: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Tar return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Base { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Base { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Base { return mutate(itemid: value) } @@ -328,14 +350,17 @@ extension Base: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Tar return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Base { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Base { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Base { return mutate(itemtype: value) } @@ -536,7 +561,16 @@ extension Meta: GlobalAttributes, GlobalEventAttributes, ContentAttribute, NameA public func `is`(_ value: String) -> Meta { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Meta { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Meta { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Meta { return mutate(itemid: value) } @@ -545,14 +579,17 @@ extension Meta: GlobalAttributes, GlobalEventAttributes, ContentAttribute, NameA return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Meta { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Meta { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Meta { return mutate(itemtype: value) } @@ -780,7 +817,16 @@ extension Style: GlobalAttributes, GlobalEventAttributes, TypeAttribute, MediaAt public func `is`(_ value: String) -> Style { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Style { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Style { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Style { return mutate(itemid: value) } @@ -789,14 +835,17 @@ extension Style: GlobalAttributes, GlobalEventAttributes, TypeAttribute, MediaAt return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Style { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Style { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Style { return mutate(itemtype: value) } @@ -1000,7 +1049,16 @@ extension Link: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Ref public func `is`(_ value: String) -> Link { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Link { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Link { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Link { return mutate(itemid: value) } @@ -1009,14 +1067,17 @@ extension Link: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Ref return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Link { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Link { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Link { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift b/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift index d1b4860b..0ac78755 100644 --- a/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents the document head. @@ -108,6 +109,15 @@ extension Head: GlobalAttributes, GlobalEventAttributes { return mutate(is: value) } + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Head { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Head { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Head { return mutate(itemid: value) } @@ -116,14 +126,17 @@ extension Head: GlobalAttributes, GlobalEventAttributes { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Head { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Head { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Head { return mutate(itemtype: value) } @@ -327,7 +340,16 @@ extension Body: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, W public func `is`(_ value: String) -> Body { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Body { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Body { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Body { return mutate(itemid: value) } @@ -336,14 +358,17 @@ extension Body: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, W return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Body { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Body { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Body { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/InputElements.swift b/Sources/HTMLKit/Abstraction/Elements/InputElements.swift index a9d6f043..4f663820 100644 --- a/Sources/HTMLKit/Abstraction/Elements/InputElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/InputElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``OptionGroup``. @@ -122,7 +123,16 @@ extension OptionGroup: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib public func `is`(_ value: String) -> OptionGroup { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> OptionGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> OptionGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> OptionGroup { return mutate(itemid: value) } @@ -131,14 +141,17 @@ extension OptionGroup: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> OptionGroup { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> OptionGroup { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> OptionGroup { return mutate(itemtype: value) } @@ -433,7 +446,16 @@ extension Option: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, public func `is`(_ value: String) -> Option { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Option { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Option { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Option { return mutate(itemid: value) } @@ -442,14 +464,17 @@ extension Option: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Option { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Option { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Option { return mutate(itemtype: value) } @@ -778,23 +803,35 @@ extension Legend: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Legend { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Legend { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Legend { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Legend { return mutate(itemid: value) } - + public func itemProperty(_ value: String) -> Legend { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Legend { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Legend { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Legend { return mutate(itemtype: value) } @@ -1074,7 +1111,16 @@ extension Summary: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Summary { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Summary { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Summary { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Summary { return mutate(itemid: value) } @@ -1083,14 +1129,17 @@ extension Summary: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Summary { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Summary { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Summary { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/ListElements.swift b/Sources/HTMLKit/Abstraction/Elements/ListElements.swift index 22da8b2c..1f73a06a 100644 --- a/Sources/HTMLKit/Abstraction/Elements/ListElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/ListElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``ListItem``. @@ -116,7 +117,16 @@ extension ListItem: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> ListItem { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> ListItem { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> ListItem { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> ListItem { return mutate(itemid: value) } @@ -125,14 +135,17 @@ extension ListItem: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> ListItem { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> ListItem { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> ListItem { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/MapElements.swift b/Sources/HTMLKit/Abstraction/Elements/MapElements.swift index b8fa2390..24db5483 100644 --- a/Sources/HTMLKit/Abstraction/Elements/MapElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/MapElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents a map area. @@ -111,7 +112,16 @@ extension Area: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, A public func `is`(_ value: String) -> Area { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Area { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Area { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Area { return mutate(itemid: value) } @@ -120,14 +130,17 @@ extension Area: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, A return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Area { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Area { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Area { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift b/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift index 61531dab..223850fb 100644 --- a/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// An element that represents a media source. @@ -103,7 +104,16 @@ extension Source: GlobalAttributes, GlobalEventAttributes, TypeAttribute, Source public func `is`(_ value: String) -> Source { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Source { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Source { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Source { return mutate(itemid: value) } @@ -112,14 +122,17 @@ extension Source: GlobalAttributes, GlobalEventAttributes, TypeAttribute, Source return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Source { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Source { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Source { return mutate(itemtype: value) } @@ -349,7 +362,16 @@ extension Track: GlobalAttributes, GlobalEventAttributes, KindAttribute, SourceA public func `is`(_ value: String) -> Track { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Track { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Track { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Track { return mutate(itemid: value) } @@ -358,14 +380,17 @@ extension Track: GlobalAttributes, GlobalEventAttributes, KindAttribute, SourceA return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Track { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Track { return mutate(itemtype: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Track { return mutate(itemscope: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/ObjectElements.swift b/Sources/HTMLKit/Abstraction/Elements/ObjectElements.swift index 27a8d94c..29d984f9 100644 --- a/Sources/HTMLKit/Abstraction/Elements/ObjectElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/ObjectElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``Parameter``. @@ -107,7 +108,16 @@ extension Parameter: GlobalAttributes, GlobalEventAttributes, NameAttribute, Val public func `is`(_ value: String) -> Parameter { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Parameter { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Parameter { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Parameter { return mutate(itemid: value) } @@ -116,14 +126,17 @@ extension Parameter: GlobalAttributes, GlobalEventAttributes, NameAttribute, Val return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Parameter { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Parameter { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Parameter { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift b/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift index 7905d215..a7140a06 100644 --- a/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``RubyText``. @@ -118,7 +119,16 @@ extension RubyText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> RubyText { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> RubyText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> RubyText { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> RubyText { return mutate(itemid: value) } @@ -127,14 +137,17 @@ extension RubyText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> RubyText { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> RubyText { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> RubyText { return mutate(itemtype: value) } @@ -418,7 +431,16 @@ extension RubyPronunciation: GlobalAttributes, GlobalEventAttributes, GlobalAria public func `is`(_ value: String) -> RubyPronunciation { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> RubyPronunciation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> RubyPronunciation { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> RubyPronunciation { return mutate(itemid: value) } @@ -427,14 +449,17 @@ extension RubyPronunciation: GlobalAttributes, GlobalEventAttributes, GlobalAria return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> RubyPronunciation { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> RubyPronunciation { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> RubyPronunciation { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Abstraction/Elements/TableElements.swift b/Sources/HTMLKit/Abstraction/Elements/TableElements.swift index 8fe73d76..bfc177bd 100644 --- a/Sources/HTMLKit/Abstraction/Elements/TableElements.swift +++ b/Sources/HTMLKit/Abstraction/Elements/TableElements.swift @@ -1,3 +1,4 @@ +import Foundation import OrderedCollections /// The alias for the element ``ColumnGroup``. @@ -141,7 +142,16 @@ extension Caption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes public func `is`(_ value: String) -> Caption { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Caption { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Caption { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Caption { return mutate(itemid: value) } @@ -150,14 +160,17 @@ extension Caption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Caption { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Caption { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Caption { return mutate(itemtype: value) } @@ -436,7 +449,16 @@ extension ColumnGroup: GlobalAttributes, GlobalEventAttributes, SpanAttribute { public func `is`(_ value: String) -> ColumnGroup { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> ColumnGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> ColumnGroup { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> ColumnGroup { return mutate(itemid: value) } @@ -445,14 +467,17 @@ extension ColumnGroup: GlobalAttributes, GlobalEventAttributes, SpanAttribute { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> ColumnGroup { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> ColumnGroup { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> ColumnGroup { return mutate(itemtype: value) } @@ -656,7 +681,16 @@ extension Column: GlobalAttributes, GlobalEventAttributes, SpanAttribute { public func `is`(_ value: String) -> Column { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Column { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Column { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> Column { return mutate(itemid: value) } @@ -665,14 +699,17 @@ extension Column: GlobalAttributes, GlobalEventAttributes, SpanAttribute { return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> Column { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> Column { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> Column { return mutate(itemtype: value) } @@ -880,7 +917,16 @@ extension TableBody: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> TableBody { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TableBody { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TableBody { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TableBody { return mutate(itemid: value) } @@ -889,14 +935,17 @@ extension TableBody: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TableBody { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TableBody { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TableBody { return mutate(itemtype: value) } @@ -1192,7 +1241,16 @@ extension TableHead: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> TableHead { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TableHead { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TableHead { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TableHead { return mutate(itemid: value) } @@ -1201,14 +1259,17 @@ extension TableHead: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TableHead { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TableHead { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TableHead { return mutate(itemtype: value) } @@ -1504,7 +1565,16 @@ extension TableFoot: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut public func `is`(_ value: String) -> TableFoot { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TableFoot { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TableFoot { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TableFoot { return mutate(itemid: value) } @@ -1513,14 +1583,17 @@ extension TableFoot: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribut return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TableFoot { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TableFoot { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TableFoot { return mutate(itemtype: value) } @@ -1802,7 +1875,16 @@ extension TableRow: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> TableRow { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> TableRow { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> TableRow { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> TableRow { return mutate(itemid: value) } @@ -1811,14 +1893,17 @@ extension TableRow: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> TableRow { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> TableRow { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> TableRow { return mutate(itemtype: value) } @@ -2105,7 +2190,16 @@ extension DataCell: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute public func `is`(_ value: String) -> DataCell { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> DataCell { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> DataCell { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> DataCell { return mutate(itemid: value) } @@ -2114,14 +2208,17 @@ extension DataCell: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> DataCell { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> DataCell { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> DataCell { return mutate(itemtype: value) } @@ -2412,7 +2509,16 @@ extension HeaderCell: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu public func `is`(_ value: String) -> HeaderCell { return mutate(is: value) } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> HeaderCell { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + public func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> HeaderCell { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined(separator: " ")) + } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemId(_ value: String) -> HeaderCell { return mutate(itemid: value) } @@ -2421,14 +2527,17 @@ extension HeaderCell: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribu return mutate(itemprop: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemReference(_ value: String) -> HeaderCell { return mutate(itemref: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemScope(_ value: String) -> HeaderCell { return mutate(itemscope: value) } + @available(*, deprecated, message: "Use the item(id:as:for:) modifier instead.") public func itemType(_ value: String) -> HeaderCell { return mutate(itemtype: value) } diff --git a/Sources/HTMLKit/Framework/Extensions/URL+HTMLKit.swift b/Sources/HTMLKit/Framework/Extensions/URL+HTMLKit.swift new file mode 100644 index 00000000..291ca4bd --- /dev/null +++ b/Sources/HTMLKit/Framework/Extensions/URL+HTMLKit.swift @@ -0,0 +1,8 @@ +import Foundation + +extension URL: ExpressibleByStringLiteral { + + public init(stringLiteral value: String) { + self = URL(string: value)! + } +} diff --git a/Tests/HTMLKitTests/AttributesTests.swift b/Tests/HTMLKitTests/AttributesTests.swift index 7132af15..d55dadc4 100644 --- a/Tests/HTMLKitTests/AttributesTests.swift +++ b/Tests/HTMLKitTests/AttributesTests.swift @@ -4,6 +4,7 @@ */ @testable import HTMLKit +import Foundation import OrderedCollections import XCTest @@ -14,7 +15,7 @@ final class AttributesTests: XCTestCase { @ContentBuilder var body: Content } - typealias AllAttributes = AccessKeyAttribute & AcceptAttribute & ActionAttribute & AlternateAttribute & AsynchronouslyAttribute & AutocapitalizeAttribute & AutocompleteAttribute & AutofocusAttribute & AutoplayAttribute & CharsetAttribute & CheckedAttribute & CiteAttribute & ClassAttribute & ColumnsAttribute & ColumnSpanAttribute & ContentAttribute & EditAttribute & ControlsAttribute & CoordinatesAttribute & DataAttribute & DateTimeAttribute & DefaultAttribute & DeferAttribute & DirectionAttribute & DisabledAttribute & DownloadAttribute & DragAttribute & EncodingAttribute & EnterKeyHintAttribute & ForAttribute & FormAttribute & FormActionAttribute & EquivalentAttribute & HeaderAttribute & HeightAttribute & HiddenAttribute & HighAttribute & ReferenceAttribute & ReferenceLanguageAttribute & IdentifierAttribute & IsMapAttribute & InputModeAttribute & IsAttribute & ItemIdAttribute & ItemPropertyAttribute & ItemReferenceAttribute & ItemScopeAttribute & ItemTypeAttribute & KindAttribute & LabelAttribute & LanguageAttribute & ListAttribute & LoopAttribute & LowAttribute & MaximumValueAttribute & MaximumLengthAttribute & MediaAttribute & MethodAttribute & MinimumValueAttribute & MinimumLengthAttribute & MultipleAttribute & MutedAttribute & NameAttribute & NonceAttribute & NoValidateAttribute & OpenAttribute & OptimumAttribute & PatternAttribute & PartAttribute & PingAttribute & PlaceholderAttribute & PosterAttribute & PreloadAttribute & ReadyOnlyAttribute & ReferrerPolicyAttribute & RelationshipAttribute & RequiredAttribute & ReversedAttribute & RoleAttribute & RowsAttribute & RowSpanAttribute & SandboxAttribute & ScopeAttribute & ShapeAttribute & SizeAttribute & SizesAttribute & SlotAttribute & SpanAttribute & SpellCheckAttribute & SourceAttribute & StartAttribute & StepAttribute & StyleAttribute & TabulatorAttribute & TargetAttribute & TitleAttribute & TranslateAttribute & TypeAttribute & ValueAttribute & WidthAttribute & WrapAttribute & PropertyAttribute & SelectedAttribute & WindowEventAttribute & FocusEventAttribute & PointerEventAttribute & MouseEventAttribute & WheelEventAttribute & InputEventAttribute & KeyboardEventAttribute & DragEventAttribute & ClipboardEventAttribute & SelectionEventAttribute & MediaEventAttribute & FormEventAttribute & DetailEventAttribute & AriaAtomicAttribute & AriaBusyAttribute & AriaControlsAttribute & AriaCurrentAttribute & AriaDescribedAttribute & AriaDetailsAttribute & AriaDisabledAttribute & AriaErrorMessageAttribute & AriaFlowToAttribute & AriaPopupAttribute & AriaHiddenAttribute & AriaInvalidAttribute & AriaShortcutsAttribute & AriaLabelAttribute & AriaLabeledAttribute & AriaLiveAttribute & AriaOwnsAttribute & AriaRelevantAttribute & AriaRoleDescriptionAttribute & DrawAttribute & FillAttribute & FillOpacityAttribute & StrokeAttribute & StrokeWidthAttribute & StrokeOpacityAttribute & StrokeLineCapAttribute & StrokeLineJoinAttribute & RadiusAttribute & PositionPointAttribute & RadiusPointAttribute & CenterPointAttribute & ViewBoxAttribute & NamespaceAttribute & PointsAttribute & ShadowRootModeAttribute & InertAttribute & FetchPriorityAttribute & LoadingAttribute & SourceSetAttribute & DecodingAttribute & BlockingAttribute & PopoverAttribute & PopoverTargetAttribute & PopoverActionAttribute & UseMapAttribute & PlaysInlineAttribute + typealias AllAttributes = AccessKeyAttribute & AcceptAttribute & ActionAttribute & AlternateAttribute & AsynchronouslyAttribute & AutocapitalizeAttribute & AutocompleteAttribute & AutofocusAttribute & AutoplayAttribute & CharsetAttribute & CheckedAttribute & CiteAttribute & ClassAttribute & ColumnsAttribute & ColumnSpanAttribute & ContentAttribute & EditAttribute & ControlsAttribute & CoordinatesAttribute & DataAttribute & DateTimeAttribute & DefaultAttribute & DeferAttribute & DirectionAttribute & DisabledAttribute & DownloadAttribute & DragAttribute & EncodingAttribute & EnterKeyHintAttribute & ForAttribute & FormAttribute & FormActionAttribute & EquivalentAttribute & HeaderAttribute & HeightAttribute & HiddenAttribute & HighAttribute & ReferenceAttribute & ReferenceLanguageAttribute & IdentifierAttribute & IsMapAttribute & InputModeAttribute & IsAttribute & ItemAttribute & ItemIdAttribute & ItemPropertyAttribute & ItemReferenceAttribute & ItemScopeAttribute & ItemTypeAttribute & KindAttribute & LabelAttribute & LanguageAttribute & ListAttribute & LoopAttribute & LowAttribute & MaximumValueAttribute & MaximumLengthAttribute & MediaAttribute & MethodAttribute & MinimumValueAttribute & MinimumLengthAttribute & MultipleAttribute & MutedAttribute & NameAttribute & NonceAttribute & NoValidateAttribute & OpenAttribute & OptimumAttribute & PatternAttribute & PartAttribute & PingAttribute & PlaceholderAttribute & PosterAttribute & PreloadAttribute & ReadyOnlyAttribute & ReferrerPolicyAttribute & RelationshipAttribute & RequiredAttribute & ReversedAttribute & RoleAttribute & RowsAttribute & RowSpanAttribute & SandboxAttribute & ScopeAttribute & ShapeAttribute & SizeAttribute & SizesAttribute & SlotAttribute & SpanAttribute & SpellCheckAttribute & SourceAttribute & StartAttribute & StepAttribute & StyleAttribute & TabulatorAttribute & TargetAttribute & TitleAttribute & TranslateAttribute & TypeAttribute & ValueAttribute & WidthAttribute & WrapAttribute & PropertyAttribute & SelectedAttribute & WindowEventAttribute & FocusEventAttribute & PointerEventAttribute & MouseEventAttribute & WheelEventAttribute & InputEventAttribute & KeyboardEventAttribute & DragEventAttribute & ClipboardEventAttribute & SelectionEventAttribute & MediaEventAttribute & FormEventAttribute & DetailEventAttribute & AriaAtomicAttribute & AriaBusyAttribute & AriaControlsAttribute & AriaCurrentAttribute & AriaDescribedAttribute & AriaDetailsAttribute & AriaDisabledAttribute & AriaErrorMessageAttribute & AriaFlowToAttribute & AriaPopupAttribute & AriaHiddenAttribute & AriaInvalidAttribute & AriaShortcutsAttribute & AriaLabelAttribute & AriaLabeledAttribute & AriaLiveAttribute & AriaOwnsAttribute & AriaRelevantAttribute & AriaRoleDescriptionAttribute & DrawAttribute & FillAttribute & FillOpacityAttribute & StrokeAttribute & StrokeWidthAttribute & StrokeOpacityAttribute & StrokeLineCapAttribute & StrokeLineJoinAttribute & RadiusAttribute & PositionPointAttribute & RadiusPointAttribute & CenterPointAttribute & ViewBoxAttribute & NamespaceAttribute & PointsAttribute & ShadowRootModeAttribute & InertAttribute & FetchPriorityAttribute & LoadingAttribute & SourceSetAttribute & DecodingAttribute & BlockingAttribute & PopoverAttribute & PopoverTargetAttribute & PopoverActionAttribute & UseMapAttribute & PlaysInlineAttribute struct Tag: ContentNode, GlobalElement, AllAttributes { @@ -90,6 +91,14 @@ final class AttributesTests: XCTestCase { return self.mutate(is: value) } + func item(id: String? = nil, as schema: URL? = nil, for elements: [String]? = nil) -> Tag { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements?.joined(separator: " ")) + } + + func item(id: String? = nil, as schema: URL? = nil, for elements: String...) -> Tag { + return self.mutate(itemscope: "itemscope").mutate(itemid: id).mutate(itemtype: schema?.absoluteString).mutate(itemref: elements.joined( separator: " ")) + } + func itemId(_ value: String) -> Tag { return self.mutate(itemid: value) } @@ -1458,6 +1467,30 @@ final class AttributesTests: XCTestCase { ) } + func testItemAttribute() throws { + + let view = TestView { + Tag {}.item() + Tag {}.item(id: "id") + Tag {}.item(as: "https://schema.org/Person") + Tag {}.item(as: URL(string: "https://schema.org/Person")) + Tag {}.item(for: "foo", "bar") + Tag {}.item(for: ["foo", "bar"]) + + } + + XCTAssertEqual(try renderer.render(view: view), + """ + \ + \ + \ + \ + \ + + """ + ) + } + func testReferenceAttribute() throws { let view = TestView {