@vibes.diy/base 14.3.4 → 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.
- package/components/AdminModeControl.d.ts +7 -0
- package/components/AdminModeControl.js +9 -0
- package/components/AdminModeControl.js.map +1 -0
- package/components/EditorTabStrip.d.ts +3 -2
- package/components/EditorTabStrip.js +8 -15
- package/components/EditorTabStrip.js.map +1 -1
- package/components/MemberAccessView.d.ts +37 -0
- package/components/MemberAccessView.js +94 -0
- package/components/MemberAccessView.js.map +1 -0
- package/components/MemberInvitationView.d.ts +11 -0
- package/components/MemberInvitationView.js +16 -0
- package/components/MemberInvitationView.js.map +1 -0
- package/components/PublishBanner.d.ts +16 -0
- package/components/PublishBanner.js +126 -0
- package/components/PublishBanner.js.map +1 -0
- package/components/ShareLinkView.d.ts +11 -0
- package/components/ShareLinkView.js +61 -0
- package/components/ShareLinkView.js.map +1 -0
- package/components/SharePanelView.d.ts +5 -1
- package/components/SharePanelView.js +17 -62
- package/components/SharePanelView.js.map +1 -1
- package/components/UnifiedVibeCard.d.ts +0 -1
- package/components/UnifiedVibeCard.js +49 -138
- package/components/UnifiedVibeCard.js.map +1 -1
- package/components/UnifiedVibeCardSettings.styles.d.ts +3 -0
- package/components/UnifiedVibeCardSettings.styles.js +95 -0
- package/components/UnifiedVibeCardSettings.styles.js.map +1 -0
- package/components/UnifiedVibeCardShare.styles.d.ts +3 -0
- package/components/UnifiedVibeCardShare.styles.js +72 -0
- package/components/UnifiedVibeCardShare.styles.js.map +1 -0
- package/components/ViewerAccessSummary.d.ts +28 -0
- package/components/ViewerAccessSummary.js +105 -0
- package/components/ViewerAccessSummary.js.map +1 -0
- package/components/ViewerStandingView.d.ts +4 -26
- package/components/ViewerStandingView.js +6 -104
- package/components/ViewerStandingView.js.map +1 -1
- package/components/editor-tabs.d.ts +28 -0
- package/components/editor-tabs.js +15 -0
- package/components/editor-tabs.js.map +1 -0
- package/components/index.d.ts +7 -1
- package/components/index.js +7 -1
- package/components/index.js.map +1 -1
- package/hooks/useCardFloat.d.ts +6 -0
- package/hooks/useCardFloat.js +191 -0
- package/hooks/useCardFloat.js.map +1 -0
- package/hooks/useHomeMotionPress.d.ts +17 -0
- package/hooks/useHomeMotionPress.js +93 -0
- package/hooks/useHomeMotionPress.js.map +1 -0
- package/motion/card-motion-source.d.ts +23 -0
- package/motion/card-motion-source.js +50 -0
- package/motion/card-motion-source.js.map +1 -0
- package/package.json +4 -4
- package/components/PromiseStrip.d.ts +0 -13
- package/components/PromiseStrip.js +0 -17
- package/components/PromiseStrip.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export async function canStartMotionAutomatically(api, permissions) {
|
|
2
|
+
if (api === undefined)
|
|
3
|
+
return false;
|
|
4
|
+
if (api.requestPermission === undefined)
|
|
5
|
+
return true;
|
|
6
|
+
if (permissions === undefined)
|
|
7
|
+
return false;
|
|
8
|
+
const states = await Promise.allSettled([
|
|
9
|
+
Promise.resolve().then(() => permissions.query({ name: "accelerometer" })),
|
|
10
|
+
Promise.resolve().then(() => permissions.query({ name: "gyroscope" })),
|
|
11
|
+
]);
|
|
12
|
+
return states.every((result) => result.status === "fulfilled" && result.value.state === "granted");
|
|
13
|
+
}
|
|
14
|
+
export function decodeCardMotionReading(event, angle) {
|
|
15
|
+
if (!event.isTrusted || event.beta === null || event.gamma === null)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (!Number.isFinite(event.beta) || !Number.isFinite(event.gamma) || !Number.isFinite(angle))
|
|
18
|
+
return undefined;
|
|
19
|
+
return { beta: event.beta, gamma: event.gamma, angle };
|
|
20
|
+
}
|
|
21
|
+
function orientation() {
|
|
22
|
+
if (typeof window === "undefined" || !window.isSecureContext || !("DeviceOrientationEvent" in window))
|
|
23
|
+
return undefined;
|
|
24
|
+
const constructor = window.DeviceOrientationEvent;
|
|
25
|
+
return constructor;
|
|
26
|
+
}
|
|
27
|
+
export const browserCardMotion = {
|
|
28
|
+
canStartAutomatically() {
|
|
29
|
+
const permissions = typeof navigator === "undefined" ? undefined : navigator.permissions;
|
|
30
|
+
return canStartMotionAutomatically(orientation(), permissions);
|
|
31
|
+
},
|
|
32
|
+
requestPermission() {
|
|
33
|
+
const api = orientation();
|
|
34
|
+
if (api === undefined)
|
|
35
|
+
return Promise.resolve(false);
|
|
36
|
+
return api.requestPermission === undefined
|
|
37
|
+
? Promise.resolve(true)
|
|
38
|
+
: api.requestPermission().then((permission) => permission === "granted");
|
|
39
|
+
},
|
|
40
|
+
subscribe(read) {
|
|
41
|
+
function receive(event) {
|
|
42
|
+
const reading = decodeCardMotionReading(event, window.screen.orientation?.angle ?? 0);
|
|
43
|
+
if (reading !== undefined)
|
|
44
|
+
read(reading);
|
|
45
|
+
}
|
|
46
|
+
window.addEventListener("deviceorientation", receive);
|
|
47
|
+
return () => window.removeEventListener("deviceorientation", receive);
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=card-motion-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-motion-source.js","sourceRoot":"","sources":["../../jsr/motion/card-motion-source.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,GAAuC,EAAE,WAA+B;IACxH,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;KACvE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAmE,EACnE,KAAa;IAEb,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/G,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,wBAAwB,IAAI,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACxH,MAAM,WAAW,GAA2D,MAAM,CAAC,sBAAsB,CAAC;IAC1G,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD,qBAAqB;QAGnB,MAAM,WAAW,GAAkC,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;QACxH,OAAO,2BAA2B,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,iBAAiB;QACf,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErD,OAAO,GAAG,CAAC,iBAAiB,KAAK,SAAS;YACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IAC7E,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,SAAS,OAAO,CAAC,KAA6B;YAC5C,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtF,IAAI,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/base",
|
|
3
|
-
"version": "14.3.
|
|
3
|
+
"version": "14.3.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@adviser/cement": "~0.5.34",
|
|
12
12
|
"@emotion/css": "~11.13.5",
|
|
13
|
-
"@vibes.diy/use-vibes-types": "14.3.
|
|
14
|
-
"@vibes.diy/vibe-runtime": "14.3.
|
|
15
|
-
"@vibes.diy/vibe-types": "14.3.
|
|
13
|
+
"@vibes.diy/use-vibes-types": "14.3.5",
|
|
14
|
+
"@vibes.diy/vibe-runtime": "14.3.5",
|
|
15
|
+
"@vibes.diy/vibe-types": "14.3.5",
|
|
16
16
|
"officeparser": "~7.8.0",
|
|
17
17
|
"qrcode-generator": "~2.0.4",
|
|
18
18
|
"react": "~19.2.8"
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export type PromiseRowKey = "backend" | "access";
|
|
3
|
-
export type PromiseRowState = "owed" | "running" | "failed";
|
|
4
|
-
export interface PromiseRow {
|
|
5
|
-
readonly key: PromiseRowKey;
|
|
6
|
-
readonly state: PromiseRowState;
|
|
7
|
-
readonly text: string;
|
|
8
|
-
}
|
|
9
|
-
export interface PromiseStripProps {
|
|
10
|
-
readonly rows: readonly PromiseRow[];
|
|
11
|
-
readonly onRetry: (key: PromiseRowKey) => void;
|
|
12
|
-
}
|
|
13
|
-
export declare function PromiseStrip({ rows, onRetry }: PromiseStripProps): React.JSX.Element | null;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
const ROW_CLASS = "flex min-w-0 items-center gap-2 rounded-md px-3 py-2 text-left text-sm font-medium " +
|
|
3
|
-
"border border-amber-300 bg-amber-50 text-amber-900 " +
|
|
4
|
-
"dark:border-amber-500/40 dark:bg-amber-500/10 dark:text-amber-200";
|
|
5
|
-
function Glyph() {
|
|
6
|
-
return (React.createElement("span", { "aria-hidden": true, className: "shrink-0 text-amber-500 dark:text-amber-300" }, "\u2726"));
|
|
7
|
-
}
|
|
8
|
-
export function PromiseStrip({ rows, onRetry }) {
|
|
9
|
-
if (rows.length === 0)
|
|
10
|
-
return null;
|
|
11
|
-
return (React.createElement("div", { className: "flex flex-col gap-2", "data-testid": "promise-strip" }, rows.map((row) => row.state === "failed" ? (React.createElement("button", { key: row.key, type: "button", "data-testid": `promise-strip-retry-${row.key}`, onClick: () => onRetry(row.key), className: ROW_CLASS + " transition-colors cursor-pointer hover:bg-amber-100 dark:hover:bg-amber-500/20" },
|
|
12
|
-
React.createElement(Glyph, null),
|
|
13
|
-
React.createElement("span", { className: "min-w-0 flex-1" }, row.text))) : (React.createElement("div", { key: row.key, role: "status", "data-testid": `promise-strip-${row.key}`, className: ROW_CLASS },
|
|
14
|
-
React.createElement(Glyph, null),
|
|
15
|
-
React.createElement("span", { className: "min-w-0 flex-1" }, row.text))))));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=PromiseStrip.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromiseStrip.js","sourceRoot":"","sources":["../../jsr/components/PromiseStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAoC1B,MAAM,SAAS,GACb,qFAAqF;IACrF,qDAAqD;IACrD,mEAAmE,CAAC;AAEtE,SAAS,KAAK;IACZ,OAAO,CACL,mDAAkB,SAAS,EAAC,6CAA6C,aAElE,CACR,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAqB;IAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,CACL,6BAAK,SAAS,EAAC,qBAAqB,iBAAa,eAAe,IAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChB,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CACvB,gCACE,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,IAAI,EAAC,QAAQ,iBACA,uBAAuB,GAAG,CAAC,GAAG,EAAE,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAC/B,SAAS,EAAE,SAAS,GAAG,iFAAiF;QAExG,oBAAC,KAAK,OAAG;QACT,8BAAM,SAAS,EAAC,gBAAgB,IAAE,GAAG,CAAC,IAAI,CAAQ,CAC3C,CACV,CAAC,CAAC,CAAC,CACF,6BAAK,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAC,QAAQ,iBAAc,iBAAiB,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS;QAC5F,oBAAC,KAAK,OAAG;QACT,8BAAM,SAAS,EAAC,gBAAgB,IAAE,GAAG,CAAC,IAAI,CAAQ,CAC9C,CACP,CACF,CACG,CACP,CAAC;AACJ,CAAC"}
|