From c7d392699f133be4ca5e0f7cb3a5975fab431fa5 Mon Sep 17 00:00:00 2001 From: "GLOBUS.studio" Date: Tue, 14 Jul 2026 18:25:24 +0300 Subject: [PATCH] =?UTF-8?q?feat(flutter):=20JS=20runtime=20=E2=80=94=20cus?= =?UTF-8?q?tom=20element,=20dispatcher,=20service=20worker=20(P4-01..P4-06?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P4-01/02/04/06: Custom Element (Declarative Shadow DOM + viewConstraints ResizeObserver, W-8), Dispatcher (Qwikloader-style, all directives, data-hydration states, W-9), Service Worker (cache WASM/JS, W-11). P4-05: vanilla islands reused from core as web/-asset. JS files also available as Dart constants for testing. 35 tests, boundaries OK. --- .../lib/hydraline_flutter.dart | 3 + .../lib/src/assets/js_custom_element.dart | 33 +++++++++++ .../lib/src/assets/js_dispatcher.dart | 55 ++++++++++++++++++ .../lib/src/assets/js_service_worker.dart | 19 +++++++ packages/hydraline_flutter/pubspec.yaml | 1 + .../test/js_runtime_test.dart | 56 +++++++++++++++++++ packages/hydraline_flutter/web/.gitkeep | 0 .../web/hydraline-dispatcher.js | 46 +++++++++++++++ .../hydraline_flutter/web/hydraline-island.js | 24 ++++++++ .../hydraline_flutter/web/service-worker.js | 11 ++++ 10 files changed, 248 insertions(+) create mode 100644 packages/hydraline_flutter/lib/src/assets/js_custom_element.dart create mode 100644 packages/hydraline_flutter/lib/src/assets/js_dispatcher.dart create mode 100644 packages/hydraline_flutter/lib/src/assets/js_service_worker.dart create mode 100644 packages/hydraline_flutter/test/js_runtime_test.dart delete mode 100644 packages/hydraline_flutter/web/.gitkeep create mode 100644 packages/hydraline_flutter/web/hydraline-dispatcher.js create mode 100644 packages/hydraline_flutter/web/hydraline-island.js create mode 100644 packages/hydraline_flutter/web/service-worker.js diff --git a/packages/hydraline_flutter/lib/hydraline_flutter.dart b/packages/hydraline_flutter/lib/hydraline_flutter.dart index 424f8dd..57fed21 100644 --- a/packages/hydraline_flutter/lib/hydraline_flutter.dart +++ b/packages/hydraline_flutter/lib/hydraline_flutter.dart @@ -2,6 +2,9 @@ /// and the level-2 web runtime assets. library; +export 'src/assets/js_custom_element.dart' show jsCustomElement; +export 'src/assets/js_dispatcher.dart' show jsDispatcher; +export 'src/assets/js_service_worker.dart' show jsServiceWorker; export 'src/hydra_app.dart' show HydraApp, HydraScope; export 'src/island.dart' show Island; export 'src/island_host.dart' show IslandFactory, IslandHost; diff --git a/packages/hydraline_flutter/lib/src/assets/js_custom_element.dart b/packages/hydraline_flutter/lib/src/assets/js_custom_element.dart new file mode 100644 index 0000000..f77be7c --- /dev/null +++ b/packages/hydraline_flutter/lib/src/assets/js_custom_element.dart @@ -0,0 +1,33 @@ +/// Custom Element `` (W-8/CE1-CE5). +/// +/// Uses Declarative Shadow DOM — the existing Shadow Root from server-rendered +/// `