File tree Expand file tree Collapse file tree 2 files changed +35
-6
lines changed Expand file tree Collapse file tree 2 files changed +35
-6
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,14 @@ struct BuiltinRegistry {
44
44
Shape ( element: element, context: context, shape: Rectangle ( ) )
45
45
case " roundedrectangle " :
46
46
Shape ( element: element, context: context, shape: RoundedRectangle ( from: element) )
47
+ case " circle " :
48
+ Shape ( element: element, context: context, shape: Circle ( ) )
49
+ case " ellipse " :
50
+ Shape ( element: element, context: context, shape: Ellipse ( ) )
51
+ case " capsule " :
52
+ Shape ( element: element, context: context, shape: Capsule ( from: element) )
53
+ case " containerrelativeshape " :
54
+ Shape ( element: element, context: context, shape: ContainerRelativeShape ( ) )
47
55
case " lvn-link " :
48
56
Link ( element: element, context: context)
49
57
case " toggle " :
Original file line number Diff line number Diff line change @@ -28,12 +28,33 @@ struct Shape<S: SwiftUI.Shape>: View {
28
28
29
29
extension RoundedRectangle {
30
30
init ( from element: ElementNode ) {
31
- let radius : Double
32
- if let s = element. attributeValue ( for: " corner-radius " ) , let d = Double ( s) {
33
- radius = d
34
- } else {
35
- radius = 5
31
+ let radius = element. attributeValue ( for: " corner-radius " ) . flatMap ( Double . init) ?? 0
32
+ self . init (
33
+ cornerSize: . init(
34
+ width: element. attributeValue ( for: " corner-width " ) . flatMap ( Double . init) ?? radius,
35
+ height: element. attributeValue ( for: " corner-height " ) . flatMap ( Double . init) ?? radius
36
+ ) ,
37
+ style: ( element. attributeValue ( for: " style " ) . flatMap ( RoundedCornerStyle . init) ?? . circular) . style
38
+ )
39
+ }
40
+ }
41
+
42
+ extension Capsule {
43
+ init ( from element: ElementNode ) {
44
+ self . init (
45
+ style: ( element. attributeValue ( for: " style " ) . flatMap ( RoundedCornerStyle . init) ?? . circular) . style
46
+ )
47
+ }
48
+ }
49
+
50
+ private enum RoundedCornerStyle : String {
51
+ case circular
52
+ case continuous
53
+
54
+ var style : SwiftUI . RoundedCornerStyle {
55
+ switch self {
56
+ case . circular: return . circular
57
+ case . continuous: return . continuous
36
58
}
37
- self . init ( cornerRadius: radius)
38
59
}
39
60
}
You can’t perform that action at this time.
0 commit comments