vectra-client 0.3.2 → 0.3.4

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.
@@ -164,6 +164,40 @@ body {
164
164
  border-color: var(--tma-color-border-hover);
165
165
  }
166
166
 
167
+ .tma-nav__toggle {
168
+ display: none;
169
+ flex-direction: column;
170
+ justify-content: space-around;
171
+ width: 24px;
172
+ height: 24px;
173
+ background: transparent;
174
+ border: none;
175
+ cursor: pointer;
176
+ padding: 0;
177
+ z-index: 10;
178
+ }
179
+
180
+ .tma-nav__toggle-line {
181
+ width: 100%;
182
+ height: 2px;
183
+ background: var(--tma-color-text-primary);
184
+ border-radius: 2px;
185
+ transition: all var(--tma-transition-normal);
186
+ transform-origin: center;
187
+ }
188
+
189
+ .tma-nav__toggle[aria-expanded="true"] .tma-nav__toggle-line:nth-child(1) {
190
+ transform: rotate(45deg) translate(6px, 6px);
191
+ }
192
+
193
+ .tma-nav__toggle[aria-expanded="true"] .tma-nav__toggle-line:nth-child(2) {
194
+ opacity: 0;
195
+ }
196
+
197
+ .tma-nav__toggle[aria-expanded="true"] .tma-nav__toggle-line:nth-child(3) {
198
+ transform: rotate(-45deg) translate(6px, -6px);
199
+ }
200
+
167
201
  /* ============================================
168
202
  Hero Section
169
203
  ============================================ */
@@ -751,8 +785,49 @@ code {
751
785
  padding: 0 var(--tma-spacing-md);
752
786
  }
753
787
 
788
+ .tma-nav__toggle {
789
+ display: flex;
790
+ }
791
+
754
792
  .tma-nav__menu {
755
- display: none;
793
+ display: flex;
794
+ position: fixed;
795
+ top: var(--tma-header-height);
796
+ left: 0;
797
+ right: 0;
798
+ height: 0;
799
+ max-height: 400px;
800
+ background: rgba(10, 10, 15, 0.98);
801
+ backdrop-filter: blur(12px);
802
+ flex-direction: column;
803
+ align-items: stretch;
804
+ padding: 0;
805
+ gap: var(--tma-spacing-xs);
806
+ transform: translateX(100%);
807
+ transition: transform var(--tma-transition-normal), opacity var(--tma-transition-normal), height var(--tma-transition-normal), padding var(--tma-transition-normal);
808
+ z-index: 999;
809
+ overflow-y: auto;
810
+ opacity: 0;
811
+ pointer-events: none;
812
+ border-top: 1px solid var(--tma-color-border);
813
+ }
814
+
815
+ .tma-nav__menu.tma-nav__menu--open {
816
+ transform: translateX(0);
817
+ opacity: 1;
818
+ pointer-events: auto;
819
+ height: 400px;
820
+ padding: var(--tma-spacing-lg);
821
+ }
822
+
823
+ .tma-nav__menu li {
824
+ width: 100%;
825
+ }
826
+
827
+ .tma-nav__link {
828
+ width: 100%;
829
+ padding: var(--tma-spacing-md);
830
+ justify-content: flex-start;
756
831
  }
757
832
 
