@ai-matrx/vault 0.1.25 → 0.1.27

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.
package/CHANGELOG.md CHANGED
@@ -1,9 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.27
4
+
5
+ - **`emptyReadAlarm`, `holdingsDoorIsAbsent`, `HOLDINGS_DOOR_MIGRATION` and the `HoldingRow`/`Holdings` types are exported from the root** so the web app can drop its whole-file copy (`features/secrets/empty-read.ts`). Consumer action: none.
6
+
7
+ ## 0.1.26
8
+
9
+ - **`glyphs.tsx` draws only `SafeGlyph` itself.** The other 46 vault glyphs (`KeyGlyph`, `CardGlyph`, `EyeGlyph`, `QrGlyph`, ...) are aliases of the matching `@ai-matrx/design-system/icons` glyphs, so they now render the exact lucide 1.48 drawing and carry the `lucide-<name>` optical-trim class instead of a hand-set `--matrx-glyph-air-*` style. Every export name and the `Glyph` type are unchanged. Consumer action: none.
10
+
3
11
  ## 0.1.25
4
12
 
5
- UNVERIFIED: this release has no Unreleased entry and the source comparison could not be made (the caller supplied no source comparison). Whether source changed is unknown; consumer action is unknown.
6
- Check the package's gitHead on npm against this version's gitHead: `git diff <previous gitHead> <this gitHead> -- apps/shared/vault/src`.
13
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
14
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
15
+ Diff: `git diff 39e135b031 7dd0861691 -- apps/shared/vault/src`
16
+
17
+ Changed shipped source files (1):
18
+ - `apps/shared/vault/src/lists/logic.ts`
7
19
 
8
20
  ## 0.1.24
9
21
 
