@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewerAccessSummary.js","sourceRoot":"","sources":["../../jsr/components/ViewerAccessSummary.tsx"],"names":[],"mappings":"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"}
@@ -1,29 +1,7 @@
1
1
  import * as React from "react";
2
- export type ViewerStandingTier = "admin" | "owner" | "readonly" | "neutral";
3
- export type ViewerStandingGrant = "owner" | "editor" | "viewer" | "submitter" | "public" | "none";
4
- export interface ViewerStandingState {
5
- readonly viewerMode?: "author" | "member" | "visitor";
6
- readonly memberReadOnly?: boolean;
7
- readonly adminMode?: boolean;
8
- readonly versionLocked?: boolean;
9
- readonly publishState?: "draft" | "published" | "old";
10
- readonly publishAccess?: "public" | "private";
11
- readonly myGrant?: ViewerStandingGrant;
12
- }
13
- export interface ViewerStandingCopy {
14
- readonly tier: ViewerStandingTier;
15
- readonly label: string;
16
- readonly body: string;
17
- readonly note?: string;
18
- readonly roleLine?: string;
19
- }
20
- export declare function viewerStandingCopy(state: ViewerStandingState): ViewerStandingCopy;
21
- export declare function ViewerStandingGlyph({ tier, size }: {
22
- readonly tier: ViewerStandingTier;
23
- readonly size?: number;
24
- }): React.JSX.Element;
25
- export interface ViewerStandingActions {
2
+ import { type ViewerAccessSummaryActions, type ViewerStandingState } from "./ViewerAccessSummary.js";
3
+ export { ViewerStandingGlyph, viewerStandingCopy, type ViewerStandingCopy, type ViewerStandingGrant, type ViewerStandingState, type ViewerStandingTier, } from "./ViewerAccessSummary.js";
4
+ export interface ViewerStandingActions extends ViewerAccessSummaryActions {
26
5
  readonly onToggleAdmin?: () => void;
27
- readonly onUnlock?: () => void;
28
6
  }
29
- export declare function ViewerStandingView(props: ViewerStandingState & ViewerStandingActions): React.JSX.Element;
7
+ export declare function ViewerStandingView({ onToggleAdmin, ...state }: ViewerStandingState & ViewerStandingActions): React.JSX.Element;
@@ -1,108 +1,10 @@
1
1
  import * as React from "react";
2
- export function viewerStandingCopy(state) {
3
- const { viewerMode, memberReadOnly, adminMode, versionLocked, publishState, publishAccess, myGrant } = state;
4
- const roleLine = myGrant === "editor" || myGrant === "viewer" || myGrant === "submitter" ? `Your role: ${myGrant}` : undefined;
5
- if (viewerMode === "author" && adminMode) {
6
- return {
7
- tier: "admin",
8
- label: "Admin mode",
9
- body: "Admin mode is on — this vibe’s access rules are bypassed for you, so you see and can write every document, including data the app would normally hide.",
10
- };
11
- }
12
- if (viewerMode === "author") {
13
- const note = publishAccess === "private"
14
- ? "It’s shared privately: only you and its members can open it."
15
- : publishAccess === "public"
16
- ? "It’s shared publicly: anyone with the link can open it."
17
- : undefined;
18
- if (versionLocked) {
19
- return {
20
- tier: "owner",
21
- label: "Owner",
22
- body: "You are an owner of this vibe, and a version is pinned as the live release. Your changes won’t appear live until you unpin it.",
23
- note,
24
- };
25
- }
26
- if (publishState === "draft") {
27
- return {
28
- tier: "owner",
29
- label: "Owner",
30
- body: "You are an owner of this vibe, and a draft is on screen — your latest changes aren’t live yet. Update the published app to put them live.",
31
- note,
32
- };
33
- }
34
- if (publishState === "old") {
35
- return {
36
- tier: "owner",
37
- label: "Owner",
38
- body: "You are an owner of this vibe, and you’re looking at an older version — it isn’t what visitors get. Editing from here starts a new version.",
39
- note,
40
- };
41
- }
42
- return {
43
- tier: "owner",
44
- label: "Owner",
45
- body: "You are an owner of this vibe, and no version is pinned, so your changes will appear live as you make them.",
46
- note,
47
- };
48
- }
49
- if (viewerMode === "member") {
50
- if (memberReadOnly) {
51
- return {
52
- tier: "readonly",
53
- label: "Read-only",
54
- body: "You are a read-only member of this vibe. You can look at this vibe’s data, but not change it.",
55
- roleLine,
56
- };
57
- }
58
- return {
59
- tier: "neutral",
60
- label: "Member",
61
- body: "You are a member of this vibe — your edits will become a new remix you can propose back to the group.",
62
- roleLine,
63
- };
64
- }
65
- return {
66
- tier: "neutral",
67
- label: "Visitor",
68
- body: "You are viewing someone else’s vibe. Anything you edit starts your own remix — the original stays exactly as it is.",
69
- };
70
- }
71
- export function ViewerStandingGlyph({ tier, size = 16 }) {
72
- const isAdmin = tier === "admin";
73
- const isShield = tier !== "readonly";
74
- const common = {
75
- width: size,
76
- height: size,
77
- viewBox: "0 0 24 24",
78
- stroke: "currentColor",
79
- strokeWidth: 2,
80
- strokeLinecap: "round",
81
- strokeLinejoin: "round",
82
- "aria-hidden": true,
83
- };
84
- return (React.createElement("span", { style: { display: "inline-flex", flexShrink: 0, ...(isAdmin ? { color: "#d97706" } : {}) } }, isShield ? (React.createElement("svg", { ...common, fill: isAdmin ? "currentColor" : "none" },
85
- React.createElement("path", { d: "M12 3l7 3v5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3z" }))) : (React.createElement("svg", { ...common, fill: "none" },
86
- React.createElement("rect", { x: "5", y: "11", width: "14", height: "9", rx: "2" }),
87
- React.createElement("path", { d: "M8 11V7a4 4 0 0 1 8 0v4" })))));
88
- }
89
- export function ViewerStandingView(props) {
90
- const { onToggleAdmin, onUnlock, ...state } = props;
91
- const copy = viewerStandingCopy(state);
92
- const isAuthor = state.viewerMode === "author";
93
- const showUnlock = isAuthor && state.versionLocked === true && !!onUnlock;
2
+ import { AdminModeControl } from "./AdminModeControl.js";
3
+ import { ViewerAccessSummary } from "./ViewerAccessSummary.js";
4
+ export { ViewerStandingGlyph, viewerStandingCopy, } from "./ViewerAccessSummary.js";
5
+ export function ViewerStandingView({ onToggleAdmin, ...state }) {
94
6
  return (React.createElement("div", { className: "flex flex-col gap-3 p-4 text-sm", "data-testid": "viewer-standing" },
95
- React.createElement("div", { className: "flex items-center gap-2" },
96
- React.createElement("span", { className: copy.tier === "admin" ? undefined : "text-light-secondary dark:text-dark-secondary" },
97
- React.createElement(ViewerStandingGlyph, { tier: copy.tier, size: 20 })),
98
- React.createElement("span", { className: "font-medium text-neutral-900 dark:text-neutral-100" }, copy.label)),
99
- React.createElement("p", { className: "text-neutral-700 dark:text-neutral-300" }, copy.body),
100
- showUnlock && (React.createElement("div", null,
101
- React.createElement("button", { type: "button", "data-testid": "viewer-standing-unlock", onClick: onUnlock, className: "rounded-md bg-neutral-900 px-3 py-1.5 text-sm font-semibold text-white dark:bg-neutral-100 dark:text-neutral-900" }, "Unlock"))),
102
- copy.note && React.createElement("p", { className: "text-neutral-500 dark:text-neutral-400" }, copy.note),
103
- copy.roleLine && React.createElement("p", { className: "text-neutral-500 dark:text-neutral-400" }, copy.roleLine),
104
- isAuthor && onToggleAdmin && (React.createElement("label", { className: "flex items-center gap-2 text-neutral-700 dark:text-neutral-300" },
105
- React.createElement("input", { type: "checkbox", checked: state.adminMode === true, onChange: () => void onToggleAdmin(), className: "rounded border-gray-300 dark:border-gray-600" }),
106
- React.createElement("span", null, "Admin mode")))));
7
+ React.createElement(ViewerAccessSummary, { ...state }),
8
+ React.createElement(AdminModeControl, { isOwner: state.viewerMode === "author", adminMode: state.adminMode === true, onToggle: onToggleAdmin })));
107
9
  }
