diff --git a/lib/react_dom.dart b/lib/react_dom.dart index b2e85173e..8e4cd6b13 100644 --- a/lib/react_dom.dart +++ b/lib/react_dom.dart @@ -1,4 +1,4 @@ -// Copyright 2018 Workiva Inc. +// Copyright 2025 Workiva Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,36 +25,4 @@ /// import 'package:over_react/over_react.dart'; library over_react.react_dom; -import 'dart:html'; - -import 'package:over_react/over_react.dart'; -import 'package:react/react_dom.dart' as react_dom show render, unmountComponentAtNode; - -/// Renders the provided [element] into the DOM mounted in the provided [mountNode] -/// and returns a reference to it based on its type: -/// -/// 1. Returns an [Element] if [element] is a DOM component _(e.g. [Dom.div])_. -/// 2. Returns a React `Component` if [element] is a composite component. -/// -/// > __Throws__ if [element] or [mountNode] are `null`. -/// -/// If the [element] was previously rendered into the [mountNode], this will perform an update on it and only -/// mutate the DOM as necessary to reflect the latest React component. -/// -/// Use [unmountComponentAtNode] to unmount the instance. -/// -/// > Proxies [react_dom.render]. -dynamic render(ReactNode element, Element mountNode) { - return react_dom.render(element, mountNode); -} - -/// Removes a React `Component` from the DOM that was mounted via [render] -/// and cleans up its event handlers and state. -/// -/// * Returns `false` if a `Component` was not mounted in the [mountNode]. -/// * Returns `true` if a `Component` was mounted in the [mountNode]. -/// -/// > Proxies [react_dom.unmountComponentAtNode]. -bool unmountComponentAtNode(Element mountNode) { - return react_dom.unmountComponentAtNode(mountNode) as bool; -} +export 'package:over_react/src/react_dom.dart' show render, unmountComponentAtNode; diff --git a/lib/src/component/_deprecated/abstract_transition.dart b/lib/src/component/_deprecated/abstract_transition.dart index 9eb32dc34..32a0b3c4e 100644 --- a/lib/src/component/_deprecated/abstract_transition.dart +++ b/lib/src/component/_deprecated/abstract_transition.dart @@ -19,8 +19,11 @@ import 'dart:async'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/component_base.dart' as component_base; +import 'package:over_react/src/component/_deprecated/abstract_transition.dart'; +import 'package:over_react/src/component/_deprecated/abstract_transition_props.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base.dart' as component_base; +import 'package:over_react/src/util/validation_util.dart'; export '../abstract_transition.dart' show TransitionPhase; diff --git a/lib/src/component/_deprecated/abstract_transition_props.dart b/lib/src/component/_deprecated/abstract_transition_props.dart index b3be837a5..103dc9a50 100644 --- a/lib/src/component/_deprecated/abstract_transition_props.dart +++ b/lib/src/component/_deprecated/abstract_transition_props.dart @@ -16,7 +16,8 @@ library over_react.deprecated.abstract_transition_props; import 'dart:collection'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component/callback_typedefs.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; part 'abstract_transition_props.over_react.g.dart'; diff --git a/lib/src/component/_deprecated/error_boundary.dart b/lib/src/component/_deprecated/error_boundary.dart index 0dd6a8caf..43adae795 100644 --- a/lib/src/component/_deprecated/error_boundary.dart +++ b/lib/src/component/_deprecated/error_boundary.dart @@ -13,9 +13,17 @@ // limitations under the License. import 'package:logging/logging.dart'; -import 'package:over_react/over_react.dart'; import 'package:over_react/src/component/_deprecated/error_boundary_mixins.dart'; import 'package:over_react/src/component/_deprecated/error_boundary_recoverable.dart'; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/error_boundary_api.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy; +import 'package:react/react_client/js_backed_map.dart'; +import 'package:react/react_client/react_interop.dart'; part 'error_boundary.over_react.g.dart'; diff --git a/lib/src/component/_deprecated/error_boundary_mixins.dart b/lib/src/component/_deprecated/error_boundary_mixins.dart index 966dd1777..9725ed1fc 100644 --- a/lib/src/component/_deprecated/error_boundary_mixins.dart +++ b/lib/src/component/_deprecated/error_boundary_mixins.dart @@ -17,7 +17,14 @@ import 'dart:async'; import 'package:logging/logging.dart'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/error_boundary_api.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/react_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:react/react_client.dart' show ReactNode; +import 'package:react/react_client/react_interop.dart' show ReactErrorInfo; part 'error_boundary_mixins.over_react.g.dart'; diff --git a/lib/src/component/_deprecated/error_boundary_recoverable.dart b/lib/src/component/_deprecated/error_boundary_recoverable.dart index c1a0ca07f..c7d152846 100644 --- a/lib/src/component/_deprecated/error_boundary_recoverable.dart +++ b/lib/src/component/_deprecated/error_boundary_recoverable.dart @@ -12,8 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; import 'package:over_react/src/component/_deprecated/error_boundary_mixins.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy; +import 'package:react/react_client/js_backed_map.dart'; part 'error_boundary_recoverable.over_react.g.dart'; diff --git a/lib/src/component/_deprecated/resize_sensor.dart b/lib/src/component/_deprecated/resize_sensor.dart index 996e316e3..0be47b2be 100644 --- a/lib/src/component/_deprecated/resize_sensor.dart +++ b/lib/src/component/_deprecated/resize_sensor.dart @@ -20,9 +20,20 @@ import 'dart:collection'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:over_react/src/util/string_util.dart'; +import 'package:react/react.dart' show ReactComponentFactoryProxy, SyntheticEvent; +import 'package:over_react/src/component/callback_typedefs.dart'; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/ref_util.dart'; import 'package:over_react/src/component/resize_sensor.dart' show ResizeSensorEvent, SafeAnimationFrameMixin; import 'package:over_react/src/component/resize_sensor_constants.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/validation_util.dart'; +import 'package:react/react_client/js_backed_map.dart'; export 'package:over_react/src/component/resize_sensor.dart' show ResizeSensorEvent; diff --git a/lib/src/component/abstract_transition.dart b/lib/src/component/abstract_transition.dart index f0ee00eae..a4b115f54 100644 --- a/lib/src/component/abstract_transition.dart +++ b/lib/src/component/abstract_transition.dart @@ -18,9 +18,11 @@ import 'dart:async'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart' hide TransitionPropsMixin; -import 'package:over_react/components.dart' show TransitionPropsMixin; -import 'package:over_react/component_base.dart' as component_base; +import 'package:over_react/src/component/abstract_transition_props.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base.dart' as component_base; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/validation_util.dart'; part 'abstract_transition.over_react.g.dart'; diff --git a/lib/src/component/abstract_transition_props.dart b/lib/src/component/abstract_transition_props.dart index 7ffa9c313..eb96f9298 100644 --- a/lib/src/component/abstract_transition_props.dart +++ b/lib/src/component/abstract_transition_props.dart @@ -14,8 +14,12 @@ library over_react.abstract_transition_props; -import 'package:over_react/over_react.dart' hide AbstractTransitionComponent, AbstractTransitionProps; -import 'package:over_react/components.dart' show AbstractTransitionComponent, AbstractTransitionProps; +import 'package:over_react/src/component/callback_typedefs.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component/abstract_transition.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client/js_backed_map.dart'; part 'abstract_transition_props.over_react.g.dart'; diff --git a/lib/src/component/aria_mixin.dart b/lib/src/component/aria_mixin.dart index 699ceff76..3063e4e5e 100644 --- a/lib/src/component/aria_mixin.dart +++ b/lib/src/component/aria_mixin.dart @@ -16,11 +16,10 @@ library over_react.aria_mixin; import 'dart:collection'; +import 'package:over_react/src/component_declaration/annotations.dart'; // Must import these consts because they are used in the transformed code. // ignore: unused_shown_name -import 'package:over_react/over_react.dart' - show PropDescriptor, PropsMeta; -import 'package:over_react/src/component_declaration/annotations.dart'; +import 'package:over_react/src/component_declaration/component_base.dart' show PropDescriptor, PropsMeta; part 'aria_mixin.over_react.g.dart'; diff --git a/lib/src/component/callback_typedefs.dart b/lib/src/component/callback_typedefs.dart index d0277d3d1..edb1dabe0 100644 --- a/lib/src/component/callback_typedefs.dart +++ b/lib/src/component/callback_typedefs.dart @@ -17,7 +17,7 @@ library over_react.callback_typedefs; import 'dart:html'; -import 'package:over_react/over_react.dart' show ResizeSensorEvent; +import 'package:over_react/src/component/_deprecated/resize_sensor.dart' show ResizeSensorEvent; import 'package:react/react.dart' as react; // Callbacks for React's DOM event system diff --git a/lib/src/component/dummy_component2.dart b/lib/src/component/dummy_component2.dart index 4542e4d0c..8c3ff9112 100644 --- a/lib/src/component/dummy_component2.dart +++ b/lib/src/component/dummy_component2.dart @@ -12,7 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy; +import 'package:react/react_client/js_backed_map.dart'; part 'dummy_component2.over_react.g.dart'; diff --git a/lib/src/component/error_boundary.dart b/lib/src/component/error_boundary.dart index 054033b76..9d56858d9 100644 --- a/lib/src/component/error_boundary.dart +++ b/lib/src/component/error_boundary.dart @@ -13,9 +13,17 @@ // limitations under the License. import 'package:logging/logging.dart'; -import 'package:over_react/over_react.dart' hide ErrorBoundary, ErrorBoundaryProps, ErrorBoundaryState; +import 'package:over_react/src/component/dom_components.dart'; import 'package:over_react/src/component/error_boundary_api.dart'; import 'package:over_react/src/component/error_boundary_recoverable.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy, ReactNode; +import 'package:react/react_client/js_backed_map.dart'; +import 'package:react/react_client/react_interop.dart' show ReactErrorInfo; part 'error_boundary.over_react.g.dart'; diff --git a/lib/src/component/error_boundary_api.dart b/lib/src/component/error_boundary_api.dart index 92e7089a2..4aee8e6b2 100644 --- a/lib/src/component/error_boundary_api.dart +++ b/lib/src/component/error_boundary_api.dart @@ -13,8 +13,8 @@ // limitations under the License. import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/components.dart' as v2; +import 'package:over_react/src/component/error_boundary.dart' as v2; +import 'package:over_react/src/component_declaration/component_base_2.dart'; @visibleForTesting const String defaultErrorBoundaryLoggerName = 'over_react.ErrorBoundary'; diff --git a/lib/src/component/error_boundary_recoverable.dart b/lib/src/component/error_boundary_recoverable.dart index b354b9a5b..91748a3ae 100644 --- a/lib/src/component/error_boundary_recoverable.dart +++ b/lib/src/component/error_boundary_recoverable.dart @@ -16,9 +16,18 @@ import 'dart:async'; import 'package:logging/logging.dart'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component/dom_components.dart'; import 'package:over_react/src/component/error_boundary.dart' as v2; import 'package:over_react/src/component/error_boundary_api.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy, ReactNode; +import 'package:react/react_client/js_backed_map.dart'; +import 'package:react/react_client/react_interop.dart'; part 'error_boundary_recoverable.over_react.g.dart'; diff --git a/lib/src/component/hooks.dart b/lib/src/component/hooks.dart index 904d4a35a..8041defea 100644 --- a/lib/src/component/hooks.dart +++ b/lib/src/component/hooks.dart @@ -12,8 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/util/context.dart'; +import 'package:react/hooks.dart' show StateHook, ReducerHook; import 'package:react/hooks.dart' as react_hooks; +import 'package:react/react_client/react_interop.dart' show Ref; /// Adds local state to a [uiFunction] component /// by returning a [StateHook] with [StateHook.value] initialized to [initialValue]. diff --git a/lib/src/component/prop_mixins.dart b/lib/src/component/prop_mixins.dart index a2ff6f191..2eb2d45ab 100644 --- a/lib/src/component/prop_mixins.dart +++ b/lib/src/component/prop_mixins.dart @@ -17,10 +17,11 @@ /// Various prop related mixins to be used with `UiComponent` descendants. library over_react.prop_mixins; -import 'package:over_react/over_react.dart' show AriaPropsMapView, AriaPropsMixin, DomProps, PropsMeta; +import 'package:over_react/src/component/aria_mixin.dart' show AriaPropsMapView, AriaPropsMixin; +import 'package:over_react/src/component/dom_components.dart' show DomProps; // Must import these consts because they are used in the transformed code. // ignore: deprecated_member_use, unused_shown_name -import 'package:over_react/over_react.dart' show PropDescriptor, ConsumedProps, PropsMeta; +import 'package:over_react/src/component_declaration/component_base.dart' show PropDescriptor, ConsumedProps, PropsMeta; import 'package:over_react/src/component/callback_typedefs.dart'; import 'package:over_react/src/component_declaration/annotations.dart'; import 'package:react/react_client/js_backed_map.dart'; diff --git a/lib/src/component/prop_typedefs.dart b/lib/src/component/prop_typedefs.dart index 51ec801f2..961455de0 100644 --- a/lib/src/component/prop_typedefs.dart +++ b/lib/src/component/prop_typedefs.dart @@ -15,8 +15,9 @@ // ignore_for_file: prefer_generic_function_type_aliases library over_react.prop_typedefs; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; import 'package:over_react/src/component_declaration/component_base.dart' as component_base; +import 'package:react/react_client.dart' show ReactElement; /// A custom rendering prop typedef that allows a custom rendering function to be provided /// with the current [props] and [state] of the [component]. diff --git a/lib/src/component/pure_component_mixin.dart b/lib/src/component/pure_component_mixin.dart index c07db2cb6..0ba55db9e 100644 --- a/lib/src/component/pure_component_mixin.dart +++ b/lib/src/component/pure_component_mixin.dart @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/equality.dart'; /// A mixin to make a `Component2` instance behave /// like a [ReactJS `PureComponent`](https://reactjs.org/docs/react-api.html#reactpurecomponent). diff --git a/lib/src/component/ref_util.dart b/lib/src/component/ref_util.dart index 2cf4ac827..7b85bb5da 100644 --- a/lib/src/component/ref_util.dart +++ b/lib/src/component/ref_util.dart @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. +import 'package:over_react/src/component_declaration/component_base.dart'; import 'package:over_react/src/component_declaration/component_type_checking.dart'; import 'package:over_react/src/component_declaration/function_component.dart'; import 'package:over_react/src/component_declaration/builder_helpers.dart' as bh; import 'package:react/react_client/js_backed_map.dart'; import 'package:react/react_client/react_interop.dart' as react_interop; import 'package:react/react_client.dart'; -import 'package:over_react/component_base.dart'; /// Creates a [Ref] object that can be attached to a [ReactElement] via the ref prop. /// diff --git a/lib/src/component/resize_sensor.dart b/lib/src/component/resize_sensor.dart index adf4f0b79..afeb237d3 100644 --- a/lib/src/component/resize_sensor.dart +++ b/lib/src/component/resize_sensor.dart @@ -19,8 +19,20 @@ library over_react.resize_sensor; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart' hide ResizeSensor, ResizeSensorComponent, ResizeSensorProps; +import 'package:over_react/src/component/callback_typedefs.dart'; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/ref_util.dart'; import 'package:over_react/src/component/resize_sensor_constants.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:over_react/src/util/string_util.dart'; +import 'package:over_react/src/util/validation_util.dart'; +import 'package:react/react.dart' show ReactComponentFactoryProxy, SyntheticEvent; +import 'package:react/react_client/js_backed_map.dart'; part 'resize_sensor.over_react.g.dart'; diff --git a/lib/src/component/strictmode_component.dart b/lib/src/component/strictmode_component.dart index 9cd570366..399af4d78 100644 --- a/lib/src/component/strictmode_component.dart +++ b/lib/src/component/strictmode_component.dart @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/js_component.dart'; import 'package:over_react/src/component_declaration/function_component.dart'; +import 'package:over_react/src/util/js_component.dart'; import 'package:react/react.dart' as react; import 'package:react/react_client/js_backed_map.dart'; diff --git a/lib/src/component/suspense_component.dart b/lib/src/component/suspense_component.dart index 04b8eed42..a0ca09a3e 100644 --- a/lib/src/component/suspense_component.dart +++ b/lib/src/component/suspense_component.dart @@ -16,9 +16,13 @@ library over_react.component.suspense_component; import 'package:js/js.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/function_component.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; import 'package:react/react.dart' as react; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; import 'package:over_react/src/util/js_component.dart'; +import 'package:react/react_client.dart' show ReactNode; +import 'package:react/react_client/js_backed_map.dart'; part 'suspense_component.over_react.g.dart'; diff --git a/lib/src/component/test_fixtures/redraw_counter_component_mixin.dart b/lib/src/component/test_fixtures/redraw_counter_component_mixin.dart index d5061ba10..6ed334ee0 100644 --- a/lib/src/component/test_fixtures/redraw_counter_component_mixin.dart +++ b/lib/src/component/test_fixtures/redraw_counter_component_mixin.dart @@ -1,7 +1,8 @@ import 'dart:async'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; mixin RedrawCounterMixin on UiComponent2 { int _desiredRedrawCount = 1; diff --git a/lib/src/component/with_transition.dart b/lib/src/component/with_transition.dart index 2207cc67b..b83c22a21 100644 --- a/lib/src/component/with_transition.dart +++ b/lib/src/component/with_transition.dart @@ -18,8 +18,22 @@ import 'dart:async'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/components.dart' as v2; +import 'package:over_react/src/component/_deprecated/abstract_transition.dart'; +import 'package:over_react/src/component/abstract_transition.dart' as v2; +import 'package:over_react/src/component/abstract_transition_props.dart' as v2; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/ref_util.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/class_names.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_errors.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:over_react/src/util/validation_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy, ReactElement, chainRefs; +import 'package:react/react_client/js_backed_map.dart'; part 'with_transition.over_react.g.dart'; diff --git a/lib/src/component_declaration/flux_component.dart b/lib/src/component_declaration/flux_component.dart index 08ed5c608..2002c8d7d 100644 --- a/lib/src/component_declaration/flux_component.dart +++ b/lib/src/component_declaration/flux_component.dart @@ -20,7 +20,7 @@ import 'dart:async'; import 'package:logging/logging.dart'; import 'package:meta/meta.dart'; -import 'package:over_react/component_base.dart' as component_base; +import 'package:over_react/src/component_declaration/component_base.dart' as component_base; import 'package:over_react/src/util/component_debug_name.dart'; import 'package:w_flux/w_flux.dart'; diff --git a/lib/src/component_declaration/function_component.dart b/lib/src/component_declaration/function_component.dart index cae5d4bb3..e65988b8a 100644 --- a/lib/src/component_declaration/function_component.dart +++ b/lib/src/component_declaration/function_component.dart @@ -17,8 +17,11 @@ library over_react.component_declaration.function_component; import 'package:js/js_util.dart'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; import 'package:react/react.dart' as react; +import 'package:react/react_client.dart'; +import 'package:react/react_client/js_backed_map.dart'; import 'component_type_checking.dart'; diff --git a/lib/src/over_react_redux/over_react_flux.dart b/lib/src/over_react_redux/over_react_flux.dart index cd9d87f0c..c72149845 100644 --- a/lib/src/over_react_redux/over_react_flux.dart +++ b/lib/src/over_react_redux/over_react_flux.dart @@ -16,8 +16,10 @@ import 'dart:async'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/over_react_redux.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/over_react_redux/over_react_redux.dart'; +import 'package:over_react/src/util/context.dart'; +import 'package:over_react/src/util/equality.dart'; import 'package:redux/redux.dart' as redux; import 'package:w_flux/w_flux.dart' as flux; diff --git a/lib/src/over_react_redux/redux_multi_provider.dart b/lib/src/over_react_redux/redux_multi_provider.dart index cdd4f3a7a..5f4ceef24 100644 --- a/lib/src/over_react_redux/redux_multi_provider.dart +++ b/lib/src/over_react_redux/redux_multi_provider.dart @@ -12,8 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; -import 'package:over_react/over_react_flux.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/over_react_redux/over_react_redux.dart'; +import 'package:over_react/src/util/context.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_errors.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy, ReactNode; +import 'package:react/react_client/js_backed_map.dart'; import 'package:redux/redux.dart'; part 'redux_multi_provider.over_react.g.dart'; diff --git a/lib/src/react_dom.dart b/lib/src/react_dom.dart new file mode 100644 index 000000000..77721c7cb --- /dev/null +++ b/lib/src/react_dom.dart @@ -0,0 +1,47 @@ +// Copyright 2025 Workiva Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +import 'dart:html'; + +import 'package:over_react/src/component/dom_components.dart'; +import 'package:react/react_client.dart' show ReactNode; +import 'package:react/react_dom.dart' as react_dom show render, unmountComponentAtNode; + +/// Renders the provided [element] into the DOM mounted in the provided [mountNode] +/// and returns a reference to it based on its type: +/// +/// 1. Returns an [Element] if [element] is a DOM component _(e.g. [Dom.div])_. +/// 2. Returns a React `Component` if [element] is a composite component. +/// +/// > __Throws__ if [element] or [mountNode] are `null`. +/// +/// If the [element] was previously rendered into the [mountNode], this will perform an update on it and only +/// mutate the DOM as necessary to reflect the latest React component. +/// +/// Use [unmountComponentAtNode] to unmount the instance. +/// +/// > Proxies [react_dom.render]. +dynamic render(ReactNode element, Element mountNode) { + return react_dom.render(element, mountNode); +} + +/// Removes a React `Component` from the DOM that was mounted via [render] +/// and cleans up its event handlers and state. +/// +/// * Returns `false` if a `Component` was not mounted in the [mountNode]. +/// * Returns `true` if a `Component` was mounted in the [mountNode]. +/// +/// > Proxies [react_dom.unmountComponentAtNode]. +bool unmountComponentAtNode(Element mountNode) { + return react_dom.unmountComponentAtNode(mountNode) as bool; +} diff --git a/lib/src/util/class_names.dart b/lib/src/util/class_names.dart index 622a81b4b..5da45cf0c 100644 --- a/lib/src/util/class_names.dart +++ b/lib/src/util/class_names.dart @@ -18,7 +18,7 @@ library over_react.class_names; // ignore_for_file: deprecated_member_use_from_same_package import 'dart:collection'; -import 'package:over_react/over_react.dart' show +import 'package:over_react/src/component_declaration/builder_helpers.dart' show // Must import these consts because they are used in the transformed code. // ignore: unused_shown_name PropDescriptor, ConsumedProps, diff --git a/lib/src/util/component_debug_name.dart b/lib/src/util/component_debug_name.dart index addd205ec..c735ef0ec 100644 --- a/lib/src/util/component_debug_name.dart +++ b/lib/src/util/component_debug_name.dart @@ -4,7 +4,7 @@ library over_react.src.component_debug_name; import 'package:js/js.dart'; import 'package:js/js_util.dart'; -import 'package:over_react/component_base.dart'; +import 'package:over_react/src/component_declaration/component_base.dart'; /// __For use in debugging contexts only; not suitable for other use.__ /// If there's another use-case for getting a component name from its mounted diff --git a/lib/src/util/handler_chain_util.dart b/lib/src/util/handler_chain_util.dart index c9bc582c9..93f00d495 100644 --- a/lib/src/util/handler_chain_util.dart +++ b/lib/src/util/handler_chain_util.dart @@ -14,7 +14,7 @@ library over_react.handler_chain_util; -import 'package:over_react/over_react.dart' show ResizeSensorEvent; +import 'package:over_react/src/component/_deprecated/resize_sensor.dart' show ResizeSensorEvent; import 'package:react/react.dart' show SyntheticEvent, SyntheticAnimationEvent, diff --git a/lib/src/util/js_component.dart b/lib/src/util/js_component.dart index 47f8186f4..8db2beb22 100644 --- a/lib/src/util/js_component.dart +++ b/lib/src/util/js_component.dart @@ -1,5 +1,7 @@ -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/function_component.dart'; import 'package:react/react_client/component_factory.dart'; +import 'package:react/react_client/js_backed_map.dart'; /// Creates a Dart component factory that wraps a ReactJS [factoryProxy]. /// diff --git a/lib/src/util/key_constants.dart b/lib/src/util/key_constants.dart index 586b23aec..c3df51447 100644 --- a/lib/src/util/key_constants.dart +++ b/lib/src/util/key_constants.dart @@ -14,7 +14,7 @@ library over_react.key_constants; -import 'package:over_react/over_react.dart'; +import 'package:react/react.dart' show SyntheticKeyboardEvent; /// Key values that are returned from [SyntheticKeyboardEvent.key]. /// diff --git a/lib/src/util/lazy.dart b/lib/src/util/lazy.dart index 46b522c62..a7f378fad 100644 --- a/lib/src/util/lazy.dart +++ b/lib/src/util/lazy.dart @@ -14,8 +14,9 @@ library over_react.lazy; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; import 'package:react/react.dart' as react; +import 'package:react/react_client/js_backed_map.dart'; import '../component_declaration/function_component.dart'; diff --git a/lib/src/util/memo.dart b/lib/src/util/memo.dart index 5846943fa..ac9cfd1d7 100644 --- a/lib/src/util/memo.dart +++ b/lib/src/util/memo.dart @@ -18,7 +18,7 @@ import 'package:over_react/src/component_declaration/component_type_checking.dar import 'package:over_react/src/util/equality.dart'; import 'package:react/react_client/react_interop.dart' as react_interop; import 'package:react/react_client.dart'; -import 'package:over_react/component_base.dart'; +import 'package:over_react/src/component_declaration/component_base.dart'; /// A [higher order component](https://reactjs.org/docs/higher-order-components.html) for function components /// that behaves similar to the way [`React.PureComponent`](https://reactjs.org/docs/react-api.html#reactpurecomponent) diff --git a/lib/src/util/prop_conversion.dart b/lib/src/util/prop_conversion.dart index effe74e17..ac2c95d63 100644 --- a/lib/src/util/prop_conversion.dart +++ b/lib/src/util/prop_conversion.dart @@ -3,11 +3,11 @@ import 'package:js/js.dart'; import 'package:js/js_util.dart'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart' show Context, Ref; +import 'package:over_react/src/util/context.dart'; import 'package:over_react/src/util/weak_map.dart'; import 'package:react/react_client/js_backed_map.dart'; import 'package:react/react_client/component_factory.dart'; -import 'package:react/react_client/react_interop.dart' show JsRef, ReactContext; +import 'package:react/react_client/react_interop.dart' show JsRef, ReactContext, Ref; // Export JsMap since props that utilize jsifyMapProp/unjsifyMapProp // via custom getters/setters will need JsMap to avoid implicit cast errors. diff --git a/lib/src/util/prop_errors.dart b/lib/src/util/prop_errors.dart index 906cc442c..43f086991 100644 --- a/lib/src/util/prop_errors.dart +++ b/lib/src/util/prop_errors.dart @@ -14,7 +14,7 @@ library over_react.prop_errors; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; /// Errors thrown due to a value within [UiComponent2.props] being set incorrectly. class PropError extends Error { diff --git a/lib/src/util/react_util.dart b/lib/src/util/react_util.dart index de85cf0ef..f5c31282b 100644 --- a/lib/src/util/react_util.dart +++ b/lib/src/util/react_util.dart @@ -13,8 +13,14 @@ // limitations under the License. import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; import 'package:over_react/src/component_declaration/util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:react/react_client.dart' + show + ReactElement, + ReactComponentFactoryProxy, + ReactNode; const _getPropKey = getPropKey; diff --git a/lib/src/util/react_wrappers.dart b/lib/src/util/react_wrappers.dart index 65906641b..de236051c 100644 --- a/lib/src/util/react_wrappers.dart +++ b/lib/src/util/react_wrappers.dart @@ -20,10 +20,11 @@ import 'dart:html'; import 'dart:js_util'; import 'package:js/js.dart'; -import 'package:over_react/over_react.dart'; import 'package:over_react/src/component_declaration/component_type_checking.dart'; +import 'package:over_react/src/util/string_util.dart'; import 'package:react/react.dart' as react; import 'package:react/react_client.dart'; +import 'package:react/react_client/js_backed_map.dart'; import 'package:react/react_client/js_interop_helpers.dart' show jsifyAndAllowInterop; import 'package:react/react_client/react_interop.dart' hide createRef; import 'package:react/react_dom.dart' as react_dom; diff --git a/lib/src/util/rem_util.dart b/lib/src/util/rem_util.dart index 17efc70b3..4c98ac045 100644 --- a/lib/src/util/rem_util.dart +++ b/lib/src/util/rem_util.dart @@ -20,10 +20,11 @@ import 'dart:async'; import 'dart:html'; import 'package:meta/meta.dart'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/components.dart' as v2; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component/resize_sensor.dart' as v2; import 'package:over_react/src/component_declaration/component_base.dart' as component_base; -import 'package:over_react/react_dom.dart' as react_dom; +import 'package:over_react/src/react_dom.dart' as react_dom; +import 'package:over_react/src/util/css_value_util.dart'; import 'package:platform_detect/platform_detect.dart'; // The computed font size of the HTML node isn't reliable in Chrome when the page is refreshed while zoomed. diff --git a/lib/src/util/safe_render_manager/safe_render_manager.dart b/lib/src/util/safe_render_manager/safe_render_manager.dart index 0f5f615a8..3680fc8de 100644 --- a/lib/src/util/safe_render_manager/safe_render_manager.dart +++ b/lib/src/util/safe_render_manager/safe_render_manager.dart @@ -15,8 +15,11 @@ import 'dart:async'; import 'dart:html'; -import 'package:over_react/over_react.dart'; -import 'package:over_react/react_dom.dart' as react_dom; +import 'package:over_react/src/component/ref_util.dart'; +import 'package:over_react/src/react_dom.dart' as react_dom; +import 'package:react/react_client.dart' + show + ReactElement; import 'package:w_common/disposable.dart'; import './safe_render_manager_helper.dart'; diff --git a/lib/src/util/safe_render_manager/safe_render_manager_helper.dart b/lib/src/util/safe_render_manager/safe_render_manager_helper.dart index 4eaf28123..55cbbd0c3 100644 --- a/lib/src/util/safe_render_manager/safe_render_manager_helper.dart +++ b/lib/src/util/safe_render_manager/safe_render_manager_helper.dart @@ -12,7 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/component/dom_components.dart'; +import 'package:over_react/src/component_declaration/builder_helpers.dart'; +import 'package:over_react/src/component_declaration/component_base_2.dart'; +import 'package:over_react/src/util/cast_ui_factory.dart'; +import 'package:over_react/src/util/map_util.dart'; +import 'package:over_react/src/util/prop_key_util.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; +import 'package:react/react_client.dart' show ReactComponentFactoryProxy, ReactElement, chainRefs; +import 'package:react/react_client/js_backed_map.dart'; part 'safe_render_manager_helper.over_react.g.dart'; diff --git a/lib/src/util/validation_util.dart b/lib/src/util/validation_util.dart index f1f4109c5..fb6c449e9 100644 --- a/lib/src/util/validation_util.dart +++ b/lib/src/util/validation_util.dart @@ -17,7 +17,8 @@ library over_react.validation_util; import 'dart:html'; -import 'package:over_react/over_react.dart'; +import 'package:over_react/src/util/pretty_print.dart'; +import 'package:over_react/src/util/react_wrappers.dart'; import 'package:react/react.dart' as react; // ignore: prefer_generic_function_type_aliases