From d6aff4bc34a23de54685f457ad1fef625d092047 Mon Sep 17 00:00:00 2001 From: Deepanshu Date: Sun, 19 Jul 2026 13:31:42 +0530 Subject: [PATCH 1/3] feat!: rename package to morph_kit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pub.dev rejected adaptive_layouts as too similar to the active adaptive_layout package. morph_kit keeps name, API, and docs speaking one word — the morph is already the core concept (ModalConfig.morph, the README's The morph section). Pubspec description rewritten for search (adaptive, responsive, list-detail, split view, bottom sheet, state preservation); barrel is now lib/morph_kit.dart. Zero grep hits for the old name. --- AGENTS.md | 8 ++--- CHANGELOG.md | 4 +-- CHANGELOG.pre.md | 4 +-- CONTRIBUTING.md | 4 +-- Makefile | 2 +- README.md | 16 +++++----- SECURITY.md | 2 +- docs/ARCHITECTURE.md | 6 ++-- docs/CAPABILITY_ROADMAP.md | 4 +-- docs/UPDATING.md | 6 ++-- example/README.md | 2 +- example/lib/main.dart | 6 ++-- example/pubspec.lock | 14 ++++---- example/pubspec.yaml | 6 ++-- example/test/journeys/journeys_test.dart | 4 +-- lib/{adaptive_layouts.dart => morph_kit.dart} | 0 .../components/dividers/handle_divider.dart | 4 +-- .../components/dividers/material_divider.dart | 2 +- .../core/list_detail/list_detail_layout.dart | 32 +++++++++---------- lib/src/core/modal/adaptive_modal.dart | 8 ++--- lib/src/core/modal/modal_morph.dart | 2 +- .../core/shared/adaptive_layout_config.dart | 2 +- lib/src/core/shared/divider_builder.dart | 2 +- lib/src/core/shared/pane_config.dart | 10 +++--- lib/src/core/shared/pane_divider_region.dart | 2 +- lib/src/core/shared/pane_scope.dart | 2 +- lib/src/core/shared/pane_width_model.dart | 6 ++-- lib/src/core/split/split_layout.dart | 16 +++++----- pubspec.yaml | 14 ++++---- .../dividers/handle_divider_test.dart | 2 +- .../dividers/material_divider_test.dart | 2 +- .../empty_states/icon_message_empty_test.dart | 2 +- .../list_detail/breakpoint_motion_test.dart | 2 +- .../list_detail/divider_interaction_test.dart | 2 +- .../list_detail_controller_test.dart | 2 +- .../list_detail_empty_behavior_test.dart | 2 +- .../list_detail/list_detail_layout_test.dart | 2 +- .../list_detail/list_detail_overlay_test.dart | 2 +- .../list_detail/list_detail_route_test.dart | 2 +- .../list_detail_semantics_test.dart | 2 +- .../paint_visibility_detector_test.dart | 2 +- test/core/modal/adaptive_modal_test.dart | 2 +- .../modal/modal_config_forwarding_test.dart | 2 +- test/core/modal/modal_morph_test.dart | 2 +- .../shared/adaptive_layout_config_test.dart | 2 +- test/core/shared/pane_anchor_test.dart | 2 +- test/core/shared/pane_width_model_test.dart | 4 +-- test/core/split/split_layout_test.dart | 2 +- 48 files changed, 115 insertions(+), 115 deletions(-) rename lib/{adaptive_layouts.dart => morph_kit.dart} (100%) 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/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/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/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/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'; From 7778996af8d390efca3973675a3a6dd98ff34111 Mon Sep 17 00:00:00 2001 From: Deepanshu Date: Sun, 19 Jul 2026 13:44:15 +0530 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20complete=20the=20rename=20sweep=20?= =?UTF-8?q?=E2=80=94=20platform=20files,=20deploy=20script,=20issue=20temp?= =?UTF-8?q?late?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first sweep's grep was scoped to Dart/YAML/Markdown and missed every native platform file. Now renamed: Android namespace, applicationId, manifest label, and the Kotlin package directory; iOS bundle display name; macOS PRODUCT_NAME plus the pbxproj/xcscheme references; web manifest and index title; the deploy script's repo slugs; and the bug-report template label. The org team is renamed to morph_kit-maintainers so CODEOWNERS and auto-close point at a real team. Full-tree grep for the old name: zero hits. --- .github/CODEOWNERS | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/workflows/auto-close.yml | 2 +- deploy/.deploy/secrets.sh | 10 +++++----- example/android/app/build.gradle.kts | 4 ++-- example/android/app/src/main/AndroidManifest.xml | 2 +- .../MainActivity.kt | 2 +- example/ios/Runner/Info.plist | 2 +- example/macos/Runner.xcodeproj/project.pbxproj | 12 ++++++------ .../xcshareddata/xcschemes/Runner.xcscheme | 10 +++++----- example/macos/Runner/Configs/AppInfo.xcconfig | 2 +- example/web/index.html | 4 ++-- example/web/manifest.json | 4 ++-- 13 files changed, 29 insertions(+), 29 deletions(-) rename example/android/app/src/main/kotlin/com/whuppi/{adaptive_layouts_example => morph_kit_example}/MainActivity.kt (67%) 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/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/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 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - adaptive_layouts_example + morph_kit_example CFBundlePackageType APPL CFBundleShortVersionString diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj index e7d1da2..8e85322 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 */ @@ -398,7 +398,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.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; }; @@ -412,7 +412,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.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; }; @@ -426,7 +426,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample.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..25c48ae 100644 --- a/example/macos/Runner/Configs/AppInfo.xcconfig +++ b/example/macos/Runner/Configs/AppInfo.xcconfig @@ -5,7 +5,7 @@ // '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 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", From ba498996920c62d318810b085c4522e9ab906a0d Mon Sep 17 00:00:00 2001 From: Deepanshu Date: Sun, 19 Jul 2026 13:50:42 +0530 Subject: [PATCH 3/3] fix: sweep camelCase and display-name rename variants in iOS/macOS projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sweep greps hunted snake_case only — adaptiveLayoutsExample bundle identifiers (macOS AppInfo.xcconfig, RunnerTests in both pbxproj files, the whole iOS pbxproj) and the 'Adaptive Layouts Example' iOS display name slipped through. All name variants now grep to zero. --- example/ios/Runner.xcodeproj/project.pbxproj | 12 ++++++------ example/ios/Runner/Info.plist | 2 +- example/macos/Runner.xcodeproj/project.pbxproj | 6 +++--- example/macos/Runner/Configs/AppInfo.xcconfig | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index f872239..8462d2e 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -383,7 +383,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -399,7 +399,7 @@ 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_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -416,7 +416,7 @@ 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)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -431,7 +431,7 @@ 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)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -563,7 +563,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -586,7 +586,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.adaptiveLayoutsExample; + PRODUCT_BUNDLE_IDENTIFIER = com.whuppi.morphKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 32c286f..091e6f8 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Adaptive Layouts Example + Morph Kit Example CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj index 8e85322..90ca047 100644 --- a/example/macos/Runner.xcodeproj/project.pbxproj +++ b/example/macos/Runner.xcodeproj/project.pbxproj @@ -395,7 +395,7 @@ 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)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; @@ -409,7 +409,7 @@ 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)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; @@ -423,7 +423,7 @@ 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)/morph_kit_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/morph_kit_example"; diff --git a/example/macos/Runner/Configs/AppInfo.xcconfig b/example/macos/Runner/Configs/AppInfo.xcconfig index 25c48ae..b2f4ffd 100644 --- a/example/macos/Runner/Configs/AppInfo.xcconfig +++ b/example/macos/Runner/Configs/AppInfo.xcconfig @@ -8,7 +8,7 @@ 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.