108
10
  //# sourceMappingURL=ViewerStandingView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerStandingView.js","sourceRoot":"","sources":["../../jsr/components/ViewerStandingView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4D/B,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAI7G,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAK/H,IAAI,UAAU,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,wJAAwJ;SAC/J,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GACR,aAAa,KAAK,SAAS;YACzB,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,aAAa,KAAK,QAAQ;gBAC1B,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,SAAS,CAAC;QAClB,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,gIAAgI;gBACtI,IAAI;aACL,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,2IAA2I;gBACjJ,IAAI;aACL,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,6IAA6I;gBACnJ,IAAI;aACL,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,6GAA6G;YACnH,IAAI;SACL,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,+FAA+F;gBACrG,QAAQ;aACT,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,uGAAuG;YAC7G,QAAQ;SACT,CAAC;IACJ,CAAC;IAID,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,qHAAqH;KAC5H,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAiE;IACpH,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC;IACrC,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,OAAgB;QAC/B,cAAc,EAAE,OAAgB;QAChC,aAAa,EAAE,IAAa;KAC7B,CAAC;IACF,OAAO,CACL,8BAIE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAEzF,QAAQ,CAAC,CAAC,CAAC,CACV,gCAAS,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACtD,8BAAM,CAAC,EAAC,oDAAoD,GAAG,CAC3D,CACP,CAAC,CAAC,CAAC,CACF,gCAAS,MAAM,EAAE,IAAI,EAAC,MAAM;QAC1B,8BAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG;QAClD,8BAAM,CAAC,EAAC,yBAAyB,GAAG,CAChC,CACP,CACI,CACR,CAAC;AACJ,CAAC;AAeD,MAAM,UAAU,kBAAkB,CAAC,KAAkD;IACnF,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IACpD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC1E,OAAO,CACL,6BAAK,SAAS,EAAC,iCAAiC,iBAAa,iBAAiB;QAC5E,6BAAK,SAAS,EAAC,yBAAyB;YACtC,8BAAM,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+CAA+C;gBAClG,oBAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,CAC7C;YACP,8BAAM,SAAS,EAAC,oDAAoD,IAAE,IAAI,CAAC,KAAK,CAAQ,CACpF;QACN,2BAAG,SAAS,EAAC,wCAAwC,IAAE,IAAI,CAAC,IAAI,CAAK;QACpE,UAAU,IAAI,CACb;YACE,gCACE,IAAI,EAAC,QAAQ,iBACD,wBAAwB,EACpC,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,kHAAkH,aAGrH,CACL,CACP;QACA,IAAI,CAAC,IAAI,IAAI,2BAAG,SAAS,EAAC,wCAAwC,IAAE,IAAI,CAAC,IAAI,CAAK;QAClF,IAAI,CAAC,QAAQ,IAAI,2BAAG,SAAS,EAAC,wCAAwC,IAAE,IAAI,CAAC,QAAQ,CAAK;QAC1F,QAAQ,IAAI,aAAa,IAAI,CAG5B,+BAAO,SAAS,EAAC,gEAAgE;YAC/E,+BACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,EACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACpC,SAAS,EAAC,8CAA8C,GACxD;YACF,+CAAuB,CACjB,CACT,CACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ViewerStandingView.js","sourceRoot":"","sources":["../../jsr/components/ViewerStandingView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAA6D,MAAM,0BAA0B,CAAC;AAI1H,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAKnB,MAAM,0BAA0B,CAAC;AAOlC,MAAM,UAAU,kBAAkB,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAA+C;IACzG,OAAO,CACL,6BAAK,SAAS,EAAC,iCAAiC,iBAAa,iBAAiB;QAC5E,oBAAC,mBAAmB,OAAK,KAAK,GAAI;QAClC,oBAAC,gBAAgB,IAAC,OAAO,EAAE,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAI,CACtH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ export declare const EDITOR_TAB_DEFINITIONS: readonly [{
