@ai-matrx/capture 0.3.0 → 0.3.1

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
@@ -62,3 +62,7 @@ The package-completeness release: the whole capture loop now lives in the box (A
62
62
  - Law 4 now scans EVERY `CameraCapture*.tsx` for the required cloud port, by filename pattern — a third chrome inherits THE CLOUD LAW by existing, not by someone remembering.
63
63
 
64
64
  Deliberately not copied from the app this borrows its shape from: fixed duration choices (they belong to that product's format, not to a camera) and the oversized promo pill for a new feature (chrome is not a billboard).
65
+
66
+ ## 0.3.1 — 2026-08-30
67
+
68
+ - v3: the rail renders while the camera is blocked (host actions keep working through the upload lane; core camera actions disable instead of vanishing), and status chips clear the `topCenter` line instead of colliding with it.
package/dist/react.cjs CHANGED
@@ -2013,7 +2013,10 @@ function CameraCaptureV3({
2013
2013
  }
2014
2014
  ] : []
2015
2015
  ];
2016
- const railActions = [...coreRail, ...slots.railActions ?? []];
2016
+ const railActions = [
2017
+ ...coreRail.map((a) => blocked ? { ...a, disabled: true } : a),
2018
+ ...slots.railActions ?? []
2019
+ ];
2017
2020
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "absolute inset-0 select-none overflow-hidden bg-black", children: [
2018
2021
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "absolute inset-0", children: preview }),
2019
2022
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(GridOverlay, { visible: gridOn && !blocked }),
@@ -2067,12 +2070,14 @@ function CameraCaptureV3({
2067
2070
  {
2068
2071
  className: "pointer-events-none absolute inset-x-0 z-20 flex flex-col items-center gap-1.5 px-3",
2069
2072
  style: {
2070
- top: `calc(env(safe-area-inset-top, 0px) + ${controlsHidden ? 12 : 64}px)`
2073
+ // Clears the top row AND the topCenter line beneath it — chips
2074
+ // rendered at the label's own height read as a collision.
2075
+ top: `calc(env(safe-area-inset-top, 0px) + ${controlsHidden ? 12 : slots.topCenter ? 92 : 64}px)`
2071
2076
  },
2072
2077
  children: slots.statusChips
2073
2078
  }
2074
2079
  ) : null,
2075
- !controlsHidden && !blocked && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2080
+ !controlsHidden && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2076
2081
  "div",
2077
2082
  {
2078
2083
  className: "pointer-events-none absolute right-1 z-20 flex justify-end",