@vibes.diy/base 4.0.18 → 4.1.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.
|
@@ -15,8 +15,9 @@ export interface SharePanelViewProps {
|
|
|
15
15
|
readonly access?: ShareAccess;
|
|
16
16
|
readonly onChangeAccess?: (access: ShareAccess) => void;
|
|
17
17
|
readonly accessPending?: boolean;
|
|
18
|
+
readonly publishGate?: boolean;
|
|
18
19
|
readonly onSelectMember?: (member: ShareMember) => void;
|
|
19
20
|
readonly className?: string;
|
|
20
21
|
}
|
|
21
|
-
export declare function SharePanelView({ url, copied, onCopy, viewer, members, access, onChangeAccess, accessPending, onSelectMember, className, }: SharePanelViewProps): React.JSX.Element;
|
|
22
|
+
export declare function SharePanelView({ url, copied, onCopy, viewer, members, access, onChangeAccess, accessPending, publishGate, onSelectMember, className, }: SharePanelViewProps): React.JSX.Element;
|
|
22
23
|
export default SharePanelView;
|
|
@@ -17,7 +17,7 @@ const ROSTER_TAG_STYLE = {
|
|
|
17
17
|
fontSize: 13,
|
|
18
18
|
padding: "3px 10px 3px 4px",
|
|
19
19
|
};
|
|
20
|
-
export function SharePanelView({ url, copied, onCopy, viewer, members = [], access = "public", onChangeAccess, accessPending, onSelectMember, className, }) {
|
|
20
|
+
export function SharePanelView({ url, copied, onCopy, viewer, members = [], access = "public", onChangeAccess, accessPending, publishGate, onSelectMember, className, }) {
|
|
21
21
|
const isAuthor = viewer === "author";
|
|
22
22
|
const showRoster = isAuthor || (viewer === "member" && access === "request");
|
|
23
23
|
const roster = [...members].sort((a, b) => Number(b.role === "owner") - Number(a.role === "owner"));
|
|
@@ -26,18 +26,19 @@ export function SharePanelView({ url, copied, onCopy, viewer, members = [], acce
|
|
|
26
26
|
React.createElement("span", { className: "flex-1 truncate text-sm" }, url),
|
|
27
27
|
React.createElement("button", { type: "button", onClick: onCopy, "aria-label": "Copy link", className: "shrink-0 rounded-[5px] border-2 border-[#1a1a1a] bg-blue-500 px-3 py-1 text-xs font-bold text-white transition-colors hover:bg-blue-600 active:translate-x-[2px] active:translate-y-[2px]" }, copied ? "Copied" : "Copy")),
|
|
28
28
|
isAuthor ? (React.createElement("div", null,
|
|
29
|
-
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, "Who can open it"),
|
|
29
|
+
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, publishGate ? "Before you publish — who can open it?" : "Who can open it"),
|
|
30
30
|
React.createElement("div", { role: "radiogroup", "aria-label": "Who can open it", style: { display: "flex", gap: 6 } }, [
|
|
31
31
|
{ value: "public", label: "Anyone with the link" },
|
|
32
32
|
{ value: "request", label: "People you approve" },
|
|
33
33
|
].map((opt) => {
|
|
34
|
-
const active = !accessPending && opt.value === access;
|
|
34
|
+
const active = !accessPending && !publishGate && opt.value === access;
|
|
35
35
|
return (React.createElement("button", { key: opt.value, type: "button", role: "radio", "aria-checked": active, disabled: accessPending, onClick: () => onChangeAccess?.(opt.value), className: "flex-1 rounded-md border px-3 py-2 text-center text-xs font-medium transition-colors " +
|
|
36
36
|
(accessPending ? "cursor-default opacity-60 " : "") +
|
|
37
37
|
(active
|
|
38
38
|
? "border-[#1a1a1a] bg-light-background-01 dark:bg-dark-background-01"
|
|
39
39
|
: "border-light-decorative-01 dark:border-dark-decorative-01 hover:bg-light-background-01 dark:hover:bg-dark-background-01") }, opt.label));
|
|
40
|
-
}))
|
|
40
|
+
})),
|
|
41
|
+
publishGate && (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginTop: 6 } }, "Pick one to publish this app.")))) : accessPending ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Checking who can open this vibe\u2026")) : (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, access === "public" ? "Anyone with the link can open this vibe." : "Only approved members can access this vibe.")),
|
|
41
42
|
showRoster && (React.createElement("div", null,
|
|
42
43
|
React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, "In this vibe"),
|
|
43
44
|
React.createElement("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 } }, roster.map((m) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/base",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@adviser/cement": "~0.5.34",
|
|
11
11
|
"@emotion/css": "~11.13.5",
|
|
12
|
-
"@vibes.diy/use-vibes-types": "4.0
|
|
13
|
-
"@vibes.diy/vibe-runtime": "4.0
|
|
14
|
-
"@vibes.diy/vibe-types": "4.0
|
|
12
|
+
"@vibes.diy/use-vibes-types": "4.1.0",
|
|
13
|
+
"@vibes.diy/vibe-runtime": "4.1.0",
|
|
14
|
+
"@vibes.diy/vibe-types": "4.1.0",
|
|
15
15
|
"qrcode": "~1.5.4",
|
|
16
16
|
"react": "~19.2.7",
|
|
17
17
|
"react-dom": "~19.2.7"
|