@ai-matrx/vault 0.1.22 → 0.1.23
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 +4 -0
- package/dist/index.cjs +64 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +64 -58
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.23
|
|
4
|
+
|
|
5
|
+
- **The Vault and Show pickers read in full at every compact width (640-1119px).** They no longer share a row with the Authenticator and More buttons (which squeezed each to ~90px: "All ite…", long vault names cut): the pickers take the whole row (each at least 11rem; one above the other in the 19rem split column, side by side once there is room), and the Authenticator and More buttons moved onto the search row beside the + (`ItemList` `actions`; Trash, Authenticator and the extension's page view carry them on their own search row). Nothing removed, every button one press away as before. Guard: `src/parity-review-0-1-22.test.tsx` § 2. Consumer action: none.
|
|
6
|
+
|
|
3
7
|
## 0.1.22
|
|
4
8
|
|
|
5
9
|
- **A member's credential shared into an organization is the organization's, never "Personal".** An item in an organization's list is the viewer's own only when the viewer owns it (`platform.list_my_organizations` `user_id`, else the owner of the person's own list); a member's own credential shared into the organization is attributed to that organization (`VaultOwner.memberShared`), counted there, its badge says "A member's own credential, shared into <org>", and Share / Delete show disabled with the reason (`manageUnavailableReason`, `ownerDetail`); Copy stays offered to an editor. Consumer action: none.
|
package/dist/index.cjs
CHANGED
|
@@ -6556,7 +6556,7 @@ function subtitleOf(item, withOwner) {
|
|
|
6556
6556
|
const what = loginSiteOf(item) || item.definitionLabel;
|
|
6557
6557
|
return withOwner ? `${what} \xB7 ${item.owner.label}` : what;
|
|
6558
6558
|
}
|
|
6559
|
-
function ItemList({ title, items, definitions, port, selectedId, onSelect, query, onQuery, sort, onSort, onNew, matchingIds, header, showOwner, canSortViewed = false, onRefresh, refreshing = false, rowContextMenu = "package", rowMenuItems, stillLoading, favorites, onToggleFavorite }) {
|
|
6559
|
+
function ItemList({ title, items, definitions, port, selectedId, onSelect, query, onQuery, sort, onSort, onNew, matchingIds, header, actions, showOwner, canSortViewed = false, onRefresh, refreshing = false, rowContextMenu = "package", rowMenuItems, stillLoading, favorites, onToggleFavorite }) {
|
|
6560
6560
|
const sorts = SORTS2.filter((s) => canSortViewed || s.value !== "viewed");
|
|
6561
6561
|
const pinned = matchingIds ? items.filter((i) => matchingIds.has(i.id)) : [];
|
|
6562
6562
|
const rest = matchingIds ? items.filter((i) => !matchingIds.has(i.id)) : items;
|
|
@@ -6584,6 +6584,7 @@ function ItemList({ title, items, definitions, port, selectedId, onSelect, query
|
|
|
6584
6584
|
header,
|
|
6585
6585
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
6586
6586
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_controls23.SearchField, { value: query, onChange: (e) => onQuery(e.target.value), onKeyDown, placeholder: `Search ${title}`, className: "min-w-0 flex-1", "aria-label": "Search the vault" }),
|
|
6587
|
+
actions,
|
|
6587
6588
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_controls23.Button, { variant: "primary", icon: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(PlusGlyph, {}), "aria-label": "New item", onClick: onNew })
|
|
6588
6589
|
] }),
|
|
6589
6590
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between gap-2 px-1", children: [
|
|
@@ -8644,65 +8645,66 @@ function Workspace({ port, host = NO_HOST, layout = "auto", location, onLocation
|
|
|
8644
8645
|
}
|
|
8645
8646
|
const hasFavorites = port.lists.favorites !== void 0;
|
|
8646
8647
|
const title = loc.vault === "all" && loc.view === "all" ? "All items" : viewLabel(loc.view, views);
|
|
8647
|
-
const compactHeader = mode === "full" ? void 0 : (
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
8661
|
-
|
|
8662
|
-
|
|
8663
|
-
|
|
8664
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8665
|
-
|
|
8666
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.
|
|
8667
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8668
|
-
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8672
|
-
|
|
8673
|
-
|
|
8674
|
-
|
|
8675
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8676
|
-
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8680
|
-
|
|
8681
|
-
|
|
8682
|
-
|
|
8683
|
-
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
|
|
8690
|
-
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
] }) : null
|
|
8699
|
-
] })
|
|
8648
|
+
const compactHeader = mode === "full" ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "grid grid-cols-[repeat(auto-fit,minmax(11rem,1fr))] gap-2", "data-vault-compact-header": "", children: [
|
|
8649
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(VaultSelect, { value: loc.vault, choices, onChange: (vault) => go({ vault, itemId: null, panel: null }) }),
|
|
8650
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_controls35.Select, { value: loc.view, onValueChange: (view) => go({ view, itemId: null, panel: null }), options: viewOptions(views, inThisVault.length, deleted.length, hasFavorites, port.lists.recents !== void 0, host.page !== void 0), "aria-label": "Show" })
|
|
8651
|
+
] });
|
|
8652
|
+
const compactActions = mode === "full" ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex shrink-0 items-center gap-2", "data-vault-compact-actions": "", children: [
|
|
8653
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
8654
|
+
import_controls35.Button,
|
|
8655
|
+
{
|
|
8656
|
+
variant: loc.view === "authenticator" ? "outline" : "quiet",
|
|
8657
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LockGlyph, {}),
|
|
8658
|
+
"aria-label": AUTHENTICATOR_LABEL,
|
|
8659
|
+
"aria-pressed": loc.view === "authenticator",
|
|
8660
|
+
title: AUTHENTICATOR_LABEL,
|
|
8661
|
+
onClick: () => go({ view: loc.view === "authenticator" ? "all" : "authenticator", itemId: null, mode: "view", panel: null })
|
|
8662
|
+
}
|
|
8663
|
+
),
|
|
8664
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenu, { children: [
|
|
8665
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_design_system26.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_controls35.Button, { variant: "quiet", icon: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MoreGlyph, {}), "aria-label": "Vault actions" }) }),
|
|
8666
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuContent, { align: "end", children: [
|
|
8667
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => go({ panel: "import" }), children: [
|
|
8668
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ImportGlyph, { className: "size-4" }),
|
|
8669
|
+
"Import"
|
|
8670
|
+
] }),
|
|
8671
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => go({ panel: "export" }), children: [
|
|
8672
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ExportGlyph, { className: "size-4" }),
|
|
8673
|
+
"Export"
|
|
8674
|
+
] }),
|
|
8675
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => go({ panel: "backup" }), children: [
|
|
8676
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SafeGlyph, { className: "size-4" }),
|
|
8677
|
+
"Backup"
|
|
8678
|
+
] }),
|
|
8679
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => go({ panel: "devices" }), children: [
|
|
8680
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ShieldGlyph, { className: "size-4" }),
|
|
8681
|
+
"Browsers that fill"
|
|
8682
|
+
] }),
|
|
8683
|
+
host.nativeImport ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => go({ panel: "import-passkeys" }), children: [
|
|
8684
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ImportGlyph, { className: "size-4" }),
|
|
8685
|
+
"Import passkeys"
|
|
8686
|
+
] }) : null,
|
|
8687
|
+
host.nativeProvider && host.nativeProvider.status !== "unavailable" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: host.nativeProvider.openSetup, children: [
|
|
8688
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ShieldGlyph, { className: "size-4" }),
|
|
8689
|
+
"System AutoFill"
|
|
8690
|
+
] }) : null,
|
|
8691
|
+
host.lock?.lock ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: () => void host.lock?.lock?.(), children: [
|
|
8692
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LockGlyph, { className: "size-4" }),
|
|
8693
|
+
"Lock"
|
|
8694
|
+
] }) : null,
|
|
8695
|
+
host.openWebVault ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_design_system26.DropdownMenuItem, { onSelect: host.openWebVault, children: [
|
|
8696
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ExternalGlyph, { className: "size-4" }),
|
|
8697
|
+
"Open on the web"
|
|
8698
|
+
] }) : null
|
|
8700
8699
|
] })
|
|
8701
8700
|
] })
|
|
8702
|
-
);
|
|
8701
|
+
] });
|
|
8703
8702
|
const viewHeader = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
8704
8703
|
compactHeader,
|
|
8705
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.
|
|
8704
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8705
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_controls35.SearchField, { value: loc.q, onChange: (e) => go({ q: e.target.value }, "replace"), placeholder: `Search ${viewLabel(loc.view, views)}`, "aria-label": `Search ${viewLabel(loc.view, views)}`, className: "min-w-0 flex-1" }),
|
|
8706
|
+
compactActions
|
|
8707
|
+
] })
|
|
8706
8708
|
] });
|
|
8707
8709
|
const viewProps = { port, host, items: inThisVault, deleted, definitions, query: loc.q, onOpen: (id) => go({ view: "all", itemId: id, mode: "view", panel: null }), onChanged: load, header: viewHeader };
|
|
8708
8710
|
const pageView = loc.view === "page" && host.page && !loc.q ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
@@ -8720,7 +8722,10 @@ function Workspace({ port, host = NO_HOST, layout = "auto", location, onLocation
|
|
|
8720
8722
|
onNewForPage: (url) => go({ mode: "new", kind: null, url, itemId: null, panel: null }),
|
|
8721
8723
|
onBrowse: () => go({ view: "all", itemId: null }),
|
|
8722
8724
|
onChanged: load,
|
|
8723
|
-
...compactHeader ? { header:
|
|
8725
|
+
...compactHeader ? { header: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
8726
|
+
compactHeader,
|
|
8727
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "flex justify-end", children: compactActions })
|
|
8728
|
+
] }) } : {}
|
|
8724
8729
|
}
|
|
8725
8730
|
) : null;
|
|
8726
8731
|
const specialView = pageView ?? (loc.view === "authenticator" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(AuthenticatorView, { ...viewProps }) : loc.view === "trash" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(TrashView, { ...viewProps }) : null);
|
|
@@ -8747,7 +8752,8 @@ function Workspace({ port, host = NO_HOST, layout = "auto", location, onLocation
|
|
|
8747
8752
|
rowContextMenu: host.rowContextMenu ?? "package",
|
|
8748
8753
|
...host.rowMenuItems ? { rowMenuItems: host.rowMenuItems } : {},
|
|
8749
8754
|
...matchingIds ? { matchingIds } : {},
|
|
8750
|
-
...compactHeader ? { header: compactHeader } : {}
|
|
8755
|
+
...compactHeader ? { header: compactHeader } : {},
|
|
8756
|
+
...compactActions ? { actions: compactActions } : {}
|
|
8751
8757
|
}
|
|
8752
8758
|
);
|
|
8753
8759
|
const showingDetail = loc.mode === "new" || loc.itemId !== null;
|