2
+ readonly key: "standing";
3
+ readonly label: "Your access";
4
+ }, {
5
+ readonly key: "edit-chat";
6
+ readonly label: "Chat";
7
+ }, {
8
+ readonly key: "style";
9
+ readonly label: "Style";
10
+ }, {
11
+ readonly key: "code";
12
+ readonly label: "Code";
13
+ }, {
14
+ readonly key: "files";
15
+ readonly label: "Files";
16
+ }, {
17
+ readonly key: "data";
18
+ readonly label: "Data";
19
+ }, {
20
+ readonly key: "settings";
21
+ readonly label: "Settings";
22
+ }, {
23
+ readonly key: "faq";
24
+ readonly label: "FAQ";
25
+ }];
26
+ export type EditorTabKey = (typeof EDITOR_TAB_DEFINITIONS)[number]["key"];
27
+ export declare const EDITOR_TABS: readonly EditorTabKey[];
28
+ export declare function isEditorTabKey(value: unknown): value is EditorTabKey;
@@ -0,0 +1,15 @@
1
+ export const EDITOR_TAB_DEFINITIONS = [
2
+ { key: "standing", label: "Your access" },
3
+ { key: "edit-chat", label: "Chat" },
4
+ { key: "style", label: "Style" },
5
+ { key: "code", label: "Code" },
6
+ { key: "files", label: "Files" },
7
+ { key: "data", label: "Data" },
8
+ { key: "settings", label: "Settings" },
9
+ { key: "faq", label: "FAQ" },
10
+ ];
11
+ export const EDITOR_TABS = EDITOR_TAB_DEFINITIONS.map(({ key }) => key);
12
+ export function isEditorTabKey(value) {
13
+ return EDITOR_TAB_DEFINITIONS.some(({ key }) => key === value);
14
+ }
15
+ //# sourceMappingURL=editor-tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-tabs.js","sourceRoot":"","sources":["../../jsr/components/editor-tabs.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE;IACzC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;IACnC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAChC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9B,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAChC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9B,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACtC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;CACpB,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAA4B,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAEjG,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- export declare const HOME_BRAND_FONT = "'Alfphabet IV', 'Alte Haas Grotesk', Inter, sans-serif";
1
+ export declare const HOME_BRAND_FONT = "'Alte Haas Grotesk', Inter, sans-serif";
@@ -1,2 +1,2 @@
1
- export const HOME_BRAND_FONT = "'Alfphabet IV', 'Alte Haas Grotesk', Inter, sans-serif";
1
+ export const HOME_BRAND_FONT = "'Alte Haas Grotesk', Inter, sans-serif";
2
2
  //# sourceMappingURL=homeBrandFont.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homeBrandFont.js","sourceRoot":"","sources":["../../jsr/components/homeBrandFont.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAAG,wDAAwD,CAAC"}
