@vibes.diy/base 14.3.45 → 14.3.47

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 (61) hide show
  1. package/components/FilesPanelView.d.ts +19 -1
  2. package/components/FilesPanelView.js +52 -2
  3. package/components/FilesPanelView.js.map +1 -1
  4. package/components/HandlePickerMenu.d.ts +1 -0
  5. package/components/HandlePickerMenu.js.map +1 -1
  6. package/components/ImgGen.d.ts +5 -1
  7. package/components/ImgGen.js +23 -5
  8. package/components/ImgGen.js.map +1 -1
  9. package/components/NotificationDetailView.d.ts +15 -0
  10. package/components/NotificationDetailView.js +41 -3
  11. package/components/NotificationDetailView.js.map +1 -1
  12. package/components/ViewerTagView.d.ts +5 -1
  13. package/components/ViewerTagView.js +58 -12
  14. package/components/ViewerTagView.js.map +1 -1
  15. package/components/vibe-menu/cards/ShareAppDrill.d.ts +21 -0
  16. package/components/vibe-menu/cards/ShareAppDrill.js +162 -0
  17. package/components/vibe-menu/cards/ShareAppDrill.js.map +1 -0
  18. package/components/vibe-menu/cards/ShareCard.js +4 -4
  19. package/components/vibe-menu/cards/ShareCard.js.map +1 -1
  20. package/components/vibe-menu/cards/ShareDrills.d.ts +2 -2
  21. package/components/vibe-menu/cards/ShareDrills.js +5 -0
  22. package/components/vibe-menu/cards/ShareDrills.js.map +1 -1
  23. package/components/vibe-menu/cards/ShareLinkRows.d.ts +3 -2
  24. package/components/vibe-menu/cards/ShareLinkRows.js +5 -3
  25. package/components/vibe-menu/cards/ShareLinkRows.js.map +1 -1
  26. package/components/vibe-menu/cards/share-card.styles.d.ts +1 -1
  27. package/components/vibe-menu/cards/share-card.styles.js +22 -0
  28. package/components/vibe-menu/cards/share-card.styles.js.map +1 -1
  29. package/components/vibe-menu/cards/share-copy.d.ts +5 -3
  30. package/components/vibe-menu/cards/share-copy.js +7 -6
  31. package/components/vibe-menu/cards/share-copy.js.map +1 -1
  32. package/components/vibe-menu/index.d.ts +2 -0
  33. package/components/vibe-menu/index.js +2 -0
  34. package/components/vibe-menu/index.js.map +1 -1
  35. package/components/vibe-menu/menu-state.d.ts +1 -1
  36. package/components/vibe-menu/menu-state.js +1 -0
  37. package/components/vibe-menu/menu-state.js.map +1 -1
  38. package/components/vibe-menu/parts/Glyph.d.ts +1 -1
  39. package/components/vibe-menu/parts/Glyph.js +5 -1
  40. package/components/vibe-menu/parts/Glyph.js.map +1 -1
  41. package/components/vibe-menu/share-fixtures.d.ts +3 -1
  42. package/components/vibe-menu/share-fixtures.js +11 -0
  43. package/components/vibe-menu/share-fixtures.js.map +1 -1
  44. package/components/vibe-menu/share-image.d.ts +17 -0
  45. package/components/vibe-menu/share-image.js +194 -0
  46. package/components/vibe-menu/share-image.js.map +1 -0
  47. package/components/vibe-menu/slices.d.ts +11 -0
  48. package/components/vibe-menu/slices.js.map +1 -1
  49. package/hooks/img-gen/local-pictures.d.ts +10 -0
  50. package/hooks/img-gen/local-pictures.js +31 -0
  51. package/hooks/img-gen/local-pictures.js.map +1 -0
  52. package/hooks/img-gen/picture-bytes.d.ts +54 -0
  53. package/hooks/img-gen/picture-bytes.js +312 -0
  54. package/hooks/img-gen/picture-bytes.js.map +1 -0
  55. package/hooks/img-gen/use-img-gen.d.ts +9 -1
  56. package/hooks/img-gen/use-img-gen.js +109 -8
  57. package/hooks/img-gen/use-img-gen.js.map +1 -1
  58. package/hooks/img-gen/use-picture-src.d.ts +13 -0
  59. package/hooks/img-gen/use-picture-src.js +94 -0
  60. package/hooks/img-gen/use-picture-src.js.map +1 -0
  61. package/package.json +5 -4