package/dist/index.cjs CHANGED
@@ -140,6 +140,7 @@ __export(src_exports, {
140
140
  DEFAULT_LOCATION: () => DEFAULT_LOCATION,
141
141
  GenerateButton: () => GenerateButton,
142
142
  HIDDEN_ITEM_TAG: () => HIDDEN_ITEM_TAG,
143
+ HOLDINGS_DOOR_MIGRATION: () => HOLDINGS_DOOR_MIGRATION,
143
144
  IdentityGate: () => IdentityGate,
144
145
  LOCKED_MESSAGE: () => LOCKED_MESSAGE,
145
146
  VaultApp: () => VaultApp,
@@ -149,7 +150,9 @@ __export(src_exports, {
149
150
  createApiVaultPort: () => createApiVaultPort,
150
151
  createSupabaseIdentity: () => createSupabaseIdentity,
151
152
  createVaultKnobs: () => createVaultKnobs,
153
+ emptyReadAlarm: () => emptyReadAlarm,
152
154
  guardPort: () => guardPort,
155
+ holdingsDoorIsAbsent: () => holdingsDoorIsAbsent,
153
156
  inferFromUrl: () => inferFromUrl,
154
157
  isHiddenItem: () => isHiddenItem,
155
158
  itemIdAt: () => itemIdAt,
@@ -242,71 +245,27 @@ function glyph(paths, air = [1, 1]) {
242
245
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className, style, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: paths });
243
246
  };
244
247
  }
245
- var KeyGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
246
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "7.5", cy: "15.5", r: "5.5" }),
247
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m21 2-9.6 9.6M15.5 7.5l3 3" })
248
- ] }), [1, 2]);
249
- var NoteGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
250
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
251
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 2v4a2 2 0 0 0 2 2h4M16 13H8M16 17H8" })
252
- ] }), [3, 3]);
253
- var CardGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
254
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2" }),
255
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 10h20" })
256
- ] }), [1, 1]);
257
- var PersonGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
258
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "8", r: "5" }),
259
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 21a8 8 0 0 0-16 0" })
260
- ] }), [3, 3]);
261
- var DatabaseGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
262
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
263
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 5v14a9 3 0 0 0 18 0V5M3 12a9 3 0 0 0 18 0" })
264
- ] }), [2, 2]);
265
- var ServerGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
266
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "2", width: "20", height: "8", rx: "2" }),
267
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "14", width: "20", height: "8", rx: "2" }),
268
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M6 6h.01M6 18h.01" })
269
- ] }), [1, 1]);
270
- var TerminalGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m4 17 6-6-6-6M12 19h8" }) }), [3, 3]);
271
- var FileGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
272
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" }),
273
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" })
274
- ] }), [3, 3]);
275
- var CodeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m16 18 6-6-6-6M8 6l-6 6 6 6" }) }), [1, 1]);
276
- var StarGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z" }), [1, 1]);
277
- var PlusGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 5v14M5 12h14" }), [4, 4]);
278
- var EyeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
279
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z" }),
280
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "3" })
281
- ] }), [1, 1]);
282
- var EyeOffGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M10.7 5.1A10.4 10.4 0 0 1 12 5c6.4 0 10 7 10 7a17 17 0 0 1-2.2 3.2M6.6 6.6A17 17 0 0 0 2 12s3.6 7 10 7a9.7 9.7 0 0 0 5.4-1.6M2 2l20 20" }) }), [1, 1]);
283
- var LockGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
284
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2" }),
285
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
286
- ] }), [2, 2]);
287
- var ExternalGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }) }), [2, 2]);
288
- var TrashGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }) }), [2, 2]);
289
- var ArchiveGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
290
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "3", width: "20", height: "5", rx: "1" }),
291
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4" })
292
- ] }), [1, 1]);
293
- var TagGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
294
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12.6 2.6A2 2 0 0 0 11.2 2H4a2 2 0 0 0-2 2v7.2a2 2 0 0 0 .6 1.4l8.7 8.7a2.4 2.4 0 0 0 3.4 0l6.6-6.6a2.4 2.4 0 0 0 0-3.4z" }),
295
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "7.5", cy: "7.5", r: ".5" })
296
- ] }), [1, 1]);
297
- var ShieldGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 13c0 5-3.5 7.5-7.7 8.9a1 1 0 0 1-.6 0C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.2-2.7a1.2 1.2 0 0 1 1.6 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z" }) }), [3, 3]);
298
- var BuildingGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
299
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2" }),
300
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M9 22v-4h6v4M8 6h.01M16 6h.01M12 6h.01M12 10h.01M12 14h.01M16 10h.01M16 14h.01M8 10h.01M8 14h.01" })
301
- ] }), [3, 3]);
302
- var ChevronLeftGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m15 18-6-6 6-6" }), [8, 8]);
303
- var GridGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
304
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }),
305
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }),
306
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }),
307
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "14", width: "7", height: "7", rx: "1" })
308
- ] }), [2, 2]);
309
- var PlugGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 22v-5M9 8V2M15 8V2M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8z" }) }), [5, 5]);
248
+ var KeyGlyph = import_icons.KeyIcon;
249
+ var NoteGlyph = import_icons.FileTextIcon;
250
+ var PersonGlyph = import_icons.UserRoundIcon;
251
+ var DatabaseGlyph = import_icons.DatabaseIcon;
252
+ var ServerGlyph = import_icons.ServerIcon;
253
+ var TerminalGlyph = import_icons.TerminalIcon;
254
+ var FileGlyph = import_icons.FilePageIcon;
255
+ var CodeGlyph = import_icons.CodeIcon;
256
+ var StarGlyph = import_icons.StarIcon;
257
+ var PlusGlyph = import_icons.PlusIcon;
258
+ var EyeGlyph = import_icons.EyeIcon;
259
+ var EyeOffGlyph = import_icons.EyeOffIcon;
260
+ var LockGlyph = import_icons.LockIcon;
261
+ var ExternalGlyph = import_icons.ExternalLinkIcon;
262
+ var TrashGlyph = import_icons.TrashIcon;
263
+ var TagGlyph = import_icons.TagIcon;
264
+ var ShieldGlyph = import_icons.ShieldIcon;
265
+ var BuildingGlyph = import_icons.BuildingIcon;
266
+ var ChevronLeftGlyph = import_icons.ChevronLeftIcon;
267
+ var GridGlyph = import_icons.LayoutGridIcon;
268
+ var PlugGlyph = import_icons.PlugIcon;
310
269
  var FAMILY_GLYPHS = {
311
270
  databases: DatabaseGlyph,
312
271
  server_network: ServerGlyph,
@@ -320,78 +279,34 @@ function definitionGlyph(key, family) {
320
279
  if (key === "username_password" || key === "website_login") return import_icons.GlobeIcon;
321
280
  return FAMILY_GLYPHS[family] ?? KeyGlyph;
322
281
  }
323
- var XGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }), [5, 5]);
324
- var PencilGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
325
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 20h9" }),
326
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z" })
327
- ] }), [2, 2]);
328
- var ClockGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
329
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
330
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 6v6l4 2" })
331
- ] }), [1, 1]);
332
- var MoreGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
333
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "1" }),
334
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "19", cy: "12", r: "1" }),
335
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "5", cy: "12", r: "1" })
336
- ] }), [3, 3]);
337
- var ShareGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8M16 6l-4-4-4 4M12 2v13" }) }), [3, 3]);
338
- var ListGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" }), [2, 2]);
339
- var ImportGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" }), [2, 2]);
340
- var ExportGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12" }), [2, 2]);
341
- var ChevronDownGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m6 9 6 6 6-6" }), [5, 5]);
342
- var ChevronRightGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m9 18 6-6-6-6" }), [8, 8]);
343
- var SortGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m3 16 4 4 4-4M7 20V4M21 8l-4-4-4 4M17 4v16" }), [2, 2]);
344
- var UserGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
345
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "8", r: "4" }),
346
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2" })
347
- ] }), [5, 5]);
348
- var MoveGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M5 9 2 12l3 3M9 5l3-3 3 3M15 19l-3 3-3-3M19 9l3 3-3 3M2 12h20M12 2v20" }), [1, 1]);
282
+ var XGlyph = import_icons.XIcon;
283
+ var PencilGlyph = import_icons.PencilIcon;
284
+ var ClockGlyph = import_icons.ClockIcon;
285
+ var MoreGlyph = import_icons.MoreHorizontalIcon;
286
+ var ShareGlyph = import_icons.ShareIcon;
287
+ var ListGlyph = import_icons.ListIcon;
288
+ var ImportGlyph = import_icons.DownloadIcon;
289
+ var ExportGlyph = import_icons.UploadIcon;
290
+ var ChevronDownGlyph = import_icons.ChevronDownIcon;
291
+ var ChevronRightGlyph = import_icons.ChevronRightIcon;
292
+ var SortGlyph = import_icons.ArrowUpDownIcon;
293
+ var UserGlyph = import_icons.UserIcon;
294
+ var MoveGlyph = import_icons.MoveIcon;
349
295
  var SafeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
