@striae-org/striae 4.0.3 → 4.2.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.
Files changed (118) hide show
  1. package/.env.example +8 -0
  2. package/app/components/actions/case-export/core-export.ts +14 -8
  3. package/app/components/actions/case-export/data-processing.ts +1 -0
  4. package/app/components/actions/case-export/download-handlers.ts +7 -0
  5. package/app/components/actions/case-export/metadata-helpers.ts +2 -1
  6. package/app/components/actions/case-import/confirmation-import.ts +12 -2
  7. package/app/components/actions/case-import/orchestrator.ts +78 -32
  8. package/app/components/actions/case-import/storage-operations.ts +97 -8
  9. package/app/components/actions/case-import/zip-processing.ts +159 -86
  10. package/app/components/actions/case-manage.ts +430 -8
  11. package/app/components/actions/confirm-export.ts +13 -4
  12. package/app/components/actions/generate-pdf.ts +10 -2
  13. package/app/components/actions/image-manage.ts +77 -44
  14. package/app/components/audit/user-audit-viewer.tsx +137 -945
  15. package/app/components/audit/user-audit.module.css +41 -0
  16. package/app/components/audit/viewer/audit-activity-summary.tsx +52 -0
  17. package/app/components/audit/viewer/audit-entries-list.tsx +207 -0
  18. package/app/components/audit/viewer/audit-filters-panel.tsx +307 -0
  19. package/app/components/audit/viewer/audit-user-info-card.tsx +44 -0
  20. package/app/components/audit/viewer/audit-viewer-header.tsx +55 -0
  21. package/app/components/audit/viewer/audit-viewer-utils.ts +123 -0
  22. package/app/components/audit/viewer/types.ts +1 -0
  23. package/app/components/audit/viewer/use-audit-viewer-data.ts +186 -0
  24. package/app/components/audit/viewer/use-audit-viewer-export.ts +176 -0
  25. package/app/components/audit/viewer/use-audit-viewer-filters.ts +141 -0
  26. package/app/components/auth/mfa-enrollment.module.css +13 -5
  27. package/app/components/auth/mfa-verification.module.css +13 -5
  28. package/app/components/canvas/box-annotations/box-annotations.module.css +22 -18
  29. package/app/components/canvas/box-annotations/box-annotations.tsx +15 -0
  30. package/app/components/canvas/canvas.module.css +64 -54
  31. package/app/components/canvas/canvas.tsx +17 -16
  32. package/app/components/canvas/confirmation/confirmation.module.css +1 -0
  33. package/app/components/canvas/confirmation/confirmation.tsx +17 -47
  34. package/app/components/navbar/case-modals/archive-case-modal.module.css +110 -0
  35. package/app/components/navbar/case-modals/archive-case-modal.tsx +129 -0
  36. package/app/components/navbar/case-modals/open-case-modal.module.css +81 -0
  37. package/app/components/navbar/case-modals/open-case-modal.tsx +120 -0
  38. package/app/components/navbar/case-modals/rename-case-modal.module.css +81 -0
  39. package/app/components/navbar/case-modals/rename-case-modal.tsx +107 -0
  40. package/app/components/navbar/navbar.module.css +447 -0
  41. package/app/components/navbar/navbar.tsx +377 -0
  42. package/app/components/public-signing-key-modal/public-signing-key-modal.module.css +2 -0
  43. package/app/components/public-signing-key-modal/public-signing-key-modal.tsx +21 -51
  44. package/app/components/sidebar/case-export/case-export.module.css +1 -0
  45. package/app/components/sidebar/case-export/case-export.tsx +14 -77
  46. package/app/components/sidebar/case-import/case-import.module.css +25 -0
  47. package/app/components/sidebar/case-import/case-import.tsx +64 -40
  48. package/app/components/sidebar/case-import/components/CasePreviewSection.tsx +20 -1
  49. package/app/components/sidebar/case-import/components/ConfirmationDialog.tsx +15 -0
  50. package/app/components/sidebar/cases/case-sidebar.tsx +25 -519
  51. package/app/components/sidebar/cases/cases-modal.module.css +45 -9
  52. package/app/components/sidebar/cases/cases-modal.tsx +16 -16
  53. package/app/components/sidebar/cases/cases.module.css +62 -21
  54. package/app/components/sidebar/files/files-modal.module.css +46 -10
  55. package/app/components/sidebar/files/files-modal.tsx +22 -23
  56. package/app/components/sidebar/notes/notes-editor-modal.module.css +49 -0
  57. package/app/components/sidebar/notes/notes-editor-modal.tsx +66 -0
  58. package/app/components/sidebar/notes/notes-modal.tsx +18 -17
  59. package/app/components/sidebar/notes/notes-sidebar.tsx +199 -113
  60. package/app/components/sidebar/notes/notes.module.css +155 -0
  61. package/app/components/sidebar/sidebar-container.tsx +15 -28
  62. package/app/components/sidebar/sidebar.module.css +7 -71
  63. package/app/components/sidebar/sidebar.tsx +24 -125
  64. package/app/components/sidebar/upload/image-upload-zone.module.css +13 -13
  65. package/app/components/toast/toast.module.css +2 -1
  66. package/app/components/toast/toast.tsx +16 -11
  67. package/app/components/user/delete-account.tsx +10 -31
  68. package/app/components/user/inactivity-warning.module.css +9 -6
  69. package/app/components/user/inactivity-warning.tsx +15 -2
  70. package/app/components/user/manage-profile.module.css +2 -0
  71. package/app/components/user/manage-profile.tsx +108 -40
  72. package/app/hooks/useOverlayDismiss.ts +116 -0
  73. package/app/routes/auth/login.example.tsx +19 -8
  74. package/app/routes/auth/login.tsx +785 -774
  75. package/app/routes/auth/passwordReset.module.css +23 -13
  76. package/app/routes/striae/striae.module.css +10 -3
  77. package/app/routes/striae/striae.tsx +477 -31
  78. package/app/routes.ts +7 -0
  79. package/app/services/audit/audit-export-csv.ts +2 -0
  80. package/app/services/audit/audit.service.ts +202 -32
  81. package/app/services/audit/builders/audit-entry-builder.ts +2 -1
  82. package/app/services/audit/builders/audit-event-builders-case-file.ts +43 -0
  83. package/app/services/audit/builders/audit-event-builders-user-security.ts +4 -2
  84. package/app/services/audit/builders/audit-event-builders-workflow.ts +8 -0
  85. package/app/services/audit/builders/index.ts +1 -0
  86. package/app/types/audit.ts +5 -2
  87. package/app/types/case.ts +29 -0
  88. package/app/types/import.ts +3 -0
  89. package/app/types/user.ts +1 -0
  90. package/app/utils/data/permissions.ts +17 -1
  91. package/app/utils/forensics/audit-export-signature.ts +5 -1
  92. package/app/utils/forensics/confirmation-signature.ts +3 -0
  93. package/app/utils/forensics/export-verification.ts +497 -22
  94. package/functions/api/pdf/[[path]].ts +32 -1
  95. package/load-context.ts +9 -0
  96. package/package.json +6 -2
  97. package/primershear.emails.example +6 -0
  98. package/scripts/deploy-pages-secrets.sh +6 -0
  99. package/scripts/deploy-primershear-emails.sh +167 -0
  100. package/worker-configuration.d.ts +7493 -7491
  101. package/workers/audit-worker/worker-configuration.d.ts +7448 -11323
  102. package/workers/audit-worker/wrangler.jsonc.example +1 -1
  103. package/workers/data-worker/worker-configuration.d.ts +7448 -11323
  104. package/workers/data-worker/wrangler.jsonc.example +1 -1
  105. package/workers/image-worker/worker-configuration.d.ts +7447 -11322
  106. package/workers/image-worker/wrangler.jsonc.example +1 -1
  107. package/workers/keys-worker/worker-configuration.d.ts +7447 -11322
  108. package/workers/keys-worker/wrangler.jsonc.example +1 -1
  109. package/workers/pdf-worker/src/formats/format-striae.ts +8 -7
  110. package/workers/pdf-worker/src/pdf-worker.example.ts +3 -0
  111. package/workers/pdf-worker/src/report-types.ts +3 -0
  112. package/workers/pdf-worker/worker-configuration.d.ts +7448 -11323
  113. package/workers/pdf-worker/wrangler.jsonc.example +1 -1
  114. package/workers/user-worker/src/user-worker.example.ts +6 -1
  115. package/workers/user-worker/worker-configuration.d.ts +7448 -11323
  116. package/workers/user-worker/wrangler.jsonc.example +1 -1
  117. package/wrangler.toml.example +1 -1
  118. package/public/.well-known/keybase.txt +0 -56