@@ -1,7 +1,7 @@
1
1
  export type Section = "home" | "settings" | "vibe" | "share";
2
2
  export declare const SECTIONS: readonly Section[];
3
3
  export declare const SECTION_TITLES: Readonly<Record<Section, string>>;
4
- export type Drill = "look" | "details" | "help" | "handles" | "choose" | "access" | "members" | "member" | "notifications";
4
+ export type Drill = "look" | "details" | "help" | "handles" | "choose" | "access" | "members" | "member" | "notifications" | "app";
5
5
  export declare const DRILL_SECTION: Readonly<Record<Drill, Section>>;
6
6
  export interface MenuView {
7
7
  readonly drill: Drill;
@@ -16,6 +16,7 @@ export const DRILL_SECTION = Object.freeze({
16
16
  members: "share",
17
17
  member: "share",
18
18
  notifications: "share",
19
+ app: "share",
19
20
  });
20
21
  export const INITIAL_MENU_STATE = Object.freeze({ phase: "collapsed", section: null, view: null, banner: null });
21
22
  const STRIP = Object.freeze({ phase: "strip", section: null, view: null, banner: null });
@@ -1 +1 @@
1
- {"version":3,"file":"menu-state.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/menu-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu-state.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/menu-state.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- export type GlyphName = "home" | "settings" | "code" | "users" | "at-sign" | "plus" | "star" | "sliders" | "log-out" | "user-plus" | "arrow-right" | "arrow-left" | "check" | "chevron-right" | "layout-grid" | "key" | "palette" | "file" | "help-circle" | "braces" | "qr-code" | "paperclip" | "lock" | "globe" | "copy" | "refresh" | "database" | "line-chart" | "lines" | "bell" | "pin" | "user-minus" | "shield";
2
+ export type GlyphName = "home" | "settings" | "code" | "users" | "at-sign" | "plus" | "star" | "sliders" | "log-out" | "user-plus" | "arrow-right" | "arrow-left" | "check" | "chevron-right" | "layout-grid" | "key" | "palette" | "file" | "help-circle" | "braces" | "qr-code" | "paperclip" | "lock" | "globe" | "copy" | "refresh" | "database" | "line-chart" | "lines" | "bell" | "pin" | "user-minus" | "shield" | "app";
3
3
  export declare const PORT_ADDED_GLYPHS: readonly GlyphName[];
4
4
  export declare const GLYPH_NAMES: readonly GlyphName[];
5
5
  export interface GlyphProps {
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- export const PORT_ADDED_GLYPHS = ["bell", "pin", "user-minus", "shield"];
2
+ export const PORT_ADDED_GLYPHS = ["bell", "pin", "user-minus", "shield", "app"];
3
3
  const GLYPH_SHAPES = {
4
4
  home: React.createElement("path", { d: "M3 11l9-8 9 8v10a1 1 0 0 1-1 1h-5v-7H9v7H4a1 1 0 0 1-1-1z" }),
5
5
  settings: (React.createElement(React.Fragment, null,
@@ -81,6 +81,9 @@ const GLYPH_SHAPES = {
81
81
  React.createElement("circle", { cx: "9", cy: "7", r: "4" }),
82
82
  React.createElement("path", { d: "M22 11h-6" }))),
83
83
  shield: (React.createElement("path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" })),
84
+ app: (React.createElement(React.Fragment, null,
85
+ React.createElement("rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2" }),
86
+ React.createElement("path", { d: "M12 18h.01" }))),
84
87
  };
85
88
  export const GLYPH_NAMES = [
86
89
  "home",
@@ -116,6 +119,7 @@ export const GLYPH_NAMES = [
116
119
  "pin",
117
120
  "user-minus",
118
121
  "shield",
122
+ "app",
119
123
  ];
120
124
  export function Glyph(props) {
121
125
  return (React.createElement("svg", { className: props.className ?? "vm-glyph", viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", "data-glyph": props.name }, GLYPH_SHAPES[props.name]));
@@ -1 +1 @@
1
- {"version":3,"file":"Glyph.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/Glyph.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Glyph.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/Glyph.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ViewerRole } from "./open-resolver.js";
2
- import type { RosterMember, ShareSlice, ViewerSlice } from "./slices.js";
2
+ import type { AppClipCardStatus, ShareAppSlice, RosterMember, ShareSlice, ViewerSlice } from "./slices.js";
3
3
  export declare const SAMPLE_ROSTER: readonly RosterMember[];
4
4
  export declare const SAMPLE_LINK: {
5
5
  readonly url: string;
@@ -10,6 +10,8 @@ export declare const SAMPLE_REQUEST: {
10
10
  readonly handle: string;
11
11
  };
12
12
  export declare const SAMPLE_EMBED_SNIPPET = "<iframe src=\"https://vibes.diy/embed/marcus/my-to-do-app\" title=\"My To-Do App, made on vibes.diy\" style=\"width:100%;aspect-ratio:16/9;border:0\" loading=\"lazy\"></iframe>";
13
+ export declare const SAMPLE_APP: ShareAppSlice;
14
+ export declare function sampleOwnerApp(cardStatus: AppClipCardStatus | null): ShareAppSlice;
13
15
  export declare function makeShareSlice(over?: Partial<ShareSlice>): ShareSlice;
14
16
  export declare function makeVisitorShareSlice(over?: Partial<ShareSlice>): ShareSlice;
15
17
  export declare function makeShareViewer(role: ViewerRole, over?: Partial<ViewerSlice>): ViewerSlice;
@@ -22,6 +22,16 @@ export const SAMPLE_LINK = {
22
22
  };
23
23
  export const SAMPLE_REQUEST = { key: "user:jo", handle: "jo" };
24
24
  export const SAMPLE_EMBED_SNIPPET = '<iframe src="https://vibes.diy/embed/marcus/my-to-do-app" title="My To-Do App, made on vibes.diy" style="width:100%;aspect-ratio:16/9;border:0" loading="lazy"></iframe>';
25
+ const SAMPLE_SCREENSHOT = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
26
+ export const SAMPLE_APP = {
27
+ url: "https://vibes.diy/c/marcus/my-to-do-app",
28
+ screenshotUrl: SAMPLE_SCREENSHOT,
29
+ title: "My To-Do App",
30
+ handle: "marcus",
31
+ };
32
+ export function sampleOwnerApp(cardStatus) {
33
+ return { ...SAMPLE_APP, cardStatus, onRequestCard: noop };
34
+ }
25
35
  export function makeShareSlice(over = {}) {
26
36
  return {
27
37
  posture: "public",
@@ -35,6 +45,7 @@ export function makeShareSlice(over = {}) {
35
45
  qrValue: SAMPLE_LINK.url,
36
46
  embed: null,
37
47
  pinterestHref: null,
48
+ app: null,
38
49
  canManage: true,
39
50
  roster: SAMPLE_ROSTER,
40
51
  members: { onData: ok, onCode: ok, onRemove: ok, onInvite: ok },
@@ -1 +1 @@
1
- {"version":3,"file":"share-fixtures.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/share-fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share-fixtures.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/share-fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Result } from "@adviser/cement";
2
+ export interface ShareImageInput {
3
+ readonly screenshotUrl: string | null;
4
+ readonly title: string;
5
+ readonly handle: string;
6
+ readonly url: string;
7
+ }
8
+ export declare const SHARE_IMAGE_WIDTH = 1080;
9
+ export declare const SHARE_IMAGE_HEIGHT = 1350;
10
+ export declare function shareImageLayout(): {
11
+ qr: {
12
+ x: number;
13
+ y: number;
14
+ size: number;
15
+ };
16
+ };
17
+ export declare function renderShareImage(input: ShareImageInput): Promise<Result<Blob>>;
@@ -0,0 +1,194 @@
1
+ import { exception2Result, Result } from "@adviser/cement";
2
+ import qrcode from "qrcode-generator";
3
+ export const SHARE_IMAGE_WIDTH = 1080;
4
+ export const SHARE_IMAGE_HEIGHT = 1350;
5
+ const INK = "#1a1a1a";
6
+ const PAPER = "#fbfaf7";
7
+ const FLAT_BLOCK = "#f2efe9";
8
+ const MUTED = "#5c5850";
9
+ const PANEL_EDGE = "#e4dfd6";
10
+ const QR_LIGHT = "#ffffff";
11
+ const QR_QUIET_MODULES = 4;
12
+ const SHOT = { x: 60, y: 60, w: 960, h: 600, r: 32 };
13
+ const QR_BOX = { x: 600, y: 700, size: 420 };
14
+ const TEXT_LEFT = 60;
15
+ const TEXT_WIDTH = QR_BOX.x - TEXT_LEFT - 40;
16
+ export function shareImageLayout() {
17
+ return { qr: { x: QR_BOX.x, y: QR_BOX.y, size: QR_BOX.size } };
18
+ }
19
+ function loadImage(src) {
20
+ return new Promise((resolve) => {
21
+ const img = new Image();
22
+ img.crossOrigin = "anonymous";
23
+ img.onload = () => resolve(img.naturalWidth === 0 || img.naturalHeight === 0 ? undefined : img);
24
+ img.onerror = () => resolve(undefined);
25
+ img.src = src;
26
+ });
27
+ }
28
+ function roundedRect(ctx, box) {
29
+ const { x, y, w, h, r } = box;
30
+ ctx.beginPath();
31
+ if (typeof ctx.roundRect === "function") {
32
+ ctx.roundRect(x, y, w, h, r);
33
+ return;
34
+ }
35
+ ctx.moveTo(x + r, y);
36
+ ctx.arcTo(x + w, y, x + w, y + h, r);
37
+ ctx.arcTo(x + w, y + h, x, y + h, r);
38
+ ctx.arcTo(x, y + h, x, y, r);
39
+ ctx.arcTo(x, y, x + w, y, r);
40
+ ctx.closePath();
41
+ }
42
+ function ellipsize(ctx, fit) {
43
+ const { text, maxWidth, truncated = false } = fit;
44
+ if (truncated === false && ctx.measureText(text).width <= maxWidth)
45
+ return text;
46
+ let cut = text;
47
+ while (cut.length > 0 && ctx.measureText(`${cut}…`).width > maxWidth)
48
+ cut = cut.slice(0, -1);
49
+ return `${cut.trimEnd()}…`;
50
+ }
51
+ function clampLines(ctx, fit) {
52
+ const { text, maxWidth, maxLines } = fit;
53
+ const words = text
54
+ .trim()
55
+ .split(/\s+/)
56
+ .filter((w) => w.length > 0);
57
+ const lines = [];
58
+ let current = "";
59
+ for (const word of words) {
60
+ const candidate = current === "" ? word : `${current} ${word}`;
61
+ if (ctx.measureText(candidate).width <= maxWidth) {
62
+ current = candidate;
63
+ continue;
64
+ }
65
+ if (current !== "")
66
+ lines.push(current);
67
+ current = word;
68
+ while (ctx.measureText(current).width > maxWidth && current.length > 1) {
69
+ let head = current;
70
+ while (head.length > 1 && ctx.measureText(head).width > maxWidth)
71
+ head = head.slice(0, -1);
72
+ lines.push(head);
73
+ current = current.slice(head.length);
74
+ }
75
+ }
76
+ if (current !== "")
77
+ lines.push(current);
78
+ if (lines.length <= maxLines)
79
+ return lines;
80
+ const kept = lines.slice(0, maxLines);
81
+ kept[maxLines - 1] = ellipsize(ctx, { text: kept[maxLines - 1], maxWidth, truncated: true });
82
+ return kept;
83
+ }
84
+ function drawScreenshot(ctx, img) {
85
+ const scale = Math.max(SHOT.w / img.naturalWidth, SHOT.h / img.naturalHeight);
86
+ const sw = SHOT.w / scale;
87
+ const sh = SHOT.h / scale;
88
+ const sx = (img.naturalWidth - sw) / 2;
89
+ const sy = (img.naturalHeight - sh) / 2;
90
+ ctx.save();
91
+ roundedRect(ctx, SHOT);
92
+ ctx.clip();
93
+ ctx.drawImage(img, sx, sy, sw, sh, SHOT.x, SHOT.y, SHOT.w, SHOT.h);
94
+ ctx.restore();
95
+ }
96
+ function drawFlatBlock(ctx, title, font) {
97
+ ctx.fillStyle = FLAT_BLOCK;
98
+ roundedRect(ctx, SHOT);
99
+ ctx.fill();
100
+ ctx.fillStyle = INK;
101
+ ctx.font = `bold 72px ${font}`;
102
+ ctx.textAlign = "center";
103
+ ctx.textBaseline = "middle";
104
+ const lines = clampLines(ctx, { text: title, maxWidth: SHOT.w - 120, maxLines: 2 });
105
+ const lineHeight = 84;
106
+ const top = SHOT.y + SHOT.h / 2 - ((lines.length - 1) * lineHeight) / 2;
107
+ lines.forEach((line, i) => ctx.fillText(line, SHOT.x + SHOT.w / 2, top + i * lineHeight));
108
+ ctx.textAlign = "left";
109
+ ctx.textBaseline = "alphabetic";
110
+ }
111
+ function drawQr(ctx, url) {
112
+ const qr = qrcode(0, "M");
113
+ qr.addData(url);
114
+ qr.make();
115
+ const count = qr.getModuleCount();
116
+ const m = QR_BOX.size / (count + QR_QUIET_MODULES * 2);
117
+ ctx.fillStyle = QR_LIGHT;
118
+ roundedRect(ctx, { x: QR_BOX.x, y: QR_BOX.y, w: QR_BOX.size, h: QR_BOX.size, r: 24 });
119
+ ctx.fill();
120
+ ctx.strokeStyle = PANEL_EDGE;
121
+ ctx.lineWidth = 2;
122
+ ctx.stroke();
123
+ function edge(origin, i) {
124
+ return Math.round(origin + (i + QR_QUIET_MODULES) * m);
125
+ }
126
+ ctx.fillStyle = INK;
127
+ for (let r = 0; r < count; r++) {
128
+ for (let c = 0; c < count; c++) {
129
+ if (qr.isDark(r, c) === false)
130
+ continue;
131
+ const x0 = edge(QR_BOX.x, c);
132
+ const y0 = edge(QR_BOX.y, r);
133
+ ctx.fillRect(x0, y0, edge(QR_BOX.x, c + 1) - x0, edge(QR_BOX.y, r + 1) - y0);
134
+ }
135
+ }
136
+ }
137
+ function pageFont() {
138
+ const family = typeof document === "undefined" ? "" : getComputedStyle(document.body).fontFamily;
139
+ return family === "" ? "system-ui, sans-serif" : family;
140
+ }
141
+ async function fontsReady() {
142
+ if (typeof document === "undefined" || document.fonts === undefined)
143
+ return;
144
+ await document.fonts.ready;
145
+ }
146
+ function encodePng(canvas) {
147
+ return new Promise((resolve) => {
148
+ canvas.toBlob((blob) => {
149
+ resolve(blob === null ? Result.Err(new Error("renderShareImage: canvas could not encode PNG")) : Result.Ok(blob));
150
+ }, "image/png");
151
+ });
152
+ }
153
+ export async function renderShareImage(input) {
154
+ const canvas = document.createElement("canvas");
155
+ canvas.width = SHARE_IMAGE_WIDTH;
156
+ canvas.height = SHARE_IMAGE_HEIGHT;
157
+ const ctx = canvas.getContext("2d");
158
+ if (ctx === null)
159
+ return Result.Err(new Error("renderShareImage: no 2d canvas context"));
160
+ await fontsReady();
161
+ const font = pageFont();
162
+ const screenshot = input.screenshotUrl === null ? undefined : await loadImage(input.screenshotUrl);
163
+ ctx.fillStyle = PAPER;
164
+ ctx.fillRect(0, 0, SHARE_IMAGE_WIDTH, SHARE_IMAGE_HEIGHT);
165
+ if (screenshot === undefined)
166
+ drawFlatBlock(ctx, input.title, font);
167
+ else
168
+ drawScreenshot(ctx, screenshot);
169
+ let y = QR_BOX.y + 58;
170
+ if (screenshot !== undefined) {
171
+ ctx.fillStyle = INK;
172
+ ctx.font = `bold 64px ${font}`;
173
+ for (const line of clampLines(ctx, { text: input.title, maxWidth: TEXT_WIDTH, maxLines: 2 })) {
174
+ ctx.fillText(line, TEXT_LEFT, y);
175
+ y += 74;
176
+ }
177
+ y += 6;
178
+ }
179
+ ctx.fillStyle = MUTED;
180
+ ctx.font = `36px ${font}`;
181
+ ctx.fillText(ellipsize(ctx, { text: `by @${input.handle}`, maxWidth: TEXT_WIDTH }), TEXT_LEFT, y);
182
+ const qr = exception2Result(() => drawQr(ctx, input.url));
183
+ if (qr.isErr())
184
+ return Result.Err(qr.Err());
185
+ ctx.fillStyle = INK;
186
+ ctx.font = `28px ${font}`;
187
+ ctx.textAlign = "center";
188
+ ctx.fillText("Scan to open, no download needed", QR_BOX.x + QR_BOX.size / 2, QR_BOX.y + QR_BOX.size + 56);
189
+ ctx.textAlign = "left";
190
+ ctx.font = `bold 56px ${font}`;
191
+ ctx.fillText("Vibes", TEXT_LEFT, SHARE_IMAGE_HEIGHT - 70);
192
+ return encodePng(canvas);
193
+ }
194
+ //# sourceMappingURL=share-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-image.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/share-image.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,15 @@ export interface CodeSlice {
81
81
  agentLog?: ReactNode;
82
82
  };
83
83
  }
84
+ export type AppClipCardStatus = "requested" | "submitted" | "in_review" | "live" | "rejected" | "failed" | "deactivated";
85
+ export interface ShareAppSlice {
86
+ readonly url: string;
87
+ readonly screenshotUrl: string | null;
88
+ readonly title: string;
89
+ readonly handle: string;
90
+ readonly cardStatus?: AppClipCardStatus | null;
91
+ readonly onRequestCard?: () => void;
92
+ }
84
93
  export interface ShareSlice {
85
94
  posture: Posture;
86
95
  postureState: AccessToggleState;
@@ -96,12 +105,14 @@ export interface ShareSlice {
96
105
  url: string;
97
106
  display: string;
98
107
  };
108
+ onCopyLink?: () => void;
99
109
  qrValue: string;
100
110
  embed: {
101
111
  snippet: string;
102
112
  autoHeightSnippet?: string;
103
113
  } | null;
104
114
  pinterestHref: string | null;
115
+ app: ShareAppSlice | null;
105
116
  canManage: boolean;
106
117
  roster: readonly RosterMember[];
107
118
  members: {
@@ -1 +1 @@
1
- {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/slices.ts"],"names":[],"mappings":"AAgLA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,qDAAqD;IACjE,eAAe,EAAE,sDAAsD;CAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/slices.ts"],"names":[],"mappings":"AA0MA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,qDAAqD;IACjE,eAAe,EAAE,sDAAsD;CAC/D,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type PictureStore } from "./picture-bytes.js";
2
+ export interface LocalFileRef {
3
+ readonly dbName: string;
4
+ readonly docId: string;
5
+ readonly key: string;
6
+ readonly uploadId: string;
7
+ }
8
+ export type LocalFileUrl = (ref: LocalFileRef) => string;
9
+ export declare function registeredLocalFileUrl(): LocalFileUrl | undefined;
10
+ export declare function registeredPictureStore(): PictureStore | undefined;
@@ -0,0 +1,31 @@
1
+ import { getRegisteredVibeApi } from "@vibes.diy/vibe-runtime";
2
+ import { buildFilesUrl } from "@vibes.diy/vibe-types";
3
+ import { createPictureStore, idbPictureBytes } from "./picture-bytes.js";
4
+ function registeredApp() {
5
+ const app = getRegisteredVibeApi()?.svc?.vibeApp;
6
+ if (app === undefined || app.assetOrigin === undefined || app.assetOrigin === "")
7
+ return undefined;
8
+ return { ownerHandle: app.ownerHandle, appSlug: app.appSlug, assetOrigin: app.assetOrigin };
9
+ }
10
+ export function registeredLocalFileUrl() {
11
+ const app = registeredApp();
12
+ if (app === undefined)
13
+ return undefined;
14
+ return function mintLocalFileUrl(ref) {
15
+ return buildFilesUrl({ assetOrigin: app.assetOrigin, ownerHandle: app.ownerHandle, appSlug: app.appSlug, ...ref });
16
+ };
17
+ }
18
+ let storeFor;
19
+ export function registeredPictureStore() {
20
+ const app = registeredApp();
21
+ if (app === undefined)
22
+ return undefined;
23
+ if (storeFor === undefined || storeFor.assetOrigin !== app.assetOrigin) {
24
+ storeFor = {
25
+ assetOrigin: app.assetOrigin,
26
+ store: createPictureStore({ assetOrigin: app.assetOrigin, bytes: idbPictureBytes() }),
27
+ };
28
+ }
29
+ return storeFor.store;
30
+ }
31
+ //# sourceMappingURL=local-pictures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-pictures.js","sourceRoot":"","sources":["../../../jsr/hooks/img-gen/local-pictures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AAyB5F,SAAS,aAAa;IAGpB,MAAM,GAAG,GAAG,oBAAoB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACnG,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;AAC9F,CAAC;AAID,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,SAAS,gBAAgB,CAAC,GAAiB;QAChD,OAAO,aAAa,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IACrH,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,QAAoF,CAAC;AAGzF,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;QACvE,QAAQ,GAAG;YACT,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,kBAAkB,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC"}
@@ -0,0 +1,54 @@
1
+ export type PictureFetcher = (input: string, init?: RequestInit) => Promise<Response>;
2
+ export type PictureWarn = (event: string, fields: Record<string, unknown>) => void;
3
+ export declare function isRasterImageType(mime: string): boolean;
4
+ export interface PictureByteStore {
5
+ get(uploadId: string): Promise<Blob | undefined>;
6
+ put(uploadId: string, blob: Blob): Promise<void>;
7
+ }
8
+ export type PictureFill = {
9
+ readonly outcome: "kept";
10
+ readonly blob: Blob;
11
+ } | {
12
+ readonly outcome: "not-kept";
13
+ readonly blob: Blob;
14
+ readonly confirmed: boolean;
15
+ } | {
16
+ readonly outcome: "known-not-keepable";
17
+ readonly confirmed: boolean;
18
+ } | {
19
+ readonly outcome: "other-upload";
20
+ } | {
21
+ readonly outcome: "unavailable";
22
+ };
23
+ export type PictureConfirm = "kept" | "dropped" | "unknown" | "none";
24
+ export interface PictureStore {
25
+ peek(uploadId: string): Blob | undefined;
26
+ lookup(uploadId: string): Promise<Blob | undefined>;
27
+ fill(ref: {
28
+ readonly uploadId: string;
29
+ readonly url: string;
30
+ }): Promise<PictureFill>;
31
+ seed(uploadId: string, blob: Blob): Promise<void>;
32
+ isUnconfirmed(uploadId: string): boolean;
33
+ confirm(ref: {
34
+ readonly uploadId: string;
35
+ readonly url: string;
36
+ }): Promise<PictureConfirm>;
37
+ }
38
+ export interface CreatePictureStoreOpts {
39
+ readonly assetOrigin: string;
40
+ readonly bytes: PictureByteStore;
41
+ readonly fetcher?: PictureFetcher;
42
+ readonly warn?: PictureWarn;
43
+ readonly memoryBytes?: number;
44
+ readonly localLookupMs?: number;
45
+ }
46
+ export declare function createPictureStore(opts: CreatePictureStoreOpts): PictureStore;
47
+ export declare const PICTURE_BYTES_DB = "vibes-picture-bytes";
48
+ export interface IdbPictureBytesOpts {
49
+ readonly indexedDB?: IDBFactory;
50
+ readonly dbName?: string;
51
+ readonly maxBytes?: number;
52
+ readonly now?: () => number;
53
+ }
54
+ export declare function idbPictureBytes(opts?: IdbPictureBytesOpts): PictureByteStore;