350
296
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
351
297
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "4" }),
352
298
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 8v1M12 15v1M8 12h1M15 12h1" })
353
299
  ] }), [2, 2]);
354
- var RestoreGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
355
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 12a9 9 0 1 0 3-6.7L3 8" }),
356
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 3v5h5" })
357
- ] }), [2, 2]);
358
- var QrGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
359
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }),
360
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }),
361
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }),
362
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 14h3v3h-3zM20 14v.01M14 20h.01M17 20h4v-3" })
363
- ] }), [2, 2]);
364
- var CameraGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
365
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3z" }),
366
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "13", r: "3" })
367
- ] }), [1, 1]);
368
- var CheckGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 6 9 17l-5-5" }), [3, 3]);
369
- var PowerGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
370
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 2v10" }),
371
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" })
372
- ] }), [2, 2]);
373
- var RefreshGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
374
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 12a9 9 0 0 1-15.5 6.2L3 16" }),
375
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 12a9 9 0 0 1 15.5-6.2L21 8" }),
376
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 3v5h-5M3 21v-5h5" })
377
- ] }), [2, 2]);
378
- var SlidersGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6" }) }), [0, 0]);
379
- var UploadGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
380
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
381
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m17 8-5-5-5 5M12 3v12" })
382
- ] }), [2, 2]);
383
- var FingerprintGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
384
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" }),
385
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 13.12c0 2.38 0 6.38-1 8.88" }),
386
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M17.29 21.02c.12-.6.43-2.3.5-3.02" }),
387
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 12a10 10 0 0 1 18-6" }),
388
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 16h.01" }),
389
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21.8 16c.2-2 .131-5.354 0-6" }),
390
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" }),
391
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M8.65 22c.21-.66.45-1.32.57-2" }),
392
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M9 6.8a6 6 0 0 1 9 5.2v2" })
393
- ] }), [1, 1]);
394
- var SendGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14.5 21.7a.5.5 0 0 0 .9 0L22 3a.5.5 0 0 0-.6-.6L2.3 9.1a.5.5 0 0 0 0 .9l7.9 3.2a2 2 0 0 1 1.1 1.1zM21.9 2.1 10.9 13.1" }), [1, 1]);
300
+ var RestoreGlyph = import_icons.RotateCcwIcon;
301
+ var QrGlyph = import_icons.QrCodeIcon;
302
+ var CameraGlyph = import_icons.CameraIcon;
303
+ var CheckGlyph = import_icons.CheckIcon;
304
+ var PowerGlyph = import_icons.PowerIcon;
305
+ var RefreshGlyph = import_icons.RefreshCwIcon;
306
+ var SlidersGlyph = import_icons.SlidersVerticalIcon;
307
+ var UploadGlyph = import_icons.UploadIcon;
308
+ var FingerprintGlyph = import_icons.FingerprintPatternIcon;
309
+ var SendGlyph = import_icons.SendIcon;
395
310
 
