@@ -16,13 +16,13 @@ public enum HTMLElementAttribute : Hashable {
1616
1717 case autocapitalize( Extra . autocapitalize ? = nil )
1818 case autofocus( Bool ? = false )
19- case `class`( [ String ] = [ ] )
19+ case `class`( [ String ] ? = nil )
2020 case contenteditable( Extra . contenteditable ? = nil )
2121 case data( _ id: String , _ value: String ? = nil )
2222 case dir( Extra . dir ? = nil )
2323 case draggable( Extra . draggable ? = nil )
2424 case enterkeyhint( Extra . enterkeyhint ? = nil )
25- case exportparts( [ String ] = [ ] )
25+ case exportparts( [ String ] ? = nil )
2626 case hidden( Extra . hidden ? = nil )
2727 case id( String ? = nil )
2828 case inert( Bool ? = false )
@@ -35,7 +35,7 @@ public enum HTMLElementAttribute : Hashable {
3535 case itemtype( String ? = nil )
3636 case lang( String ? = nil )
3737 case nonce( String ? = nil )
38- case part( [ String ] = [ ] )
38+ case part( [ String ] ? = nil )
3939 case popover( Extra . popover ? = nil )
4040 case slot( String ? = nil )
4141 case spellcheck( Extra . spellcheck ? = nil )
@@ -65,7 +65,7 @@ public enum HTMLElementAttribute : Hashable {
6565 func boolean( ) -> Bool ? { expression. boolean ( context: context, key: key) }
6666 func enumeration< T : HTMLInitializable > ( ) -> T ? { expression. enumeration ( context: context, key: key, arguments: function. arguments) }
6767 func int( ) -> Int ? { expression. int ( context: context, key: key) }
68- func array_string( ) -> [ String ] { expression. array_string ( context: context, key: key) }
68+ func array_string( ) -> [ String ] ? { expression. array_string ( context: context, key: key) }
6969 switch key {
7070 case " accesskey " : self = . accesskey( string ( ) )
7171 case " ariaattribute " : self = . ariaattribute( enumeration ( ) )
@@ -184,13 +184,13 @@ public enum HTMLElementAttribute : Hashable {
184184 case . role( let value) : return value? . rawValue
185185 case . autocapitalize( let value) : return value? . rawValue
186186 case . autofocus( let value) : return value == true ? " " : nil
187- case . class( let value) : return value. joined ( separator: " " )
187+ case . class( let value) : return value? . joined ( separator: " " )
188188 case . contenteditable( let value) : return value? . htmlValue
189189 case . data( _, let value) : return value
190190 case . dir( let value) : return value? . rawValue
191191 case . draggable( let value) : return value? . rawValue
192192 case . enterkeyhint( let value) : return value? . rawValue
193- case . exportparts( let value) : return value. joined ( separator: " , " )
193+ case . exportparts( let value) : return value? . joined ( separator: " , " )
194194 case . hidden( let value) : return value? . htmlValue
195195 case . id( let value) : return value
196196 case . inert( let value) : return value == true ? " " : nil
@@ -203,7 +203,7 @@ public enum HTMLElementAttribute : Hashable {
203203 case . itemtype( let value) : return value
204204 case . lang( let value) : return value
205205 case . nonce( let value) : return value
206- case . part( let value) : return value. joined ( separator: " " )
206+ case . part( let value) : return value? . joined ( separator: " " )
207207 case . popover( let value) : return value? . rawValue
208208 case . slot( let value) : return value
209209 case . spellcheck( let value) : return value? . rawValue
@@ -222,6 +222,7 @@ public enum HTMLElementAttribute : Hashable {
222222 }
223223 }
224224
225+ // MARK: htmlValueIsVoidable
225226 public var htmlValueIsVoidable : Bool {
226227 switch self {
227228 case . autofocus( _) , . hidden( _) , . inert( _) , . itemscope( _) :
@@ -232,4 +233,16 @@ public enum HTMLElementAttribute : Hashable {
232233 return false
233234 }
234235 }
236+
237+ // MARK: htmlValueDelimiter
238+ public var htmlValueDelimiter : String {
239+ switch self {
240+ case . htmx( let v) :
241+ switch v {
242+ case . request( _, _, _, _) , . headers( _, _) : return " ' "
243+ default : return " \\ \" "
244+ }
245+ default : return " \\ \" "
246+ }
247+ }
235248}
0 commit comments