diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e815295..891f360 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,7 +6,7 @@ # Order matters — last match wins (gitignore rules). # Default: maintainers team owns everything -* @whuppi/adaptive_layouts-maintainers +* @whuppi/morph_kit-maintainers # Release files: repo owner only (contributors don't write changelogs or versions) /CHANGELOG.md @chaudharydeepanshu diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 03eeba7..75c466f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -45,7 +45,7 @@ body: - type: input id: version attributes: - label: adaptive_layouts version + label: morph_kit version placeholder: e.g. 0.1.0 validations: required: true diff --git a/.github/workflows/auto-close.yml b/.github/workflows/auto-close.yml index 06d899a..bc6aeb9 100644 --- a/.github/workflows/auto-close.yml +++ b/.github/workflows/auto-close.yml @@ -28,4 +28,4 @@ jobs: with: # Team slug, not a hardcoded person — membership is managed in the org # (the same team CODEOWNERS uses), so a maintainer change never edits this. - maintainers-mention: '@whuppi/adaptive_layouts-maintainers' + maintainers-mention: '@whuppi/morph_kit-maintainers' diff --git a/AGENTS.md b/AGENTS.md index a8eed07..5892065 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,15 +10,15 @@ from: To change content: - Workspace-wide: edit AGENTS.template.md, then re-run the stamper. - - One repo only: edit the `repo_data` case for "adaptive_layouts" in stamp-agents.sh, + - One repo only: edit the `repo_data` case for "morph_kit" in stamp-agents.sh, then re-run the stamper. Manual edits to this file will be overwritten on the next stamp. ============================================================================ --> -# adaptive_layouts +# morph_kit -> **Public AI agent contract** for adaptive_layouts — read by Cursor, OpenAI Codex, Aider, Devin, JetBrains Junie, and any AI tool that follows the [agents.md](https://agents.md) convention. +> **Public AI agent contract** for morph_kit — read by Cursor, OpenAI Codex, Aider, Devin, JetBrains Junie, and any AI tool that follows the [agents.md](https://agents.md) convention. > > Claude Code reads the deeper workspace config at `whuppi/.claude/rules/` and `whuppi/.claude/memory/` automatically — this AGENTS.md exists for every *other* AI tool. > @@ -28,7 +28,7 @@ Manual edits to this file will be overwritten on the next stamp. ## What this tool does -**adaptive_layouts** is adaptive layout widgets for Flutter — `ListDetailLayout` (list + selected detail: slide-over with swipe-to-dismiss on phones, covering nav bars via an always-mounted OverlayPortal; side-by-side with a draggable, anchor-snapping divider on wide windows) and `AdaptiveSplit` (two always-present panes). Pane widget instances survive the compact ↔ expanded morph (GlobalKey reparenting), and a paint-visibility probe suppresses the overlay detail of inactive kept-alive tabs. Router-agnostic and state-management-agnostic — a ChangeNotifier controller is the whole integration surface. +**morph_kit** is adaptive layout widgets for Flutter — `ListDetailLayout` (list + selected detail: slide-over with swipe-to-dismiss on phones, covering nav bars via an always-mounted OverlayPortal; side-by-side with a draggable, anchor-snapping divider on wide windows) and `AdaptiveSplit` (two always-present panes). Pane widget instances survive the compact ↔ expanded morph (GlobalKey reparenting), and a paint-visibility probe suppresses the overlay detail of inactive kept-alive tabs. Router-agnostic and state-management-agnostic — a ChangeNotifier controller is the whole integration surface. This repo is one tool inside the **whuppi** workspace — a multi-tool monorepo. The workspace ships shared engineering standards, code conventions, brand identity, and build patterns that apply across every tool. They're documented in three layers: diff --git a/CHANGELOG.md b/CHANGELOG.md index 146891d..e2aaf2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,8 +49,8 @@ CONTENT RULES (never change) • NEVER link a living doc (README, docs/*) from an entry — it rots when the doc moves on. • Links point only at IMMUTABLE targets — a PR, commit, or issue: - ([#N](https://github.com/whuppi/adaptive_layouts/issues/N) reported by - [@user](https://github.com/user), [PR #N](https://github.com/whuppi/adaptive_layouts/pull/N)). + ([#N](https://github.com/whuppi/morph_kit/issues/N) reported by + [@user](https://github.com/user), [PR #N](https://github.com/whuppi/morph_kit/pull/N)). Credit the issue + reporter when a reported issue drove the fix; the PR (or commit) link alone otherwise. • No capability inventories — "what's shipped" lives in README + diff --git a/CHANGELOG.pre.md b/CHANGELOG.pre.md index 32f9f38..219b011 100644 --- a/CHANGELOG.pre.md +++ b/CHANGELOG.pre.md @@ -49,8 +49,8 @@ CONTENT RULES (never change) • NEVER link a living doc (README, docs/*) from an entry — it rots when the doc moves on. • Links point only at IMMUTABLE targets — a PR, commit, or issue: - ([#N](https://github.com/whuppi/adaptive_layouts/issues/N) reported by - [@user](https://github.com/user), [PR #N](https://github.com/whuppi/adaptive_layouts/pull/N)). + ([#N](https://github.com/whuppi/morph_kit/issues/N) reported by + [@user](https://github.com/user), [PR #N](https://github.com/whuppi/morph_kit/pull/N)). Credit the issue + reporter when a reported issue drove the fix; the PR (or commit) link alone otherwise. • No capability inventories — "what's shipped" lives in README + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b945d5..fc2d0d2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,8 +7,8 @@ Contributions are welcome. ## Setup ```bash -git clone https://github.com/whuppi/adaptive_layouts.git -cd adaptive_layouts +git clone https://github.com/whuppi/morph_kit.git +cd morph_kit make hooks # activates commit-msg + pre-commit (run once) fvm install # downloads the SDK version pinned in .fvmrc fvm flutter pub get diff --git a/Makefile b/Makefile index 64fc9b0..c9cde3d 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ # # Uses fvm by default. Contributors without fvm can override: # make check DART=dart FLUTTER=flutter -# adaptive_layouts is a Flutter package — the suite runs on flutter_test +# morph_kit is a Flutter package — the suite runs on flutter_test # (host VM, no device, no browser). example/ is its own Flutter app # package, resolved / analyzed from its OWN root (analyze_core gives it # a `flutter analyze` pass; the journeys drive its real UI). diff --git a/README.md b/README.md index f91724f..556b5ff 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -

