@vibes.diy/base 14.3.106 → 14.3.107
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/components/vibe-menu/VibeMenu.js +5 -3
- package/components/vibe-menu/VibeMenu.js.map +1 -1
- package/components/vibe-menu/cards/AccountCard.d.ts +4 -0
- package/components/vibe-menu/cards/AccountCard.js +64 -1
- package/components/vibe-menu/cards/AccountCard.js.map +1 -1
- package/components/vibe-menu/cards/CodeCard.d.ts +2 -1
- package/components/vibe-menu/cards/CodeCard.js +12 -3
- package/components/vibe-menu/cards/CodeCard.js.map +1 -1
- package/components/vibe-menu/cards/CodeTabRow.d.ts +1 -1
- package/components/vibe-menu/cards/CodeTabRow.js +6 -0
- package/components/vibe-menu/cards/CodeTabRow.js.map +1 -1
- package/components/vibe-menu/cards/HomeCard.d.ts +8 -0
- package/components/vibe-menu/cards/HomeCard.js +67 -5
- package/components/vibe-menu/cards/HomeCard.js.map +1 -1
- package/components/vibe-menu/cards/ShareCard.d.ts +3 -0
- package/components/vibe-menu/cards/ShareCard.js +109 -16
- package/components/vibe-menu/cards/ShareCard.js.map +1 -1
- package/components/vibe-menu/index.d.ts +3 -0
- package/components/vibe-menu/index.js +3 -0
- package/components/vibe-menu/index.js.map +1 -1
- package/components/vibe-menu/moments.d.ts +9 -0
- package/components/vibe-menu/moments.js +6 -0
- package/components/vibe-menu/moments.js.map +1 -1
- package/components/vibe-menu/parts/AccessToggle.js +2 -1
- package/components/vibe-menu/parts/AccessToggle.js.map +1 -1
- package/components/vibe-menu/parts/CardTabRow.d.ts +27 -0
- package/components/vibe-menu/{sketches → parts}/CardTabRow.js +2 -7
- package/components/vibe-menu/parts/CardTabRow.js.map +1 -0
- package/components/vibe-menu/parts/Composer.js +2 -1
- package/components/vibe-menu/parts/Composer.js.map +1 -1
- package/components/vibe-menu/parts/MomentLine.js +10 -5
- package/components/vibe-menu/parts/MomentLine.js.map +1 -1
- package/components/vibe-menu/parts/SurveyStrip.d.ts +13 -3
- package/components/vibe-menu/parts/SurveyStrip.js +97 -54
- package/components/vibe-menu/parts/SurveyStrip.js.map +1 -1
- package/components/vibe-menu/parts/ThinkingLine.d.ts +24 -0
- package/components/vibe-menu/parts/ThinkingLine.js +77 -0
- package/components/vibe-menu/parts/ThinkingLine.js.map +1 -0
- package/components/vibe-menu/parts/brief-faces-art.d.ts +12 -0
- package/components/vibe-menu/parts/brief-faces-art.js +540 -0
- package/components/vibe-menu/parts/brief-faces-art.js.map +1 -0
- package/components/vibe-menu/sketches/CodeTierAudition.js +1 -1
- package/components/vibe-menu/sketches/CodeTierAudition.js.map +1 -1
- package/components/vibe-menu/slices.d.ts +5 -0
- package/components/vibe-menu/slices.js.map +1 -1
- package/components/vibe-menu/vibe-menu.styles.d.ts +1 -1
- package/components/vibe-menu/vibe-menu.styles.js +0 -25
- package/components/vibe-menu/vibe-menu.styles.js.map +1 -1
- package/package.json +5 -5
- package/components/vibe-menu/sketches/AccountTabAudition.d.ts +0 -11
- package/components/vibe-menu/sketches/AccountTabAudition.js +0 -90
- package/components/vibe-menu/sketches/AccountTabAudition.js.map +0 -1
- package/components/vibe-menu/sketches/CardTabRow.d.ts +0 -27
- package/components/vibe-menu/sketches/CardTabRow.js.map +0 -1
- package/components/vibe-menu/sketches/HomeTabAudition.d.ts +0 -26
- package/components/vibe-menu/sketches/HomeTabAudition.js +0 -87
- package/components/vibe-menu/sketches/HomeTabAudition.js.map +0 -1
- package/components/vibe-menu/sketches/ShareTabAudition.d.ts +0 -14
- package/components/vibe-menu/sketches/ShareTabAudition.js +0 -155
- package/components/vibe-menu/sketches/ShareTabAudition.js.map +0 -1
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { HOME_CARD_CSS, HOME_COPY } from "../cards/HomeCard.js";
|
|
3
|
-
import { ActionPill } from "../parts/ActionPill.js";
|
|
4
|
-
import { DoneButton } from "../parts/DoneButton.js";
|
|
5
|
-
import { Row } from "../parts/Row.js";
|
|
6
|
-
import { CARD_TAB_ROW_CSS, CardTabRow, MainAction, Stretch, isPlainLeftClick, toggleDrill, } from "./CardTabRow.js";
|
|
7
|
-
export const HOME_TAB_LABELS = Object.freeze({
|
|
8
|
-
picks: HOME_COPY.recommended,
|
|
9
|
-
recent: HOME_COPY.recent,
|
|
10
|
-
site: "vibes.diy",
|
|
11
|
-
myVibes: HOME_COPY.myVibes,
|
|
12
|
-
getApp: "Get the app",
|
|
13
|
-
});
|
|
14
|
-
const APP_COLORS = [
|
|
15
|
-
"var(--section-home)",
|
|
16
|
-
"var(--section-account)",
|
|
17
|
-
"var(--section-code)",
|
|
18
|
-
"var(--section-share)",
|
|
19
|
-
];
|
|
20
|
-
export function homeTabItems(props) {
|
|
21
|
-
const pending = props.viewer.identityPending === true;
|
|
22
|
-
const signedIn = props.viewer.role !== "signedOut" && pending === false;
|
|
23
|
-
const items = [];
|
|
24
|
-
if (props.variant === "pill" && props.recommended.length > 0) {
|
|
25
|
-
const label = props.recommendedHeading === "recent" ? HOME_TAB_LABELS.recent : HOME_TAB_LABELS.picks;
|
|
26
|
-
items.push({ key: "picks", label, glyph: "star", kind: "drill" });
|
|
27
|
-
}
|
|
28
|
-
items.push({
|
|
29
|
-
key: "site",
|
|
30
|
-
label: HOME_TAB_LABELS.site,
|
|
31
|
-
glyph: "home",
|
|
32
|
-
kind: "link",
|
|
33
|
-
href: props.homeHref,
|
|
34
|
-
onClick: (event) => {
|
|
35
|
-
if (isPlainLeftClick(event) === false)
|
|
36
|
-
return;
|
|
37
|
-
event.preventDefault();
|
|
38
|
-
props.onHome();
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
if (signedIn)
|
|
42
|
-
items.push({ key: "myVibes", label: HOME_TAB_LABELS.myVibes, glyph: "layout-grid", kind: "link", href: props.myVibesHref });
|
|
43
|
-
if (props.onGetFullApp !== undefined) {
|
|
44
|
-
const onGetFullApp = props.onGetFullApp;
|
|
45
|
-
items.push({ key: "getApp", label: HOME_TAB_LABELS.getApp, glyph: "app", kind: "action", onClick: () => onGetFullApp() });
|
|
46
|
-
}
|
|
47
|
-
return items;
|
|
48
|
-
}
|
|
49
|
-
function Picks(props) {
|
|
50
|
-
return (React.createElement("div", { className: "vm-group is-flush" }, props.recommended.slice(0, 3).map((rec, i) => (React.createElement(Row, { key: rec.href, lead: { letter: rec.title.slice(0, 1).toUpperCase(), kind: "app", color: APP_COLORS[i % APP_COLORS.length] }, label: rec.title, plain: true, href: rec.href })))));
|
|
51
|
-
}
|
|
52
|
-
function HomeAsk(props) {
|
|
53
|
-
const pending = props.viewer.identityPending === true;
|
|
54
|
-
if (pending)
|
|
55
|
-
return null;
|
|
56
|
-
if (props.viewer.role === "owner")
|
|
57
|
-
return React.createElement(ActionPill, { label: HOME_COPY.newApp, href: props.newAppHref, solo: true });
|
|
58
|
-
return (React.createElement(ActionPill, { label: HOME_COPY.makeYourOwn, href: props.onMakeYourOwn === undefined ? props.newAppHref : undefined, onClick: props.onMakeYourOwn, caption: HOME_COPY.makeSub }));
|
|
59
|
-
}
|
|
60
|
-
function madeOnLine(viewer) {
|
|
61
|
-
if (viewer.identityPending === true || viewer.role === "owner")
|
|
62
|
-
return null;
|
|
63
|
-
return (React.createElement("p", { className: "vm-kicker" },
|
|
64
|
-
React.createElement("span", { className: "vm-app-name" }, viewer.appTitle),
|
|
65
|
-
" ",
|
|
66
|
-
HOME_COPY.madeOn));
|
|
67
|
-
}
|
|
68
|
-
export function HomeTabAudition(props) {
|
|
69
|
-
const [active, setActive] = React.useState(props.initialActive ?? null);
|
|
70
|
-
const heading = props.recommendedHeading === "recent" ? HOME_COPY.recent : HOME_COPY.recommended;
|
|
71
|
-
const row = (React.createElement(CardTabRow, { label: "Home", items: homeTabItems(props), active: active, onDrill: (key) => setActive((open) => toggleDrill(open, key)) }));
|
|
72
|
-
return (React.createElement("div", { className: "vm-home vm-ctab vm-xtab", "data-card": "home", "data-variant": props.variant },
|
|
73
|
-
React.createElement("style", null, HOME_CARD_CSS + CARD_TAB_ROW_CSS),
|
|
74
|
-
active === "picks" ? (React.createElement(React.Fragment, null,
|
|
75
|
-
React.createElement("div", { className: "vm-drill", "data-drill": "picks" },
|
|
76
|
-
React.createElement("h3", { className: "vm-subhead" }, heading),
|
|
77
|
-
React.createElement(Picks, { recommended: props.recommended })),
|
|
78
|
-
React.createElement(DoneButton, { onDone: () => setActive(null) }))) : (React.createElement(React.Fragment, null,
|
|
79
|
-
React.createElement(Stretch, null,
|
|
80
|
-
props.variant === "picks" && props.recommended.length > 0 ? React.createElement("h3", { className: "vm-subhead" }, heading) : null,
|
|
81
|
-
props.variant === "picks" && props.recommended.length > 0 ? React.createElement(Picks, { recommended: props.recommended }) : null,
|
|
82
|
-
madeOnLine(props.viewer)),
|
|
83
|
-
React.createElement(MainAction, null,
|
|
84
|
-
React.createElement(HomeAsk, { ...props })))),
|
|
85
|
-
row));
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=HomeTabAudition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HomeTabAudition.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/sketches/HomeTabAudition.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import type { ShareSlice, ViewerSlice } from "../slices.js";
|
|
3
|
-
import { type CardTabItem } from "./CardTabRow.js";
|
|
4
|
-
export type ShareTabVariant = "code" | "link";
|
|
5
|
-
export declare const SHARE_TAB_CSS = "\n[data-vibe-menu] .vm-xtab .vm-share-link {\n margin: 0; font: 400 15px/1.35 var(--font-display); color: var(--ink); overflow-wrap: anywhere;\n}\n[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant=\"link\"] { align-items: stretch; padding-top: 0; }\n[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant=\"link\"] .vm-share-actions { justify-content: flex-start; }\n[data-vibe-menu] .vm-xtab[data-variant=\"code\"] .vm-main > .vm-share-actions { justify-content: center; }\n[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant=\"link\"] > .vm-chip { align-self: flex-start; }\n[data-vibe-menu] .vm-xtab .vm-drill[data-drill=\"qr\"] { display: flex; flex-direction: column; align-items: center; gap: var(--space-12); }\n";
|
|
6
|
-
export interface ShareTabAuditionProps {
|
|
7
|
-
readonly variant: ShareTabVariant;
|
|
8
|
-
readonly viewer: ViewerSlice;
|
|
9
|
-
readonly share: ShareSlice | null;
|
|
10
|
-
readonly onSignIn: () => void;
|
|
11
|
-
readonly initialActive?: string | null;
|
|
12
|
-
}
|
|
13
|
-
export declare function shareTabItems(variant: ShareTabVariant, viewer: ViewerSlice, share: ShareSlice): readonly CardTabItem[];
|
|
14
|
-
export declare function ShareTabAudition(props: ShareTabAuditionProps): React.ReactElement;
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useContext, useState } from "react";
|
|
3
|
-
import { exception2Result } from "@adviser/cement";
|
|
4
|
-
import { QrCode } from "../../QrCode.js";
|
|
5
|
-
import { JOIN_OR_SIGN_IN, SHARE_DEV_DRAFT_LINE, SHARE_HANDLE_ASK } from "../copy.js";
|
|
6
|
-
import { ActionPill } from "../parts/ActionPill.js";
|
|
7
|
-
import { Chip } from "../parts/Chip.js";
|
|
8
|
-
import { DoneButton } from "../parts/DoneButton.js";
|
|
9
|
-
import { useShareActions } from "../cards/share-actions.js";
|
|
10
|
-
import { SHARE_CARD_CSS } from "../cards/share-card.styles.js";
|
|
11
|
-
import { CopyChip, CopyLinkChip, shareCopied } from "../cards/share-copy.js";
|
|
12
|
-
import { PUBLISH_COPY } from "../cards/share-parts.js";
|
|
13
|
-
import { ShareSheetContext } from "../cards/ShareAppDrill.js";
|
|
14
|
-
import { SHARE_SETTINGS_LABEL, ShareDrill } from "../cards/ShareDrills.js";
|
|
15
|
-
import { CARD_TAB_ROW_CSS, CardTabRow, MainAction, Stretch, toggleDrill } from "./CardTabRow.js";
|
|
16
|
-
export const SHARE_TAB_CSS = `
|
|
17
|
-
[data-vibe-menu] .vm-xtab .vm-share-link {
|
|
18
|
-
margin: 0; font: 400 15px/1.35 var(--font-display); color: var(--ink); overflow-wrap: anywhere;
|
|
19
|
-
}
|
|
20
|
-
[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant="link"] { align-items: stretch; padding-top: 0; }
|
|
21
|
-
[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant="link"] .vm-share-actions { justify-content: flex-start; }
|
|
22
|
-
[data-vibe-menu] .vm-xtab[data-variant="code"] .vm-main > .vm-share-actions { justify-content: center; }
|
|
23
|
-
[data-vibe-menu] .vm-xtab .vm-share-hero[data-variant="link"] > .vm-chip { align-self: flex-start; }
|
|
24
|
-
[data-vibe-menu] .vm-xtab .vm-drill[data-drill="qr"] { display: flex; flex-direction: column; align-items: center; gap: var(--space-12); }
|
|
25
|
-
`;
|
|
26
|
-
export function shareTabItems(variant, viewer, share) {
|
|
27
|
-
const items = [];
|
|
28
|
-
if (variant === "link")
|
|
29
|
-
items.push({ key: "qr", label: "QR code", glyph: "qr-code", kind: "drill" });
|
|
30
|
-
if (share.app !== null)
|
|
31
|
-
items.push({ key: "app", label: "Share as app", glyph: "app", kind: "drill" });
|
|
32
|
-
if (viewer.role !== "signedOut" && share.notificationsSlot !== null) {
|
|
33
|
-
items.push({ key: "notifications", label: "Notifications", glyph: "bell", kind: "drill" });
|
|
34
|
-
}
|
|
35
|
-
items.push({ key: "shareSettings", label: SHARE_SETTINGS_LABEL, glyph: "settings", kind: "drill" });
|
|
36
|
-
return items;
|
|
37
|
-
}
|
|
38
|
-
function useSendLink(viewer, share) {
|
|
39
|
-
const sheet = useContext(ShareSheetContext);
|
|
40
|
-
const send = sheet.share;
|
|
41
|
-
if (send === undefined)
|
|
42
|
-
return null;
|
|
43
|
-
return () => {
|
|
44
|
-
void exception2Result(() => send({ url: share.link.url, title: viewer.appTitle })).then((res) => {
|
|
45
|
-
if (res.isOk())
|
|
46
|
-
share.onShareEvent?.({ kind: "sent", surface: "link" });
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
function HandleAskLine(props) {
|
|
51
|
-
return (React.createElement("p", { className: "vm-handle-ask", "data-share-handle-ask": "" },
|
|
52
|
-
SHARE_HANDLE_ASK.sharedAs,
|
|
53
|
-
" ",
|
|
54
|
-
React.createElement("span", { className: "vm-handle-ask-name ph-no-capture" },
|
|
55
|
-
"@",
|
|
56
|
-
props.ask.handle),
|
|
57
|
-
React.createElement("span", { "aria-hidden": "true" }, " \u00B7 "),
|
|
58
|
-
React.createElement("button", { className: "vm-handle-ask-link", type: "button", onClick: props.ask.onChoose },
|
|
59
|
-
SHARE_HANDLE_ASK.choose,
|
|
60
|
-
" ",
|
|
61
|
-
React.createElement("span", { "aria-hidden": "true" }, "\u203A"))));
|
|
62
|
-
}
|
|
63
|
-
function EmbedReveal(props) {
|
|
64
|
-
const embed = props.share.embed;
|
|
65
|
-
if (embed === null)
|
|
66
|
-
return null;
|
|
67
|
-
return (React.createElement("div", { className: "vm-reveal", "data-reveal": "embed" },
|
|
68
|
-
React.createElement("textarea", { className: "vm-embed", readOnly: true, value: embed.snippet, "aria-label": "Embed code", onFocus: (e) => e.currentTarget.select() }),
|
|
69
|
-
React.createElement(CopyChip, { text: embed.snippet, label: "Copy embed code", ariaLabel: "Copy embed code", onCopied: shareCopied(props.share, "embed", props.owner) })));
|
|
70
|
-
}
|
|
71
|
-
function LinkActions(props) {
|
|
72
|
-
const { viewer, share, owner } = props;
|
|
73
|
-
const sendLink = useSendLink(viewer, share);
|
|
74
|
-
return (React.createElement("div", { className: "vm-share-actions", "data-share-main": "" },
|
|
75
|
-
React.createElement(CopyLinkChip, { url: share.link.url, display: share.link.display, onCopied: shareCopied(share, "link", owner) }),
|
|
76
|
-
sendLink !== null ? (React.createElement(Chip, { copy: true, glyph: "share", label: "Share\u2026", ariaLabel: `Share ${share.link.display}`, onClick: sendLink })) : null));
|
|
77
|
-
}
|
|
78
|
-
function ShareHero(props) {
|
|
79
|
-
const { variant, share, owner } = props;
|
|
80
|
-
const [embedOpen, setEmbedOpen] = useState(false);
|
|
81
|
-
const embed = owner ? share.embed : null;
|
|
82
|
-
return (React.createElement("div", { className: "vm-share-hero", "data-share-hero": true, "data-variant": variant },
|
|
83
|
-
variant === "code" ? (React.createElement("span", { className: "vm-qr" },
|
|
84
|
-
React.createElement(QrCode, { value: share.qrValue, size: 160, title: `QR code to open ${share.link.display}` }))) : (React.createElement("p", { className: "vm-share-link ph-no-capture" }, share.link.display)),
|
|
85
|
-
embed !== null ? (React.createElement(Chip, { copy: true, ghost: embedOpen === false, label: "Embed", ariaLabel: "Embed", ariaExpanded: embedOpen, onClick: () => setEmbedOpen((v) => v === false) })) : null,
|
|
86
|
-
props.actions,
|
|
87
|
-
owner && share.handleAsk !== undefined && share.handleAsk !== null ? React.createElement(HandleAskLine, { ask: share.handleAsk }) : null,
|
|
88
|
-
embed !== null && embedOpen ? React.createElement(EmbedReveal, { share: share, owner: owner }) : null));
|
|
89
|
-
}
|
|
90
|
-
function PublishAsk(props) {
|
|
91
|
-
const { publish } = props;
|
|
92
|
-
if (publish.state === "published")
|
|
93
|
-
return null;
|
|
94
|
-
const copy = PUBLISH_COPY[publish.state];
|
|
95
|
-
const failed = publish.error !== null;
|
|
96
|
-
const locked = publish.state === "locked";
|
|
97
|
-
return (React.createElement(ActionPill, { label: locked ? "Unlock" : failed ? "Retry" : "Publish", onClick: locked ? publish.onUnlock : publish.onPublish, caption: React.createElement(React.Fragment, null,
|
|
98
|
-
React.createElement("b", null, copy.lead),
|
|
99
|
-
" \u00B7 ",
|
|
100
|
-
failed ? publish.error : copy.line,
|
|
101
|
-
publish.state === "old" ? (React.createElement(React.Fragment, null,
|
|
102
|
-
" ",
|
|
103
|
-
React.createElement("button", { className: "vm-handle-ask-link", type: "button", onClick: publish.onViewLatest }, "View latest"))) : null) }));
|
|
104
|
-
}
|
|
105
|
-
export function ShareTabAudition(props) {
|
|
106
|
-
const { variant, viewer, share, onSignIn } = props;
|
|
107
|
-
const actions = useShareActions();
|
|
108
|
-
const [active, setActive] = useState(props.initialActive ?? null);
|
|
109
|
-
const css = React.createElement("style", null, SHARE_CARD_CSS + CARD_TAB_ROW_CSS + SHARE_TAB_CSS);
|
|
110
|
-
if (share === null) {
|
|
111
|
-
return (React.createElement("div", { className: "vm-ctab vm-xtab" },
|
|
112
|
-
css,
|
|
113
|
-
React.createElement("p", { className: "vm-share-empty", "data-share-draft": true }, SHARE_DEV_DRAFT_LINE)));
|
|
114
|
-
}
|
|
115
|
-
const owner = share.canManage === true && viewer.identityPending !== true;
|
|
116
|
-
const items = shareTabItems(variant, viewer, share);
|
|
117
|
-
const row = (React.createElement(CardTabRow, { label: "Share", items: items, active: active, onDrill: (key) => setActive((open) => toggleDrill(open, key)) }));
|
|
118
|
-
const close = () => setActive(null);
|
|
119
|
-
const unpublished = owner && share.publish !== null && share.publish.state !== "published";
|
|
120
|
-
const main = unpublished ? "publish" : viewer.role === "signedOut" ? "signIn" : "link";
|
|
121
|
-
const linkActions = React.createElement(LinkActions, { viewer: viewer, share: share, owner: owner });
|
|
122
|
-
let drill = null;
|
|
123
|
-
if (active === "qr") {
|
|
124
|
-
drill = (React.createElement(React.Fragment, null,
|
|
125
|
-
React.createElement("div", { className: "vm-drill", "data-drill": "qr" },
|
|
126
|
-
React.createElement("span", { className: "vm-qr" },
|
|
127
|
-
React.createElement(QrCode, { value: share.qrValue, size: 200, title: `QR code to open ${share.link.display}` })),
|
|
128
|
-
React.createElement("p", { className: "vm-share-link ph-no-capture" }, share.link.display)),
|
|
129
|
-
React.createElement(DoneButton, { onDone: close })));
|
|
130
|
-
}
|
|
131
|
-
else if (active === "embed") {
|
|
132
|
-
drill = (React.createElement(React.Fragment, null,
|
|
133
|
-
React.createElement("div", { className: "vm-drill", "data-drill": "embed" },
|
|
134
|
-
React.createElement(EmbedReveal, { share: share, owner: owner })),
|
|
135
|
-
React.createElement(DoneButton, { onDone: close })));
|
|
136
|
-
}
|
|
137
|
-
else if (active === "app" || active === "notifications" || active === "shareSettings") {
|
|
138
|
-
const nav = { view: { drill: active }, banner: null, onDrill: () => undefined, onLeaveDrill: close };
|
|
139
|
-
drill = (React.createElement(ShareDrill, { drill: active, viewer: viewer, share: share, memberKey: undefined, nav: nav, actions: actions, parent: "Share" }));
|
|
140
|
-
}
|
|
141
|
-
return (React.createElement("div", { className: "vm-ctab vm-xtab", "data-card": "share", "data-variant": variant },
|
|
142
|
-
css,
|
|
143
|
-
drill ?? (React.createElement(React.Fragment, null,
|
|
144
|
-
React.createElement(Stretch, null,
|
|
145
|
-
React.createElement(ShareHero, { variant: variant, share: share, owner: owner, actions: main === "link" ? null : linkActions })),
|
|
146
|
-
React.createElement(MainAction, null,
|
|
147
|
-
main === "publish" && share.publish !== null ? React.createElement(PublishAsk, { publish: share.publish }) : null,
|
|
148
|
-
main === "signIn" ? (React.createElement(ActionPill, { label: JOIN_OR_SIGN_IN, onClick: onSignIn, caption: React.createElement(React.Fragment, null,
|
|
149
|
-
"to become a member of ",
|
|
150
|
-
React.createElement("span", { className: "vm-app-name" }, viewer.appTitle),
|
|
151
|
-
".") })) : null,
|
|
152
|
-
main === "link" ? linkActions : null))),
|
|
153
|
-
row));
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=ShareTabAudition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShareTabAudition.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/sketches/ShareTabAudition.tsx"],"names":[],"mappings":"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"}
|