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.
- package/bin/snice.js +8 -0
- package/dist/components/file-gallery/snice-file-gallery.d.ts +87 -0
- package/dist/components/file-gallery/snice-file-gallery.js +892 -0
- package/dist/components/file-gallery/snice-file-gallery.js.map +1 -0
- package/dist/components/file-gallery/snice-file-gallery.types.d.ts +72 -0
- package/dist/components/qr-reader/qr-decoder.d.ts +20 -0
- package/dist/components/qr-reader/qr-decoder.js +49 -0
- package/dist/components/qr-reader/qr-decoder.js.map +1 -0
- package/dist/components/qr-reader/qr-worker.d.ts +6 -0
- package/dist/components/qr-reader/qr-worker.js +64 -0
- package/dist/components/qr-reader/qr-worker.js.map +1 -0
- package/dist/components/qr-reader/snice-qr-reader.d.ts +39 -0
- package/dist/components/qr-reader/snice-qr-reader.js +436 -0
- package/dist/components/qr-reader/snice-qr-reader.js.map +1 -0
- package/dist/components/qr-reader/snice-qr-reader.types.d.ts +17 -0
- package/dist/components/qr-reader/zxing-reader.mjs +1582 -0
- package/dist/components/qr-reader/zxing-share.mjs +305 -0
- package/dist/components/qr-reader/zxing_reader.wasm +0 -0
- package/dist/components/zxing-reader-B3Rfebg9.js +1771 -0
- package/dist/components/zxing-reader-B3Rfebg9.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/README.md +1 -1
- package/docs/ai/components/file-gallery.md +206 -0
- package/docs/ai/components/qr-reader.md +80 -0
- package/docs/components/file-gallery.md +692 -0
- package/docs/components/qr-reader.md +327 -0
- 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
|