snice 3.8.0 → 3.9.0

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.
Files changed (33) hide show
  1. package/bin/snice.js +8 -0
  2. package/dist/components/file-gallery/snice-file-gallery.d.ts +87 -0
  3. package/dist/components/file-gallery/snice-file-gallery.js +892 -0
  4. package/dist/components/file-gallery/snice-file-gallery.js.map +1 -0
  5. package/dist/components/file-gallery/snice-file-gallery.types.d.ts +72 -0
  6. package/dist/components/qr-reader/qr-decoder.d.ts +20 -0
  7. package/dist/components/qr-reader/qr-decoder.js +49 -0
  8. package/dist/components/qr-reader/qr-decoder.js.map +1 -0
  9. package/dist/components/qr-reader/qr-worker.d.ts +6 -0
  10. package/dist/components/qr-reader/qr-worker.js +64 -0
  11. package/dist/components/qr-reader/qr-worker.js.map +1 -0
  12. package/dist/components/qr-reader/snice-qr-reader.d.ts +39 -0
  13. package/dist/components/qr-reader/snice-qr-reader.js +436 -0
  14. package/dist/components/qr-reader/snice-qr-reader.js.map +1 -0
  15. package/dist/components/qr-reader/snice-qr-reader.types.d.ts +17 -0
  16. package/dist/components/qr-reader/zxing-reader.mjs +1582 -0
  17. package/dist/components/qr-reader/zxing-share.mjs +305 -0
  18. package/dist/components/qr-reader/zxing_reader.wasm +0 -0
  19. package/dist/components/zxing-reader-B3Rfebg9.js +1771 -0
  20. package/dist/components/zxing-reader-B3Rfebg9.js.map +1 -0
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.esm.js +1 -1
  23. package/dist/index.iife.js +1 -1
  24. package/dist/symbols.cjs +1 -1
  25. package/dist/symbols.esm.js +1 -1
  26. package/dist/transitions.cjs +1 -1
  27. package/dist/transitions.esm.js +1 -1
  28. package/docs/ai/README.md +1 -1
  29. package/docs/ai/components/file-gallery.md +206 -0
  30. package/docs/ai/components/qr-reader.md +80 -0
  31. package/docs/components/file-gallery.md +692 -0
  32. package/docs/components/qr-reader.md +327 -0
  33. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ # snice-qr-reader
2
+
3
+ QR code scanner using device camera and ZXing WASM decoder.
4
+
5
+ ## API
6
+
7
+ ### Properties
8
+ - `auto-start: boolean = false` - Auto-start scanning on mount
9
+ - `camera: 'front'|'back' = 'back'` - Camera selection
10
+ - `pick-first: boolean = false` - Scan at max speed until first hit, then stop and shutdown
11
+ - `manual-snap: boolean = false` - Photo mode: open camera, manually trigger snapshots
12
+ - `scan-speed: number = 3` - Scan speed 1-10 (higher = faster, more CPU). Ignored when pick-first=true
13
+
14
+ ### Methods
15
+ - `start()` - Start camera/scanning
16
+ - `stop()` - Stop camera/scanning
17
+ - `snap()` - Take snapshot (manual-snap mode)
18
+
19
+ ### Events
20
+ - `@snice/qr-scan` - detail: `{data: string, timestamp: number, reader: SniceQRReader}`
21
+ - `@snice/qr-error` - detail: `{error: any, reader: SniceQRReader}`
22
+ - `@snice/camera-ready` - detail: `{reader: SniceQRReader}`
23
+ - `@snice/camera-error` - detail: `{error: any, reader: SniceQRReader}`
24
+
25
+ ## Usage
26
+
27
+ ```html
28
+ <snice-qr-reader auto-start></snice-qr-reader>
29
+ <script>
30
+ reader.addEventListener('@snice/qr-scan', e => console.log(e.detail.data));
31
+ </script>
32
+ ```
33
+
34
+ ## Implementation
35
+
36
+ ### File Structure
37
+ - `snice-qr-reader.ts` - Main component (camera, scanning loop)
38
+ - `qr-worker.ts` - Web Worker for QR detection
39
+ - `qr-decoder.ts` - ZXing WASM wrapper (legacy)
40
+ - `zxing-reader.mjs` - ZXing ES module
41
+ - `zxing_reader.wasm` - WASM binary
42
+ - `ZXING-LICENSE` - Apache 2.0 + MIT
43
+
44
+ ### QR Detection
45
+ Uses ZXing WASM decoder exclusively for universal browser support.
46
+
47
+ ### Camera Loop
48
+ ```ts
49
+ private scanFrame() {
50
+ ctx.drawImage(video, 0, 0, width, height);
51
+ const imageData = ctx.getImageData(0, 0, width, height);
52
+ worker.postMessage({ type: 'decode', imageData });
53
+ // Worker responds with result in background thread
54
+ requestAnimationFrame(() => this.scanFrame());
55
+ }
56
+ ```
57
+
58
+ ### Lifecycle
59
+ - `@ready` - Init worker, auto-start if enabled
60
+ - `@dispose` - Stop scan, release camera, terminate worker
61
+ - Scan loop uses requestAnimationFrame
62
+ - QR detection runs in Web Worker (non-blocking)
63
+ - Only emits event if QR data changed
64
+
65
+ ### CSS Tokens
66
+ ```css
67
+ --qr-reader-border: var(--snice-color-border, #e5e7eb)
68
+ --qr-reader-bg: var(--snice-color-bg, #fff)
69
+ --qr-reader-text: var(--snice-color-text, #1f2937)
70
+ ```
71
+
72
+ ## License
73
+ - ZXing-C++: Apache 2.0
74
+ - zxing-wasm: MIT
75
+ - See ZXING-LICENSE file
76
+
77
+ ## Browser Requirements
78
+ - getUserMedia API
79
+ - WebAssembly support
80
+ - HTTPS for mobile