sercrod

*camera

*camera turns an element into an explicit image action. *camera.capture takes a new photo and *camera.pick selects an existing image. Both delegate to sercrod.camera. n-camera, n-camera.capture, and n-camera.pick are aliases.

<button type="button" *camera.capture *response="'photo'">
  Take photo
</button>

<button
  type="button"
  *camera.pick
  *response="{ preview: response.dataUrl, selectedName: response.name }">
  Pick image
</button>

The normalized result is written to $camera. Use *response for whole-result placement or field mapping. Camera does not save, upload, or persist images; combine it with explicit filesystem or upload actions when needed.