From 702ce6989b682d1d19eae5e21a0b534cc06386fe Mon Sep 17 00:00:00 2001 From: Kyle Date: Tue, 5 Dec 2023 01:30:06 +0800 Subject: [PATCH] Update project structure --- .../EnvironmentValues+controlSize.swift | 20 ----- .../EnvironmentValues+isEnabled.swift | 20 ----- .../_EnvironmentKeyTransformModifier.swift | 30 +++++++ .../OpenSwiftUI/Internal/Other/Utils.swift | 7 ++ .../OpenSwiftUI.docc/Views/Controls.md | 8 ++ .../UIElements/Font/TODO/Font.swift | 7 -- .../Controls/ControlSize/ControlSize.swift | 28 ++++++ .../Controls/ControlSize/ControlSizeKey.swift | 76 ++++++++++++++++ .../Views/Controls/EnabledKey.swift | 51 +++++++++++ .../Controls/Link/OpenURLActionKey.swift} | 86 +++++++++---------- .../CustomViewDebugValueConvertible.swift | 0 .../View/Debug/TODO/_ViewDebug.swift | 0 .../View/Debug/TODO/_printChange.swift | 0 .../View/Extension/View_Font.swift | 0 .../View/Extension/View_Opacity.swift | 0 .../View/PrimitiveView.swift | 0 .../View/TODO/AnyView.swift | 0 .../View/TODO/EmptyView.swift | 0 .../View/TODO/TupleView.swift | 0 .../View/TODO/UnaryView.swift | 0 .../View/TODO/View.swift | 0 .../View/TODO/ViewInputBoolFlag.swift | 0 .../View/TODO/_ConditionalContent.swift | 0 .../View/TODO/_ViewInputs.swift | 0 .../View/TODO/_ViewListCountInputs.swift | 0 .../View/TODO/_ViewListInputs.swift | 0 .../View/TODO/_ViewListOutputs.swift | 0 .../View/TODO/_ViewOutputs.swift | 0 .../View/ViewAlias.swift | 0 .../View/ViewBuilder.swift | 0 .../View/ViewInput.swift | 0 31 files changed, 243 insertions(+), 90 deletions(-) delete mode 100644 Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+controlSize.swift delete mode 100644 Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+isEnabled.swift create mode 100644 Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/Internal/TODO/_EnvironmentKeyTransformModifier.swift create mode 100644 Sources/OpenSwiftUI/Internal/Other/Utils.swift create mode 100644 Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSize.swift create mode 100644 Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSizeKey.swift create mode 100644 Sources/OpenSwiftUI/Views/Controls/EnabledKey.swift rename Sources/OpenSwiftUI/{DataAndStorage/EnvironmentValues/EnvironmentValues+openURL.swift => Views/Controls/Link/OpenURLActionKey.swift} (98%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/Debug/TODO/CustomViewDebugValueConvertible.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/Debug/TODO/_ViewDebug.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/Debug/TODO/_printChange.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/Extension/View_Font.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/Extension/View_Opacity.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/PrimitiveView.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/AnyView.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/EmptyView.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/TupleView.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/UnaryView.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/View.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/ViewInputBoolFlag.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ConditionalContent.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ViewInputs.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ViewListCountInputs.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ViewListInputs.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ViewListOutputs.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/TODO/_ViewOutputs.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/ViewAlias.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/ViewBuilder.swift (100%) rename Sources/OpenSwiftUI/{UIElements => Views}/View/ViewInput.swift (100%) diff --git a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+controlSize.swift b/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+controlSize.swift deleted file mode 100644 index 38f5c472..00000000 --- a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+controlSize.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// EnvironmentValues+controlSize.swift -// OpenSwiftUI -// -// Created by Kyle on 2023/11/5. -// Lastest Version: iOS 15.5 -// Status: Complete -// ID: 50E368DED9ACE8B6BEC08FF7781AF4B1 - -private struct ControlSizeKey: EnvironmentKey { - static let defaultValue: ControlSize = .regular -} - -extension EnvironmentValues { - @inline(__always) - public var controlSize: ControlSize { - get { self[ControlSizeKey.self] } - set { self[ControlSizeKey.self] = newValue } - } -} diff --git a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+isEnabled.swift b/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+isEnabled.swift deleted file mode 100644 index 8d1b9433..00000000 --- a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+isEnabled.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// EnvironmentValues+isEnabled.swift -// OpenSwiftUI -// -// Created by Kyle on 2023/10/9. -// Lastest Version: iOS 15.5 -// Status: Complete -// ID: 6C7FC77DDFF6AC5E011A44B5658DAD66 - -private struct EnabledKey: EnvironmentKey { - static var defaultValue: Bool { true } -} - -extension EnvironmentValues { - @inline(__always) - public var isEnabled: Bool { - get { self[EnabledKey.self] } - set { self[EnabledKey.self] = newValue } - } -} diff --git a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/Internal/TODO/_EnvironmentKeyTransformModifier.swift b/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/Internal/TODO/_EnvironmentKeyTransformModifier.swift new file mode 100644 index 00000000..e407918d --- /dev/null +++ b/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/Internal/TODO/_EnvironmentKeyTransformModifier.swift @@ -0,0 +1,30 @@ +protocol _GraphInputsModifier {} + +@frozen +public struct _EnvironmentKeyTransformModifier : ViewModifier, _GraphInputsModifier { + public var keyPath: Swift.WritableKeyPath + public var transform: (inout Value) -> Swift.Void + + @inlinable + public init(keyPath: Swift.WritableKeyPath, transform: @escaping (inout Value) -> Swift.Void) { + self.keyPath = keyPath + self.transform = transform + } + public static func _makeInputs(modifier: _GraphValue<_EnvironmentKeyTransformModifier>, inputs: inout _GraphInputs) { + + } + public typealias Body = Never +} + +extension View { + @inlinable + public func transformEnvironment( + _ keyPath: WritableKeyPath, + transform: @escaping (inout V) -> Void + ) -> some View { + modifier(_EnvironmentKeyTransformModifier( + keyPath: keyPath, + transform: transform + )) + } +} diff --git a/Sources/OpenSwiftUI/Internal/Other/Utils.swift b/Sources/OpenSwiftUI/Internal/Other/Utils.swift new file mode 100644 index 00000000..dfecd245 --- /dev/null +++ b/Sources/OpenSwiftUI/Internal/Other/Utils.swift @@ -0,0 +1,7 @@ +@inlinable +@inline(__always) +func asOptional(_ value: Value) -> Value? { + func unwrap() -> T { value as! T } + let optionalValue: Value? = unwrap() + return optionalValue +} diff --git a/Sources/OpenSwiftUI/OpenSwiftUI.docc/Views/Controls.md b/Sources/OpenSwiftUI/OpenSwiftUI.docc/Views/Controls.md index 47227524..fb8b0f63 100644 --- a/Sources/OpenSwiftUI/OpenSwiftUI.docc/Views/Controls.md +++ b/Sources/OpenSwiftUI/OpenSwiftUI.docc/Views/Controls.md @@ -13,3 +13,11 @@ Use these built-in controls and indicators when composing custom views, and styl ### Linking to other content - ``Link`` + +### Sizing controls + +- ``View/controlSize(_:)`` + +- ``EnvironmentValues/controlSize`` + +- ``ControlSize`` diff --git a/Sources/OpenSwiftUI/UIElements/Font/TODO/Font.swift b/Sources/OpenSwiftUI/UIElements/Font/TODO/Font.swift index 5bb2dda1..e96e9b7b 100644 --- a/Sources/OpenSwiftUI/UIElements/Font/TODO/Font.swift +++ b/Sources/OpenSwiftUI/UIElements/Font/TODO/Font.swift @@ -96,10 +96,3 @@ extension Font { } } -public enum ControlSize: Hashable, CaseIterable, Sendable { - case mini - case small - case regular - case large - case extraLarge -} diff --git a/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSize.swift b/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSize.swift new file mode 100644 index 00000000..2e1b3b69 --- /dev/null +++ b/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSize.swift @@ -0,0 +1,28 @@ +// +// ControlSize.swift +// OpenSwiftUI +// +// Created by Kyle on 2023/12/5. +// Lastest Version: iOS 17.0 +// Status: Complete + +/// The size classes, like regular or small, that you can apply to controls +/// within a view. +@available(tvOS, unavailable) +public enum ControlSize: CaseIterable, Sendable { + /// A control version that is minimally sized. + case mini + + /// A control version that is proportionally smaller size for space-constrained views. + case small + + /// A control version that is the default size. + case regular + + /// A control version that is prominently sized. + case large + + case extraLarge +} + +extension ControlSize: Hashable {} diff --git a/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSizeKey.swift b/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSizeKey.swift new file mode 100644 index 00000000..c47b5cb9 --- /dev/null +++ b/Sources/OpenSwiftUI/Views/Controls/ControlSize/ControlSizeKey.swift @@ -0,0 +1,76 @@ +// +// ControlSizeKey.swift +// OpenSwiftUI +// +// Created by Kyle on 2023/11/5. +// Lastest Version: iOS 15.5 +// Status: Complete +// ID: 50E368DED9ACE8B6BEC08FF7781AF4B1 + +private struct ControlSizeKey: EnvironmentKey { + static let defaultValue: ControlSize = .regular +} + +extension EnvironmentValues { + /// The size to apply to controls within a view. + /// + /// The default is ``ControlSize/regular``. + @available(tvOS, unavailable) + public var controlSize: ControlSize { + get { self[ControlSizeKey.self] } + set { self[ControlSizeKey.self] = newValue } + } +} + +@available(tvOS, unavailable) +extension View { + /// Sets the size for controls within this view. + /// + /// Use `controlSize(_:)` to override the system default size for controls + /// in this view. In this example, a view displays several typical controls + /// at `.mini`, `.small` and `.regular` sizes. + /// + /// struct ControlSize: View { + /// var body: some View { + /// VStack { + /// MyControls(label: "Mini") + /// .controlSize(.mini) + /// MyControls(label: "Small") + /// .controlSize(.small) + /// MyControls(label: "Regular") + /// .controlSize(.regular) + /// } + /// .padding() + /// .frame(width: 450) + /// .border(Color.gray) + /// } + /// } + /// + /// struct MyControls: View { + /// var label: String + /// @State private var value = 3.0 + /// @State private var selected = 1 + /// var body: some View { + /// HStack { + /// Text(label + ":") + /// Picker("Selection", selection: $selected) { + /// Text("option 1").tag(1) + /// Text("option 2").tag(2) + /// Text("option 3").tag(3) + /// } + /// Slider(value: $value, in: 1...10) + /// Button("OK") { } + /// } + /// } + /// } + /// + /// ![A screenshot showing several controls of various + /// sizes.](SwiftUI-View-controlSize.png) + /// + /// - Parameter controlSize: One of the control sizes specified in the + /// ``ControlSize`` enumeration. + @inlinable + public func controlSize(_ controlSize: ControlSize) -> some View { + environment(\.controlSize, controlSize) + } +} diff --git a/Sources/OpenSwiftUI/Views/Controls/EnabledKey.swift b/Sources/OpenSwiftUI/Views/Controls/EnabledKey.swift new file mode 100644 index 00000000..fb370fd0 --- /dev/null +++ b/Sources/OpenSwiftUI/Views/Controls/EnabledKey.swift @@ -0,0 +1,51 @@ +// +// EnabledKey.swift +// OpenSwiftUI +// +// Created by Kyle on 2023/10/9. +// Lastest Version: iOS 15.5 +// Status: Complete +// ID: 6C7FC77DDFF6AC5E011A44B5658DAD66 + +private struct EnabledKey: EnvironmentKey { + static var defaultValue: Bool { true } +} + +extension EnvironmentValues { + /// A Boolean value that indicates whether the view associated with this + /// environment allows user interaction. + /// + /// The default value is `true`. + public var isEnabled: Bool { + get { self[EnabledKey.self] } + set { self[EnabledKey.self] = newValue } + } +} + +extension View { + /// Adds a condition that controls whether users can interact with this + /// view. + /// + /// The higher views in a view hierarchy can override the value you set on + /// this view. In the following example, the button isn't interactive + /// because the outer `disabled(_:)` modifier overrides the inner one: + /// + /// HStack { + /// Button(Text("Press")) {} + /// .disabled(false) + /// } + /// .disabled(true) + /// + /// - Parameter disabled: A Boolean value that determines whether users can + /// interact with this view. + /// + /// - Returns: A view that controls whether users can interact with this + /// view. + @inlinable + public func disabled(_ disabled: Bool) -> some View { + modifier(_EnvironmentKeyTransformModifier( + keyPath: \.isEnabled, + transform: { $0 = $0 && !disabled } + )) + } +} diff --git a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+openURL.swift b/Sources/OpenSwiftUI/Views/Controls/Link/OpenURLActionKey.swift similarity index 98% rename from Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+openURL.swift rename to Sources/OpenSwiftUI/Views/Controls/Link/OpenURLActionKey.swift index a6a3b233..e25001e2 100644 --- a/Sources/OpenSwiftUI/DataAndStorage/EnvironmentValues/EnvironmentValues+openURL.swift +++ b/Sources/OpenSwiftUI/Views/Controls/Link/OpenURLActionKey.swift @@ -1,10 +1,10 @@ // -// EnvironmentValues+OpenURLActionKey.swift +// OpenURLActionKey.swift // OpenSwiftUI // // Created by Kyle on 2023/11/26. // Lastest Version: iOS 15.5 -// Status: WIP +// Status: Complete #if canImport(Darwin) #if os(iOS) || os(tvOS) @@ -18,6 +18,47 @@ import AppKit #endif #endif +struct OpenURLActionKey: EnvironmentKey { + static let defaultValue = OpenURLAction( + handler: .system { url, completion in + #if os(iOS) || os(tvOS) + UIApplication.shared.open(url, options: [:], completionHandler: completion) + #elseif os(macOS) + NSWorkspace.shared.open(url, configuration: .init()) { _, error in + completion(error != nil) + } + #else + fatalError("Unimplemented") + #endif + }, + isDefault: true + ) +} + +struct OpenSensitiveURLActionKey: EnvironmentKey { + static let defaultValue = OpenURLAction( + handler: .system { url, completion in + #if DEBUG && os(iOS) + let config = _LSOpenConfiguration() + config.isSensitive = true + let scene = UIApplication.shared.connectedScenes.first + config.targetConnectionEndpoint = scene?._currentOpenApplicationEndpoint + guard let workspace = LSApplicationWorkspace.default() else { + return + } + workspace.open(url, configuration: config, completionHandler: completion) + #else + fatalError("Unimplemented") + #endif + }, + isDefault: true + ) +} + +struct HostingViewOpenURLActionKey: EnvironmentKey { + static let defaultValue: OpenURLAction? = nil +} + extension EnvironmentValues { /// An action that opens a URL. /// @@ -110,44 +151,3 @@ extension EnvironmentValues { set { self[OpenSensitiveURLActionKey.self] = newValue } } } - -struct OpenURLActionKey: EnvironmentKey { - static let defaultValue = OpenURLAction( - handler: .system { url, completion in - #if os(iOS) || os(tvOS) - UIApplication.shared.open(url, options: [:], completionHandler: completion) - #elseif os(macOS) - NSWorkspace.shared.open(url, configuration: .init()) { _, error in - completion(error != nil) - } - #else - fatalError("Unimplemented") - #endif - }, - isDefault: true - ) -} - -struct OpenSensitiveURLActionKey: EnvironmentKey { - static let defaultValue = OpenURLAction( - handler: .system { url, completion in - #if DEBUG && os(iOS) - let config = _LSOpenConfiguration() - config.isSensitive = true - let scene = UIApplication.shared.connectedScenes.first - config.targetConnectionEndpoint = scene?._currentOpenApplicationEndpoint - guard let workspace = LSApplicationWorkspace.default() else { - return - } - workspace.open(url, configuration: config, completionHandler: completion) - #else - fatalError("Unimplemented") - #endif - }, - isDefault: true - ) -} - -struct HostingViewOpenURLActionKey: EnvironmentKey { - static let defaultValue: OpenURLAction? = nil -} diff --git a/Sources/OpenSwiftUI/UIElements/View/Debug/TODO/CustomViewDebugValueConvertible.swift b/Sources/OpenSwiftUI/Views/View/Debug/TODO/CustomViewDebugValueConvertible.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/Debug/TODO/CustomViewDebugValueConvertible.swift rename to Sources/OpenSwiftUI/Views/View/Debug/TODO/CustomViewDebugValueConvertible.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/Debug/TODO/_ViewDebug.swift b/Sources/OpenSwiftUI/Views/View/Debug/TODO/_ViewDebug.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/Debug/TODO/_ViewDebug.swift rename to Sources/OpenSwiftUI/Views/View/Debug/TODO/_ViewDebug.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/Debug/TODO/_printChange.swift b/Sources/OpenSwiftUI/Views/View/Debug/TODO/_printChange.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/Debug/TODO/_printChange.swift rename to Sources/OpenSwiftUI/Views/View/Debug/TODO/_printChange.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/Extension/View_Font.swift b/Sources/OpenSwiftUI/Views/View/Extension/View_Font.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/Extension/View_Font.swift rename to Sources/OpenSwiftUI/Views/View/Extension/View_Font.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/Extension/View_Opacity.swift b/Sources/OpenSwiftUI/Views/View/Extension/View_Opacity.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/Extension/View_Opacity.swift rename to Sources/OpenSwiftUI/Views/View/Extension/View_Opacity.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/PrimitiveView.swift b/Sources/OpenSwiftUI/Views/View/PrimitiveView.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/PrimitiveView.swift rename to Sources/OpenSwiftUI/Views/View/PrimitiveView.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/AnyView.swift b/Sources/OpenSwiftUI/Views/View/TODO/AnyView.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/AnyView.swift rename to Sources/OpenSwiftUI/Views/View/TODO/AnyView.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/EmptyView.swift b/Sources/OpenSwiftUI/Views/View/TODO/EmptyView.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/EmptyView.swift rename to Sources/OpenSwiftUI/Views/View/TODO/EmptyView.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/TupleView.swift b/Sources/OpenSwiftUI/Views/View/TODO/TupleView.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/TupleView.swift rename to Sources/OpenSwiftUI/Views/View/TODO/TupleView.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/UnaryView.swift b/Sources/OpenSwiftUI/Views/View/TODO/UnaryView.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/UnaryView.swift rename to Sources/OpenSwiftUI/Views/View/TODO/UnaryView.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/View.swift b/Sources/OpenSwiftUI/Views/View/TODO/View.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/View.swift rename to Sources/OpenSwiftUI/Views/View/TODO/View.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/ViewInputBoolFlag.swift b/Sources/OpenSwiftUI/Views/View/TODO/ViewInputBoolFlag.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/ViewInputBoolFlag.swift rename to Sources/OpenSwiftUI/Views/View/TODO/ViewInputBoolFlag.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ConditionalContent.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ConditionalContent.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ConditionalContent.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ConditionalContent.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ViewInputs.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ViewInputs.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ViewInputs.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ViewInputs.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListCountInputs.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ViewListCountInputs.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListCountInputs.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ViewListCountInputs.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListInputs.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ViewListInputs.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListInputs.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ViewListInputs.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListOutputs.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ViewListOutputs.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ViewListOutputs.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ViewListOutputs.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/TODO/_ViewOutputs.swift b/Sources/OpenSwiftUI/Views/View/TODO/_ViewOutputs.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/TODO/_ViewOutputs.swift rename to Sources/OpenSwiftUI/Views/View/TODO/_ViewOutputs.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/ViewAlias.swift b/Sources/OpenSwiftUI/Views/View/ViewAlias.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/ViewAlias.swift rename to Sources/OpenSwiftUI/Views/View/ViewAlias.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/ViewBuilder.swift b/Sources/OpenSwiftUI/Views/View/ViewBuilder.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/ViewBuilder.swift rename to Sources/OpenSwiftUI/Views/View/ViewBuilder.swift diff --git a/Sources/OpenSwiftUI/UIElements/View/ViewInput.swift b/Sources/OpenSwiftUI/Views/View/ViewInput.swift similarity index 100% rename from Sources/OpenSwiftUI/UIElements/View/ViewInput.swift rename to Sources/OpenSwiftUI/Views/View/ViewInput.swift