@burdenoff/microfe-vibecontrols 2026.601.19 → 2026.601.21
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/dist/components/notes/NoteCard.js +19 -10
- package/dist/components/notes/NoteCard.js.map +1 -1
- package/dist/components/notes/NoteList.js +37 -27
- package/dist/components/notes/NoteList.js.map +1 -1
- package/dist/components/notes/NotesTabPanel.js +125 -108
- package/dist/components/notes/NotesTabPanel.js.map +1 -1
- package/dist/components/sharing/NoteShareDialog.js +24 -0
- package/dist/components/sharing/NoteShareDialog.js.map +1 -0
- package/dist/components/sharing/SharedWithMePanel.js +24 -0
- package/dist/components/sharing/SharedWithMePanel.js.map +1 -0
- package/dist/components/sharing/VibeShareButton.js +42 -0
- package/dist/components/sharing/VibeShareButton.js.map +1 -0
- package/dist/components/sharing/index.js +6 -0
- package/dist/components/sharing/shareControllerTypes.js +36 -0
- package/dist/components/sharing/shareControllerTypes.js.map +1 -0
- package/dist/components/sharing/shareRegistry.js +58 -0
- package/dist/components/sharing/shareRegistry.js.map +1 -0
- package/dist/components/sharing/useNoteShareController.js +131 -0
- package/dist/components/sharing/useNoteShareController.js.map +1 -0
- package/dist/components/sharing/useVibeShareController.js +131 -0
- package/dist/components/sharing/useVibeShareController.js.map +1 -0
- package/dist/pages/AgentDetailsPage.js +159 -159
- package/dist/pages/AgentDetailsPage.js.map +1 -1
- package/dist/pages/VibeDetailsPage.js +437 -428
- package/dist/pages/VibeDetailsPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { SHARE_GRANT_FIELDS as e, VIBE_SHARE_ROLES as t, partitionGrants as n } from "./shareControllerTypes.js";
|
|
2
|
+
import { useCallback as r, useMemo as i } from "react";
|
|
3
|
+
import { gql as a } from "@apollo/client";
|
|
4
|
+
import { useMutation as o, useQuery as s } from "@apollo/client/react";
|
|
5
|
+
//#region src/components/sharing/useVibeShareController.ts
|
|
6
|
+
var c = a`
|
|
7
|
+
query VibeShares($id: ID!) {
|
|
8
|
+
vibe(id: $id) {
|
|
9
|
+
id
|
|
10
|
+
name
|
|
11
|
+
hasShares
|
|
12
|
+
myRole
|
|
13
|
+
shares {
|
|
14
|
+
${e}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`, l = a`
|
|
19
|
+
mutation ShareVibe($input: ShareEntityInput!) {
|
|
20
|
+
shareVibe(input: $input) {
|
|
21
|
+
${e}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`, u = a`
|
|
25
|
+
mutation RevokeVibeShare($input: RevokeShareInput!) {
|
|
26
|
+
revokeVibeShare(input: $input) {
|
|
27
|
+
id
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`, d = a`
|
|
31
|
+
mutation UpdateVibeShareRole($input: UpdateShareRoleInput!) {
|
|
32
|
+
updateVibeShareRole(input: $input) {
|
|
33
|
+
id
|
|
34
|
+
role
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`, f = a`
|
|
38
|
+
mutation CreateVibeShareLink($input: CreateShareGrantLinkInput!) {
|
|
39
|
+
createVibeShareLink(input: $input) {
|
|
40
|
+
${e}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`, p = a`
|
|
44
|
+
mutation RevokeVibeShareLink($input: RevokeShareInput!) {
|
|
45
|
+
revokeVibeShareLink(input: $input) {
|
|
46
|
+
id
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
function m(e) {
|
|
51
|
+
let { data: a, loading: m, refetch: h } = s(c, {
|
|
52
|
+
variables: { id: e.id },
|
|
53
|
+
skip: !e.id,
|
|
54
|
+
fetchPolicy: "cache-and-network"
|
|
55
|
+
}), [g] = o(l), [_] = o(u), [v] = o(d), [y] = o(f), [b] = o(p), { grants: x, links: S } = i(() => n(a?.vibe?.shares ?? []), [a?.vibe?.shares]);
|
|
56
|
+
return {
|
|
57
|
+
loading: m,
|
|
58
|
+
grants: x,
|
|
59
|
+
links: S,
|
|
60
|
+
refetch: r(() => {
|
|
61
|
+
h();
|
|
62
|
+
}, [h]),
|
|
63
|
+
createUserShare: r(async ({ email: t, role: n, message: r, expiresAt: i }) => {
|
|
64
|
+
await g({ variables: { input: {
|
|
65
|
+
resourceId: e.id,
|
|
66
|
+
email: t,
|
|
67
|
+
role: n,
|
|
68
|
+
message: r,
|
|
69
|
+
expiresAt: i
|
|
70
|
+
} } }), h();
|
|
71
|
+
}, [
|
|
72
|
+
g,
|
|
73
|
+
e.id,
|
|
74
|
+
h
|
|
75
|
+
]),
|
|
76
|
+
createLinkShare: r(async ({ role: t, expiresAt: n }) => {
|
|
77
|
+
let r = await y({ variables: { input: {
|
|
78
|
+
resourceId: e.id,
|
|
79
|
+
role: t,
|
|
80
|
+
expiresAt: n ?? null
|
|
81
|
+
} } });
|
|
82
|
+
return h(), { shareUrl: r.data?.createVibeShareLink.shareUrl ?? "" };
|
|
83
|
+
}, [
|
|
84
|
+
y,
|
|
85
|
+
e.id,
|
|
86
|
+
h
|
|
87
|
+
]),
|
|
88
|
+
updateRole: r(async (t, n) => {
|
|
89
|
+
await v({ variables: { input: {
|
|
90
|
+
resourceId: e.id,
|
|
91
|
+
shareId: t,
|
|
92
|
+
role: n
|
|
93
|
+
} } }), h();
|
|
94
|
+
}, [
|
|
95
|
+
v,
|
|
96
|
+
e.id,
|
|
97
|
+
h
|
|
98
|
+
]),
|
|
99
|
+
revoke: r(async (t) => {
|
|
100
|
+
await _({ variables: { input: {
|
|
101
|
+
resourceId: e.id,
|
|
102
|
+
shareId: t
|
|
103
|
+
} } }), h();
|
|
104
|
+
}, [
|
|
105
|
+
_,
|
|
106
|
+
e.id,
|
|
107
|
+
h
|
|
108
|
+
]),
|
|
109
|
+
revokeLink: r(async (t) => {
|
|
110
|
+
await b({ variables: { input: {
|
|
111
|
+
resourceId: e.id,
|
|
112
|
+
shareId: t
|
|
113
|
+
} } }), h();
|
|
114
|
+
}, [
|
|
115
|
+
b,
|
|
116
|
+
e.id,
|
|
117
|
+
h
|
|
118
|
+
]),
|
|
119
|
+
capabilities: {
|
|
120
|
+
supportsUsers: !0,
|
|
121
|
+
supportsLink: !0,
|
|
122
|
+
supportsVibeShare: !0,
|
|
123
|
+
supportsExpiry: !0,
|
|
124
|
+
roles: t
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//#endregion
|
|
129
|
+
export { m as useVibeShareController };
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=useVibeShareController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVibeShareController.js","names":[],"sources":["../../../src/components/sharing/useVibeShareController.ts"],"sourcesContent":["/**\n * `useVibeShareController` — binds the generic fe-libs `ShareDialog` to the\n * VibeControls backend share mutations for a Vibe.\n *\n * The generic-sharing ops are not in the codegen snapshot (see\n * `shareControllerTypes.ts`), so this hook uses inline `gql` documents against\n * the MFE's Apollo client (the same client every other hook here uses via\n * `useMutation` / `useQuery`). It projects `vibe.shares` onto the fe-libs\n * `ShareController` contract and exposes every optional capability (links,\n * role updates, revoke) since the backend supports them all for vibes.\n */\n\nimport { useCallback, useMemo } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport type { ShareController, ShareRole } from '@burdenoff/fe-libs/sharing';\n\nimport {\n SHARE_GRANT_FIELDS,\n VIBE_SHARE_ROLES,\n partitionGrants,\n type ShareGrantNode,\n} from './shareControllerTypes';\n\nconst VIBE_SHARES_QUERY = gql`\n query VibeShares($id: ID!) {\n vibe(id: $id) {\n id\n name\n hasShares\n myRole\n shares {\n ${SHARE_GRANT_FIELDS}\n }\n }\n }\n`;\n\nconst SHARE_VIBE = gql`\n mutation ShareVibe($input: ShareEntityInput!) {\n shareVibe(input: $input) {\n ${SHARE_GRANT_FIELDS}\n }\n }\n`;\n\nconst REVOKE_VIBE_SHARE = gql`\n mutation RevokeVibeShare($input: RevokeShareInput!) {\n revokeVibeShare(input: $input) {\n id\n }\n }\n`;\n\nconst UPDATE_VIBE_SHARE_ROLE = gql`\n mutation UpdateVibeShareRole($input: UpdateShareRoleInput!) {\n updateVibeShareRole(input: $input) {\n id\n role\n }\n }\n`;\n\nconst CREATE_VIBE_SHARE_LINK = gql`\n mutation CreateVibeShareLink($input: CreateShareGrantLinkInput!) {\n createVibeShareLink(input: $input) {\n ${SHARE_GRANT_FIELDS}\n }\n }\n`;\n\nconst REVOKE_VIBE_SHARE_LINK = gql`\n mutation RevokeVibeShareLink($input: RevokeShareInput!) {\n revokeVibeShareLink(input: $input) {\n id\n }\n }\n`;\n\ninterface VibeSharesData {\n vibe: {\n id: string;\n name: string;\n hasShares: boolean;\n myRole: ShareRole | null;\n shares: ShareGrantNode[];\n } | null;\n}\n\ninterface ShareVibeData {\n shareVibe: ShareGrantNode;\n}\n\ninterface CreateVibeShareLinkData {\n createVibeShareLink: ShareGrantNode;\n}\n\n/**\n * Build a {@link ShareController} for the given Vibe. Pass a stable\n * `{ id, name }` reference (e.g. derived from the page's vibe object).\n */\nexport function useVibeShareController(vibe: { id: string; name: string }): ShareController {\n const { data, loading, refetch } = useQuery<VibeSharesData, { id: string }>(VIBE_SHARES_QUERY, {\n variables: { id: vibe.id },\n skip: !vibe.id,\n fetchPolicy: 'cache-and-network',\n });\n\n const [shareVibe] = useMutation<ShareVibeData>(SHARE_VIBE);\n const [revokeVibeShare] = useMutation(REVOKE_VIBE_SHARE);\n const [updateVibeShareRole] = useMutation(UPDATE_VIBE_SHARE_ROLE);\n const [createVibeShareLink] = useMutation<CreateVibeShareLinkData>(CREATE_VIBE_SHARE_LINK);\n const [revokeVibeShareLink] = useMutation(REVOKE_VIBE_SHARE_LINK);\n\n const { grants, links } = useMemo(\n () => partitionGrants(data?.vibe?.shares ?? []),\n [data?.vibe?.shares]\n );\n\n const doRefetch = useCallback(() => {\n void refetch();\n }, [refetch]);\n\n const createUserShare = useCallback<ShareController['createUserShare']>(\n async ({ email, role, message, expiresAt }) => {\n await shareVibe({\n variables: { input: { resourceId: vibe.id, email, role, message, expiresAt } },\n });\n void refetch();\n },\n [shareVibe, vibe.id, refetch]\n );\n\n const createLinkShare = useCallback<NonNullable<ShareController['createLinkShare']>>(\n async ({ role, expiresAt }) => {\n const result = await createVibeShareLink({\n variables: { input: { resourceId: vibe.id, role, expiresAt: expiresAt ?? null } },\n });\n void refetch();\n return { shareUrl: result.data?.createVibeShareLink.shareUrl ?? '' };\n },\n [createVibeShareLink, vibe.id, refetch]\n );\n\n const updateRole = useCallback<NonNullable<ShareController['updateRole']>>(\n async (grantId, role) => {\n await updateVibeShareRole({\n variables: { input: { resourceId: vibe.id, shareId: grantId, role } },\n });\n void refetch();\n },\n [updateVibeShareRole, vibe.id, refetch]\n );\n\n const revoke = useCallback<NonNullable<ShareController['revoke']>>(\n async (grantId) => {\n await revokeVibeShare({ variables: { input: { resourceId: vibe.id, shareId: grantId } } });\n void refetch();\n },\n [revokeVibeShare, vibe.id, refetch]\n );\n\n const revokeLink = useCallback<NonNullable<ShareController['revokeLink']>>(\n async (grantId) => {\n await revokeVibeShareLink({\n variables: { input: { resourceId: vibe.id, shareId: grantId } },\n });\n void refetch();\n },\n [revokeVibeShareLink, vibe.id, refetch]\n );\n\n return {\n loading,\n grants,\n links,\n refetch: doRefetch,\n createUserShare,\n createLinkShare,\n updateRole,\n revoke,\n revokeLink,\n capabilities: {\n supportsUsers: true,\n supportsLink: true,\n supportsVibeShare: true,\n supportsExpiry: true,\n roles: VIBE_SHARE_ROLES,\n },\n };\n}\n"],"mappings":";;;;;AAwBA,IAAM,IAAoB,CAAG;;;;;;;;UAQnB,EAAmB;;;;GAMvB,IAAa,CAAG;;;QAGd,EAAmB;;;GAKrB,IAAoB,CAAG;;;;;;GAQvB,IAAyB,CAAG;;;;;;;GAS5B,IAAyB,CAAG;;;QAG1B,EAAmB;;;GAKrB,IAAyB,CAAG;;;;;;;AA8BlC,SAAgB,EAAuB,GAAqD;CAC1F,IAAM,EAAE,SAAM,YAAS,eAAY,EAAyC,GAAmB;EAC7F,WAAW,EAAE,IAAI,EAAK,IAAI;EAC1B,MAAM,CAAC,EAAK;EACZ,aAAa;EACd,CAAC,EAEI,CAAC,KAAa,EAA2B,EAAW,EACpD,CAAC,KAAmB,EAAY,EAAkB,EAClD,CAAC,KAAuB,EAAY,EAAuB,EAC3D,CAAC,KAAuB,EAAqC,EAAuB,EACpF,CAAC,KAAuB,EAAY,EAAuB,EAE3D,EAAE,WAAQ,aAAU,QAClB,EAAgB,GAAM,MAAM,UAAU,EAAE,CAAC,EAC/C,CAAC,GAAM,MAAM,OAAO,CACrB;AAuDD,QAAO;EACL;EACA;EACA;EACA,SAzDgB,QAAkB;AAC7B,MAAS;KACb,CAAC,EAAQ,CAAC;EAwDX,iBAtDsB,EACtB,OAAO,EAAE,UAAO,SAAM,YAAS,mBAAgB;AAIxC,GAHL,MAAM,EAAU,EACd,WAAW,EAAE,OAAO;IAAE,YAAY,EAAK;IAAI;IAAO;IAAM;IAAS;IAAW,EAAE,EAC/E,CAAC,EACG,GAAS;KAEhB;GAAC;GAAW,EAAK;GAAI;GAAQ,CAC9B;EA+CC,iBA7CsB,EACtB,OAAO,EAAE,SAAM,mBAAgB;GAC7B,IAAM,IAAS,MAAM,EAAoB,EACvC,WAAW,EAAE,OAAO;IAAE,YAAY,EAAK;IAAI;IAAM,WAAW,KAAa;IAAM,EAAE,EAClF,CAAC;AAEF,UADK,GAAS,EACP,EAAE,UAAU,EAAO,MAAM,oBAAoB,YAAY,IAAI;KAEtE;GAAC;GAAqB,EAAK;GAAI;GAAQ,CACxC;EAqCC,YAnCiB,EACjB,OAAO,GAAS,MAAS;AAIlB,GAHL,MAAM,EAAoB,EACxB,WAAW,EAAE,OAAO;IAAE,YAAY,EAAK;IAAI,SAAS;IAAS;IAAM,EAAE,EACtE,CAAC,EACG,GAAS;KAEhB;GAAC;GAAqB,EAAK;GAAI;GAAQ,CACxC;EA4BC,QA1Ba,EACb,OAAO,MAAY;AAEZ,GADL,MAAM,EAAgB,EAAE,WAAW,EAAE,OAAO;IAAE,YAAY,EAAK;IAAI,SAAS;IAAS,EAAE,EAAE,CAAC,EACrF,GAAS;KAEhB;GAAC;GAAiB,EAAK;GAAI;GAAQ,CACpC;EAqBC,YAnBiB,EACjB,OAAO,MAAY;AAIZ,GAHL,MAAM,EAAoB,EACxB,WAAW,EAAE,OAAO;IAAE,YAAY,EAAK;IAAI,SAAS;IAAS,EAAE,EAChE,CAAC,EACG,GAAS;KAEhB;GAAC;GAAqB,EAAK;GAAI;GAAQ,CACxC;EAYC,cAAc;GACZ,eAAe;GACf,cAAc;GACd,mBAAmB;GACnB,gBAAgB;GAChB,OAAO;GACR;EACF"}
|