Rebuild UI on the Noo design system

Replaces the Material 3 screens with the Noo design system: warm
neutrals, one violet accent, pill controls, Schibsted Grotesk/
Instrument Sans, Lucide icons, no gradients/shadows.

- New lib/widgets/noo/ component kit (core, lists, files, media, nav,
  overlays) plus lib/theme/design_tokens.dart for the color/type/space/
  radius/motion tokens.
- Rebuilt the app shell (top/bottom bars, drawer, desktop sidebar and
  toolbar), every tab (Files/Offline, Photos, Favorites, Recent,
  Activity, Trash, Shares), Settings, the lock and login screens, the
  media viewer, search, the details/share sheets, and the share-upload
  and move/copy destination pickers.
- Added a design canvas (linked from DESIGN_SYSTEM.md) covering the
  screens the spec didn't already describe, with matching Android and
  iOS chrome; wrote up the approved recipes into DESIGN_SYSTEM.md §4.
- Removed now-dead legacy widgets (media_grid_tile, swipeable_item,
  sync_status_badge, selectable_thumbnail) and updated
  architecture.md/styling.md/standards.md to describe the new
  structure and component/testing conventions.
- Added widget tests for the noo/ component kit.

This is a UI-only rework: no provider/model/service behavior changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 01:51:58 -04:00
co-authored by Claude Opus 5.5
parent 51682a901d
commit 56784ef212
125 changed files with 15263 additions and 6804 deletions
+58
View File
@@ -0,0 +1,58 @@
#!/usr/bin/env python3
"""Uploads an .aab to the Play Console's app bundle library, without
touching any release track.
Play Console itself doesn't expose "just upload, don't release" as an
action - every path through the UI attaches a bundle to a track. The Play
Developer API does support it though: open an edit, upload the bundle,
commit the edit, and stop there. The result shows up under Release > App
bundle explorer and nowhere else - nothing goes out to testers or
production until it's promoted to a track by hand, whenever that's wanted.
Needs:
GOOGLE_PLAY_PACKAGE_NAME e.g. dev.ayushya.noo
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATH path to a service account key file
The Play Developer API can't create an app's first release - Google
requires at least one manual upload through the Play Console web UI (to
any track) before it'll accept API calls for that app at all.
python3 tool/upload_play_bundle.py path/to/app-release.aab
"""
import os
import sys
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ["https://www.googleapis.com/auth/androidpublisher"]
def main(bundle_path):
package_name = os.environ["GOOGLE_PLAY_PACKAGE_NAME"]
key_path = os.environ["GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATH"]
creds = service_account.Credentials.from_service_account_file(
key_path, scopes=SCOPES
)
service = build("androidpublisher", "v3", credentials=creds)
edit_id = service.edits().insert(body={}, packageName=package_name).execute()["id"]
bundle = (
service.edits()
.bundles()
.upload(editId=edit_id, packageName=package_name, media_body=bundle_path)
.execute()
)
print("Uploaded versionCode %s" % bundle["versionCode"])
service.edits().commit(editId=edit_id, packageName=package_name).execute()
print(
"Committed - visible under Release > App bundle explorer in Play "
"Console. Not attached to any track, so nothing goes out to "
"testers or production until it's promoted by hand."
)
if __name__ == "__main__":
main(sys.argv[1])