1
+ {"version":3,"file":"homeBrandFont.js","sourceRoot":"","sources":["../../jsr/components/homeBrandFont.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,eAAe,GAAG,wCAAwC,CAAC"}
@@ -21,7 +21,6 @@ export * from "./OnboardingOverlay.js";
21
21
  export * from "./HandleLookupView.js";
22
22
  export * from "./UnifiedVibeCard.js";
23
23
  export * from "./SeedDataOffer.js";
24
- export * from "./PromiseStrip.js";
25
24
  export * from "./EditorTabStrip.js";
26
25
  export * from "./StyleControls.js";
27
26
  export * from "./LayoutControls.js";
@@ -44,3 +43,10 @@ export * from "./BuildCard.js";
44
43
  export * from "./CodingIndicator.js";
45
44
  export * from "./NotificationDetailView.js";
46
45
  export * from "./ChatMessageRow.js";
46
+ export * from "./MemberAccessView.js";
47
+ export * from "./MemberInvitationView.js";
48
+ export * from "./ViewerAccessSummary.js";
49
+ export * from "./AdminModeControl.js";
50
+ export * from "./editor-tabs.js";
51
+ export * from "./ShareLinkView.js";
52
+ export * from "./PublishBanner.js";
@@ -21,7 +21,6 @@ export * from "./OnboardingOverlay.js";
21
21
  export * from "./HandleLookupView.js";
22
22
  export * from "./UnifiedVibeCard.js";
23
23
  export * from "./SeedDataOffer.js";
24
- export * from "./PromiseStrip.js";
25
24
  export * from "./EditorTabStrip.js";
26
25
  export * from "./StyleControls.js";
27
26
  export * from "./LayoutControls.js";
@@ -44,4 +43,11 @@ export * from "./BuildCard.js";
44
43
  export * from "./CodingIndicator.js";
45
44
  export * from "./NotificationDetailView.js";
46
45
  export * from "./ChatMessageRow.js";
46
+ export * from "./MemberAccessView.js";
47
+ export * from "./MemberInvitationView.js";
48
+ export * from "./ViewerAccessSummary.js";
49
+ export * from "./AdminModeControl.js";
50
+ export * from "./editor-tabs.js";
51
+ export * from "./ShareLinkView.js";
52
+ export * from "./PublishBanner.js";
47
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../jsr/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../jsr/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { RefObject } from "react";
2
+ export declare const CardMotionContext: import("react").Context<import("../motion/card-motion-source.js").CardMotionSource>;
3
+ export declare function useCardFloat(ref: RefObject<HTMLDivElement | null>, open: boolean, controlsRef?: RefObject<HTMLDivElement | null>): {
4
+ toggle: () => void;
5
+ status: string;
6
+ };
@@ -0,0 +1,191 @@
1
+ import { createContext, useContext, useEffect, useRef, useState } from "react";
2
+ import { browserCardMotion } from "../motion/card-motion-source.js";
3
+ export const CardMotionContext = createContext(browserCardMotion);
4
+ const clamp = (value) => Math.max(-1, Math.min(1, value));
5
+ const delta = (value, baseline) => ((value - baseline + 540) % 360) - 180;
6
+ export function useCardFloat(ref, open, controlsRef) {
7
+ const source = useContext(CardMotionContext);
8
+ const [allowed, setAllowed] = useState(false);
9
+ const [off, setOff] = useState(false);
10
+ const [reduced, setReduced] = useState(false);
11
+ const [status, setStatus] = useState("");
12
+ const request = useRef(0);
13
+ const pending = useRef(false);
14
+ useEffect(() => {
15
+ const preference = window.matchMedia("(prefers-reduced-motion: reduce)");
16
+ const update = () => setReduced(preference.matches);
17
+ update();
18
+ preference.addEventListener("change", update);
19
+ return () => preference.removeEventListener("change", update);
20
+ }, []);
21
+ useEffect(() => {
22
+ let live = true;
23
+ if (open && !reduced && !off) {
24
+ void source.canStartAutomatically().then((automatic) => {
25
+ if (live && automatic)
26
+ setAllowed(true);
27
+ });
28
+ }
29
+ return () => {
30
+ live = false;
31
+ };
32
+ }, [source, open, reduced, off]);
33
+ useEffect(() => () => {
34
+ request.current += 1;
35
+ }, []);
36
+ useEffect(() => {
37
+ const root = ref.current;
38
+ if (root === null)
39
+ return;
40
+ const controls = controlsRef?.current;
41
+ const surfaces = controls ? [root, controls] : [root];
42
+ const neutral = () => {
43
+ surfaces.forEach((surface) => {
44
+ surface.style.removeProperty("--vibe-float-x");
45
+ surface.style.removeProperty("--vibe-float-y");
46
+ });
47
+ root.removeAttribute("data-vibe-floating");
48
+ controls?.removeAttribute("data-vibe-floating-controls");
49
+ };
50
+ neutral();
51
+ if (!open || !allowed || off || reduced)
52
+ return;
53
+ let baseline;
54
+ let target = { x: 0, y: 0 };
55
+ let current = { x: 0, y: 0 };
56
+ let frame = 0;
57
+ let pointerHeld = false;
58
+ let touchHeld = false;
59
+ let scrollUntil = 0;
60
+ let resumeTimer;
61
+ const editing = () => {
62
+ const active = document.activeElement;
63
+ return active !== null && root.contains(active) && active.matches("input,textarea,select,[contenteditable=true]");
64
+ };
65
+ function schedule() {
66
+ if (frame === 0 && !document.hidden)
67
+ frame = requestAnimationFrame(paint);
68
+ }
69
+ function paint() {
70
+ frame = 0;
71
+ if (pointerHeld || touchHeld || editing() || performance.now() < scrollUntil)
72
+ return;
73
+ current = { x: current.x + (target.x - current.x) * 0.12, y: current.y + (target.y - current.y) * 0.12 };
74
+ surfaces.forEach((surface) => {
75
+ surface.style.setProperty("--vibe-float-x", String(current.x));
76
+ surface.style.setProperty("--vibe-float-y", String(current.y));
77
+ });
78
+ if (Math.abs(target.x - current.x) + Math.abs(target.y - current.y) > 0.001)
79
+ schedule();
80
+ }
81
+ const unsubscribe = source.subscribe((reading) => {
82
+ if (document.hidden)
83
+ return;
84
+ if (baseline === undefined || baseline.angle !== reading.angle) {
85
+ baseline = reading;
86
+ target = { x: 0, y: 0 };
87
+ }
88
+ else {
89
+ const angle = (reading.angle * Math.PI) / 180;
90
+ const dx = delta(reading.gamma, baseline.gamma);
91
+ const dy = delta(reading.beta, baseline.beta);
92
+ target = {
93
+ x: clamp((dx * Math.cos(angle) + dy * Math.sin(angle)) / 20),
94
+ y: clamp((dy * Math.cos(angle) - dx * Math.sin(angle)) / 20),
95
+ };
96
+ }
97
+ root.setAttribute("data-vibe-floating", "true");
98
+ controls?.setAttribute("data-vibe-floating-controls", "true");
99
+ schedule();
100
+ });
101
+ const hold = () => {
102
+ pointerHeld = true;
103
+ };
104
+ const release = () => {
105
+ pointerHeld = false;
106
+ schedule();
107
+ };
108
+ const holdTouch = () => {
109
+ touchHeld = true;
110
+ };
111
+ const releaseTouch = (event) => {
112
+ touchHeld = event.touches.length > 0;
113
+ schedule();
114
+ };
115
+ const reset = () => {
116
+ baseline = undefined;
117
+ target = { x: 0, y: 0 };
118
+ current = { x: 0, y: 0 };
119
+ pointerHeld = false;
120
+ touchHeld = false;
121
+ cancelAnimationFrame(frame);
122
+ frame = 0;
123
+ neutral();
124
+ };
125
+ const scroll = () => {
126
+ scrollUntil = performance.now() + 160;
127
+ clearTimeout(resumeTimer);
128
+ resumeTimer = setTimeout(schedule, 160);
129
+ };
130
+ surfaces.forEach((surface) => {
131
+ surface.addEventListener("pointerdown", hold, true);
132
+ surface.addEventListener("touchstart", holdTouch, { passive: true });
133
+ });
134
+ root.addEventListener("scroll", scroll, true);
135
+ root.addEventListener("focusout", schedule);
136
+ window.addEventListener("pointerup", release);
137
+ window.addEventListener("pointercancel", release);
138
+ window.addEventListener("touchend", releaseTouch);
139
+ window.addEventListener("touchcancel", releaseTouch);
140
+ window.addEventListener("blur", reset);
141
+ document.addEventListener("visibilitychange", reset);
142
+ return () => {
143
+ unsubscribe();
144
+ cancelAnimationFrame(frame);
145
+ clearTimeout(resumeTimer);
146
+ neutral();
147
+ surfaces.forEach((surface) => {
148
+ surface.removeEventListener("pointerdown", hold, true);
149
+ surface.removeEventListener("touchstart", holdTouch);
150
+ });
151
+ root.removeEventListener("scroll", scroll, true);
152
+ root.removeEventListener("focusout", schedule);
153
+ window.removeEventListener("pointerup", release);
154
+ window.removeEventListener("pointercancel", release);
155
+ window.removeEventListener("touchend", releaseTouch);
156
+ window.removeEventListener("touchcancel", releaseTouch);
157
+ window.removeEventListener("blur", reset);
158
+ document.removeEventListener("visibilitychange", reset);
159
+ };
160
+ }, [ref, open, allowed, off, reduced, source, controlsRef]);
161
+ function toggle() {
162
+ if (reduced) {
163
+ setStatus("Float follows your reduced-motion setting.");
164
+ return;
165
+ }
166
+ if (pending.current)
167
+ return;
168
+ if (allowed && !off) {
169
+ setOff(true);
170
+ setStatus("Float off.");
171
+ return;
172
+ }
173
+ const token = ++request.current;
174
+ pending.current = true;
175
+ void source.requestPermission().then((granted) => {
176
+ if (request.current !== token)
177
+ return;
178
+ pending.current = false;
179
+ setAllowed(granted);
180
+ setOff(false);
181
+ setStatus(granted ? "Float enabled when tilt readings are available." : "Motion access is unavailable. Float stays still.");
182
+ }, () => {
183
+ if (request.current !== token)
184
+ return;
185
+ pending.current = false;
186
+ setStatus("Motion access is unavailable. Float stays still.");
187
+ });
188
+ }
189
+ return { toggle, status };
190
+ }
191
+ //# sourceMappingURL=useCardFloat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCardFloat.js","sourceRoot":"","sources":["../../jsr/hooks/useCardFloat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MouseEvent, PointerEvent, KeyboardEvent, TouchEvent } from "react";
2
+ interface HomeMotionPressOptions {
3
+ readonly onHome: () => void;
4
+ readonly onLongPress?: () => void;
5
+ }
6
+ export declare function useHomeMotionPress({ onHome, onLongPress }: HomeMotionPressOptions): {
7
+ onClick: (event: MouseEvent<HTMLButtonElement>) => void;
8
+ onPointerDown: (event: PointerEvent<HTMLButtonElement>) => void;
9
+ onPointerMove: (event: PointerEvent<HTMLButtonElement>) => void;
10
+ onPointerUp: (event: PointerEvent<HTMLButtonElement>) => void;
11
+ onPointerCancel: () => void;
12
+ onPointerLeave: () => void;
13
+ onKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => void;
14
+ onTouchStart: (event: TouchEvent<HTMLButtonElement>) => void;
15
+ onContextMenu: (event: MouseEvent<HTMLButtonElement>) => void;
16
+ };
17
+ export {};
@@ -0,0 +1,93 @@
1
+ import { useEffect, useRef } from "react";
2
+ const HOLD_MS = 500;
3
+ const MOVE_TOLERANCE_PX = 10;
4
+ export function useHomeMotionPress({ onHome, onLongPress }) {
5
+ const press = useRef(undefined);
6
+ const suppressClick = useRef(false);
7
+ useEffect(() => {
8
+ function cancelOtherPointer(event) {
9
+ if (press.current !== undefined && event.pointerId !== press.current.pointerId)
10
+ press.current = undefined;
11
+ }
12
+ function cancel() {
13
+ press.current = undefined;
14
+ suppressClick.current = false;
15
+ }
16
+ window.addEventListener("pointerdown", cancelOtherPointer, true);
17
+ window.addEventListener("blur", cancel);
18
+ return () => {
19
+ window.removeEventListener("pointerdown", cancelOtherPointer, true);
20
+ window.removeEventListener("blur", cancel);
21
+ };
22
+ }, []);
23
+ function cancelPress() {
24
+ press.current = undefined;
25
+ }
26
+ function onPointerDown(event) {
27
+ suppressClick.current = false;
28
+ press.current = undefined;
29
+ if (onLongPress === undefined || event.isPrimary === false || event.button !== 0)
30
+ return;
31
+ press.current = { pointerId: event.pointerId, x: event.clientX, y: event.clientY, started: Date.now() };
32
+ }
33
+ function onPointerMove(event) {
34
+ const origin = press.current;
35
+ if (origin === undefined)
36
+ return;
37
+ if (event.pointerId !== origin.pointerId ||
38
+ Math.hypot(event.clientX - origin.x, event.clientY - origin.y) > MOVE_TOLERANCE_PX) {
39
+ cancelPress();
40
+ }
41
+ }
42
+ function onPointerUp(event) {
43
+ const origin = press.current;
44
+ cancelPress();
45
+ if (origin === undefined || event.pointerId !== origin.pointerId || onLongPress === undefined)
46
+ return;
47
+ if (Math.hypot(event.clientX - origin.x, event.clientY - origin.y) > MOVE_TOLERANCE_PX)
48
+ return;
49
+ if (Date.now() - origin.started < HOLD_MS)
50
+ return;
51
+ suppressClick.current = true;
52
+ onLongPress();
53
+ }
54
+ function onClick(event) {
55
+ const suppress = suppressClick.current;
56
+ suppressClick.current = false;
57
+ if (suppress === true && event.detail !== 0) {
58
+ event.preventDefault();
59
+ event.stopPropagation();
60
+ return;
61
+ }
62
+ onHome();
63
+ }
64
+ function onKeyDown(event) {
65
+ suppressClick.current = false;
66
+ cancelPress();
67
+ if (event.altKey === true && event.key === "Enter" && onLongPress !== undefined) {
68
+ event.preventDefault();
69
+ if (event.repeat === false)
70
+ onLongPress();
71
+ }
72
+ }
73
+ function onTouchStart(event) {
74
+ if (event.touches.length > 1)
75
+ cancelPress();
76
+ }
77
+ function onContextMenu(event) {
78
+ if (press.current !== undefined || suppressClick.current === true)
79
+ event.preventDefault();
80
+ }
81
+ return {
82
+ onClick,
83
+ onPointerDown,
84
+ onPointerMove,
85
+ onPointerUp,
86
+ onPointerCancel: cancelPress,
87
+ onPointerLeave: cancelPress,
88
+ onKeyDown,
89
+ onTouchStart,
90
+ onContextMenu,
91
+ };
92
+ }
93
+ //# sourceMappingURL=useHomeMotionPress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHomeMotionPress.js","sourceRoot":"","sources":["../../jsr/hooks/useHomeMotionPress.ts"],"names":[],"mappings":"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"}