sqlite-hub 0.8.7 → 0.9.1

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 (34) hide show
  1. package/changelog.md +16 -0
  2. package/frontend/index.html +1 -1
  3. package/frontend/js/api.js +67 -0
  4. package/frontend/js/app.js +1554 -999
  5. package/frontend/js/components/modal.js +208 -3
  6. package/frontend/js/components/queryEditor.js +9 -4
  7. package/frontend/js/components/queryHistoryDetail.js +34 -12
  8. package/frontend/js/components/queryHistoryPanel.js +8 -11
  9. package/frontend/js/components/rowEditorPanel.js +26 -5
  10. package/frontend/js/components/sidebar.js +49 -5
  11. package/frontend/js/components/structureGraph.js +614 -632
  12. package/frontend/js/components/tableDesignerSqlPreview.js +24 -25
  13. package/frontend/js/lib/mediaTaggingDefaults.js +27 -0
  14. package/frontend/js/router.js +81 -71
  15. package/frontend/js/store.js +3140 -2179
  16. package/frontend/js/views/charts.js +2 -2
  17. package/frontend/js/views/data.js +28 -14
  18. package/frontend/js/views/editor.js +172 -177
  19. package/frontend/js/views/mediaTagging.js +931 -0
  20. package/frontend/styles/base.css +11 -1
  21. package/frontend/styles/components.css +54 -6
  22. package/frontend/styles/views.css +910 -0
  23. package/package.json +1 -1
  24. package/server/routes/charts.js +4 -1
  25. package/server/routes/data.js +14 -0
  26. package/server/routes/mediaTagging.js +166 -0
  27. package/server/routes/sql.js +1 -0
  28. package/server/server.js +4 -0
  29. package/server/services/sqlite/dataBrowserService.js +25 -0
  30. package/server/services/sqlite/exportService.js +31 -1
  31. package/server/services/sqlite/mediaTaggingService.js +1689 -0
  32. package/server/services/storage/appStateStore.js +325 -3
  33. package/server/services/storage/queryHistoryUtils.js +165 -2
  34. package/shortkeys.md +5 -0
@@ -73,6 +73,10 @@ input.control-input--ghost:not(:focus) {
73
73
 
74
74
  .control-select {
75
75
  padding: 0 var(--control-padding-inline);
76
+ -webkit-appearance: menulist;
77
+ -moz-appearance: menulist;
78
+ appearance: auto;
79
+ background-image: none;
76
80
  }
77
81
 
78
82
  .control-shell {
@@ -195,6 +199,7 @@ img {
195
199
 
196
200
  .query-editor-layer {
197
201
  display: grid;
202
+ height: 100%;
198
203
  min-height: 140px;
199
204
  overflow: hidden;
200
205
  }
@@ -217,7 +222,7 @@ img {
217
222
 
218
223
  .query-editor-highlight {
219
224
  color: var(--color-on-surface);
220
- overflow: hidden;
225
+ overflow: visible;
221
226
  pointer-events: none;
222
227
  }
223
228
 
@@ -231,6 +236,11 @@ img {
231
236
  overflow: auto;
232
237
  }
233
238
 
239
+ .query-editor-gutter-track {
240
+ min-height: 100%;
241
+ will-change: transform;
242
+ }
243
+
234
244
  .query-editor-input::placeholder {
235
245
  color: transparent;
236
246
  }
@@ -84,6 +84,48 @@
84
84
  min-height: 0;
85
85
  }
86
86
 
87
+ .sidebar-group {
88
+ display: flex;
89
+ flex-direction: column;
90
+ }
91
+
92
+ .sidebar-sublinks {
93
+ display: flex;
94
+ flex-direction: column;
95
+ gap: 2px;
96
+ margin: 4px 0 4px var(--spacing-6);
97
+ padding-left: var(--spacing-6);
98
+ border-left: 1px solid rgba(75, 71, 50, 0.15);
99
+ }
100
+
101
+ .sidebar-sublink {
102
+ align-items: center;
103
+ color: rgba(229, 226, 225, 0.35);
104
+ display: flex;
105
+ font-family: var(--font-family-body);
106
+ font-size: 0.6875rem;
107
+ font-weight: 500;
108
+ gap: var(--spacing-3);
109
+ letter-spacing: 0.06em;
110
+ padding: 0.5rem var(--spacing-4);
111
+ text-transform: none;
112
+ transition:
113
+ background-color var(--transition-fast),
114
+ color var(--transition-fast),
115
+ border-color var(--transition-fast);
116
+ }
117
+
118
+ .sidebar-sublink:hover {
119
+ background: var(--color-surface-container);
120
+ color: var(--color-primary-container);
121
+ }
122
+
123
+ .sidebar-sublink.is-active {
124
+ border-left: 2px solid var(--color-primary-container);
125
+ color: var(--color-primary-container);
126
+ background: var(--color-surface-high);
127
+ }
128
+
87
129
  .sidebar-link {
88
130
  align-items: center;
89
131
  color: rgba(229, 226, 225, 0.4);
@@ -245,6 +287,12 @@
245
287
  color: var(--color-error);
246
288
  }
247
289
 
290
+ .status-badge--warning {
291
+ background: rgba(245, 158, 11, 0.12);
292
+ border-color: rgba(245, 158, 11, 0.28);
293
+ color: #f59e0b;
294
+ }
295
+
248
296
  .status-badge--success {
249
297
  background: rgba(0, 220, 225, 0.1);
250
298
  color: var(--color-tertiary-dim);
@@ -764,17 +812,17 @@ select.table-designer-field {
764
812
  border: 1px solid rgba(75, 71, 50, 0.18) !important;
765
813
  }
766
814
 
767
- .table-designer-check input[type="checkbox"]:not(:checked),
768
- .table-designer-fill-toggle input[type="checkbox"]:not(:checked),
769
- .table-designer-checkbox-override input[type="checkbox"]:not(:checked) {
815
+ .table-designer-check input[type='checkbox']:not(:checked),
816
+ .table-designer-fill-toggle input[type='checkbox']:not(:checked),
817
+ .table-designer-checkbox-override input[type='checkbox']:not(:checked) {
770
818
  background: transparent !important;
771
819
  background-color: transparent !important;
772
820
  background-image: none !important;
773
821
  }
774
822
 
775
- .table-designer-check input[type="checkbox"]:checked,
776
- .table-designer-fill-toggle input[type="checkbox"]:checked,
777
- .table-designer-checkbox-override input[type="checkbox"]:checked {
823
+ .table-designer-check input[type='checkbox']:checked,
824
+ .table-designer-fill-toggle input[type='checkbox']:checked,
825
+ .table-designer-checkbox-override input[type='checkbox']:checked {
778
826
  background-color: var(--color-primary-container) !important;
779
827
  border-color: var(--color-primary-container) !important;
780
828
  }