@vibes.diy/base 14.3.3 → 14.3.5

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.
Files changed (59) hide show
  1. package/components/AdminModeControl.d.ts +7 -0
  2. package/components/AdminModeControl.js +9 -0
  3. package/components/AdminModeControl.js.map +1 -0
  4. package/components/EditorTabStrip.d.ts +3 -2
  5. package/components/EditorTabStrip.js +8 -15
  6. package/components/EditorTabStrip.js.map +1 -1
  7. package/components/MadeHereView.js.map +1 -1
  8. package/components/MemberAccessView.d.ts +37 -0
  9. package/components/MemberAccessView.js +94 -0
  10. package/components/MemberAccessView.js.map +1 -0
  11. package/components/MemberInvitationView.d.ts +11 -0
  12. package/components/MemberInvitationView.js +16 -0
  13. package/components/MemberInvitationView.js.map +1 -0
  14. package/components/PublishBanner.d.ts +16 -0
  15. package/components/PublishBanner.js +126 -0
  16. package/components/PublishBanner.js.map +1 -0
  17. package/components/ShareLinkView.d.ts +11 -0
  18. package/components/ShareLinkView.js +61 -0
  19. package/components/ShareLinkView.js.map +1 -0
  20. package/components/SharePanelView.d.ts +5 -1
  21. package/components/SharePanelView.js +17 -62
  22. package/components/SharePanelView.js.map +1 -1
  23. package/components/UnifiedVibeCard.d.ts +0 -1
  24. package/components/UnifiedVibeCard.js +49 -138
  25. package/components/UnifiedVibeCard.js.map +1 -1
  26. package/components/UnifiedVibeCardSettings.styles.d.ts +3 -0
  27. package/components/UnifiedVibeCardSettings.styles.js +95 -0
  28. package/components/UnifiedVibeCardSettings.styles.js.map +1 -0
  29. package/components/UnifiedVibeCardShare.styles.d.ts +3 -0
  30. package/components/UnifiedVibeCardShare.styles.js +72 -0
  31. package/components/UnifiedVibeCardShare.styles.js.map +1 -0
  32. package/components/ViewerAccessSummary.d.ts +28 -0
  33. package/components/ViewerAccessSummary.js +105 -0
  34. package/components/ViewerAccessSummary.js.map +1 -0
  35. package/components/ViewerStandingView.d.ts +4 -26
  36. package/components/ViewerStandingView.js +6 -104
  37. package/components/ViewerStandingView.js.map +1 -1
  38. package/components/editor-tabs.d.ts +28 -0
  39. package/components/editor-tabs.js +15 -0
  40. package/components/editor-tabs.js.map +1 -0
  41. package/components/homeBrandFont.d.ts +1 -1
  42. package/components/homeBrandFont.js +1 -1
  43. package/components/homeBrandFont.js.map +1 -1
  44. package/components/index.d.ts +7 -1
  45. package/components/index.js +7 -1
  46. package/components/index.js.map +1 -1
  47. package/hooks/useCardFloat.d.ts +6 -0
  48. package/hooks/useCardFloat.js +191 -0
  49. package/hooks/useCardFloat.js.map +1 -0
  50. package/hooks/useHomeMotionPress.d.ts +17 -0
  51. package/hooks/useHomeMotionPress.js +93 -0
  52. package/hooks/useHomeMotionPress.js.map +1 -0
  53. package/motion/card-motion-source.d.ts +23 -0
  54. package/motion/card-motion-source.js +50 -0
  55. package/motion/card-motion-source.js.map +1 -0
  56. package/package.json +4 -4
  57. package/components/PromiseStrip.d.ts +0 -13
  58. package/components/PromiseStrip.js +0 -17
  59. package/components/PromiseStrip.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { ViewerTagView } from "./ViewerTagView.js";
3
- import { QrCode } from "./QrCode.js";
3
+ import { ShareLinkView } from "./ShareLinkView.js";
4
4
  import { SubTabStrip } from "./SubTabStrip.js";