@@ -12,7 +12,8 @@
12
12
  background-color: color-mix(in lab, var(--backgroundLight) 95%, transparent);
13
13
  padding: var(--space2XL);
14
14
  border-radius: var(--spaceXS);
15
- box-shadow: 0 var(--spaceXS) var(--spaceM) color-mix(in lab, var(--black) 10%, transparent);
15
+ box-shadow: 0 var(--spaceXS) var(--spaceM)
16
+ color-mix(in lab, var(--black) 10%, transparent);
16
17
  width: 100%;
17
18
  max-width: var(--maxWidthS);
18
19
  }
@@ -29,7 +30,7 @@
29
30
  left: var(--spaceL);
30
31
  width: 150px;
31
32
  height: 150px;
32
- background-image: url('/logo-dark.png');
33
+ background-image: url("/logo-dark.png");
33
34
  background-size: contain;
34
35
  background-repeat: no-repeat;
35
36
  background-position: center;
@@ -114,7 +115,8 @@
114
115
  margin: var(--spaceXS) 0 var(--spaceS) 0;
115
116
  font-size: var(--fontSizeBodyXS);
116
117
  padding: var(--spaceS) var(--spaceM);
117
- background: linear-gradient(135deg,
118
+ background: linear-gradient(
119
+ 135deg,
118
120
  color-mix(in lab, var(--error) 12%, transparent),
119
121
  color-mix(in lab, var(--error) 8%, transparent)
120
122
  );
@@ -128,7 +130,7 @@
128
130
  }
