     }
 }
 
+/**
+ * A class to be used as singleton - `ReactantLiveUIManager.shared`.
+ *
+ * Manages ComponentDefinitions and sends an event every time a componentDefinition gets updated, this is achieved through Watchers that notify the manager when a file changes.
+ */
 public class ReactantLiveUIManager {
+    /// Shared instance of the `ReactantLiveUIManager`.
     public static let shared = ReactantLiveUIManager()
 
     private var configuration: ReactantLiveUIConfiguration?

        }
    }

    public func resetError(for path: String) {
        errorView.componentState.removeValue(forKey: path)
    }

    public func resetErrors() {
        errorView.componentState.removeAll()
    }

    public func logError(_ error: Error, in path: String) {
        switch error {
        case let liveUiError as LiveUIError:

        loadStyles(configuration.commonStylePaths)
    }

    /**
     * Method for checking view's extendedEdges field as `UIRectEdge`.
     * - parameter view: `ReactantUI` view to be checked.
     * - returns: `UIRectEdge` (can be empty if no edges are found)
     */
    public func extendedEdges<UI: UIView>(of view: UI) -> UIRectEdge where UI: ReactantUI {
        return extendedEdges[view.__rui.xmlPath] ?? []
    }

    /// Provided the root directory is set, it reloads the component definitions from all `ui.xml` files, including subfolders.
    public func reloadFiles() {
        guard let rootDir = configuration?.rootDir else { return }
        guard let enumerator = FileManager.default.enumerator(atPath: rootDir) else { return }