5
5
  export const POSTURE_NOTICE = {
6
6
  open: "Reachable by anyone; documents governed by your app's rules.",
@@ -52,9 +52,8 @@ function roleLabel(role) {
52
52
  const TAB_PANE_MIN_HEIGHT = 220;
53
53
  const TAB_PANE_MAX_HEIGHT = "min(560px, 62vh)";
54
54
  const ACCESS_NOTICE_MIN_HEIGHT = 75;
55
- const LINK_RADIUS = 8;
56
55
  const LINK_GAP = 22;
57
- const LINK_ACTION_GAP = 10;
56
+ const LINK_RADIUS = 8;
58
57
  const ROSTER_TAG_STYLE = {
59
58
  background: "var(--color-light-background-01, #eee)",
60
59
  border: "1px solid var(--color-light-decorative-01, #ddd)",
@@ -62,7 +61,7 @@ const ROSTER_TAG_STYLE = {
62
61
  fontSize: 13,
63
62
  padding: "3px 10px 3px 4px",
64
63
  };
65
- export function SharePanelView({ url, copied, onCopy, embedSnippet, embedCopied, onCopyEmbed, viewer, members = [], access = "public", onChangeAccess, accessPending, posture, envelopeRows, anonWrite, onRevokeAnonWrite, anonWritePending, onSelectMember, requestsSlot, inviteSlot, notifications, notificationsLoading, notificationsError, notificationSettingsSlot, onSelectNotification, commentsSlot, developersSlot, fill = false, className, }) {
64
+ export function SharePanelView({ url, copied, onCopy, embedSnippet, embedCopied, onCopyEmbed, pinterestShareUrl, publicationSlot, accessSummarySlot, viewer, members = [], access = "public", onChangeAccess, accessPending, posture, envelopeRows, anonWrite, onRevokeAnonWrite, anonWritePending, onSelectMember, membersManagementSlot, requestsSlot, inviteSlot, notifications, notificationsLoading, notificationsError, notificationSettingsSlot, onSelectNotification, commentsSlot, developersSlot, fill = false, className, }) {
66
65
  const isAuthor = viewer === "author";
67
66
  const roster = [...members].sort((a, b) => Number(b.role === "owner") - Number(a.role === "owner"));
68
67
  const tabs = [];
@@ -116,59 +115,10 @@ export function SharePanelView({ url, copied, onCopy, embedSnippet, embedCopied,
116
115
  lineHeight: 1.5,
117
116
  margin: "10px 0 0",
118
117
  } }, POSTURE_NOTICE[posture])))),
119
- React.createElement("div", { "data-testid": "share-qr-actions", style: { display: "grid", gridTemplateColumns: "150px minmax(0, 1fr)", alignItems: "start", gap: 14, width: "100%" } },
120
- React.createElement("div", { className: "border border-light-decorative-01 dark:border-dark-decorative-01", style: {
121
- background: "#ffffff",
122
- borderRadius: LINK_RADIUS,
123
- padding: 8,
124
- lineHeight: 0,
125
- boxSizing: "border-box",
126
- width: 150,
127
- } },
128
- React.createElement(QrCode, { value: url, size: 132, title: "QR code \u2014 scan to open this vibe" })),
129
- React.createElement("div", { style: { display: "flex", flexDirection: "column", gap: LINK_ACTION_GAP, minWidth: 0 } },
130
- React.createElement("p", { className: "text-light-primary dark:text-dark-primary", style: { fontSize: 14, fontWeight: 600, lineHeight: 1.5, margin: 0 } }, "Send this link to a friend"),
131
- React.createElement("span", { "data-share-secondary": true, className: "text-light-secondary dark:text-dark-secondary", style: {
132
- fontSize: 14,
133
- lineHeight: 1.5,
134
- overflowWrap: "anywhere",
135
- wordBreak: "break-word",
136
- } }, url),
137
- React.createElement("button", { type: "button", onClick: onCopy, "aria-label": "Copy link", className: "bg-blue-500 text-sm font-bold text-white transition-colors hover:bg-blue-600", style: {
138
- borderRadius: LINK_RADIUS,
139
- padding: "10px 12px",
140
- minHeight: 44,
141
- border: "none",
142
- fontSize: 14,
143
- lineHeight: "20px",
144
- } }, copied ? "Copied" : "Copy link"))),
145
- embedSnippet !== undefined && (React.createElement("div", { "data-testid": "share-embed", style: { display: "flex", flexDirection: "column", gap: 10, width: "100%" } },
146
- React.createElement("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8 } },
147
- React.createElement("p", { className: "text-light-primary dark:text-dark-primary", style: { fontSize: 14, fontWeight: 600, lineHeight: 1.5, margin: 0 } }, "Embed on your site")),
148
- React.createElement("textarea", { "data-share-secondary": true, readOnly: true, rows: 3, value: embedSnippet, "aria-label": "Embed code", onFocus: (e) => e.currentTarget.select(), className: "code-editor border-light-decorative-01 dark:border-dark-decorative-01 text-light-secondary dark:text-dark-secondary font-mono", style: {
149
- width: "100%",
150
- resize: "none",
151
- borderRadius: LINK_RADIUS,
152
- borderWidth: 1,
153
- borderStyle: "solid",
154
- background: "transparent",
155
- padding: "8px 10px 0",
156
- fontSize: 14,
157
- lineHeight: 1.5,
158
- boxSizing: "border-box",
159
- height: "calc(4.5em + 10px)",
160
- } }),
161
- React.createElement("button", { type: "button", onClick: onCopyEmbed, "aria-label": "Copy embed code", className: "border-light-decorative-01 dark:border-dark-decorative-01 text-light-primary dark:text-dark-primary text-sm font-bold transition-colors hover:bg-blue-500 hover:text-white", style: {
162
- borderRadius: LINK_RADIUS,
163
- padding: "10px 12px",
164
- minHeight: 44,
165
- fontSize: 14,
166
- lineHeight: "20px",
167
- borderWidth: 1,
168
- borderStyle: "solid",
169
- background: "transparent",
170
- } }, embedCopied ? "Copied" : "Copy embed code"))))),
118
+ viewer === "author" && publicationSlot,
119
+ React.createElement(ShareLinkView, { url: url, copied: copied, onCopy: onCopy, embedSnippet: embedSnippet, embedCopied: embedCopied, onCopyEmbed: onCopyEmbed, pinterestShareUrl: pinterestShareUrl }))),
171
120
  activeTab === "comments" && commentsSlot !== undefined ? (commentsSlot) : activeTab === "who" ? (React.createElement(React.Fragment, null,
121
+ accessSummarySlot,
172
122
  isAuthor ? (React.createElement("div", { "data-testid": "share-policy-notice" },
173
123
  (anonWrite === "explicit" || anonWrite === "legacy") && accessPending !== true && (React.createElement("div", { "data-testid": "share-anon-write-notice", style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 } },
174
124
  React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { margin: 0 } }, ANON_WRITE_NOTICE[anonWrite]),
@@ -190,14 +140,19 @@ export function SharePanelView({ url, copied, onCopy, embedSnippet, embedCopied,
190
140
  row.absorbed === true && row.provenance === "your-pin" ? "; not restricting anything right now" : "",
191
141
  ")"))))))) : null,