129
131
 
130
132
  .error::before {
131
- content: '';
133
+ content: "";
132
134
  position: absolute;
133
135
  top: 0;
134
136
  left: 0;
@@ -144,7 +146,8 @@
144
146
  margin: var(--spaceXS) 0 var(--spaceS) 0;
145
147
  font-size: var(--fontSizeBodyXS);
146
148
  padding: var(--spaceS) var(--spaceM);
147
- background: linear-gradient(135deg,
149
+ background: linear-gradient(
150
+ 135deg,
148
151
  color-mix(in lab, var(--success) 12%, transparent),
149
152
  color-mix(in lab, var(--success) 8%, transparent)
150
153
  );
@@ -158,7 +161,7 @@
158
161
  }
159
162
 
160
163
  .success::before {
161
- content: '';
164
+ content: "";
162
165
  position: absolute;
163
166
  top: 0;
164
167
  left: 0;
@@ -176,6 +179,7 @@
176
179
  justify-content: center;
177
180
  align-items: center;
178
181
  z-index: var(--zIndex5);
182
+ cursor: default;
179
183
  }
180
184
 
181
185
  .modal {
@@ -183,9 +187,11 @@
183
187
  border-radius: var(--spaceXS);
184
188
  width: 90%;
185
189
  max-width: 500px;
186
- box-shadow: 0 var(--spaceXS) var(--spaceL) color-mix(in lab, var(--black) 10%, transparent);
190
+ box-shadow: 0 var(--spaceXS) var(--spaceL)
191
+ color-mix(in lab, var(--black) 10%, transparent);
187
192
  overflow: hidden;
188
193
  padding: var(--space2XL);
194
+ cursor: default;
189
195
  }
190
196
 
191
197
  .modalHeader {
@@ -220,7 +226,8 @@
220
226
  }
221
227
 
222
228
  @keyframes errorPulse {
223
- 0%, 100% {
229
+ 0%,
230
+ 100% {
224
231
  opacity: 1;
225
232
  box-shadow: 0 0 0 0 color-mix(in lab, var(--error) 40%, transparent);
226
233
  }
@@ -252,7 +259,8 @@
252
259
  }
253
260
 
254
261
  @keyframes successPulse {
255
- 0%, 100% {
262
+ 0%,
263
+ 100% {
256
264
  opacity: 1;
257
265
  box-shadow: 0 0 0 0 color-mix(in lab, var(--success) 40%, transparent);
258
266
  }
@@ -264,11 +272,13 @@
264
272
 
265
273
  /* Reduce motion for accessibility */
266
274
  @media (prefers-reduced-motion: reduce) {
267
- .error, .success {
275
+ .error,
276
+ .success {
268
277
  animation: none;
269
278
  }
270
-
271
- .error::before, .success::before {
279
+
280
+ .error::before,
281
+ .success::before {
272
282
  animation: none;
273
283
  }
274
- }
284
+ }
@@ -1,7 +1,8 @@
1
1
  .appContainer {
2
2
  display: flex;
3
- width: 100vw;
4
- height: 100vh;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ height: 100vh;
5
6
  overflow: hidden;
6
7
  position: fixed;
7
8
  top: 0;
@@ -9,6 +10,12 @@
9
10
  z-index: 10;
10
11
  }
11
12
 
13
+ .contentRow {
14
+ display: flex;
15
+ flex: 1;
16
+ min-height: 0;
17
+ }
18
+
12
19
  .mainContent {
13
20
  flex: 1;
14
21
  display: flex;
@@ -27,4 +34,4 @@
27
34
  top: var(--spaceL);
28
35
  left: var(--spaceL);
29
36
  z-index: 30;
30
- }
37
+ }