2.9 KiB
2.9 KiB
0.7.0
AutoMap<K, V>: insertion-ordered collection with O(1) lookup by key and by index. Backed by aList<V>+Map<K, int>kept in sync by four mutation methods (add,addAll,remove,clear); both fields are private so callers cannot break the invariant. ExtendsIterable<V>forwhere/map/firstWhere/ etc.removeis O(n) to preserve order; every other op is O(1).
0.6.0
UxFile: new module for handing files to the OSUxFile.share(path, {title, mimeType, sourceRect})— iOSUIActivityViewController, macOSNSSharingServicePicker, AndroidIntent.ACTION_SENDvia FileProvider.sourceRectanchors the popover on iPad / macOS.UxFile.open(path, {mimeType})— in-app preview where possible: iOSQLPreviewController, macOSQLPreviewPanel(preview on top of the app, no foreground loss), AndroidIntent.ACTION_VIEWwith MIME inference fromMimeTypeMap+ a fallback set of text/code extensions so unknown types still resolve totext/plaininstead ofapplication/octet-stream.
- macOS: new platform. Plugin registry +
FilePlugin; keyboard and sensor plugins remain iOS-only. - Android: ships a FileProvider under
${applicationId}.ux.fileproviderscoped toux_share/in the app cache — host apps don't need manifest plumbing. - iOS:
UxWindowhelper (keyWindow/topViewController) inNativePlugin.swift, shared between keyboard and file plugins.
0.5.0
UxSensor.orientation: accelerometer-driven physical device rotation, independent of the OS auto-rotate setting or UI orientation lockAppInfo: version + buildNumber surfaceUxKeyboard: focus tracking integration
0.4.0
package:ux/testing.dart: new entry point for test-only utilitiesmatchesTextGolden(path, {update}):matchesGoldenFile-style matcher for plain-text snapshots (RPC responses, log output, formatted data). Writes on first run or whenupdate: true; compares byte-for-byte otherwise. Runtime stays flutter_test-free — depends only onpackage:matcher. For flutter_test users, passupdate: autoUpdateGoldenFilessoflutter test --update-goldensregenerates text goldens too.
0.3.0
UxKeyboard: fix interactive dismiss race conditions — keyboard height no longer gets stuck when rapidly dismissing and re-focusingUxKeyboard: handle zero-duration keyboard notifications (instant snap)UxKeyboard: gate adaptive learning debug output behindkDebugMode- Example: rewrite as chat UI demonstrating
ListenableBuilder, scroll freeze, and interactive dismiss - Example: modernize Android project (v2 embedding, AGP 8.7, Gradle 8.11)
0.2.0
UxKeyboard: sampled native animation curves (iOS & Android) with adaptive learningUxKeyboard: interactive dismiss via pan gesture- Android: keyboard height tracking via JNI/FFI bridge
0.1.1
- Bezier utilities
0.0.3
- Action Plan
0.0.2
- BendBox