758
833
  .tma-hero {
@@ -925,3 +1000,153 @@ code {
925
1000
  color: #ef4444;
926
1001
  font-weight: bold;
927
1002
  }
1003
+
1004
+ /* ============================================
1005
+ Dashboard Showcase
1006
+ ============================================ */
1007
+ .tma-dashboard-showcase {
1008
+ display: grid;
1009
+ grid-template-columns: 1fr 1fr;
1010
+ gap: var(--tma-spacing-2xl);
1011
+ margin: var(--tma-spacing-2xl) 0;
1012
+ padding: var(--tma-spacing-xl);
1013
+ background: var(--tma-color-bg-secondary);
1014
+ border-radius: var(--tma-radius-lg);
1015
+ border: 1px solid var(--tma-color-border);
1016
+ }
1017
+
1018
+ .tma-dashboard-showcase__image {
1019
+ position: relative;
1020
+ border-radius: var(--tma-radius-md);
1021
+ overflow: hidden;
1022
+ box-shadow: var(--tma-shadow-lg);
1023
+ background: var(--tma-color-bg-primary);
1024
+ border: 1px solid var(--tma-color-border);
1025
+ }
1026
+
1027
+ .tma-dashboard-screenshot {
1028
+ width: 100%;
1029
+ height: auto;
1030
+ display: block;
1031
+ border-radius: var(--tma-radius-md);
1032
+ transition: transform var(--tma-transition-normal);
1033
+ }
1034
+
1035
+ .tma-dashboard-showcase__image:hover .tma-dashboard-screenshot {
1036
+ transform: scale(1.02);
1037
+ }
1038
+
1039
+ .tma-dashboard-showcase__features {
1040
+ display: flex;
1041
+ flex-direction: column;
1042
+ justify-content: center;
1043
+ }
1044
+
1045
+ .tma-dashboard-showcase__features h4 {
1046
+ font-size: 1.3rem;
1047
+ font-weight: 700;
1048
+ margin-bottom: var(--tma-spacing-lg);
1049
+ color: var(--tma-color-text-primary);
1050
+ }
1051
+
1052
+ .tma-dashboard-showcase__features ul {
1053
+ list-style: none;
1054
+ padding-left: 0;
1055
+ margin: 0 0 var(--tma-spacing-xl) 0;
1056
+ }
1057
+
1058
+ .tma-dashboard-showcase__features li {
1059
+ margin-bottom: var(--tma-spacing-md);
1060
+ padding-left: var(--tma-spacing-lg);
1061
+ position: relative;
1062
+ color: var(--tma-color-text-secondary);
1063
+ line-height: 1.6;
1064
+ }
1065
+
1066
+ .tma-dashboard-showcase__features li::before {
1067
+ content: '▸';
1068
+ position: absolute;
1069
+ left: 0;
1070
+ color: var(--tma-color-accent-primary);
1071
+ font-weight: bold;
1072
+ }
1073
+
1074
+ .tma-dashboard-showcase__features strong {
1075
+ color: var(--tma-color-text-primary);
1076
+ font-weight: 600;
1077
+ }
1078
+
1079
+ .tma-dashboard-showcase__actions {
1080
+ display: flex;
1081
+ gap: var(--tma-spacing-md);
1082
+ flex-wrap: wrap;
1083
+ margin-top: var(--tma-spacing-lg);
1084
+ }
1085
+
1086
+ .tma-button {
1087
+ display: inline-flex;
1088
+ align-items: center;
1089
+ gap: var(--tma-spacing-sm);
1090
+ padding: var(--tma-spacing-md) var(--tma-spacing-lg);
1091
+ border-radius: var(--tma-radius-md);
1092
+ font-weight: 600;
1093
+ font-size: 0.95rem;
1094
+ text-decoration: none;
1095
+ transition: all var(--tma-transition-fast);
1096
+ border: 1px solid transparent;
1097
+ }
1098
+
1099
+ .tma-button--primary {
1100
+ background: var(--tma-color-accent-primary);
1101
+ color: #0a0a0f!important;
1102
+ border-color: var(--tma-color-accent-primary);
1103
+ }
1104
+
1105
+ .tma-button--primary:hover {
1106
+ background: var(--tma-color-accent-light);
1107
+ border-color: var(--tma-color-accent-light);
1108
+ color: #0a0a0f!important;
1109
+ transform: translateY(-1px);
1110
+ box-shadow: var(--tma-shadow-md);
1111
+ }
1112
+
1113
+ .tma-button--secondary {
1114
+ background: transparent;
1115
+ color: var(--tma-color-accent-primary);
1116
+ border-color: var(--tma-color-accent-primary);
1117
+ }
1118
+
1119
+ .tma-button--secondary:hover {
1120
+ background: var(--tma-color-accent-muted);
1121
+ border-color: var(--tma-color-accent-light);
1122
+ color: var(--tma-color-accent-light);
1123
+ transform: translateY(-1px);
1124
+ }
1125
+
1126
+ /* Responsive Dashboard Showcase */
1127
+ @media (max-width: 1024px) {
1128
+ .tma-dashboard-showcase {
1129
+ grid-template-columns: 1fr;
1130
+ gap: var(--tma-spacing-xl);
1131
+ }
1132
+
1133
+ .tma-dashboard-showcase__features {
1134
+ order: -1;
1135
+ }
1136
+ }
1137
+
1138
+ @media (max-width: 768px) {
1139
+ .tma-dashboard-showcase {
1140
+ padding: var(--tma-spacing-md);
1141
+ margin: var(--tma-spacing-lg) 0;
1142
+ }
1143
+
1144
+ .tma-dashboard-showcase__actions {
1145
+ flex-direction: column;
1146
+ }
1147
+
1148
+ .tma-button {
1149
+ width: 100%;
1150
+ justify-content: center;
1151
+ }
1152
+ }
@@ -48,7 +48,16 @@ Practical examples to get started with Vectra.
48
48
  </div>
49
49
  </div>
50
50
 
51
+ ## Real-World Examples
52
+
53
+ <div class="tma-comparison-card">
54
+ <h4>Production Use Cases</h4>
55
+ <p>E-commerce search, RAG chatbots, multi-tenant SaaS, and batch processing</p>
56
+ <a href="{{ site.baseurl }}/examples/real-world/">View Examples →</a>
57
+ </div>
58
+
51
59
  ## More Resources
52
60
 
53
61
  - [GitHub Examples](https://github.com/stokry/vectra/tree/main/examples) - Full example files
62
+ - [Comprehensive Demo](https://github.com/stokry/vectra/tree/main/examples/comprehensive_demo.rb) - Complete feature demonstration
54
63
  - [Integration Tests](https://github.com/stokry/vectra/tree/main/spec/integration) - Real-world test cases