Files
ux/CHANGELOG.md
2026-04-22 22:42:53 +03:00

56 lines
2.5 KiB
Markdown

### 0.6.0
- `UxFile`: new module for handing files to the OS
- `UxFile.share(path, {title, mimeType, sourceRect})` — iOS `UIActivityViewController`,
macOS `NSSharingServicePicker`, Android `Intent.ACTION_SEND` via FileProvider.
`sourceRect` anchors the popover on iPad / macOS.
- `UxFile.open(path, {mimeType})` — in-app preview where possible:
iOS `QLPreviewController`, macOS `QLPreviewPanel` (preview on top of the app,
no foreground loss), Android `Intent.ACTION_VIEW` with MIME inference from
`MimeTypeMap` + a fallback set of text/code extensions so unknown types
still resolve to `text/plain` instead of `application/octet-stream`.
- **macOS**: new platform. Plugin registry + `FilePlugin`; keyboard and sensor
plugins remain iOS-only.
- Android: ships a FileProvider under `${applicationId}.ux.fileprovider`
scoped to `ux_share/` in the app cache — host apps don't need manifest
plumbing.
- iOS: `UxWindow` helper (`keyWindow` / `topViewController`) in
`NativePlugin.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 lock
- `AppInfo`: version + buildNumber surface
- `UxKeyboard`: focus tracking integration
### 0.4.0
- `package:ux/testing.dart`: new entry point for test-only utilities
- `matchesTextGolden(path, {update})`: `matchesGoldenFile`-style matcher for
plain-text snapshots (RPC responses, log output, formatted data). Writes on
first run or when `update: true`; compares byte-for-byte otherwise. Runtime
stays flutter_test-free — depends only on `package:matcher`. For
flutter_test users, pass `update: autoUpdateGoldenFiles` so
`flutter test --update-goldens` regenerates text goldens too.
### 0.3.0
- `UxKeyboard`: fix interactive dismiss race conditions — keyboard height no longer
gets stuck when rapidly dismissing and re-focusing
- `UxKeyboard`: handle zero-duration keyboard notifications (instant snap)
- `UxKeyboard`: gate adaptive learning debug output behind `kDebugMode`
- 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 learning
- `UxKeyboard`: 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