@ai-matrx/vault 0.1.2 → 0.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.4 — 2026-10-17
4
+
5
+ - Rows size by their own pane, never the window: the same item pane is a phone, a side panel or a
6
+ window's third column, and at a 1024px window its boxes overran their columns.
7
+ - Three panes only from 1120px wide (was 960); below that the list and item share the room.
8
+ - A side panel opened on "This page" shows the opened item or new login — it showed a blank panel.
9
+ - A login saved with its website is offered on that website (fill in browser on).
10
+ - `localhost`, IP and router addresses are websites when pasted into New item.
11
+ - Every vault icon carries its measured ink, so icon + label buttons sit centred.
12
+
13
+ ### Consumer action
14
+
15
+ - None; update to latest.
16
+
17
+ ## 0.1.3
18
+
19
+ Automatic changed-only republish (docs/metadata drift since the last published version; verified: `git diff a58de4849b 74c16f7e03 -- apps/shared/vault/src`
20
+ has no shipped-source changes outside tests, fixtures and docs). No consumer action required.
21
+
3
22
  ## 0.1.2 — 2026-10-16
4
23
 
5
24
  - Whose an item is is always shown: a badge in the item header reads Personal, the organization's
package/README.md CHANGED
@@ -17,6 +17,10 @@ const host = {
17
17
  <VaultApp port={port} host={host} location={location} onLocationChange={(next, how) => writeToUrl(next, how)} notify={toast} />;
18
18
  ```
19
19
 
20
+ - **Confirm it's you returns through the host's sign-in callback**: pass `redirectTo` to
21
+ `createSupabaseIdentity` as the host's accepted OAuth return address carrying the current page
22
+ (the web app: `/auth/callback?redirectTo=<this address>`). A bare page URL is usually not on the
23
+ auth server's allow-list, and the person lands on the home page unconfirmed.
20
24
  - **Hosts own identity only**: their `Api` (`@ai-matrx/api`), their Supabase client, the address.
21
25
  - **The address carries everything** (`locationToParams` / `locationFromParams`): vault, view, search,
22
26
  sort, item, edit/new, the open panel.
package/dist/index.cjs CHANGED
@@ -200,89 +200,90 @@ var import_controls = require("@ai-matrx/design-system/controls");
200
200
 
201
201
  // src/glyphs.tsx
202
202
  var import_jsx_runtime2 = require("react/jsx-runtime");
203
- function glyph(paths) {
203
+ function glyph(paths, air = [1, 1]) {
204
+ const style = { "--matrx-glyph-air-l": air[0], "--matrx-glyph-air-r": air[1] };
204
205
  return function VaultGlyph({ className }) {
205
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: paths });
206
+ 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 });
206
207
  };
207
208
  }
208
209
  var KeyGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
209
210
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "7.5", cy: "15.5", r: "5.5" }),
210
211
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m21 2-9.6 9.6M15.5 7.5l3 3" })
211
- ] }));
212
+ ] }), [1, 2]);
212
213
  var GlobeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
213
214
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
214
215
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
215
- ] }));
216
+ ] }), [1, 1]);
216
217
  var NoteGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
217
218
  /* @__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" }),
218
219
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 2v4a2 2 0 0 0 2 2h4M16 13H8M16 17H8" })
219
- ] }));
220
+ ] }), [3, 3]);
220
221
  var CardGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
221
222
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2" }),
222
223
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M2 10h20" })
223
- ] }));
224
+ ] }), [1, 1]);
224
225
  var PersonGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
225
226
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "8", r: "5" }),
226
227
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 21a8 8 0 0 0-16 0" })
227
- ] }));
228
+ ] }), [3, 3]);
228
229
  var DatabaseGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
229
230
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
230
231
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 5v14a9 3 0 0 0 18 0V5M3 12a9 3 0 0 0 18 0" })
231
- ] }));
232
+ ] }), [2, 2]);
232
233
  var ServerGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
233
234
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "2", width: "20", height: "8", rx: "2" }),
234
235
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "14", width: "20", height: "8", rx: "2" }),
235
236
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M6 6h.01M6 18h.01" })
236
- ] }));
237
- 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" }) }));
237
+ ] }), [1, 1]);
238
+ 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]);
238
239
  var FileGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
239
240
  /* @__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" }),
240
241
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 2v4a2 2 0 0 0 2 2h4" })
241
- ] }));
242
- 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" }) }));
243
- 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" }));
244
- var PlusGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 5v14M5 12h14" }));
242
+ ] }), [3, 3]);
243
+ 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]);
244
+ 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]);
245
+ var PlusGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 5v14M5 12h14" }), [4, 4]);
245
246
  var CopyGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
246
247
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
247
248
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
248
- ] }));
249
+ ] }), [1, 1]);
249
250
  var EyeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
250
251
  /* @__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" }),
251
252
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "3" })
252
- ] }));
253
- 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" }) }));
253
+ ] }), [1, 1]);
254
+ 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]);
254
255
  var LockGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
255
256
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2" }),
256
257
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
257
- ] }));
258
- 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" }) }));
259
- 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" }) }));
258
+ ] }), [2, 2]);
259
+ 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]);
260
+ 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]);
260
261
  var ArchiveGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
261
262
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "2", y: "3", width: "20", height: "5", rx: "1" }),
262
263
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4" })
263
- ] }));
264
+ ] }), [1, 1]);
264
265
  var TagGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
265
266
  /* @__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" }),
266
267
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "7.5", cy: "7.5", r: ".5" })
267
- ] }));
268
- 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" }) }));
268
+ ] }), [1, 1]);
269
+ 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]);
269
270
  var BuildingGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
270
271
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2" }),
271
272
  /* @__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" })
272
- ] }));
273
+ ] }), [3, 3]);
273
274
  var UsersGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
274
275
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
275
276
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "9", cy: "7", r: "4" }),
276
277
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8" })
277
- ] }));
278
- var ChevronLeftGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m15 18-6-6 6-6" }));
278
+ ] }), [1, 1]);
279
+ var ChevronLeftGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m15 18-6-6 6-6" }), [8, 8]);
279
280
  var GridGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
280
281
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }),
281
282
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }),
282
283
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }),
283
284
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "14", width: "7", height: "7", rx: "1" })
284
- ] }));
285
- 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" }) }));
285
+ ] }), [2, 2]);
286
+ 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]);
286
287
  var FAMILY_GLYPHS = {
287
288
  databases: DatabaseGlyph,
288
289
  server_network: ServerGlyph,
@@ -296,78 +297,78 @@ function definitionGlyph(key, family) {
296
297
  if (key === "username_password" || key === "website_login") return GlobeGlyph;
297
298
  return FAMILY_GLYPHS[family] ?? KeyGlyph;
298
299
  }
299
- var XGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }));
300
+ var XGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }), [5, 5]);
300
301
  var PencilGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
301
302
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 20h9" }),
302
303
  /* @__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" })
303
- ] }));
304
+ ] }), [2, 2]);
304
305
  var ClockGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
305
306
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
306
307
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 6v6l4 2" })
307
- ] }));
308
+ ] }), [1, 1]);
308
309
  var MoreGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
309
310
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "1" }),
310
311
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "19", cy: "12", r: "1" }),
311
312
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "5", cy: "12", r: "1" })
312
- ] }));
313
- 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" }) }));
313
+ ] }), [3, 3]);
314
+ 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]);
314
315
  var HistoryGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
315
316
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
316
317
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 3v5h5M12 7v5l4 2" })
317
- ] }));
318
- var ListGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" }));
318
+ ] }), [2, 2]);
319
+ var ListGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" }), [2, 2]);
319
320
  var SettingsGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
320
321
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" }),
321
322
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "3" })
322
- ] }));
323
- 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" }));
324
- 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" }));
325
- var ChevronDownGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m6 9 6 6 6-6" }));
326
- var ChevronRightGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m9 18 6-6-6-6" }));
327
- var SortGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m3 16 4 4 4-4M7 20V4M21 8l-4-4-4 4M17 4v16" }));
323
+ ] }), [2, 2]);
324
+ 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]);
325
+ 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]);
326
+ var ChevronDownGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m6 9 6 6 6-6" }), [5, 5]);
327
+ var ChevronRightGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m9 18 6-6-6-6" }), [8, 8]);
328
+ 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]);
328
329
  var UserGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
329
330
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "8", r: "4" }),
330
331
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2" })
331
- ] }));
332
- 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" }));
332
+ ] }), [5, 5]);
333
+ 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]);
333
334
  var SafeGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
334
335
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
335
336
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "4" }),
336
337
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 8v1M12 15v1M8 12h1M15 12h1" })
337
- ] }));
338
+ ] }), [2, 2]);
338
339
  var RestoreGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
339
340
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 12a9 9 0 1 0 3-6.7L3 8" }),
340
341
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 3v5h5" })
341
- ] }));
342
+ ] }), [2, 2]);
342
343
  var QrGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
343
344
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }),
344
345
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }),
345
346
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }),
346
347
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 14h3v3h-3zM20 14v.01M14 20h.01M17 20h4v-3" })
347
- ] }));
348
+ ] }), [2, 2]);
348
349
  var CameraGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
349
350
  /* @__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" }),
350
351
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "13", r: "3" })
351
- ] }));
352
- var CheckGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 6 9 17l-5-5" }));
352
+ ] }), [1, 1]);
353
+ var CheckGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M20 6 9 17l-5-5" }), [3, 3]);
353
354
  var PowerGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
354
355
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 2v10" }),
355
356
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" })
356
- ] }));
357
+ ] }), [2, 2]);
357
358
  var RefreshGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
358
359
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 12a9 9 0 0 1-15.5 6.2L3 16" }),
359
360
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 12a9 9 0 0 1 15.5-6.2L21 8" }),
360
361
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 3v5h-5M3 21v-5h5" })
361
- ] }));
362
- 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" }) }));
362
+ ] }), [2, 2]);
363
+ 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]);
363
364
  var DownloadGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
364
365
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
365
366
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m7 10 5 5 5-5M12 15V3" })
366
- ] }));
367
+ ] }), [2, 2]);
367
368
  var UploadGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
368
369
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
369
370
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "m17 8-5-5-5 5M12 3v12" })
370
- ] }));
371
+ ] }), [2, 2]);
371
372
  var FingerprintGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
372
373
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" }),
373
374
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M14 13.12c0 2.38 0 6.38-1 8.88" }),
@@ -378,8 +379,8 @@ var FingerprintGlyph = glyph(/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(impor
378
379
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" }),
379
380
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M8.65 22c.21-.66.45-1.32.57-2" }),
380
381
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M9 6.8a6 6 0 0 1 9 5.2v2" })
381
- ] }));
382
- 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" }));
382
+ ] }), [1, 1]);
383
+ 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]);
383
384
 
384
385
  // src/auth/identity.ts
385
386
  var SAME_PERSON = "That signed in a different account. Use the account this vault belongs to.";
@@ -589,6 +590,22 @@ var import_design_system3 = require("@ai-matrx/design-system");
589
590
  var import_design_system4 = require("@ai-matrx/design-system");
590
591
  var import_jsx_runtime4 = require("react/jsx-runtime");
591
592
  var InPanel = (0, import_react4.createContext)(false);
593
+ var Room = (0, import_react4.createContext)(null);
594
+ var ROOMY_AT = 560;
595
+ function useRoomOf(ref) {
596
+ const [room, setRoom] = (0, import_react4.useState)(null);
597
+ (0, import_react4.useEffect)(() => {
598
+ const el = ref.current;
599
+ if (!el || typeof ResizeObserver === "undefined") return;
600
+ const read = () => setRoom(el.getBoundingClientRect().width >= ROOMY_AT ? "roomy" : "compact");
601
+ read();
602
+ const ro = new ResizeObserver(read);
603
+ ro.observe(el);
604
+ return () => ro.disconnect();
605
+ }, [ref]);
606
+ return room;
607
+ }
608
+ var RoomProvider = Room.Provider;
592
609
  function Section({ title, actions, children, className }) {
593
610
  const flat = (0, import_react4.useContext)(InPanel);
594
611
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { className: (0, import_design_system4.cn)("flex flex-col gap-1.5", className), children: [
@@ -599,10 +616,16 @@ function Section({ title, actions, children, className }) {
599
616
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: flat ? "-mx-3 flex flex-col sm:-mx-4" : "flex flex-col rounded-xl border border-border bg-card py-1", children })
600
617
  ] });
601
618
  }
619
+ var ROW_GRID = {
620
+ compact: "grid-cols-[5.75rem_minmax(0,1fr)_auto] gap-x-2 px-3",
621
+ roomy: "grid-cols-[9rem_minmax(0,1fr)_auto] gap-x-3 px-4",
622
+ viewport: "grid-cols-[5.75rem_minmax(0,1fr)_auto] gap-x-2 px-3 sm:grid-cols-[9rem_minmax(0,1fr)_auto] sm:gap-x-3 sm:px-4"
623
+ };
602
624
  function Row({ label, hint, children, actions, top = false, className }) {
603
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_design_system4.cn)("grid min-h-11 grid-cols-[5.75rem_minmax(0,1fr)_auto] gap-x-2 px-3 py-1 sm:grid-cols-[9rem_minmax(0,1fr)_auto] sm:gap-x-3 sm:px-4", top ? "items-start" : "items-center", className), children: [
625
+ const room = (0, import_react4.useContext)(Room);
626
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_design_system4.cn)("grid min-h-11 py-1", ROW_GRID[room ?? "viewport"], top ? "items-start" : "items-center", className), children: [
604
627
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_design_system4.cn)("flex min-w-0 flex-col text-xs leading-tight text-muted-foreground", top && "pt-2.5"), children: [
605
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "line-clamp-2 break-words sm:truncate", children: label }),
628
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: room === "roomy" ? "truncate" : room === "compact" ? "line-clamp-2 break-words" : "line-clamp-2 break-words sm:truncate", children: label }),
606
629
  hint ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "line-clamp-2 break-words text-xs text-disabled-foreground", children: hint }) : null
607
630
  ] }),
608
631
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: (0, import_design_system4.cn)("min-w-0 text-sm", top && "py-1.5"), children }),
@@ -893,6 +916,10 @@ function rebaseDraft(oldBase, newBase, draft) {
893
916
  authenticator: draft.authenticator
894
917
  };
895
918
  }
919
+ function panesShown(mode, specialView, showingDetail) {
920
+ if (mode === "stack") return { list: !showingDetail, detail: showingDetail };
921
+ return { list: true, detail: !specialView };
922
+ }
896
923
 
897
924
  // src/definitions.ts
898
925
  var FAMILY_LABELS = {
@@ -979,9 +1006,10 @@ function inferFromUrl(raw, definitions) {
979
1006
  } catch {
980
1007
  return null;
981
1008
  }
982
- if (!url.hostname.includes(".")) return null;
1009
+ const bare = url.hostname === "localhost" || /^\d{1,3}(\.\d{1,3}){3}$/.test(url.hostname) || url.hostname.startsWith("[");
1010
+ if (!bare && !url.hostname.includes(".")) return null;
983
1011
  const labels = url.hostname.replace(/^www\./, "").split(".");
984
- const brand = labels.length > 1 ? labels[labels.length - 2] ?? labels[0] ?? "" : labels[0] ?? "";
1012
+ const brand = bare ? url.host : labels.length > 1 ? labels[labels.length - 2] ?? labels[0] ?? "" : labels[0] ?? "";
985
1013
  const login = definitions.find((d) => d.key === "website_login") ?? definitions.find((d) => d.key === "username_password");
986
1014
  const alternatives = definitions.filter((d) => d.providerKey !== null && d.providerKey.toLowerCase() === brand.toLowerCase()).map((d) => d.key);
987
1015
  return {
@@ -5555,6 +5583,8 @@ function ItemPane(props) {
5555
5583
  const dirty = editing && isDirty(base, draft);
5556
5584
  const declared = definition?.fields ?? [];
5557
5585
  const prev = (0, import_react26.useRef)(null);
5586
+ const paneRef = (0, import_react26.useRef)(null);
5587
+ const room = useRoomOf(paneRef);
5558
5588
  (0, import_react26.useEffect)(() => {
5559
5589
  const was = prev.current;
5560
5590
  const id = item?.id ?? null;
@@ -5743,7 +5773,7 @@ function ItemPane(props) {
5743
5773
  ] }) : null
5744
5774
  ] });
5745
5775
  const filesProps = item ? { item, port, host, definition, organizations, arg: null, onClose: () => void 0, onChanged, onPanel } : null;
5746
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("article", { "aria-label": item?.name ?? "New item", className: (0, import_design_system17.cn)(import_controls21.CONTROLS_CONTAINER_CLASS, "flex h-full min-h-0 flex-col bg-background"), children: [
5776
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RoomProvider, { value: room, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("article", { ref: paneRef, "aria-label": item?.name ?? "New item", className: (0, import_design_system17.cn)(import_controls21.CONTROLS_CONTAINER_CLASS, "flex h-full min-h-0 flex-col bg-background"), children: [
5747
5777
  header,
5748
5778
  error ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { role: "alert", className: "border-b border-border bg-muted px-5 py-2 text-sm text-destructive", children: error }) : null,
5749
5779
  notice && !editing ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { role: "status", className: "border-b border-border bg-muted px-5 py-2 text-sm text-warning", children: notice }) : null,
@@ -5906,7 +5936,7 @@ function ItemPane(props) {
5906
5936
  formatDate(item.createdAt)
5907
5937
  ] })
5908
5938
  ] }) : null }) })
5909
- ] });
5939
+ ] }) });
5910
5940
  }
5911
5941
 
5912
5942
  // src/ItemList.tsx
@@ -7626,7 +7656,7 @@ function Sidebar({ vault, choices, onVault, view, allCount, deletedCount, views,
7626
7656
 
7627
7657
  // src/VaultApp.tsx
7628
7658
  var import_jsx_runtime39 = require("react/jsx-runtime");
7629
- var FULL_AT = 960;
7659
+ var FULL_AT = 1120;
7630
7660
  var SPLIT_AT = 640;
7631
7661
  var NO_HOST = {};
7632
7662
  var ITEM_PANELS = {
@@ -7983,7 +8013,7 @@ function Workspace({ port, host = NO_HOST, layout = "auto", location, onLocation
7983
8013
  );
7984
8014
  }
7985
8015
  const grid = mode === "full" ? "grid-cols-[15rem_21rem_minmax(0,1fr)]" : mode === "split" ? "grid-cols-[19rem_minmax(0,1fr)]" : "grid-cols-1";
7986
- const detailHere = specialView ? false : true;
8016
+ const shown = panesShown(mode, specialView !== null, showingDetail);
7987
8017
  return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { ref: rootRef, className: "flex h-full min-h-0 w-full flex-col bg-background text-foreground", children: [
7988
8018
  snap.unavailable.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { role: "status", className: "flex items-center gap-3 border-b border-border bg-muted px-4 py-2 text-sm", children: [
7989
8019
  /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "min-w-0 flex-1 truncate text-warning", children: [
@@ -8013,8 +8043,8 @@ function Workspace({ port, host = NO_HOST, layout = "auto", location, onLocation
8013
8043
  hasPage: host.page !== void 0
8014
8044
  }
8015
8045
  ) : null,
8016
- mode === "stack" && showingDetail ? null : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: specialView && mode !== "stack" ? "col-span-2 min-h-0" : "min-h-0", children: list }),
8017
- detailHere ? mode === "stack" ? showingDetail ? detail : null : detail : null,
8046
+ shown.list ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: specialView && mode !== "stack" ? "col-span-2 min-h-0" : "min-h-0", children: list }) : null,
8047
+ shown.detail ? detail : null,
8018
8048
  panel
8019
8049
  ] })
8020
8050
  ] });
@@ -8771,6 +8801,9 @@ function createApiVaultPort(api, options = {}) {
8771
8801
  provider_key: definition.providerKey,
8772
8802
  tags: draft.tags,
8773
8803
  login_urls: draft.loginUrls,
8804
+ // A login a person saves with its website is offered on that website (the server's own
8805
+ // default is off, which made "Save a login" on a page answer "No saved login" there).
8806
+ ...draft.loginUrls.length > 0 ? { browser_fill_enabled: true } : {},
8774
8807
  notes: draft.notes || null,
8775
8808
  principal: organizationId ? { type: "organization", organization_id: organizationId } : { type: "user" },
8776
8809
  initiation: "user",