@jaak.ai/stamps 2.0.0 → 2.1.0-dev.10

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 (71) hide show
  1. package/README.md +11 -1
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  4. package/dist/cjs/{index-BfhtOB0D.js → index-Ga0t6BMe.js} +176 -119
  5. package/dist/cjs/index-Ga0t6BMe.js.map +1 -0
  6. package/dist/cjs/jaak-stamps-webcomponent.cjs.js +5 -4
  7. package/dist/cjs/jaak-stamps-webcomponent.cjs.js.map +1 -1
  8. package/dist/cjs/jaak-stamps.cjs.entry.js +1174 -655
  9. package/dist/cjs/jaak-stamps.cjs.entry.js.map +1 -1
  10. package/dist/cjs/jaak-stamps.entry.cjs.js.map +1 -1
  11. package/dist/cjs/loader.cjs.js +4 -3
  12. package/dist/cjs/loader.cjs.js.map +1 -1
  13. package/dist/collection/collection-manifest.json +1 -1
  14. package/dist/collection/components/my-component/my-component.css +224 -13
  15. package/dist/collection/components/my-component/my-component.js +950 -281
  16. package/dist/collection/components/my-component/my-component.js.map +1 -1
  17. package/dist/collection/services/CameraService.js +156 -344
  18. package/dist/collection/services/CameraService.js.map +1 -1
  19. package/dist/collection/services/DetectionService.js +100 -42
  20. package/dist/collection/services/DetectionService.js.map +1 -1
  21. package/dist/collection/services/EventBusService.js +1 -1
  22. package/dist/collection/services/EventBusService.js.map +1 -1
  23. package/dist/collection/services/ServiceContainer.js +4 -13
  24. package/dist/collection/services/ServiceContainer.js.map +1 -1
  25. package/dist/collection/services/interfaces/ICameraService.js.map +1 -1
  26. package/dist/collection/types/component-types.js.map +1 -1
  27. package/dist/components/index.js +165 -113
  28. package/dist/components/index.js.map +1 -1
  29. package/dist/components/jaak-stamps.js +1182 -658
  30. package/dist/components/jaak-stamps.js.map +1 -1
  31. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  32. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  33. package/dist/esm/{index-BP1Q4KOg.js → index-Drbzcuq-.js} +177 -119
  34. package/dist/esm/index-Drbzcuq-.js.map +1 -0
  35. package/dist/esm/jaak-stamps-webcomponent.js +5 -4
  36. package/dist/esm/jaak-stamps-webcomponent.js.map +1 -1
  37. package/dist/esm/jaak-stamps.entry.js +1174 -655
  38. package/dist/esm/jaak-stamps.entry.js.map +1 -1
  39. package/dist/esm/loader.js +4 -3
  40. package/dist/esm/loader.js.map +1 -1
  41. package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js +1 -1
  42. package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js.map +1 -1
  43. package/dist/jaak-stamps-webcomponent/jaak-stamps.entry.esm.js.map +1 -1
  44. package/dist/jaak-stamps-webcomponent/loader.esm.js.map +1 -1
  45. package/dist/jaak-stamps-webcomponent/p-5f7301f1.entry.js +2 -0
  46. package/dist/jaak-stamps-webcomponent/p-5f7301f1.entry.js.map +1 -0
  47. package/dist/jaak-stamps-webcomponent/p-DQuL1Twl.js +2 -0
  48. package/dist/jaak-stamps-webcomponent/p-DQuL1Twl.js.map +1 -0
  49. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js +3 -0
  50. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js.map +1 -0
  51. package/dist/types/components/my-component/my-component.d.ts +87 -17
  52. package/dist/types/components.d.ts +14 -8
  53. package/dist/types/services/CameraService.d.ts +12 -14
  54. package/dist/types/services/DetectionService.d.ts +10 -3
  55. package/dist/types/services/ServiceContainer.d.ts +1 -2
  56. package/dist/types/services/interfaces/ICameraService.d.ts +3 -12
  57. package/dist/types/stencil-public-runtime.d.ts +12 -5
  58. package/dist/types/types/component-types.d.ts +3 -0
  59. package/package.json +4 -2
  60. package/dist/cjs/index-BfhtOB0D.js.map +0 -1
  61. package/dist/collection/services/LoggerService.js +0 -40
  62. package/dist/collection/services/LoggerService.js.map +0 -1
  63. package/dist/collection/services/interfaces/ILogger.js +0 -2
  64. package/dist/collection/services/interfaces/ILogger.js.map +0 -1
  65. package/dist/esm/index-BP1Q4KOg.js.map +0 -1
  66. package/dist/jaak-stamps-webcomponent/p-2264b5b4.entry.js +0 -2
  67. package/dist/jaak-stamps-webcomponent/p-2264b5b4.entry.js.map +0 -1
  68. package/dist/jaak-stamps-webcomponent/p-BP1Q4KOg.js +0 -3
  69. package/dist/jaak-stamps-webcomponent/p-BP1Q4KOg.js.map +0 -1
  70. package/dist/types/services/LoggerService.d.ts +0 -12
  71. package/dist/types/services/interfaces/ILogger.d.ts +0 -8
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BfhtOB0D.js');
3
+ var index = require('./index-Ga0t6BMe.js');
4
+ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
4
5
 
5
6
  const defineCustomElements = async (win, options) => {
6
7
  if (typeof window === 'undefined') return undefined;
7
- await index.globalScripts();
8
- return index.bootstrapLazy([["jaak-stamps.cjs",[[1,"jaak-stamps",{"debug":[4],"alignmentTolerance":[2,"alignment-tolerance"],"maskSize":[2,"mask-size"],"cropMargin":[2,"crop-margin"],"useDocumentClassification":[4,"use-document-classification"],"preferredCamera":[1,"preferred-camera"],"captureDelay":[2,"capture-delay"],"enableBackDocumentTimer":[4,"enable-back-document-timer"],"backDocumentTimerDuration":[2,"back-document-timer-duration"],"detectionBoxes":[32],"sideAlignment":[32],"isMaskReady":[32],"shouldMirrorVideo":[32],"showCameraSelector":[32],"isSwitchingCamera":[32],"hasDocumentDetected":[32],"currentStatus":[32],"performanceData":[32],"backDocumentTimerRemaining":[32],"getCapturedImages":[64],"isProcessCompleted":[64],"startCapture":[64],"stopCapture":[64],"resetCapture":[64],"skipBackCapture":[64],"getStatus":[64],"preloadModel":[64],"getCameraInfo":[64],"setPreferredCamera":[64],"setCaptureDelay":[64],"getCaptureDelay":[64],"setTorchEnabled":[64],"focusAtPoint":[64]}]]]], options);
8
+ await appGlobals.globalScripts();
9
+ return index.bootstrapLazy([["jaak-stamps.cjs",[[257,"jaak-stamps",{"debug":[4],"alignmentTolerance":[2,"alignment-tolerance"],"maskSize":[2,"mask-size"],"cropMargin":[2,"crop-margin"],"useDocumentClassification":[4,"use-document-classification"],"useDocumentDetector":[4,"use-document-detector"],"preferredCamera":[1,"preferred-camera"],"captureDelay":[2,"capture-delay"],"enableBackDocumentTimer":[4,"enable-back-document-timer"],"backDocumentTimerDuration":[2,"back-document-timer-duration"],"detectionBoxes":[32],"sideAlignment":[32],"isMaskReady":[32],"shouldMirrorVideo":[32],"showCameraSelector":[32],"isSwitchingCamera":[32],"hasDocumentDetected":[32],"cameraInfoWithAutofocus":[32],"currentStatus":[32],"performanceData":[32],"backDocumentTimerRemaining":[32],"showManualCaptureButton":[32],"performanceDegradedMode":[32],"showPerformanceMessage":[32],"captureStateVersion":[32],"processingButton":[32],"getCapturedImages":[64],"isProcessCompleted":[64],"startCapture":[64],"stopCapture":[64],"resetCapture":[64],"skipBackCapture":[64],"getStatus":[64],"preloadModel":[64],"getCameraInfo":[64],"setPreferredCamera":[64],"setCaptureDelay":[64],"getCaptureDelay":[64]}]]]], options);
9
10
  };
10
11
 
11
12
  exports.setNonce = index.setNonce;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.cjs.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":["globalScripts","bootstrapLazy"],"mappings":";;;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAMA,mBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;;"}
1
+ {"version":3,"file":"loader.cjs.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":["globalScripts","bootstrapLazy"],"mappings":";;;;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAMA,wBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;;"}
@@ -4,7 +4,7 @@
4
4
  ],
5
5
  "compiler": {
6
6
  "name": "@stencil/core",
7
- "version": "4.33.1",
7
+ "version": "4.36.3",
8
8
  "typescriptVersion": "5.5.4"
9
9
  },
10
10
  "collections": [],
@@ -170,18 +170,21 @@ video {
170
170
  top: 50%;
171
171
  left: 50%;
172
172
  transform: translate(-50%, -50%);
173
- color: #fff;
174
- font-size: 14px;
175
- font-weight: 600;
173
+ background: rgba(0, 0, 0, 0.25);
174
+ backdrop-filter: blur(20px);
175
+ border-radius: 12px;
176
+ border: 1px solid rgba(255, 255, 255, 0.1);
177
+ color: #ffffff;
178
+ font-size: 12px;
179
+ font-weight: 500;
176
180
  text-align: center;
177
181
  white-space: normal;
178
- background: rgba(0, 0, 0, 0.25);
179
- backdrop-filter: blur(12px);
180
- padding: 12px 20px;
181
- border-radius: 8px;
182
+ padding: 13px;
182
183
  max-width: 300px;
183
184
  z-index: 20;
184
- border: 1px solid rgba(255, 255, 255, 0.1);
185
+ height: fit-content;
186
+ width: fit-content;
187
+ animation: slideInFromTopCentered 0.3s ease-out;
185
188
  }
186
189
 
187
190
  /* Quality indicator */
@@ -523,6 +526,90 @@ video {
523
526
  max-width: 300px;
524
527
  }
525
528
 
529
+ /* Sección unificada para captura del reverso */
530
+ .back-capture-section {
531
+ position: absolute;
532
+ bottom: 20px;
533
+ left: 50%;
534
+ transform: translateX(-50%);
535
+ z-index: 25;
536
+ display: flex;
537
+ flex-direction: column;
538
+ align-items: center;
539
+ width: 100%;
540
+ max-width: 320px;
541
+ }
542
+
543
+
544
+ .back-capture-buttons {
545
+ display: flex;
546
+ gap: 12px;
547
+ align-items: center;
548
+ justify-content: center;
549
+ flex-wrap: wrap;
550
+ }
551
+
552
+ .capture-button {
553
+ pointer-events: auto;
554
+ background: #fff;
555
+ color: #333;
556
+ border: none;
557
+ border-radius: 25px;
558
+ padding: 12px 24px;
559
+ font-size: 14px;
560
+ font-weight: 600;
561
+ cursor: pointer;
562
+ transition: all 0.3s ease;
563
+ }
564
+
565
+ .capture-button:hover {
566
+ background: #f8f9fa;
567
+ }
568
+
569
+ .capture-button:active {
570
+ background: #e9ecef;
571
+ transform: translateY(1px);
572
+ }
573
+
574
+ .capture-button:disabled,
575
+ .capture-button.primary-button:disabled {
576
+ cursor: not-allowed !important;
577
+ transform: none !important;
578
+ opacity: 0.7 !important;
579
+ transition: none !important;
580
+ }
581
+
582
+ /* Responsive para móviles */
583
+ @media (max-width: 480px) {
584
+ .back-capture-section {
585
+ bottom: 16px;
586
+ max-width: 300px;
587
+ }
588
+
589
+
590
+ .back-capture-buttons {
591
+ flex-direction: column;
592
+ gap: 8px;
593
+ width: 100%;
594
+ }
595
+
596
+ .capture-button,
597
+ .back-capture-buttons .skip-button {
598
+ width: 100%;
599
+ max-width: 200px;
600
+ padding: 10px 20px;
601
+ font-size: 13px;
602
+ }
603
+
604
+ /* Ensure disabled styles work on mobile too */
605
+ .capture-button:disabled,
606
+ .capture-button.primary-button:disabled,
607
+ .skip-button:disabled {
608
+ opacity: 0.7 !important;
609
+ cursor: not-allowed !important;
610
+ }
611
+ }
612
+
526
613
  .skip-explanation {
527
614
  background: rgba(0, 0, 0, 0.5);
528
615
  color: #ffffff;
@@ -543,6 +630,25 @@ video {
543
630
  to { opacity: 1; transform: translateY(0); }
544
631
  }
545
632
 
633
+ /* Performance warning animation for guide-text */
634
+ .guide-text.performance-warning-text {
635
+ animation: gentlePulse 2s ease-in-out infinite;
636
+ background: rgba(255, 107, 107, 0.3);
637
+ border: 1px solid rgba(255, 107, 107, 0.5);
638
+ }
639
+
640
+ @keyframes gentlePulse {
641
+ 0%, 100% {
642
+ transform: translate(-50%, -50%) scale(1);
643
+ background: rgba(255, 107, 107, 0.3);
644
+ }
645
+ 50% {
646
+ transform: translate(-50%, -50%) scale(1.02);
647
+ background: rgba(255, 107, 107, 0.4);
648
+ }
649
+ }
650
+
651
+
546
652
  /* Botón para saltar reverso */
547
653
  .skip-button {
548
654
  pointer-events: auto;
@@ -566,6 +672,13 @@ video {
566
672
  transform: translateY(1px);
567
673
  }
568
674
 
675
+ .skip-button:disabled {
676
+ cursor: not-allowed !important;
677
+ transform: none !important;
678
+ opacity: 0.7 !important;
679
+ transition: none !important;
680
+ }
681
+
569
682
  /* Camera controls */
570
683
  .camera-controls {
571
684
  position: absolute;
@@ -575,6 +688,7 @@ video {
575
688
  display: flex;
576
689
  gap: 8px;
577
690
  pointer-events: auto;
691
+ animation: slideInFromTop 0.3s ease-out;
578
692
  }
579
693
 
580
694
 
@@ -626,10 +740,13 @@ video {
626
740
  .button-spinner {
627
741
  width: 16px;
628
742
  height: 16px;
629
- border: 2px solid rgba(255, 255, 255, 0.3);
630
- border-top: 2px solid #ffffff;
743
+ border: 2px solid rgba(0, 0, 0, 0.2);
744
+ border-top: 2px solid #333333;
631
745
  border-radius: 50%;
632
746
  animation: spin 1s linear infinite;
747
+ display: inline-block;
748
+ margin-right: 8px;
749
+ vertical-align: middle;
633
750
  }
634
751
 
635
752
  @keyframes spin {
@@ -665,6 +782,18 @@ video {
665
782
  }
666
783
  }
667
784
 
785
+ /* Animación específica para elementos centrados */
786
+ @keyframes slideInFromTopCentered {
787
+ 0% {
788
+ opacity: 0;
789
+ transform: translate(-50%, -50%) translateY(-8px) scale(0.95);
790
+ }
791
+ 100% {
792
+ opacity: 1;
793
+ transform: translate(-50%, -50%) translateY(0) scale(1);
794
+ }
795
+ }
796
+
668
797
  .camera-selector-header {
669
798
  display: flex;
670
799
  justify-content: space-between;
@@ -715,8 +844,9 @@ video {
715
844
  cursor: pointer;
716
845
  transition: all 0.2s ease;
717
846
  display: flex;
718
- justify-content: space-between;
847
+ justify-content: flex-start;
719
848
  align-items: center;
849
+ gap: 8px;
720
850
  color: rgba(255, 255, 255, 0.9);
721
851
  }
722
852
 
@@ -735,14 +865,25 @@ video {
735
865
  white-space: nowrap;
736
866
  overflow: hidden;
737
867
  text-overflow: ellipsis;
738
- margin-right: 8px;
868
+ margin-right: 0;
739
869
  font-weight: 400;
870
+ display: flex;
871
+ align-items: center;
872
+ gap: 6px;
873
+ }
874
+
875
+ .camera-label .autofocus-icon {
876
+ font-size: 12px;
877
+ color: #ffffff !important;
878
+ opacity: 0.8;
879
+ flex-shrink: 0;
740
880
  }
741
881
 
742
882
  .selected-indicator {
743
883
  font-size: 14px;
744
884
  color: #ffffff;
745
885
  opacity: 0.9;
886
+ flex-shrink: 0;
746
887
  }
747
888
 
748
889
  .device-info {
@@ -891,6 +1032,12 @@ video {
891
1032
  .status-description {
892
1033
  font-size: 9px;
893
1034
  }
1035
+
1036
+ .guide-text {
1037
+ font-size: 11px;
1038
+ padding: 4px 8px;
1039
+ border-radius: 8px;
1040
+ }
894
1041
  }
895
1042
 
896
1043
  /* Animación de carga mejorada */
@@ -956,7 +1103,7 @@ video {
956
1103
  border: 1px solid rgba(255, 255, 255, 0.1);
957
1104
  z-index: 35;
958
1105
  width: fit-content;
959
- animation: slideInFromLeft 0.3s ease-out;
1106
+ animation: slideInFromTop 0.3s ease-out;
960
1107
  transition: all 0.3s ease;
961
1108
  }
962
1109
 
@@ -1115,3 +1262,67 @@ video {
1115
1262
  font-size: 10px;
1116
1263
  }
1117
1264
  }
1265
+
1266
+ /* Sección de captura manual */
1267
+ .manual-capture-section {
1268
+ position: absolute;
1269
+ bottom: 20px;
1270
+ left: 50%;
1271
+ transform: translateX(-50%);
1272
+ z-index: 25;
1273
+ display: flex;
1274
+ flex-direction: column;
1275
+ align-items: center;
1276
+ width: 100%;
1277
+ max-width: 300px;
1278
+ }
1279
+
1280
+
1281
+ .manual-capture-button {
1282
+ pointer-events: auto;
1283
+ background: #fff;
1284
+ color: #333;
1285
+ border: none;
1286
+ border-radius: 25px;
1287
+ padding: 12px 24px;
1288
+ font-size: 14px;
1289
+ font-weight: 600;
1290
+ cursor: pointer;
1291
+ transition: all 0.3s ease;
1292
+ }
1293
+
1294
+ .manual-capture-button:hover {
1295
+ background: #f8f9fa;
1296
+ }
1297
+
1298
+ .manual-capture-button:active {
1299
+ background: #e9ecef;
1300
+ transform: translateY(1px);
1301
+ }
1302
+
1303
+ .manual-capture-button:disabled {
1304
+ cursor: not-allowed !important;
1305
+ transform: none !important;
1306
+ opacity: 0.7 !important;
1307
+ transition: none !important;
1308
+ }
1309
+
1310
+ /* Responsive para móviles */
1311
+ @media (max-width: 480px) {
1312
+ .manual-capture-section {
1313
+ bottom: 16px;
1314
+ max-width: 280px;
1315
+ }
1316
+
1317
+
1318
+ .manual-capture-button {
1319
+ padding: 10px 20px;
1320
+ font-size: 13px;
1321
+ }
1322
+
1323
+ /* Ensure disabled styles work on mobile too */
1324
+ .manual-capture-button:disabled {
1325
+ opacity: 0.7 !important;
1326
+ cursor: not-allowed !important;
1327
+ }
1328
+ }