diff --git a/astro.config.mjs b/astro.config.mjs index be74bb8..7d0f4c5 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -224,6 +224,9 @@ export default defineConfig({ { label: 'Auth', slug: 'packages/native-auth' }, { label: 'Background Transfer', slug: 'packages/native-background-transfer' }, { label: 'Bluetooth', slug: 'packages/native-bluetooth' }, + { label: 'Camera', slug: 'packages/native-camera' }, + { label: 'Canvas', slug: 'packages/native-canvas' }, + { label: '3D', slug: 'packages/native-3d' }, { label: 'DevTools package', slug: 'packages/native-devtools' }, { label: 'Feature Flags', slug: 'packages/native-feature-flags' }, { label: 'Firebase', slug: 'packages/native-firebase' }, @@ -233,6 +236,7 @@ export default defineConfig({ { label: 'Live Activities', slug: 'packages/native-live-activities' }, { label: 'Maps', slug: 'packages/native-maps' }, { label: 'Media & Camera', slug: 'packages/native-media' }, + { label: 'Media Editor', slug: 'packages/native-media-editor' }, { label: 'NFC', slug: 'packages/native-nfc' }, { label: 'Observability', slug: 'packages/native-observability' }, { label: 'Payments', slug: 'packages/native-payments' }, @@ -244,6 +248,7 @@ export default defineConfig({ { label: 'Sync', slug: 'packages/native-sync' }, { label: 'Testing', slug: 'packages/native-testing' }, { label: 'Video', slug: 'packages/native-video' }, + { label: 'GPU', slug: 'packages/native-gpu' }, { label: 'Widgets', slug: 'packages/native-widgets' }, ], }, diff --git a/scripts/check-repository-coverage.mjs b/scripts/check-repository-coverage.mjs index 026467b..3f4e434 100644 --- a/scripts/check-repository-coverage.mjs +++ b/scripts/check-repository-coverage.mjs @@ -16,6 +16,9 @@ const requiredRepositories = [ 'pam-native-auth', 'pam-native-background-transfer', 'pam-native-bluetooth', + 'pam-native-camera', + 'pam-native-canvas', + 'pam-native-3d', 'pam-native-devtools', 'pam-native-feature-flags', 'pam-native-firebase', @@ -25,6 +28,7 @@ const requiredRepositories = [ 'pam-native-live-activities', 'pam-native-maps', 'pam-native-media', + 'pam-native-media-editor', 'pam-native-nfc', 'pam-native-nitro', 'pam-native-observability', @@ -38,6 +42,7 @@ const requiredRepositories = [ 'pam-native-sync', 'pam-native-testing', 'pam-native-video', + 'pam-native-gpu', 'pam-native-widgets', 'pam-http-psr', 'pam-http-testing', diff --git a/src/components/PamEcosystem.astro b/src/components/PamEcosystem.astro index 60100ce..1dffa1d 100644 --- a/src/components/PamEcosystem.astro +++ b/src/components/PamEcosystem.astro @@ -3,6 +3,9 @@ const capabilities = [ ['auth', 'Identity & security', 'Encrypted credentials and OAuth 2.1/PKCE primitives.', 'pam-native-auth'], ['background-transfer', 'Files & background', 'Durable uploads and downloads outside the PHP lifecycle.', 'pam-native-background-transfer'], ['bluetooth', 'Hardware', 'BLE discovery, GATT operations, and bounded native events.', 'pam-native-bluetooth'], + ['camera', 'Media', 'Low-latency photo and video capture with device, format, focus, zoom, torch, and frame-processor contracts.', 'pam-native-camera'], + ['canvas', 'Graphics', 'Retained native 2D drawing with paths, transforms, text, images, and pointer events.', 'pam-native-canvas'], + ['3d', 'Graphics', 'Sandboxed GLB and USDZ scenes through Filament and RealityKit.', 'pam-native-3d'], ['devtools', 'Developer experience', 'Timeline, state snapshots, network inspection, and performance marks.', 'pam-native-devtools'], ['feature-flags', 'Delivery', 'Typed targeting, deterministic rollout, and offline snapshots.', 'pam-native-feature-flags'], ['firebase', 'Platform services', 'Analytics, Crashlytics, Remote Config, Messaging, and Installations.', 'pam-native-firebase'], @@ -12,6 +15,7 @@ const capabilities = [ ['live-activities', 'Platform integration', 'ActivityKit Live Activities and Android ongoing notifications.', 'pam-native-live-activities'], ['maps', 'Location', 'Declarative Google Maps and MapKit cameras, markers, and overlays.', 'pam-native-maps'], ['media', 'Media', 'Native media inspection, thumbnails, and embedded camera capture.', 'pam-native-media'], + ['media-editor', 'Media', 'Native timeline composition, trimming, filters, audio mixing, HDR, and bounded export.', 'pam-native-media-editor'], ['mobile-ui', 'Interface', 'Retained Material Design 3 components for Android and iOS.', 'pam-native-ui'], ['nfc', 'Hardware', 'Lifecycle-safe NDEF reading and writing on Android and iOS.', 'pam-native-nfc'], ['nitro', 'Data & offline', 'Typed, reactive, offline-first data built for native workloads.', 'pam-native-nitro'], @@ -25,6 +29,7 @@ const capabilities = [ ['sync', 'Data & offline', 'Idempotent outbox, cursors, conflicts, and incremental synchronization.', 'pam-native-sync'], ['testing', 'Developer experience', 'Deterministic bridge fakes and strict native assertions.', 'pam-native-testing'], ['video', 'Media', 'Adaptive HLS/DASH playback through Media3 and AVPlayer.', 'pam-native-video'], + ['gpu', 'Graphics', 'Typed scalar uniforms and programmable OpenGL ES 3/Metal fragment rendering.', 'pam-native-gpu'], ['widgets', 'Platform integration', 'Android App Widgets and iOS WidgetKit timelines.', 'pam-native-widgets'], ['native', 'Foundation', 'The PAM Native SDK, component runtime, and renderer contracts.', 'pam-native'], ] as const; @@ -36,7 +41,7 @@ const categories = [...new Map(
-

27 official capabilities · one workflow

+

32 official capabilities · one workflow

One command between idea and native capability.

Choose what the product needs. PAM resolves compatibility, updates the project, and refreshes native integration through one predictable workflow.

diff --git a/src/content/docs/packages/native-3d.mdx b/src/content/docs/packages/native-3d.mdx new file mode 100644 index 0000000..3a1d4a0 --- /dev/null +++ b/src/content/docs/packages/native-3d.mdx @@ -0,0 +1,20 @@ +--- +title: PAM Native 3D +description: Render GLB and USDZ scenes through Filament and RealityKit from PHP 8.5. +--- + +## Start here + +```bash +curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh +pam init my-app --template native +cd my-app +pam composer require pushinbr/pam-native-3d +pam doctor --fix +``` + +Declare sandboxed Android GLB and iOS USDZ assets, transforms, animation, +background and orbit controls. Android renders with Google Filament; iOS uses +RealityKit. Validate asset budgets, memory pressure, thermal behavior and +fallback UX on representative physical devices. + diff --git a/src/content/docs/packages/native-camera.mdx b/src/content/docs/packages/native-camera.mdx new file mode 100644 index 0000000..0b47cb3 --- /dev/null +++ b/src/content/docs/packages/native-camera.mdx @@ -0,0 +1,24 @@ +--- +title: PAM Native Camera +description: Professional low-latency camera capture for PAM Native on Android and iOS. +--- + +## Start here + +Every PAM Native product runs on PAM. Install the runtime, create the app, then add only the camera capability: + +```bash +curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh +pam init my-app --template native +cd my-app +pam composer require pushinbr/pam-native-camera +pam doctor --fix +``` + +The package exposes device and format discovery, photo/video capture, focus, +zoom, torch, orientation, frame-rate and frame-processor contracts. Camera is +independent: applications do not install a feed or product bundle. + +Use explicit permissions, test interruptions/background transitions, and run +capture and thermal tests on every physical device class you support. + diff --git a/src/content/docs/packages/native-canvas.mdx b/src/content/docs/packages/native-canvas.mdx new file mode 100644 index 0000000..a50c7ec --- /dev/null +++ b/src/content/docs/packages/native-canvas.mdx @@ -0,0 +1,20 @@ +--- +title: PAM Native Canvas +description: Retained-mode native 2D graphics controlled by bounded PHP scene contracts. +--- + +## Start here + +```bash +curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh +pam init my-app --template native +cd my-app +pam composer require pushinbr/pam-native-canvas +pam doctor --fix +``` + +Canvas provides paths, fills, strokes, transforms, clipping, text, sandboxed +images and pointer events through Android Canvas and iOS Core Graphics. Scenes +are retained, revisioned, capped at 10,000 commands and validate balanced state +stacks before reaching native code. + diff --git a/src/content/docs/packages/native-gpu.mdx b/src/content/docs/packages/native-gpu.mdx new file mode 100644 index 0000000..ca4f197 --- /dev/null +++ b/src/content/docs/packages/native-gpu.mdx @@ -0,0 +1,20 @@ +--- +title: PAM Native GPU +description: Programmable OpenGL ES 3 and Metal fragment rendering without a JavaScript bridge. +--- + +## Start here + +```bash +curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh +pam init my-app --template native +cd my-app +pam composer require pushinbr/pam-native-gpu +pam doctor --fix +``` + +Provide bounded GLSL and Metal fragment programs plus typed scalar uniforms. +The native view supplies resolution and time and supports on-demand or +continuous rendering. Treat shader input as trusted application code, cap work +per frame, and profile real GPUs before release. + diff --git a/src/content/docs/packages/native-media-editor.mdx b/src/content/docs/packages/native-media-editor.mdx new file mode 100644 index 0000000..d9e65d1 --- /dev/null +++ b/src/content/docs/packages/native-media-editor.mdx @@ -0,0 +1,20 @@ +--- +title: PAM Native Media Editor +description: Compose and export native photo and video timelines from typed PHP 8.5 contracts. +--- + +## Start here + +```bash +curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh +pam init my-app --template native +cd my-app +pam composer require pushinbr/pam-native-media-editor +pam doctor --fix +``` + +Build immutable timelines with trim, concatenation, crop, rotation, speed, +filters, soundtrack mixing, output size, FPS, bitrate, H.264/HEVC and HDR +policy. Android uses Media3 Transformer; iOS uses AVFoundation and Core Image. +Exports expose progress and cancellation and accept only sandboxed file paths. + diff --git a/src/content/docs/project/repository-map.mdx b/src/content/docs/project/repository-map.mdx index 09c305f..c6b40ff 100644 --- a/src/content/docs/project/repository-map.mdx +++ b/src/content/docs/project/repository-map.mdx @@ -39,6 +39,9 @@ destination. | `pam-native-auth` | Encrypted credential vault and PKCE | [Auth](/packages/native-auth/) | | `pam-native-background-transfer` | Durable uploads and downloads | [Background Transfer](/packages/native-background-transfer/) | | `pam-native-bluetooth` | BLE scan, connection and GATT | [Bluetooth](/packages/native-bluetooth/) | +| `pam-native-camera` | Professional native photo/video capture | [Camera](/packages/native-camera/) | +| `pam-native-canvas` | Retained native 2D graphics | [Canvas](/packages/native-canvas/) | +| `pam-native-3d` | Filament and RealityKit scenes | [3D](/packages/native-3d/) | | `pam-native-devtools` | Development inspection integration | [DevTools package](/packages/native-devtools/) | | `pam-native-feature-flags` | Typed flags, snapshots and rollout evaluation | [Feature Flags](/packages/native-feature-flags/) | | `pam-native-firebase` | Firebase services and messaging bridge | [Firebase](/packages/native-firebase/) | @@ -48,6 +51,7 @@ destination. | `pam-native-live-activities` | iOS Live Activities | [Live Activities](/packages/native-live-activities/) | | `pam-native-maps` | Native maps, markers and camera control | [Maps](/packages/native-maps/) | | `pam-native-media` | Camera, picker and media processing | [Media](/packages/native-media/) | +| `pam-native-media-editor` | Native timeline composition and export | [Media Editor](/packages/native-media-editor/) | | `pam-native-nfc` | NFC sessions and records | [NFC](/packages/native-nfc/) | | `pam-native-observability` | Vendor-neutral telemetry and crash context | [Observability](/packages/native-observability/) | | `pam-native-payments` | Platform payment sheets | [Payments](/packages/native-payments/) | @@ -59,6 +63,7 @@ destination. | `pam-native-sync` | Offline mutation and synchronization primitives | [Sync](/packages/native-sync/) | | `pam-native-testing` | Native integration testing utilities | [Native Testing](/packages/native-testing/) | | `pam-native-video` | Native video playback | [Video](/packages/native-video/) | +| `pam-native-gpu` | Programmable OpenGL ES and Metal rendering | [GPU](/packages/native-gpu/) | | `pam-native-widgets` | Android/iOS home-screen widgets | [Widgets](/packages/native-widgets/) | ## Installation rule