396
311
  // src/auth/identity.ts
397
312
  var CONFIRM_RETURN_KEY = "matrx-vault:confirming-as";
@@ -9970,4 +9885,33 @@ function vaultInventoryScope(inventory, clicked = null) {
9970
9885
  function itemIdAt(target) {
9971
9886
  return target?.closest("[data-item]")?.getAttribute("data-item") ?? null;
9972
9887
  }
9888
+
9889
+ // src/io/empty-read.ts
9890
+ var HOLDINGS_DOOR_MIGRATION = "migrations/campaign/errorshonest_s8_a_credential_says_how_much_it_holds.sql";
9891
+ function holdingsDoorIsAbsent(code) {
9892
+ return code === "PGRST202" || code === "42883";
9893
+ }
9894
+ function staleAlarm(total) {
9895
+ return `Your vault has ${total} ${total === 1 ? "item" : "items"} but none of their fields or files could be read. Either every one of these items is genuinely still empty, or the database refused the read without reporting an error \u2014 the second is a known failure mode of this screen (DD-160). Nothing has been lost: reload, and if the items are still blank, report it rather than re-entering the credentials.`;
9896
+ }
9897
+ function emptyReadAlarm(total, emptyIds, holdings) {
9898
+ if (emptyIds.length === 0) return null;
9899
+ if (holdings.state === "answered") {
9900
+ const asked = new Set(emptyIds);
9901
+ const unread = holdings.rows.filter(
9902
+ (r) => asked.has(r.credential_item_id) && (r.field_count > 0 || r.file_count > 0)
9903
+ );
9904
+ if (unread.length === 0) return null;
9905
+ const n = unread.length;
9906
+ return `${n === 1 ? "One credential" : `${n} credentials`} in this vault ${n === 1 ? "holds" : "hold"} fields or files this screen could not read \u2014 the database refused the read without reporting an error, a known failure mode of this screen (DD-160). Nothing has been lost: reload, and if ${n === 1 ? "it is" : "they are"} still blank, report it rather than re-entering the credentials.`;
9907
+ }
9908
+ if (emptyIds.length < total) return null;
9909
+ if (holdings.state === "absent") {
9910
+ console.warn(
9911
+ `[vault] users.credential_item_holdings is not on this database (${holdings.why}); the empty-read alarm falls back to the whole-vault rule until ${HOLDINGS_DOOR_MIGRATION} is applied.`
9912
+ );
9913
+ return staleAlarm(total);
9914
+ }
9915
+ return `${staleAlarm(total)} (The check that tells an empty credential from an unreadable one did not answer either: ${holdings.why})`;
9916
+ }
9973
9917
  //# sourceMappingURL=index.cjs.map