192
142
  isAuthor && inviteSlot !== undefined ? inviteSlot : null,
193
- React.createElement("div", null,
194
- React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, isAuthor ? "In this vibe" : access === "public" ? "People who’ve written here" : "People with access"),
143
+ (!isAuthor || membersManagementSlot === undefined || access === "public") && (React.createElement("div", null,
144
+ React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary", style: { marginBottom: 6 } }, isAuthor && membersManagementSlot === undefined
145
+ ? "In this vibe"
146
+ : access === "public"
147
+ ? "People who’ve written here"
148
+ : "People with access"),
195
149
  roster.length === 0 ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, access === "public" ? "No one’s written here yet." : "No one else has access yet.")) : (React.createElement("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 } }, roster.map((m) => {
196
150
  const tag = (React.createElement(ViewerTagView, { slug: m.handle, displayName: `@${m.handle}`, avatarUrl: m.avatarUrl, trailing: m.role ? (React.createElement("span", { style: { fontSize: 11, opacity: 0.6, marginLeft: 2 } }, roleLabel(m.role))) : undefined, style: ROSTER_TAG_STYLE }));
197
- return isAuthor ? (React.createElement("button", { key: m.handle, type: "button", "aria-label": `Manage @${m.handle}`, onClick: () => onSelectMember?.(m), style: { background: "none", border: "none", padding: 0, cursor: "pointer" } }, tag)) : (React.createElement("span", { key: m.handle }, tag));
198
- })))),
199
- isAuthor && requestsSlot !== undefined ? requestsSlot : null,
200
- isAuthor && developersSlot !== undefined ? developersSlot : null)) : activeTab === "notifications" && notifications !== undefined ? (React.createElement("div", null,
151
+ return isAuthor && membersManagementSlot === undefined ? (React.createElement("button", { key: m.handle, type: "button", "aria-label": `Manage @${m.handle}`, onClick: () => onSelectMember?.(m), style: { background: "none", border: "none", padding: 0, cursor: "pointer" } }, tag)) : (React.createElement("span", { key: m.handle }, tag));
152
+ }))))),
153
+ isAuthor && membersManagementSlot !== undefined ? membersManagementSlot : null,
154
+ isAuthor && membersManagementSlot === undefined && requestsSlot !== undefined ? requestsSlot : null,
155
+ isAuthor && membersManagementSlot === undefined && developersSlot !== undefined ? developersSlot : null)) : activeTab === "notifications" && notifications !== undefined ? (React.createElement("div", null,
201
156
  notificationSettingsSlot,
202
157
  notificationsError === true ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Couldn\u2019t load notifications for this vibe.")) : notificationsLoading === true && notifications.length === 0 ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "Loading notifications\u2026")) : notifications.length === 0 ? (React.createElement("p", { className: "text-xs text-light-secondary dark:text-dark-secondary" }, "No notifications for this vibe yet.")) : (React.createElement("div", { className: "rounded-md border border-light-decorative-01 dark:border-dark-decorative-01", style: { display: "flex", flexDirection: "column" } }, notifications.map((n) => {
203
158
  const isUnread = n.unread === true;
@@ -1 +1 @@
1
- {"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SharePanelView.js","sourceRoot":"","sources":["../../jsr/components/SharePanelView.tsx"],"names":[],"mappings":"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"}
@@ -117,7 +117,6 @@ export interface UnifiedVibeCardProps {
117
117
  streamSettled?: boolean;
118
118
  fullHeight?: boolean;
119
119
  historyBody?: React.ReactNode;
120
- upgradeChips?: React.ReactNode;
121
120
  seedOffer?: React.ReactNode;
122
121
  selectedNav?: "edit" | "edit-chat" | "standing" | "recommended" | "share" | "faq" | "code" | "files" | "data" | "style" | "settings";
123
122
  editorTab?: EditorTabKey;
@@ -1,4 +1,7 @@
1
+ import { UNIFIED_VIBE_SHARE_LIGHT_VARS, UNIFIED_VIBE_SHARE_DARK_VARS, UNIFIED_VIBE_SHARE_CSS, } from "./UnifiedVibeCardShare.styles.js";
2
+ import { PublishBanner } from "./PublishBanner.js";
1
3
  import React, { useCallback, useEffect, useRef, useState } from "react";
4
+ import { UNIFIED_VIBE_SETTINGS_LIGHT_VARS, UNIFIED_VIBE_SETTINGS_DARK_VARS, UNIFIED_VIBE_SETTINGS_CSS, } from "./UnifiedVibeCardSettings.styles.js";
2
5
  import { VibesSwitch } from "./VibesSwitch.js";
3
6
  import { ovalColors } from "./VibesSwitch.styles.js";
4
7
  import { EditorTabStrip } from "./EditorTabStrip.js";
@@ -16,6 +19,8 @@ import { AttachmentButton, AttachmentChips } from "./AttachmentRow.js";
16
19
  import { useAttachments } from "../attachments/use-attachments.js";
17
20
  import { composerFileDrop } from "../attachments/composer-file-drop.js";
18
21
  import { PeopleIcon } from "./icons/index.js";
22
+ import { useCardFloat } from "../hooks/useCardFloat.js";
23
+ import { useHomeMotionPress } from "../hooks/useHomeMotionPress.js";
19
24
  import { HOME_BRAND_FONT } from "./homeBrandFont.js";
20
25
  import { SAFE_AREA_TOP } from "../theme/safe-area.js";
21
26
  const UNIFIED_VIBE_CARD_DARK_VARS = `
@@ -52,7 +57,8 @@ const UNIFIED_VIBE_CARD_DARK_VARS = `
52
57
  --color-light-background-00: var(--color-dark-background-00, #1a1a1a);
53
58
  --color-light-background-01: var(--color-dark-background-01, #222222);
54
59
  --color-light-background-02: var(--color-dark-background-02, #222222);`;
55
- const UNIFIED_VIBE_CARD_GLASS_LIGHT_VARS = `
60
+ const UNIFIED_VIBE_CARD_GLASS_LIGHT_VARS = `${UNIFIED_VIBE_SETTINGS_LIGHT_VARS}
61
+ ${UNIFIED_VIBE_SHARE_LIGHT_VARS}
56
62
  --uvc-reading-ink:#161b18;
57
63
  --uvc-reading-label:#414b44;
58
64
  --uvc-reading-veil:rgba(255,255,240,.25);
@@ -75,7 +81,8 @@ const UNIFIED_VIBE_CARD_GLASS_LIGHT_VARS = `
75
81
  --uvc-suggestion-bg: rgba(255,255,255,.28);
76
82
  --vibes-field-bg: rgba(255,255,255,.2);
77
83
  --uvc-nav-home: #2563eb;`;
78
- const UNIFIED_VIBE_CARD_GLASS_DARK_VARS = `
84
+ const UNIFIED_VIBE_CARD_GLASS_DARK_VARS = `${UNIFIED_VIBE_SETTINGS_DARK_VARS}
85
+ ${UNIFIED_VIBE_SHARE_DARK_VARS}
79
86
  --uvc-reading-ink:#fffff0;
80
87
  --uvc-reading-label:#d0d6ce;
81
88
  --uvc-reading-veil:rgba(10,16,14,.25);
@@ -140,7 +147,7 @@ const unifiedVibeCardDarkCss = `
140
147
  }
141
148
  /* The card's layout still includes its footer. Only its glass surface ends
142
149
  at the former divider: retain the outer 1px border and footer's 1px top
143
- border as transparent spacing so the circles and switch never move. */
150
+ border as transparent spacing so the circles and switch keep their layout. */
144
151
  [data-unified-vibe-card]::before {
145
152
  content: ""; position: absolute; inset: -1px -1px 50px; border-radius: 14px;
146
153
  }
@@ -258,9 +265,35 @@ const unifiedVibeCardDarkCss = `
258
265
  }
259
266
  [data-unified-vibe-card][data-vibe-reading-mode="ink-veil"] [data-vibe-reading-surface] { border-radius:10px; }
260
267
  [data-vibe-card-body] form.vibes-edit-field textarea { color:var(--uvc-reading-ink); }
268
+ /* Inverse Float at 50% audition strength, preserving the outer opening scale.
269
+ Total x/y travel: ovals 2.25/4.5px, contents 2.125/4.25px,
270
+ glass 1.875/3.75px, header 1.375/2.75px, conversation .875/1.75px,
271
+ composer .375/.75px. Nested text subtracts .25/.5px from its surface.
272
+ Every layer moves in the same direction; layout and timing stay unchanged. */
273
+ [data-vibe-floating="true"]::before { translate:calc(var(--vibe-float-x,0)*1.875px) calc(var(--vibe-float-y,0)*3.75px); }
274
+ [data-vibe-floating="true"] [data-vibe-card-nav],
275
+ [data-vibe-floating-controls="true"] [data-vibe-switch-glass] { translate:calc(var(--vibe-float-x,0)*2.25px) calc(var(--vibe-float-y,0)*4.5px); }
276
+ [data-vibe-floating="true"] [data-vibe-card-nav] > button,
277
+ [data-vibe-floating-controls="true"] [data-vibe-switch-glass] > svg { translate:calc(var(--vibe-float-x,0)*-.125px) calc(var(--vibe-float-y,0)*-.25px); }
278
+ [data-vibe-floating="true"] [data-vibe-card-body] { translate:calc(var(--vibe-float-x,0)*1.375px) calc(var(--vibe-float-y,0)*2.75px); }
279
+ [data-vibe-floating="true"] [data-testid="vibe-card-scroll"] { translate:calc(var(--vibe-float-x,0)*-.5px) calc(var(--vibe-float-y,0)*-1px); }
280
+ [data-vibe-floating="true"] form.vibes-edit-field { translate:calc(var(--vibe-float-x,0)*-1px) calc(var(--vibe-float-y,0)*-2px); }
281
+ [data-vibe-floating="true"] [data-vibe-float-text],
282
+ [data-vibe-floating="true"] .prose,
283
+ [data-vibe-floating="true"] .vibes-chip-well [data-chip-role="option"] > span:first-child { translate:calc(var(--vibe-float-x,0)*-.25px) calc(var(--vibe-float-y,0)*-.5px); }
284
+ @media (prefers-reduced-motion:reduce) {
285
+ [data-vibe-floating]::before, [data-vibe-floating] [data-vibe-card-body],
286
+ [data-vibe-floating] [data-testid="vibe-card-scroll"], [data-vibe-floating] form.vibes-edit-field,
287
+ [data-vibe-floating] [data-vibe-float-text], [data-vibe-floating] .prose,
288
+ [data-vibe-floating] .vibes-chip-well [data-chip-role="option"] > span:first-child,
289
+ [data-vibe-floating] [data-vibe-card-nav], [data-vibe-floating-controls] [data-vibe-switch-glass],
290
+ [data-vibe-floating] [data-vibe-card-nav] > button, [data-vibe-floating-controls] [data-vibe-switch-glass] > svg { translate:none; }
291
+ }
261
292
  .light [data-unified-vibe-card] {
293
+ ${UNIFIED_VIBE_SHARE_LIGHT_VARS}
262
294
  --uvc-reading-ink:#161b18; --uvc-reading-label:#414b44; --uvc-reading-veil:rgba(255,255,240,.25);
263
295
  }
296
+ ${UNIFIED_VIBE_SETTINGS_CSS}
264
297
  /* The selected Frost header rule fades at both ends at half opacity,
265
298
  without consuming any of the card's content height. */
266
299
  [data-vibe-card-header]::after {
@@ -268,6 +301,7 @@ const unifiedVibeCardDarkCss = `
268
301
  background: linear-gradient(90deg, transparent, var(--uvc-glass-edge) 22%, var(--uvc-glass-edge) 78%, transparent);
269
302
  opacity: .5; pointer-events: none;
270
303
  }
304
+ ${UNIFIED_VIBE_SHARE_CSS}
271
305
  /* A · Line: the clip edge sits under the painted switch, inside the 120px
272
306
  hit box (whose SVG has transparent air at its left). 22px padding leaves
273
307
  the resting strip at right:132px without changing the switch geometry. */
@@ -769,6 +803,7 @@ export function UnifiedVibeCard(props) {
769
803
  const [userHeight, setUserHeight] = useState(null);
770
804
  const cardRef = useRef(null);
771
805
  const switchWrapRef = useRef(null);
806
+ const float = useCardFloat(cardRef, open && !hidden && (mounted || retained), switchWrapRef);
772
807
  useEffect(() => {
773
808
  if (open === false)
774
809
  return;
@@ -887,7 +922,7 @@ export function UnifiedVibeCard(props) {
887
922
  return (React.createElement(React.Fragment, null,
888
923
  React.createElement("style", null, unifiedVibeCardDarkCss),
889
924
  React.createElement(ClosedBuildStatus, { visible: open === false && hidden === false && props.closedBuildStatus !== undefined && props.closedBuildStatus !== null, content: props.closedBuildStatus }),
890
- !hidden && (mounted || retained) && (React.createElement("div", { ref: cardRef, role: "dialog", "aria-label": "Vibe menu", "data-unified-vibe-card": true, "data-vibe-agent-panel": agentPanelActive, "data-vibe-reading-mode": editorTabForRender === "style" && props.selectedNav !== "share" && !agentPanelActive ? "ink" : "ink-veil", className: props.className, "aria-hidden": mounted ? undefined : true, inert: mounted ? undefined : true, style: {
925
+ !hidden && (mounted || retained) && (React.createElement("div", { ref: cardRef, role: "dialog", "aria-label": "Vibe menu", "data-unified-vibe-card": true, "data-vibe-settings-active": editorTabForRender === "settings" && props.selectedNav !== "share" && !agentPanelActive, "data-vibe-agent-panel": agentPanelActive, "data-vibe-reading-mode": editorTabForRender === "style" && props.selectedNav !== "share" && !agentPanelActive ? "ink" : "ink-veil", className: props.className, "aria-hidden": mounted ? undefined : true, inert: mounted ? undefined : true, style: {
891
926
  position: "absolute",
892
927
  left: 2,
893
928
  right: 2,
@@ -969,7 +1004,7 @@ export function UnifiedVibeCard(props) {
969
1004
  props.appIconUrl && (React.createElement("img", { src: props.appIconUrl, alt: "", style: { width: "100%", height: "100%", objectFit: "cover", transform: "scale(2)" } })),
970
1005
  React.createElement(CodingIndicator, { active: props.coding === true })),
971
1006
  React.createElement("div", { style: { lineHeight: 1.2, minWidth: 0, flex: "1 1 auto" } },
972
- React.createElement("strong", { style: {
1007
+ React.createElement("strong", { "data-vibe-float-text": true, style: {
973
1008
  fontFamily: HOME_BRAND_FONT,
974
1009
  display: "block",
975
1010
  fontSize: 13,
@@ -1119,13 +1154,11 @@ export function UnifiedVibeCard(props) {
1119
1154
  : { marginBottom: 8 } },
1120
1155
  React.createElement("div", { style: streamLive ? { flex: "1 1 auto", minHeight: 0, overflowY: "auto" } : undefined }, props.streamBody),
1121
1156
  props.liveDuringBuild === true && React.createElement(PendingMessages, { messages: queued }))),
1122
- React.createElement("div", { "aria-hidden": streamLive && !chipBuildLive ? true : undefined, inert: streamLive && !chipBuildLive ? true : undefined, style: streamLive && !chipBuildLive ? { visibility: "hidden" } : { flexShrink: 0 } }, (props.seedOffer || props.upgradeChips || (visibleChips && visibleChips.length > 0)) && (React.createElement("div", { className: "mx-auto mt-2 w-full max-w-5xl" },
1157
+ React.createElement("div", { "aria-hidden": streamLive && !chipBuildLive ? true : undefined, inert: streamLive && !chipBuildLive ? true : undefined, style: streamLive && !chipBuildLive ? { visibility: "hidden" } : { flexShrink: 0 } }, (props.seedOffer || (visibleChips && visibleChips.length > 0)) && (React.createElement("div", { className: "mx-auto mt-2 w-full max-w-5xl" },
1123
1158
  React.createElement(ChatMessageRow, { role: "ai", rowAttrs: { "data-message-role": "suggestions" } },
1124
1159
  React.createElement("div", { className: "vibes-chip-well flex flex-col", "data-testid": "vibe-chip-set" },
1125
- (props.seedOffer || props.upgradeChips) && (React.createElement("div", { className: "flex flex-col gap-[6px]", inert: props.activeChip !== undefined },
1126
- props.seedOffer,
1127
- props.upgradeChips)),
1128
- visibleChips && visibleChips.length > 0 && (React.createElement(OptionButtons, { options: visibleChips, activeOption: props.activeChip, inSet: true, isFirst: props.activeChip === undefined, firstMessage: props.isOwner
1160
+ props.seedOffer && (React.createElement("div", { className: "flex flex-col gap-[6px]", inert: props.activeChip !== undefined }, props.seedOffer)),
1161
+ visibleChips && visibleChips.length > 0 && (React.createElement(OptionButtons, { options: visibleChips, activeOption: props.activeChip, inSet: true, isFirst: props.activeChip === undefined, firstMessage: props.viewerPending === true || props.isOwner === true
1129
1162
  ? "Suggested requests:"
1130
1163
  : "Describe a change to remix your own copy of this app:", onSelect: (o) => {
1131
1164
  const r = props.onSelectChip?.(o);
@@ -1143,10 +1176,11 @@ export function UnifiedVibeCard(props) {
1143
1176
  borderTop: "1px solid transparent",
1144
1177
  flexShrink: 0,
1145
1178
  } },
1146
- React.createElement(NavIcon, { label: "Home", color: "var(--uvc-nav-home, #2563eb)", onClick: props.onHome },
1179
+ React.createElement(NavIcon, { label: "Home", color: "var(--uvc-nav-home, #2563eb)", onClick: props.onHome, onLongPress: float.toggle },
1147
1180
  React.createElement("svg", { width: "17", height: "17", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" },
1148
1181
  React.createElement("path", { d: "M3 12l9-9 9 9" }),
1149
1182
  React.createElement("path", { d: "M5 10v10a1 1 0 001 1h4v-6h4v6h4a1 1 0 001-1V10" }))),
1183
+ React.createElement("span", { role: "status", className: "sr-only" }, float.status),
1150
1184
  React.createElement(NavIcon, { label: "Edit", color: "var(--uvc-nav-edit, #c2410c)", selected: ["edit", "edit-chat", "standing", "code", "files", "data", "style", "settings", "faq"].includes(props.selectedNav ?? "edit"), onClick: props.onEdit ?? props.onChat },
1151
1185
  React.createElement("svg", { width: "17", height: "17", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" },
1152
1186
  React.createElement("path", { d: "M12 20h9" }),
@@ -1388,130 +1422,6 @@ function ViewDraftBadge({ onClick }) {
1388
1422
  React.createElement("span", { "aria-hidden": true, style: { width: 6, height: 6, borderRadius: "50%", background: "#f59e0b" } }),
1389
1423
  "Draft \u00B7 view"));
1390
1424
  }
1391
- function PublishBanner({ variant, onPublish, publishing, locked, onUnlock, autoPublishError, onRetryAutoPublish, wizardActive, wizardError, escapeRevealed, onPublishWithoutAccess, onRetryWizard, }) {
1392
- if (autoPublishError === true) {
1393
- return (React.createElement("div", { className: "rounded-md", "data-testid": "auto-publish-error-banner", style: {
1394
- background: "rgba(245,158,11,0.10)",
1395
- border: "1px solid rgba(245,158,11,0.4)",
1396
- padding: "8px 10px",
1397
- marginBottom: 10,
1398
- display: "flex",
1399
- alignItems: "center",
1400
- justifyContent: "space-between",
1401
- gap: 8,
1402
- } },
1403
- React.createElement("span", { className: "text-sm", style: { color: "var(--uvc-amber-text, #92400e)", lineHeight: 1.3 } },
1404
- React.createElement("strong", null, "Couldn\u2019t publish your latest edit."),
1405
- " Your changes are saved but not live yet."),
1406
- React.createElement("button", { type: "button", onClick: onRetryAutoPublish, className: "rounded-md px-3 py-1.5 text-sm font-semibold", style: {
1407
- flexShrink: 0,
1408
- background: "var(--vibes-near-black, #1a1a1a)",
1409
- color: "#fff",
1410
- border: "none",
1411
- cursor: "pointer",
1412
- } }, "Retry")));
1413
- }
1414
- if (locked === true) {
1415
- return (React.createElement("div", { className: "rounded-md", "data-testid": "version-locked-banner", style: {
1416
- background: "rgba(245,158,11,0.10)",
1417
- border: "1px solid rgba(245,158,11,0.4)",
1418
- padding: "8px 10px",
1419
- marginBottom: 10,
1420
- display: "flex",
1421
- alignItems: "center",
1422
- justifyContent: "space-between",
1423
- gap: 8,
1424
- } },
1425
- React.createElement("span", { className: "text-sm", style: { color: "var(--uvc-amber-text, #92400e)", lineHeight: 1.3 } },
1426
- React.createElement("strong", null, "Version locked."),
1427
- " New edits won\u2019t go live until you unlock."),
1428
- onUnlock && (React.createElement("button", { type: "button", onClick: onUnlock, className: "rounded-md px-3 py-1.5 text-sm font-semibold", style: {
1429
- flexShrink: 0,
1430
- background: "var(--vibes-near-black, #1a1a1a)",
1431
- color: "#fff",
1432
- border: "none",
1433
- cursor: "pointer",
1434
- } }, "Unlock"))));
1435
- }
1436
- if (wizardActive === true || wizardError === true) {
1437
- const showEscape = (wizardActive === true && escapeRevealed === true) || wizardError === true;
1438
- return (React.createElement("div", { className: wizardError === true ? "rounded-md" : "rounded-md vibes-securing", role: wizardError === true ? "alert" : "status", "data-testid": "access-wizard-banner", "data-wizard-state": wizardError === true ? "error" : "running", style: {
1439
- backgroundColor: wizardError === true ? "rgba(245,158,11,0.10)" : "rgba(59,130,246,0.08)",
1440
- border: wizardError === true ? "1px solid rgba(245,158,11,0.4)" : "1px solid rgba(59,130,246,0.35)",
1441
- padding: "8px 10px",
1442
- marginBottom: 10,
1443
- display: "flex",
1444
- alignItems: "center",
1445
- justifyContent: "space-between",
1446
- gap: 8,
1447
- } },
1448
- React.createElement("span", { className: "text-sm", style: {
1449
- color: wizardError === true ? "var(--uvc-amber-text, #92400e)" : "var(--uvc-blue-text, #1d4ed8)",
1450
- lineHeight: 1.3,
1451
- } }, wizardError === true ? (React.createElement(React.Fragment, null,
1452
- React.createElement("strong", null, "Couldn\u2019t set up access rules."),
1453
- " Your app is still live for people you approve \u2014 it didn\u2019t go public.")) : (React.createElement(React.Fragment, null,
1454
- React.createElement("strong", null, "Securing\u2026"),
1455
- " Setting up data access control rules before opening this app to everyone with the link."))),
1456
- React.createElement("div", { style: { display: "flex", flexDirection: "column", gap: 6, flexShrink: 0, alignItems: "stretch" } },
1457
- wizardError === true ? (React.createElement("button", { type: "button", onClick: onRetryWizard, className: "rounded-md px-3 py-1.5 text-sm font-semibold", style: { background: "var(--vibes-near-black, #1a1a1a)", color: "#fff", border: "none", cursor: "pointer" } }, "Retry")) : (React.createElement("button", { type: "button", onClick: onPublish, className: "rounded-md px-3 py-1.5 text-sm font-semibold", style: {
1458
- display: "flex",
1459
- alignItems: "center",
1460
- gap: 6,
1461
- background: "var(--vibes-blue, #3b82f6)",
1462
- color: "#fff",
1463
- border: "none",
1464
- cursor: "default",
1465
- opacity: 0.7,
1466
- } },
1467
- React.createElement("span", { "aria-hidden": "true", className: "vibes-securing-spinner", style: {
1468
- width: 12,
1469
- height: 12,
1470
- flexShrink: 0,
1471
- borderRadius: "50%",
1472
- border: "2px solid currentColor",
1473
- borderTopColor: "transparent",
1474
- } }),
1475
- "Securing\u2026")),
1476
- showEscape && (React.createElement("button", { type: "button", onClick: onPublishWithoutAccess, "data-testid": "publish-without-access-controls", className: "rounded-md px-3 py-1 text-xs font-medium", style: {
1477
- background: "transparent",
1478
- color: wizardError === true ? "var(--uvc-amber-text, #92400e)" : "var(--uvc-blue-text, #1d4ed8)",
1479
- border: "1px solid currentColor",
1480
- cursor: "pointer",
1481
- whiteSpace: "nowrap",
1482
- } }, "Go public without access controls")))));
1483
- }
1484
- return (React.createElement("div", { className: "rounded-md", style: {
1485
- background: "rgba(245,158,11,0.10)",
1486
- border: "1px solid rgba(245,158,11,0.4)",
1487
- padding: 10,
1488
- marginBottom: 10,
1489
- display: "flex",
1490
- alignItems: "center",
1491
- justifyContent: "space-between",
1492
- gap: 8,
1493
- } },
1494
- React.createElement("span", { className: "text-sm", style: {
1495
- color: "var(--uvc-amber-text, #92400e)",
1496
- fontSize: 13,
1497
- lineHeight: 1.45,
1498
- } }, variant === "draft" ? (React.createElement(React.Fragment, null,
1499
- React.createElement("strong", null, "Draft."),
1500
- " Your latest changes aren\u2019t live yet.")) : (React.createElement(React.Fragment, null,
1501
- React.createElement("strong", null, "Older version."),
1502
- " This isn\u2019t what visitors currently see."))),
1503
- onPublish && (React.createElement("button", { type: "button", onClick: onPublish, disabled: publishing, className: "rounded-md px-3 py-1.5 text-sm font-semibold", style: {
1504
- flexShrink: 0,
1505
- fontSize: 13,
1506
- minHeight: 38,
1507
- padding: "8px 10px",
1508
- background: "var(--vibes-near-black, #1a1a1a)",
1509
- color: "#fff",
1510
- border: "none",
1511
- cursor: publishing ? "default" : "pointer",
1512
- opacity: publishing ? 0.6 : 1,
1513
- } }, publishing ? "Publishing…" : variant === "draft" ? "Update" : "Publish this version"))));
1514
- }
1515
1425
  function decorateChip(option, props) {
1516
1426
  const fp = props.chipFastPaths?.[option];
1517
1427
  if (!fp)
@@ -1553,10 +1463,11 @@ function FastPathToggle({ blessed, onClick }) {
1553
1463
  React.createElement("path", { d: "M12 3l7 3v5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3z" })),
1554
1464
  React.createElement("span", null, blessed ? "Featured" : "Feature")));
1555
1465
  }
1556
- function NavIcon({ label, color, selected, onClick, buttonRef, badgeCount, children, }) {
1466
+ function NavIcon({ label, color, selected, onClick, onLongPress, buttonRef, badgeCount, children, }) {
1467
+ const press = useHomeMotionPress({ onHome: () => onClick?.(), onLongPress });
1557
1468
  const showBadge = typeof badgeCount === "number" && badgeCount > 0;
1558
1469
  const badgeText = showBadge ? (badgeCount > 99 ? "99+" : String(badgeCount)) : "";
1559
- return (React.createElement("button", { ref: buttonRef, type: "button", "aria-label": showBadge ? `${label} (${badgeCount})` : label, title: label, "data-vibe-nav-selected": selected === true, onClick: onClick, style: {
1470
+ return (React.createElement("button", { ref: buttonRef, type: "button", "aria-label": showBadge ? `${label} (${badgeCount})` : label, title: onLongPress === undefined ? label : "Home · Hold and release to toggle Float (Alt+Enter)", "data-vibe-nav-selected": selected === true, ...press, style: {
1560
1471
  position: "relative",
1561
1472
  width: "var(--uvc-nav-size, 38px)",
1562
1473
  height: "var(--uvc-nav-size, 38px)",
@@ -1698,7 +1609,7 @@ function OtherRow({ value, onValueChange, queued, onQueuedChange, onSubmitOther,
1698
1609
  }
1699
1610
  onValueChange("");
1700
1611
  }, style: { display: "flex", flexDirection: "column", gap: 6, marginTop: 6, padding: "10px 10px 10px 12px" }, className: "vibes-edit-field" },
1701
- React.createElement("div", { style: { position: "relative", minWidth: 0, display: "flex" } },
1612
+ React.createElement("div", { "data-vibe-float-text": true, style: { position: "relative", minWidth: 0, display: "flex" } },
1702
1613
  React.createElement(AutoGrowTextarea, { value: value, onValueChange: onValueChange, ariaLabel: "Change the app" }),
1703
1614
  value === "" && (React.createElement("span", { "aria-hidden": true, className: "text-sm text-light-secondary dark:text-dark-secondary", style: {
1704
1615
  position: "absolute",