@ai-matrx/capture 0.4.0 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -71,3 +71,16 @@ Deliberately not copied from the app this borrows its shape from: fixed duration
71
71
 
72
72
  - **Viewer: videos swipe exactly like photos.** The video slide is now a package-owned control-less player — the STAGE owns every gesture (native `controls` made the whole slide a pointer sink), a tap toggles playback, a centre glyph shows the paused state, and a thin bottom bar shows progress. Audio keeps native controls.
73
73
  - **HoldShutter: lock is a GESTURE, never a timer.** Recording follows the finger — release stops, full stop. While holding, slide UP ~64px to the lock target that appears above the button; locked, release keeps recording and the next tap stops. The 1.2s auto-latch is gone (it silently converted "I let go" into "still recording").
74
+
75
+ ## 0.4.1 — 2026-08-30
76
+
77
+ - Replaced the package's `lucide-react` runtime dependency with package-owned SVG icons, keeping the capture kit portable and reducing host dependency coupling.
78
+ - Hardened media URL caching, viewer cleanup, and exact optional-property contracts; verified the packed ESM and CommonJS artifacts.
79
+
80
+ ## 0.4.2 — 2026-08-30
81
+
82
+ - Release-only correction: ships the same verified 0.4.1 code with its synchronized workspace lockfile so the canonical frozen-lockfile publisher can install and publish reproducibly.
83
+
84
+ ## 0.4.3 — 2026-08-30
85
+
86
+ - Filmstrip video tiles paint their first frame on iOS (`#t=0.01` media fragment) — a `preload="metadata"` tile rendered black.
package/dist/index.d.cts CHANGED
@@ -3,10 +3,11 @@ import * as React from 'react';
3
3
  /**
4
4
  * features/capture-camera/ — EXTRACTION SOURCE for the `@ai-matrx/capture`
5
5
  * package (aidream/apps/shared/capture). Everything outside `host/` must stay
6
- * free of app imports beyond React, lucide-react and `cn` — those are the
7
- * documented substitution points when this directory is mirrored into the
8
- * package (icons → inlined SVGs, cn tailwind-merge), exactly like
9
- * `@ai-matrx/media` was extracted from `features/files`.
6
+ * free of app imports beyond React and `cn` — those are the documented
7
+ * substitution points when this directory is mirrored into the package
8
+ * (icons → the package's own inlined SVGs in `components/icons.tsx` per
9
+ * ruling C19, cn → tailwind-merge), exactly like `@ai-matrx/media` was
10
+ * extracted from `features/files`.
10
11
  *
11
12
  * The package is the OPINIONATED iPhone-style camera chrome: translucent
12
13
  * top/bottom bars over a full-bleed feed, the two-tap options grid, zoom
@@ -77,7 +78,7 @@ interface CaptureOptionTile {
77
78
  /** Highlight state (iPhone: yellow when engaged/auto). */
78
79
  active?: boolean;
79
80
  /** Small value read-out under the icon (e.g. "3s", "4:3"). */
80
- valueLabel?: string;
81
+ valueLabel?: string | undefined;
81
82
  disabled?: boolean;
82
83
  onPress: () => void;
83
84
  }
@@ -109,7 +110,7 @@ interface CaptureCameraSlots {
109
110
  id: string;
110
111
  label: string;
111
112
  onSelect: () => void;
112
- }[];
113
+ }[] | undefined;
113
114
  /** Free overlays rendered above everything (sheets, pagers). */
114
115
  overlays?: React.ReactNode;
115
116
  }
@@ -122,7 +123,7 @@ interface CaptureRailAction {
122
123
  /** Engaged/on — rendered in the accent colour. */
123
124
  active?: boolean;
124
125
  /** A short read-out under the icon (e.g. "3s", "4:3", "Auto"). */
125
- valueLabel?: string;
126
+ valueLabel?: string | undefined;
126
127
  disabled?: boolean;
127
128
  /**
128
129
  * Primary actions stay visible when the rail is collapsed. Everything else
package/dist/index.d.ts CHANGED
@@ -3,10 +3,11 @@ import * as React from 'react';
3
3
  /**
4
4
  * features/capture-camera/ — EXTRACTION SOURCE for the `@ai-matrx/capture`
5
5
  * package (aidream/apps/shared/capture). Everything outside `host/` must stay
6
- * free of app imports beyond React, lucide-react and `cn` — those are the
7
- * documented substitution points when this directory is mirrored into the
8
- * package (icons → inlined SVGs, cn tailwind-merge), exactly like
9
- * `@ai-matrx/media` was extracted from `features/files`.
6
+ * free of app imports beyond React and `cn` — those are the documented
7
+ * substitution points when this directory is mirrored into the package
8
+ * (icons → the package's own inlined SVGs in `components/icons.tsx` per
9
+ * ruling C19, cn → tailwind-merge), exactly like `@ai-matrx/media` was
10
+ * extracted from `features/files`.
10
11
  *
11
12
  * The package is the OPINIONATED iPhone-style camera chrome: translucent
12
13
  * top/bottom bars over a full-bleed feed, the two-tap options grid, zoom
@@ -77,7 +78,7 @@ interface CaptureOptionTile {
77
78
  /** Highlight state (iPhone: yellow when engaged/auto). */
78
79
  active?: boolean;
79
80
  /** Small value read-out under the icon (e.g. "3s", "4:3"). */
80
- valueLabel?: string;
81
+ valueLabel?: string | undefined;
81
82
  disabled?: boolean;
82
83
  onPress: () => void;
83
84
  }
@@ -109,7 +110,7 @@ interface CaptureCameraSlots {
109
110
  id: string;
110
111
  label: string;
111
112
  onSelect: () => void;
112
- }[];
113
+ }[] | undefined;
113
114
  /** Free overlays rendered above everything (sheets, pagers). */
114
115
  overlays?: React.ReactNode;
115
116
  }
@@ -122,7 +123,7 @@ interface CaptureRailAction {
122
123
  /** Engaged/on — rendered in the accent colour. */
123
124
  active?: boolean;
124
125
  /** A short read-out under the icon (e.g. "3s", "4:3", "Auto"). */
125
- valueLabel?: string;
126
+ valueLabel?: string | undefined;
126
127
  disabled?: boolean;
127
128
  /**
128
129
  * Primary actions stay visible when the rail is collapsed. Everything else