adaptive_layouts

+

morph_kit

- pub package - likes - pub points - GitHub stars + pub package + likes + pub points + GitHub stars license: MIT

@@ -14,7 +14,7 @@ Layout widgets that morph between phone and desktop forms. On a phone, the detai > **Status:** 0.x. Pre-1.0 the minor version is the breaking axis — pin `^0.N.0` and read the changelog on minor bumps. -> like it? a [⭐ star](https://github.com/whuppi/adaptive_layouts) or [👍 like](https://pub.dev/packages/adaptive_layouts) is the entire marketing budget. [Bugs & features →](https://github.com/whuppi/adaptive_layouts/issues) +> like it? a [⭐ star](https://github.com/whuppi/morph_kit) or [👍 like](https://pub.dev/packages/morph_kit) is the entire marketing budget. [Bugs & features →](https://github.com/whuppi/morph_kit/issues) --- @@ -46,7 +46,7 @@ Layout widgets that morph between phone and desktop forms. On a phone, the detai ```yaml dependencies: - adaptive_layouts: + morph_kit: ``` Nothing else to do, on any platform. Pure Flutter: no native code, no assets, no setup. @@ -58,7 +58,7 @@ Nothing else to do, on any platform. Pure Flutter: no native code, no assets, no Two builders, and the layout handles the rest — breakpoint switching, slide animation, swipe-to-dismiss, back gestures, state preservation: ```dart -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; ListDetailLayout( listBuilder: (context, selectedId, onSelect) => ChatList( diff --git a/SECURITY.md b/SECURITY.md index a02262b..8e31e3c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,7 +2,7 @@ ## Reporting a vulnerability -Report privately via [GitHub Security Advisories](https://github.com/whuppi/adaptive_layouts/security/advisories/new). Do not open a public issue. +Report privately via [GitHub Security Advisories](https://github.com/whuppi/morph_kit/security/advisories/new). Do not open a public issue. ## What's in scope diff --git a/deploy/.deploy/secrets.sh b/deploy/.deploy/secrets.sh index 7873d78..c8c63e8 100755 --- a/deploy/.deploy/secrets.sh +++ b/deploy/.deploy/secrets.sh @@ -1,8 +1,8 @@ #!/bin/bash # ============================================================================ -# adaptive_layouts secrets manager +# morph_kit secrets manager # -# Manages secrets for whuppi/adaptive_layouts ONLY. +# Manages secrets for whuppi/morph_kit ONLY. # Bitwarden Secrets Manager is the source of truth. # GitHub Environments are CI-accessible copies. # @@ -16,9 +16,9 @@ # ============================================================================ set -e -REPO="whuppi/adaptive_layouts" +REPO="whuppi/morph_kit" BWS="${HOME}/bin/bws --color no" -BW_PREFIX="adaptive_layouts" +BW_PREFIX="morph_kit" export BWS_SERVER_URL="${BWS_SERVER_URL:-https://vault.bitwarden.eu}" # ── Auth ───────────────────────────────────────────────────────────────────── @@ -281,7 +281,7 @@ case "${1:-}" in upload) cmd_upload "$2" ;; rm) cmd_rm "$2" ;; *) - echo "adaptive_layouts secrets manager" + echo "morph_kit secrets manager" echo "" echo "Usage:" echo " ./secrets.sh set / Store in Bitwarden + GitHub" diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index cc1ee13..9738d5b 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1,6 +1,6 @@ -# adaptive_layouts — Architecture +# morph_kit — Architecture -> **Type:** architecture · **Scope:** adaptive_layouts · **Status:** SHIPPED · **Last verified:** 2026-07-19 +> **Type:** architecture · **Scope:** morph_kit · **Status:** SHIPPED · **Last verified:** 2026-07-19 > **Companion docs:** [`CAPABILITY_ROADMAP.md`](CAPABILITY_ROADMAP.md) · [`UPDATING.md`](UPDATING.md) Adaptive layout widgets that morph between compact (mobile) and expanded @@ -17,7 +17,7 @@ URL sync, and modals). ``` lib/ -├── adaptive_layouts.dart # public barrel +├── morph_kit.dart # public barrel └── src/ ├── components/ # GROWING LIBRARY — convenience widgets │ ├── dividers/ diff --git a/docs/CAPABILITY_ROADMAP.md b/docs/CAPABILITY_ROADMAP.md index 12173bd..e2e2a68 100644 --- a/docs/CAPABILITY_ROADMAP.md +++ b/docs/CAPABILITY_ROADMAP.md @@ -1,6 +1,6 @@ -# adaptive_layouts — Capability Roadmap +# morph_kit — Capability Roadmap -> **Type:** roadmap · **Scope:** adaptive_layouts · **Last verified:** 2026-07-19 +> **Type:** roadmap · **Scope:** morph_kit · **Last verified:** 2026-07-19 > **Companion docs:** [`ARCHITECTURE.md`](ARCHITECTURE.md) · [`UPDATING.md`](UPDATING.md) Every capability the package offers or plans, with status. Nothing ships diff --git a/docs/UPDATING.md b/docs/UPDATING.md index 5ec5173..31ac678 100644 --- a/docs/UPDATING.md +++ b/docs/UPDATING.md @@ -1,6 +1,6 @@ -# adaptive_layouts — Updating +# morph_kit — Updating -> **Type:** maintenance · **Scope:** adaptive_layouts · **Last verified:** 2026-07-19 +> **Type:** maintenance · **Scope:** morph_kit · **Last verified:** 2026-07-19 > **Companion docs:** [`ARCHITECTURE.md`](ARCHITECTURE.md) · [`CAPABILITY_ROADMAP.md`](CAPABILITY_ROADMAP.md) Maintenance recipes and the invariants that must not break. When code and @@ -359,7 +359,7 @@ change and say so in the changelog. Workspace consumers use `path:` dependencies, so breaks surface at their next analyze. After any signature change: run the check sequence here, then `fvm flutter analyze` in each consuming app (the workspace grep for -`adaptive_layouts` finds them). Update the example's usage in the same +`morph_kit` finds them). Update the example's usage in the same session — it is the reference consumers copy from. --- diff --git a/example/README.md b/example/README.md index 046e62a..dc56330 100644 --- a/example/README.md +++ b/example/README.md @@ -1,4 +1,4 @@ -# adaptive_layouts example +# morph_kit example A full app in one file (`lib/main.dart`) — not a toy. It is a small project-tracker app that runs the package inside the hardest topology it has diff --git a/example/android/app/build.gradle.kts b/example/android/app/build.gradle.kts index e65363d..bcd177e 100644 --- a/example/android/app/build.gradle.kts +++ b/example/android/app/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "com.whuppi.adaptive_layouts_example" + namespace = "com.whuppi.morph_kit_example" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -16,7 +16,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "com.whuppi.adaptive_layouts_example" + applicationId = "com.whuppi.morph_kit_example" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index f507e17..de502e0 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Adaptive Layouts Example + Morph Kit Example CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - adaptive_layouts_example + morph_kit_example CFBundlePackageType APPL CFBundleShortVersionString diff --git a/example/lib/main.dart b/example/lib/main.dart index 0b88760..a3fdb48 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,4 +1,4 @@ -// adaptive_layouts — full-app example +// morph_kit — full-app example // // One file, one real app topology. This is deliberately NOT a toy: it is a // small project-tracker app ("tickets / ops / admin") built on the hardest @@ -30,7 +30,7 @@ // resize across the breakpoint with widget-state preservation (type a comment // draft in a ticket, resize, the draft survives). -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide ModalRoute; @@ -59,7 +59,7 @@ class _ExampleAppState extends State { builder: (context, _) => AdaptiveLayoutConfig( expandedBreakpoint: PackageSettings.instance.expandedBreakpoint, child: MaterialApp.router( - title: 'adaptive_layouts example', + title: 'morph_kit example', debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.teal), diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj index e7d1da2..90ca047 100644 --- a/example/macos/Runner.xcodeproj/project.pbxproj +++ b/example/macos/Runner.xcodeproj/project.pbxproj @@ -65,7 +65,7 @@ 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* adaptive_layouts_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "adaptive_layouts_example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* morph_kit_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "morph_kit_example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -134,7 +134,7 @@ 33CC10EE2044A3C60003C045 /* Products */ = { isa = PBXGroup; children = ( - 33CC10ED2044A3C60003C045 /* adaptive_layouts_example.app */, + 33CC10ED2044A3C60003C045 /* morph_kit_example.app */, 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, ); name = Products; @@ -224,7 +224,7 @@ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, ); productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* adaptive_layouts_example.app */; + productReference = 33CC10ED2044A3C60003C045 /* morph_kit_example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -395,10 +395,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/adaptive_layouts_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/adaptive_layouts_example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; }; name = Debug; }; @@ -409,10 +409,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/adaptive_layouts_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/adaptive_layouts_example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; }; name = Release; }; @@ -423,10 +423,10 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/adaptive_layouts_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/adaptive_layouts_example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; }; name = Profile; }; diff --git a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 2ec141f..d369531 100644 --- a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -15,7 +15,7 @@ @@ -33,7 +33,7 @@ @@ -49,7 +49,7 @@ @@ -84,7 +84,7 @@ @@ -101,7 +101,7 @@ diff --git a/example/macos/Runner/Configs/AppInfo.xcconfig b/example/macos/Runner/Configs/AppInfo.xcconfig index c731c05..b2f4ffd 100644 --- a/example/macos/Runner/Configs/AppInfo.xcconfig +++ b/example/macos/Runner/Configs/AppInfo.xcconfig @@ -5,10 +5,10 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = adaptive_layouts_example +PRODUCT_NAME = morph_kit_example // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample +PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample // The copyright displayed in application information PRODUCT_COPYRIGHT = Copyright © 2026 com.whuppi. All rights reserved. diff --git a/example/pubspec.lock b/example/pubspec.lock index 6687112..db986a4 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -9,13 +9,6 @@ packages: url: "https://pub.dev" source: hosted version: "92.0.0" - adaptive_layouts: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.0" analyzer: dependency: transitive description: @@ -370,6 +363,13 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + morph_kit: + dependency: "direct main" + description: + path: ".." + relative: true + source: path + version: "0.0.0" package_config: dependency: transitive description: diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 60c348c..abbe2b5 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,6 +1,6 @@ -name: adaptive_layouts_example +name: morph_kit_example description: >- - Full-app demo of adaptive_layouts: three domains behind an adaptive shell + Full-app demo of morph_kit: three domains behind an adaptive shell (bottom nav / rail), nested tab routers, URL-synced list-detail panes in overlay mode, and adaptive modals. publish_to: none @@ -12,7 +12,7 @@ environment: dependencies: flutter: sdk: flutter - adaptive_layouts: + morph_kit: path: ../ auto_route: ^10.0.0 diff --git a/example/test/journeys/journeys_test.dart b/example/test/journeys/journeys_test.dart index ef4e8de..a2bc4aa 100644 --- a/example/test/journeys/journeys_test.dart +++ b/example/test/journeys/journeys_test.dart @@ -3,8 +3,8 @@ // overlay-mode details under nested tab routers, URL sync, resize-across- // breakpoint state preservation, and selectedIdExists auto-dismiss. -import 'package:adaptive_layouts/adaptive_layouts.dart'; -import 'package:adaptive_layouts_example/main.dart'; +import 'package:morph_kit/morph_kit.dart'; +import 'package:morph_kit_example/main.dart'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart' hide ModalRoute; import 'package:flutter_test/flutter_test.dart'; diff --git a/example/web/index.html b/example/web/index.html index eaa86db..b60a7a2 100644 --- a/example/web/index.html +++ b/example/web/index.html @@ -23,13 +23,13 @@ - + - adaptive_layouts_example + morph_kit_example diff --git a/example/web/manifest.json b/example/web/manifest.json index 002df10..781b07b 100644 --- a/example/web/manifest.json +++ b/example/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "adaptive_layouts_example", - "short_name": "adaptive_layouts_example", + "name": "morph_kit_example", + "short_name": "morph_kit_example", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/lib/adaptive_layouts.dart b/lib/morph_kit.dart similarity index 100% rename from lib/adaptive_layouts.dart rename to lib/morph_kit.dart diff --git a/lib/src/components/dividers/handle_divider.dart b/lib/src/components/dividers/handle_divider.dart index bee79f4..e437f58 100644 --- a/lib/src/components/dividers/handle_divider.dart +++ b/lib/src/components/dividers/handle_divider.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/shared/divider_builder.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/divider_builder.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; /// Pane divider with hover feedback, drag handle dots, settle indicator, /// at-limit tinting, and a pull-tab restore affordance when a pane is diff --git a/lib/src/components/dividers/material_divider.dart b/lib/src/components/dividers/material_divider.dart index 1570121..ac46625 100644 --- a/lib/src/components/dividers/material_divider.dart +++ b/lib/src/components/dividers/material_divider.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/shared/divider_builder.dart'; +import 'package:morph_kit/src/core/shared/divider_builder.dart'; /// Material-style pane divider with drag and settle visual feedback. /// diff --git a/lib/src/core/list_detail/list_detail_layout.dart b/lib/src/core/list_detail/list_detail_layout.dart index fe3c245..bb91a82 100644 --- a/lib/src/core/list_detail/list_detail_layout.dart +++ b/lib/src/core/list_detail/list_detail_layout.dart @@ -2,22 +2,22 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/list_detail/compact_config.dart'; -import 'package:adaptive_layouts/src/core/list_detail/compact_detail_overlay.dart'; -import 'package:adaptive_layouts/src/core/list_detail/detail_layout_mode.dart'; -import 'package:adaptive_layouts/src/core/list_detail/detail_page_route.dart'; -import 'package:adaptive_layouts/src/core/list_detail/expanded_empty_behavior.dart'; -import 'package:adaptive_layouts/src/core/list_detail/list_detail_controller.dart'; -import 'package:adaptive_layouts/src/core/list_detail/paint_visibility_detector.dart'; -import 'package:adaptive_layouts/src/core/shared/adaptive_layout_config.dart'; -import 'package:adaptive_layouts/src/core/shared/divider_builder.dart'; -import 'package:adaptive_layouts/src/core/shared/expanded_entry_style.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_config.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_divider_region.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_scope.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_memory.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_model.dart'; +import 'package:morph_kit/src/core/list_detail/compact_config.dart'; +import 'package:morph_kit/src/core/list_detail/compact_detail_overlay.dart'; +import 'package:morph_kit/src/core/list_detail/detail_layout_mode.dart'; +import 'package:morph_kit/src/core/list_detail/detail_page_route.dart'; +import 'package:morph_kit/src/core/list_detail/expanded_empty_behavior.dart'; +import 'package:morph_kit/src/core/list_detail/list_detail_controller.dart'; +import 'package:morph_kit/src/core/list_detail/paint_visibility_detector.dart'; +import 'package:morph_kit/src/core/shared/adaptive_layout_config.dart'; +import 'package:morph_kit/src/core/shared/divider_builder.dart'; +import 'package:morph_kit/src/core/shared/expanded_entry_style.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_config.dart'; +import 'package:morph_kit/src/core/shared/pane_divider_region.dart'; +import 'package:morph_kit/src/core/shared/pane_scope.dart'; +import 'package:morph_kit/src/core/shared/pane_width_memory.dart'; +import 'package:morph_kit/src/core/shared/pane_width_model.dart'; part 'list_detail_layout_builders.dart'; diff --git a/lib/src/core/modal/adaptive_modal.dart b/lib/src/core/modal/adaptive_modal.dart index 3a49f7f..a8d4ead 100644 --- a/lib/src/core/modal/adaptive_modal.dart +++ b/lib/src/core/modal/adaptive_modal.dart @@ -2,10 +2,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/modal/modal_config.dart'; -import 'package:adaptive_layouts/src/core/modal/modal_layout_mode.dart'; -import 'package:adaptive_layouts/src/core/modal/modal_morph.dart'; -import 'package:adaptive_layouts/src/core/shared/adaptive_layout_config.dart'; +import 'package:morph_kit/src/core/modal/modal_config.dart'; +import 'package:morph_kit/src/core/modal/modal_layout_mode.dart'; +import 'package:morph_kit/src/core/modal/modal_morph.dart'; +import 'package:morph_kit/src/core/shared/adaptive_layout_config.dart'; /// Signature for building the modal's content. /// diff --git a/lib/src/core/modal/modal_morph.dart b/lib/src/core/modal/modal_morph.dart index baafac3..1f9eb75 100644 --- a/lib/src/core/modal/modal_morph.dart +++ b/lib/src/core/modal/modal_morph.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/scheduler.dart'; -import 'package:adaptive_layouts/src/core/modal/modal_layout_mode.dart'; +import 'package:morph_kit/src/core/modal/modal_layout_mode.dart'; /// The surface visuals of one modal form, resolved from the app theme so /// the flight starts and ends looking like the real route chrome. diff --git a/lib/src/core/shared/adaptive_layout_config.dart b/lib/src/core/shared/adaptive_layout_config.dart index 9c440eb..97f1c58 100644 --- a/lib/src/core/shared/adaptive_layout_config.dart +++ b/lib/src/core/shared/adaptive_layout_config.dart @@ -1,6 +1,6 @@ import 'package:flutter/widgets.dart'; -/// Shared configuration for all adaptive_layouts widgets in the subtree. +/// Shared configuration for all morph_kit widgets in the subtree. /// /// Place this high in the widget tree (e.g., above `MaterialApp`) to set /// defaults that all `ListDetailLayout` and future widgets inherit. diff --git a/lib/src/core/shared/divider_builder.dart b/lib/src/core/shared/divider_builder.dart index 16b38b8..56ca106 100644 --- a/lib/src/core/shared/divider_builder.dart +++ b/lib/src/core/shared/divider_builder.dart @@ -1,6 +1,6 @@ import 'package:flutter/widgets.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; /// The divider's full interaction state, handed to a [DividerBuilder] /// every build. diff --git a/lib/src/core/shared/pane_config.dart b/lib/src/core/shared/pane_config.dart index 8db56e2..13d1b72 100644 --- a/lib/src/core/shared/pane_config.dart +++ b/lib/src/core/shared/pane_config.dart @@ -1,11 +1,11 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/shared/expanded_entry_style.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_anchor.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_resize_mode.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_memory.dart'; +import 'package:morph_kit/src/core/shared/expanded_entry_style.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_anchor.dart'; +import 'package:morph_kit/src/core/shared/pane_resize_mode.dart'; +import 'package:morph_kit/src/core/shared/pane_width_memory.dart'; /// Expanded-layout pane configuration for `ListDetailLayout`. /// diff --git a/lib/src/core/shared/pane_divider_region.dart b/lib/src/core/shared/pane_divider_region.dart index 3f2338c..ddc996e 100644 --- a/lib/src/core/shared/pane_divider_region.dart +++ b/lib/src/core/shared/pane_divider_region.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:adaptive_layouts/src/core/shared/divider_builder.dart'; +import 'package:morph_kit/src/core/shared/divider_builder.dart'; /// The divider's interactive hit region, shared by `ListDetailLayout` and /// `SplitLayout`: drag gestures, double-click reset, keyboard resizing, diff --git a/lib/src/core/shared/pane_scope.dart b/lib/src/core/shared/pane_scope.dart index dd5cd25..9b73e74 100644 --- a/lib/src/core/shared/pane_scope.dart +++ b/lib/src/core/shared/pane_scope.dart @@ -1,6 +1,6 @@ import 'package:flutter/widgets.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; /// Pane-system state and actions, readable by any descendant of a pane — /// list content, detail content, custom dividers. diff --git a/lib/src/core/shared/pane_width_model.dart b/lib/src/core/shared/pane_width_model.dart index 4b654c0..21cb454 100644 --- a/lib/src/core/shared/pane_width_model.dart +++ b/lib/src/core/shared/pane_width_model.dart @@ -1,6 +1,6 @@ -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_config.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_resize_mode.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_config.dart'; +import 'package:morph_kit/src/core/shared/pane_resize_mode.dart'; /// Pure width/drag/snap logic for a draggable pane divider. /// diff --git a/lib/src/core/split/split_layout.dart b/lib/src/core/split/split_layout.dart index 2e1f480..e2a5af1 100644 --- a/lib/src/core/split/split_layout.dart +++ b/lib/src/core/split/split_layout.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:adaptive_layouts/src/core/shared/adaptive_layout_config.dart'; -import 'package:adaptive_layouts/src/core/shared/divider_builder.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_collapse.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_config.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_divider_region.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_scope.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_memory.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_model.dart'; +import 'package:morph_kit/src/core/shared/adaptive_layout_config.dart'; +import 'package:morph_kit/src/core/shared/divider_builder.dart'; +import 'package:morph_kit/src/core/shared/pane_collapse.dart'; +import 'package:morph_kit/src/core/shared/pane_config.dart'; +import 'package:morph_kit/src/core/shared/pane_divider_region.dart'; +import 'package:morph_kit/src/core/shared/pane_scope.dart'; +import 'package:morph_kit/src/core/shared/pane_width_memory.dart'; +import 'package:morph_kit/src/core/shared/pane_width_model.dart'; // ============================================================================= // BUILDER TYPEDEFS diff --git a/pubspec.yaml b/pubspec.yaml index 75a92b8..5d3bdcc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,12 +1,12 @@ -name: adaptive_layouts +name: morph_kit version: 0.0.0 description: >- - Adaptive layout widgets that morph between phone and desktop forms — - list-detail, split panes, dialog-to-bottom-sheet modals, and pane - state that survives window resizes. -homepage: https://github.com/whuppi/adaptive_layouts -repository: https://github.com/whuppi/adaptive_layouts -issue_tracker: https://github.com/whuppi/adaptive_layouts/issues + Adaptive, responsive layouts that morph between phone and desktop forms — + list-detail, split view panes, dialog to bottom sheet modals — preserving + live widget state across window resizes and breakpoint changes. +homepage: https://github.com/whuppi/morph_kit +repository: https://github.com/whuppi/morph_kit +issue_tracker: https://github.com/whuppi/morph_kit/issues topics: - layout diff --git a/test/components/dividers/handle_divider_test.dart b/test/components/dividers/handle_divider_test.dart index 0be844d..67148ce 100644 --- a/test/components/dividers/handle_divider_test.dart +++ b/test/components/dividers/handle_divider_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/components/dividers/material_divider_test.dart b/test/components/dividers/material_divider_test.dart index bb69e73..5ccaee5 100644 --- a/test/components/dividers/material_divider_test.dart +++ b/test/components/dividers/material_divider_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/components/empty_states/icon_message_empty_test.dart b/test/components/empty_states/icon_message_empty_test.dart index 80fa616..e344069 100644 --- a/test/components/empty_states/icon_message_empty_test.dart +++ b/test/components/empty_states/icon_message_empty_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/breakpoint_motion_test.dart b/test/core/list_detail/breakpoint_motion_test.dart index 60ff328..4c01077 100644 --- a/test/core/list_detail/breakpoint_motion_test.dart +++ b/test/core/list_detail/breakpoint_motion_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/divider_interaction_test.dart b/test/core/list_detail/divider_interaction_test.dart index 290245e..480c20c 100644 --- a/test/core/list_detail/divider_interaction_test.dart +++ b/test/core/list_detail/divider_interaction_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter/semantics.dart'; import 'package:flutter/services.dart'; diff --git a/test/core/list_detail/list_detail_controller_test.dart b/test/core/list_detail/list_detail_controller_test.dart index 4e414ab..deca752 100644 --- a/test/core/list_detail/list_detail_controller_test.dart +++ b/test/core/list_detail/list_detail_controller_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/test/core/list_detail/list_detail_empty_behavior_test.dart b/test/core/list_detail/list_detail_empty_behavior_test.dart index b3e63af..38c7c6f 100644 --- a/test/core/list_detail/list_detail_empty_behavior_test.dart +++ b/test/core/list_detail/list_detail_empty_behavior_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/list_detail_layout_test.dart b/test/core/list_detail/list_detail_layout_test.dart index b4df6de..f82b8a8 100644 --- a/test/core/list_detail/list_detail_layout_test.dart +++ b/test/core/list_detail/list_detail_layout_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/list_detail_overlay_test.dart b/test/core/list_detail/list_detail_overlay_test.dart index 61064bd..11d18bc 100644 --- a/test/core/list_detail/list_detail_overlay_test.dart +++ b/test/core/list_detail/list_detail_overlay_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/list_detail_route_test.dart b/test/core/list_detail/list_detail_route_test.dart index fdbcf7d..de57ab7 100644 --- a/test/core/list_detail/list_detail_route_test.dart +++ b/test/core/list_detail/list_detail_route_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/list_detail/list_detail_semantics_test.dart b/test/core/list_detail/list_detail_semantics_test.dart index d74085d..e9531e2 100644 --- a/test/core/list_detail/list_detail_semantics_test.dart +++ b/test/core/list_detail/list_detail_semantics_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter/semantics.dart'; import 'package:flutter/services.dart'; diff --git a/test/core/list_detail/paint_visibility_detector_test.dart b/test/core/list_detail/paint_visibility_detector_test.dart index f802cf5..8b190c4 100644 --- a/test/core/list_detail/paint_visibility_detector_test.dart +++ b/test/core/list_detail/paint_visibility_detector_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/src/core/list_detail/paint_visibility_detector.dart'; +import 'package:morph_kit/src/core/list_detail/paint_visibility_detector.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/modal/adaptive_modal_test.dart b/test/core/modal/adaptive_modal_test.dart index 646e7d7..e1e0688 100644 --- a/test/core/modal/adaptive_modal_test.dart +++ b/test/core/modal/adaptive_modal_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/modal/modal_config_forwarding_test.dart b/test/core/modal/modal_config_forwarding_test.dart index e2cd04d..70de5b6 100644 --- a/test/core/modal/modal_config_forwarding_test.dart +++ b/test/core/modal/modal_config_forwarding_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/modal/modal_morph_test.dart b/test/core/modal/modal_morph_test.dart index e4d577a..5b7f875 100644 --- a/test/core/modal/modal_morph_test.dart +++ b/test/core/modal/modal_morph_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/shared/adaptive_layout_config_test.dart b/test/core/shared/adaptive_layout_config_test.dart index 0e576bb..922b702 100644 --- a/test/core/shared/adaptive_layout_config_test.dart +++ b/test/core/shared/adaptive_layout_config_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/test/core/shared/pane_anchor_test.dart b/test/core/shared/pane_anchor_test.dart index caa05f7..bb26583 100644 --- a/test/core/shared/pane_anchor_test.dart +++ b/test/core/shared/pane_anchor_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/test/core/shared/pane_width_model_test.dart b/test/core/shared/pane_width_model_test.dart index 7532044..92dcea5 100644 --- a/test/core/shared/pane_width_model_test.dart +++ b/test/core/shared/pane_width_model_test.dart @@ -1,5 +1,5 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; -import 'package:adaptive_layouts/src/core/shared/pane_width_model.dart'; +import 'package:morph_kit/morph_kit.dart'; +import 'package:morph_kit/src/core/shared/pane_width_model.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/test/core/split/split_layout_test.dart b/test/core/split/split_layout_test.dart index 241a117..c2886e2 100644 --- a/test/core/split/split_layout_test.dart +++ b/test/core/split/split_layout_test.dart @@ -1,4 +1,4 @@ -import 'package:adaptive_layouts/adaptive_layouts.dart'; +import 'package:morph_kit/morph_kit.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart';