@visns-studio/visns-components 5.9.7 → 5.9.8

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.
@@ -625,7 +625,14 @@ function Navigation({
625
625
  onContactSaved={(contact) => {
626
626
  console.log('Contact saved:', contact);
627
627
  }}
628
- fields={navData.settings.find(s => s.id === 'businessCardOcr')?.fields || []}
628
+ fields={
629
+ navData.settings.find((s) => s.id === 'businessCardOcr')
630
+ ?.setting.fields || []
631
+ }
632
+ fetchConfig={
633
+ navData.settings.find((s) => s.id === 'businessCardOcr')
634
+ ?.setting.fetch || []
635
+ }
629
636
  />
630
637
  </div>
631
638
  ) : (
@@ -670,7 +677,14 @@ function Navigation({
670
677
  onContactSaved={(contact) => {
671
678
  console.log('Contact saved:', contact);
672
679
  }}
673
- fields={navData.settings.find(s => s.id === 'businessCardOcr')?.fields || []}
680
+ fields={
681
+ navData.settings.find((s) => s.id === 'businessCardOcr')
682
+ ?.setting.fields || []
683
+ }
684
+ fetchConfig={
685
+ navData.settings.find((s) => s.id === 'businessCardOcr')
686
+ ?.setting.fetch || null
687
+ }
674
688
  />
675
689
  </div>
676
690
  );
@@ -632,6 +632,269 @@
632
632
  }
633
633
  }
634
634
 
635
+ // Decision Step UI Styles
636
+ .decisionsContainer {
637
+ padding: 1rem;
638
+ max-height: 65vh;
639
+ overflow-y: auto;
640
+ }
641
+
642
+ .recommendationCard {
643
+ margin-bottom: 1.5rem;
644
+
645
+ &:last-child {
646
+ margin-bottom: 0;
647
+ }
648
+ }
649
+
650
+ .cardHeader {
651
+ margin-bottom: 1rem;
652
+
653
+ h3 {
654
+ margin: 0 0 0.5rem 0;
655
+ font-size: 1.1rem;
656
+ font-weight: var(--h-weight, 600);
657
+ color: var(--paragraph-color, #333);
658
+ display: flex;
659
+ align-items: center;
660
+ gap: 0.5rem;
661
+ }
662
+
663
+ p {
664
+ margin: 0;
665
+ font-size: 0.9rem;
666
+ color: rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.7);
667
+ line-height: 1.4;
668
+ }
669
+ }
670
+
671
+ .existingContactCard,
672
+ .clientSuggestionsCard,
673
+ .existingClientCard,
674
+ .newBothCard,
675
+ .conflictCard {
676
+ background: var(--bg-color, white);
677
+ border: 1px solid rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.1);
678
+ border-radius: var(--br, 8px);
679
+ padding: 1.5rem;
680
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
681
+ }
682
+
683
+ .existingContactCard {
684
+ border-left: 4px solid #ffa726; // Orange for warning
685
+ }
686
+
687
+ .clientSuggestionsCard {
688
+ border-left: 4px solid var(--primary-color, #007bff);
689
+ }
690
+
691
+ .existingClientCard {
692
+ border-left: 4px solid #4caf50; // Green for success
693
+ }
694
+
695
+ .newBothCard {
696
+ border-left: 4px solid #9c27b0; // Purple for new
697
+ }
698
+
699
+ .conflictCard {
700
+ border-left: 4px solid #f44336; // Red for conflict
701
+ }
702
+
703
+ .contactDetails {
704
+ display: grid;
705
+ grid-template-columns: 1fr 1fr;
706
+ gap: 1.5rem;
707
+ margin: 1rem 0;
708
+
709
+ @media (max-width: 768px) {
710
+ grid-template-columns: 1fr;
711
+ gap: 1rem;
712
+ }
713
+ }
714
+
715
+ .existingContact,
716
+ .newContact {
717
+ background: var(--highlight-color, #f8f9fa);
718
+ border: 1px solid rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.1);
719
+ border-radius: var(--br, 6px);
720
+ padding: 1rem;
721
+
722
+ h4 {
723
+ margin: 0 0 0.75rem 0;
724
+ font-size: 0.9rem;
725
+ font-weight: var(--h-weight, 600);
726
+ color: var(--paragraph-color, #333);
727
+ text-transform: uppercase;
728
+ letter-spacing: 0.5px;
729
+ }
730
+
731
+ p {
732
+ margin: 0 0 0.5rem 0;
733
+ font-size: 0.85rem;
734
+ color: var(--paragraph-color, #333);
735
+ line-height: 1.4;
736
+
737
+ &:last-child {
738
+ margin-bottom: 0;
739
+ }
740
+
741
+ strong {
742
+ font-weight: var(--h-weight, 600);
743
+ color: var(--paragraph-color, #333);
744
+ }
745
+ }
746
+ }
747
+
748
+ .clientSuggestions {
749
+ display: flex;
750
+ flex-direction: column;
751
+ gap: 0.75rem;
752
+ margin-top: 1rem;
753
+ }
754
+
755
+ .clientOption {
756
+ background: var(--bg-color, white);
757
+ border: 2px solid rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.1);
758
+ border-radius: var(--br, 8px);
759
+ padding: 1rem;
760
+ cursor: pointer;
761
+ transition: all 0.2s ease;
762
+
763
+ &:hover {
764
+ border-color: var(--primary-color, #007bff);
765
+ box-shadow: 0 2px 8px rgba(var(--primary-color-rgb, 0, 123, 255), 0.1);
766
+ transform: translateY(-1px);
767
+ }
768
+
769
+ &.selected {
770
+ border-color: var(--primary-color, #007bff);
771
+ background: rgba(var(--primary-color-rgb, 0, 123, 255), 0.05);
772
+ box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 0, 123, 255), 0.1);
773
+ }
774
+ }
775
+
776
+ .newClientOption {
777
+ border-style: dashed;
778
+ border-color: #9c27b0;
779
+
780
+ &:hover {
781
+ border-color: #9c27b0;
782
+ background: rgba(156, 39, 176, 0.05);
783
+ box-shadow: 0 2px 8px rgba(156, 39, 176, 0.1);
784
+ }
785
+
786
+ &.selected {
787
+ border-color: #9c27b0;
788
+ background: rgba(156, 39, 176, 0.05);
789
+ box-shadow: 0 0 0 2px rgba(156, 39, 176, 0.1);
790
+ }
791
+ }
792
+
793
+ .clientInfo {
794
+ display: flex;
795
+ align-items: center;
796
+ justify-content: space-between;
797
+ gap: 1rem;
798
+
799
+ strong {
800
+ flex: 1;
801
+ font-size: 1rem;
802
+ font-weight: var(--h-weight, 600);
803
+ color: var(--paragraph-color, #333);
804
+ line-height: 1.3;
805
+ }
806
+
807
+ small {
808
+ display: block;
809
+ margin-top: 0.25rem;
810
+ font-size: 0.75rem;
811
+ color: rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.6);
812
+ }
813
+ }
814
+
815
+ .similarity {
816
+ background: var(--primary-color, #007bff);
817
+ color: white;
818
+ padding: 0.25rem 0.5rem;
819
+ border-radius: var(--br, 4px);
820
+ font-size: 0.75rem;
821
+ font-weight: var(--h-weight, 600);
822
+ white-space: nowrap;
823
+ }
824
+
825
+ .newClientOption .similarity {
826
+ background: #9c27b0;
827
+ }
828
+
829
+ .decisionButtons {
830
+ display: flex;
831
+ gap: 1rem;
832
+ margin-top: 1rem;
833
+ flex-wrap: wrap;
834
+
835
+ @media (max-width: 768px) {
836
+ flex-direction: column;
837
+ }
838
+ }
839
+
840
+ .decisionButton {
841
+ flex: 1;
842
+ background: var(--highlight-color, #f8f9fa);
843
+ color: var(--paragraph-color, #333);
844
+ border: 2px solid rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.2);
845
+ border-radius: var(--br, 8px);
846
+ padding: 0.75rem 1rem;
847
+ font-size: 0.9rem;
848
+ font-weight: var(--h-weight, 500);
849
+ cursor: pointer;
850
+ transition: all 0.2s ease;
851
+ text-align: center;
852
+
853
+ &:hover {
854
+ border-color: var(--primary-color, #007bff);
855
+ background: rgba(var(--primary-color-rgb, 0, 123, 255), 0.05);
856
+ transform: translateY(-1px);
857
+ }
858
+
859
+ &.selected {
860
+ background: var(--primary-color, #007bff);
861
+ color: white;
862
+ border-color: var(--primary-color, #007bff);
863
+ box-shadow: 0 2px 8px rgba(var(--primary-color-rgb, 0, 123, 255), 0.3);
864
+ }
865
+ }
866
+
867
+ .autoSelected {
868
+ background: rgba(76, 175, 80, 0.1);
869
+ border: 1px solid rgba(76, 175, 80, 0.3);
870
+ border-radius: var(--br, 6px);
871
+ padding: 1rem;
872
+ text-align: center;
873
+ font-size: 0.9rem;
874
+ color: #2e7d32;
875
+ font-weight: var(--h-weight, 500);
876
+ margin-top: 1rem;
877
+ }
878
+
879
+ .decisionActions {
880
+ display: flex;
881
+ gap: 1rem;
882
+ justify-content: center;
883
+ flex-wrap: wrap;
884
+ padding-top: 1.5rem;
885
+ border-top: 1px solid rgba(var(--paragraph-color-rgb, 0, 0, 0), 0.1);
886
+ margin-top: 1.5rem;
887
+
888
+ @media (max-width: 768px) {
889
+ flex-direction: column;
890
+
891
+ button {
892
+ width: 100%;
893
+ justify-content: center;
894
+ }
895
+ }
896
+ }
897
+
635
898
  // Dark mode support (if project supports it)
636
899
  @media (prefers-color-scheme: dark) {
637
900
  .captureGuide {