@vibes.diy/base 14.3.84 → 14.3.86

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.
@@ -26,9 +26,3 @@ export interface HandlePickerMenuProps {
26
26
  }
27
27
  export declare const sanitizeHandle: typeof toRFC2822_32ByteLength;
28
28
  export declare function HandlePickerMenu({ handles, activeSlug, onSelect, onNewHandle, busy, placement, onResetToDefault, resetToDefaultLabel, onLogout, header, onSignIn, onChooseHandle, onSettings, onMyVibes, onMemberships, style, }: HandlePickerMenuProps): React.ReactElement;
29
- export declare function NewHandleForm({ busy, onCancel, onCreate, onRandom, }: {
30
- readonly busy?: boolean;
31
- readonly onCancel: () => void;
32
- readonly onCreate: (slug: string) => void;
33
- readonly onRandom: () => void;
34
- }): React.JSX.Element;
@@ -35,7 +35,7 @@ export function HandlePickerMenu({ handles, activeSlug, onSelect, onNewHandle, b
35
35
  React.createElement("div", { style: { height: 1, background: "var(--color-light-decorative-00, #eee)", margin: "6px 0" } }),
36
36
  React.createElement(HandleRow, { icon: React.createElement("span", { style: { fontSize: 14 } }, "\u238B"), label: "Log out", disabled: busy, onClick: onLogout })))));
37
37
  }
38
- export function NewHandleForm({ busy, onCancel, onCreate, onRandom, }) {
38
+ function NewHandleForm({ busy, onCancel, onCreate, onRandom, }) {
39
39
  const [draft, setDraft] = useState("");
40
40
  const sanitized = sanitizeHandle(draft);
41
41
  const valid = sanitized.length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"HandlePickerMenu.js","sourceRoot":"","sources":["../../jsr/components/HandlePickerMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandlePickerMenu.js","sourceRoot":"","sources":["../../jsr/components/HandlePickerMenu.tsx"],"names":[],"mappings":"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"}
@@ -35,6 +35,3 @@ export * from "./editor-tabs.js";
35
35
  export * from "./ShareLinkView.js";
36
36
  export * from "./PublishBanner.js";
37
37
  export * from "./vibe-menu/index.js";
38
- export * from "./VibesWindowFrame.styles.js";
39
- export * from "./VibesWindowHeader.js";
40
- export * from "./VibesWindowFrame.js";
@@ -35,7 +35,4 @@ export * from "./editor-tabs.js";
35
35
  export * from "./ShareLinkView.js";
36
36
  export * from "./PublishBanner.js";
37
37
  export * from "./vibe-menu/index.js";
38
- export * from "./VibesWindowFrame.styles.js";
39
- export * from "./VibesWindowHeader.js";
40
- export * from "./VibesWindowFrame.js";
41
38
  //# 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,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,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,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/base",
3
- "version": "14.3.84",
3
+ "version": "14.3.86",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -10,10 +10,10 @@
10
10
  "dependencies": {
11
11
  "@adviser/cement": "~0.5.34",
12
12
  "@emotion/css": "~11.13.5",
13
- "@vibes.diy/api-types": "14.3.84",
14
- "@vibes.diy/use-vibes-types": "14.3.84",
15
- "@vibes.diy/vibe-runtime": "14.3.84",
16
- "@vibes.diy/vibe-types": "14.3.84",
13
+ "@vibes.diy/api-types": "14.3.86",
14
+ "@vibes.diy/use-vibes-types": "14.3.86",
15
+ "@vibes.diy/vibe-runtime": "14.3.86",
16
+ "@vibes.diy/vibe-types": "14.3.86",
17
17
  "arktype": "~2.2.6",
18
18
  "officeparser": "~8.0.0",
19
19
  "qrcode-generator": "~2.0.4",
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- export interface VibesWindowFrameProps {
3
- menuOpen: boolean;
4
- onToggleMenu: () => void;
5
- onCloseMenu: () => void;
6
- onMenuIntent?: () => void;
7
- menu: React.ReactNode;
8
- menuLabel?: string;
9
- scheme?: "light" | "dark";
10
- ovalColor?: string;
11
- ovalStatusKey?: string | number;
12
- isTwinkling?: boolean;
13
- panOffset?: number;
14
- children: React.ReactNode;
15
- }
16
- export declare function VibesWindowFrame({ menuOpen, onToggleMenu, onCloseMenu, onMenuIntent, menu, menuLabel, scheme, ovalColor, ovalStatusKey, isTwinkling, panOffset, children, }: VibesWindowFrameProps): React.JSX.Element;
@@ -1,90 +0,0 @@
1
- import React, { useEffect, useId, useRef, useState } from "react";
2
- import { VibesWindowHeader, VibesWindowStyles } from "./VibesWindowHeader.js";
3
- const CLOSE_MS = 500;
4
- const FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
5
- function isShown(el) {
6
- return el.getClientRects().length > 0;
7
- }
8
- function focusablesIn(root) {
9
- return Array.from(root.querySelectorAll(FOCUSABLE)).filter((el) => isShown(el) && el.closest("[inert]") === null);
10
- }
11
- function layeredDialogOpen(menuPanel) {
12
- return Array.from(document.querySelectorAll('[role="dialog"], [aria-modal="true"]')).some((el) => el !== menuPanel && !el.contains(menuPanel) && isShown(el));
13
- }
14
- export function VibesWindowFrame({ menuOpen, onToggleMenu, onCloseMenu, onMenuIntent, menu, menuLabel = "Menu", scheme, ovalColor, ovalStatusKey, isTwinkling, panOffset = 0, children, }) {
15
- const menuId = useId();
16
- const barRef = useRef(null);
17
- const panelRef = useRef(null);
18
- const returnFocusRef = useRef(null);
19
- const [closing, setClosing] = useState(false);
20
- const [prevOpen, setPrevOpen] = useState(menuOpen);
21
- if (prevOpen !== menuOpen) {
22
- setPrevOpen(menuOpen);
23
- setClosing(!menuOpen);
24
- }
25
- const phase = menuOpen ? "open" : closing ? "closing" : "closed";
26
- useEffect(() => {
27
- if (!closing)
28
- return;
29
- const t = setTimeout(() => setClosing(false), CLOSE_MS);
30
- return () => clearTimeout(t);
31
- }, [closing]);
32
- useEffect(() => {
33
- const panel = panelRef.current;
34
- if (panel === null)
35
- return;
36
- if (menuOpen) {
37
- returnFocusRef.current = document.activeElement;
38
- panel.focus({ preventScroll: true });
39
- return;
40
- }
41
- const active = document.activeElement;
42
- const focusWasInMenu = active === null || active === document.body || panel.contains(active);
43
- if (returnFocusRef.current !== null && focusWasInMenu) {
44
- const back = returnFocusRef.current instanceof HTMLElement ? returnFocusRef.current : barRef.current;
45
- back?.focus({ preventScroll: true });
46
- }
47
- returnFocusRef.current = null;
48
- }, [menuOpen]);
49
- useEffect(() => {
50
- if (!menuOpen)
51
- return;
52
- const onKey = (event) => {
53
- const panel = panelRef.current;
54
- if (panel === null || layeredDialogOpen(panel))
55
- return;
56
- if (event.key === "Escape") {
57
- onCloseMenu();
58
- return;
59
- }
60
- if (event.key !== "Tab")
61
- return;
62
- const bar = barRef.current;
63
- const cycle = [...(bar === null ? [] : [bar]), ...focusablesIn(panel)];
64
- if (cycle.length === 0)
65
- return;
66
- event.preventDefault();
67
- const active = document.activeElement;
68
- const at = active === panel ? 0 : cycle.indexOf(active);
69
- let next;
70
- if (event.shiftKey)
71
- next = active === panel ? 0 : at <= 0 ? cycle.length - 1 : at - 1;
72
- else
73
- next = at < 0 ? 0 : (at + 1) % cycle.length;
74
- cycle[next].focus();
75
- };
76
- document.addEventListener("keydown", onKey);
77
- return () => document.removeEventListener("keydown", onKey);
78
- }, [menuOpen, onCloseMenu]);
79
- return (React.createElement("div", { className: "vwin-scope vwin-frame", "data-scheme": scheme, "data-menu-phase": phase, "data-testid": "window-frame", style: panOffset > 0 ? { transform: `translateY(${panOffset}px)` } : undefined },
80
- React.createElement(VibesWindowStyles, null),
81
- React.createElement("div", { className: "vwin-panel", "data-testid": "window-panel" },
82
- React.createElement("div", { className: "vwin-grid-area", "aria-hidden": "true" },
83
- React.createElement("div", { className: "vwin-grid", "data-testid": "window-grid" })),
84
- React.createElement("div", { className: "vwin-scroll", "data-testid": "window-scroll" }, children),
85
- React.createElement(VibesWindowHeader, { buttonRef: barRef, withStyles: false, onIntent: onMenuIntent, isOpen: menuOpen, onToggle: onToggleMenu, controlsId: menuId, scheme: scheme, ovalColor: ovalColor, ovalStatusKey: ovalStatusKey, isTwinkling: isTwinkling }),
86
- React.createElement("div", { className: "vwin-menu-layer", "data-testid": "window-menu-layer", inert: phase !== "open" },
87
- React.createElement("div", { className: "vwin-overlay", "data-testid": "window-menu-overlay", onClick: onCloseMenu }),
88
- React.createElement("div", { ref: panelRef, id: menuId, className: "vwin-menu-panel", role: "dialog", "aria-modal": "true", "aria-label": menuLabel, tabIndex: -1 }, menu)))));
89
- }
90
- //# sourceMappingURL=VibesWindowFrame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VibesWindowFrame.js","sourceRoot":"","sources":["../../jsr/components/VibesWindowFrame.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const VIBES_WINDOW_CSS = "\n.vwin-scope {\n --vwin-frame: #000;\n --vwin-bar: #fefff1;\n --vwin-line: #2c2c22;\n --vwin-field: #cccdc8;\n --vwin-grid-line: #fffff0;\n --vwin-red: #d92a1c;\n --vwin-gear-disc: #231f20;\n --vwin-cream: #fffff0;\n --vwin-edge: #231f20;\n --vwin-menu-bg: #fefff1;\n --vwin-menu-ink: #1a1a1a;\n --vwin-bar-height: 53px;\n}\n@media (prefers-color-scheme: dark) {\n .vwin-scope:not([data-scheme=\"light\"]) {\n --vwin-line: #83817d;\n --vwin-field: #221f20;\n --vwin-menu-bg: #1a1a1a;\n --vwin-menu-ink: #e0e0e0;\n}\n}\n.vwin-scope[data-scheme=\"dark\"] {\n --vwin-line: #83817d;\n --vwin-field: #221f20;\n --vwin-menu-bg: #1a1a1a;\n --vwin-menu-ink: #e0e0e0;\n}\n\nhtml:has(.vwin-frame),\nbody:has(.vwin-frame) {\n background-color: #000;\n}\n\n.vwin-frame {\n position: fixed;\n inset: 0;\n background-color: var(--vwin-frame);\n z-index: 0;\n}\n.vwin-panel {\n position: absolute;\n top: max(15px, var(--vibes-safe-top, env(safe-area-inset-top, 0px)));\n left: max(15px, var(--vibes-safe-left, env(safe-area-inset-left, 0px)));\n right: max(15px, var(--vibes-safe-right, env(safe-area-inset-right, 0px)));\n bottom: max(15px, var(--vibes-safe-bottom, env(safe-area-inset-bottom, 0px)));\n border-radius: 12px;\n overflow: hidden;\n background-color: var(--vwin-field);\n isolation: isolate;\n}\n\n/* The grid: fixed behind the content, whole cells only. */\n.vwin-grid-area {\n position: absolute;\n top: calc(var(--vwin-bar-height) + 1px);\n left: 15px;\n right: 15px;\n bottom: 25px;\n display: flex;\n justify-content: center;\n align-items: flex-start;\n pointer-events: none;\n z-index: 0;\n}\n.vwin-grid {\n flex: none;\n width: 100%;\n height: 100%;\n background-image:\n linear-gradient(to right, var(--vwin-grid-line) 1px, transparent 1px),\n linear-gradient(to bottom, var(--vwin-grid-line) 1px, transparent 1px);\n background-size: 32px 30px;\n background-position: 0 0;\n}\n@supports (width: round(down, 100px, 32px)) {\n .vwin-grid {\n width: calc(round(down, 100% - 1px, 32px) + 1px);\n height: calc(round(down, 100% - 1px, 30px) + 1px);\n }\n}\n\n/* Content scrolls here, under the bar, over the grid. */\n.vwin-scroll {\n position: absolute;\n top: calc(var(--vwin-bar-height) + 1px);\n left: 0;\n right: 0;\n bottom: 0;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n /* No z-index here on purpose: a page's own full-screen overlays (z-50 detail\n panels and modals) must still rise above the bar and menu, as they do\n outside the frame. Ordinary positioned content stays under the bar (40). */\n}\n\n/* The bar: one real button, so a tap anywhere on it toggles the menu. */\n.vwin-bar {\n position: relative;\n z-index: 40;\n box-sizing: content-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--vwin-bar-height);\n margin: 0;\n padding: 0;\n border: 0;\n border-bottom: 1px solid var(--vwin-line);\n background-color: var(--vwin-bar);\n color: var(--vwin-cream);\n font: inherit;\n text-align: left;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n overflow: hidden;\n}\n.vwin-frame .vwin-bar {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n.vwin-bar:focus-visible {\n outline: 3px solid var(--vwin-red);\n outline-offset: -3px;\n}\n.vwin-pill {\n display: flex;\n align-items: center;\n height: 100%;\n padding-left: 4px;\n}\n.vwin-pill svg {\n position: relative;\n /* The switch's viewBox carries headroom for its status ring; this centres the\n drawn logo (not the svg box) on the bar. */\n top: -8.5px;\n pointer-events: none;\n}\n.vwin-menu-button {\n display: flex;\n align-items: center;\n gap: 8px;\n height: var(--vwin-bar-height);\n padding: 0 16px 0 10px;\n background-color: var(--vwin-red);\n color: var(--vwin-cream);\n flex-shrink: 0;\n}\n.vwin-gear {\n display: flex;\n width: 35px;\n height: 35px;\n transform-origin: 50% 50%;\n}\n.vwin-menu-label {\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1.5px;\n text-transform: uppercase;\n white-space: nowrap;\n text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);\n color: var(--vwin-cream);\n opacity: 1;\n}\n@media (hover: hover) {\n .vwin-bar:hover .vwin-gear {\n animation: vwin-wiggle 0.6s ease-in-out infinite;\n }\n}\n.vwin-bar:active .vwin-menu-button {\n animation: vwin-shake 0.3s ease-in-out;\n}\n@keyframes vwin-wiggle {\n 0%, 100% { transform: rotate(0deg); }\n 25% { transform: rotate(-5deg); }\n 75% { transform: rotate(5deg); }\n}\n@keyframes vwin-shake {\n 0%, 100% { transform: translateX(0); }\n 25% { transform: translateX(-3px); }\n 75% { transform: translateX(3px); }\n}\n\n/* The menu: an overlay under the bar and a panel sliding in from the right.\n The bar stays live above it, so the pill's own slide plays and a header tap\n closes the menu the same way it opened it. */\n.vwin-menu-layer {\n position: absolute;\n top: calc(var(--vwin-bar-height) + 1px);\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 45;\n overflow: hidden;\n}\n.vwin-frame[data-menu-phase=\"closed\"] .vwin-menu-layer {\n visibility: hidden;\n pointer-events: none;\n}\n.vwin-overlay {\n position: absolute;\n inset: 0;\n background-color: rgba(0, 0, 0, 0.6);\n animation: vwin-fade-in 0.3s ease-out;\n}\n.vwin-menu-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 400px;\n max-width: 90%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--vwin-menu-bg);\n color: var(--vwin-menu-ink);\n border-top: 8px solid var(--vwin-edge);\n border-bottom: 8px solid var(--vwin-edge);\n box-shadow: -12px 0 0 0 var(--vwin-edge);\n animation: vwin-slide-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);\n outline: none;\n overflow: hidden;\n}\n/* Focus lands on the panel itself when the menu opens (so the next Tab reaches\n the first row); that programmatic focus draws no ring. Rows and buttons\n inside keep their own focus-visible rings. */\n.vwin-menu-panel:focus,\n.vwin-menu-panel:focus-visible {\n outline: none;\n}\n.vwin-frame[data-menu-phase=\"closing\"] .vwin-overlay {\n animation: vwin-fade-out 0.3s ease-out forwards;\n}\n.vwin-frame[data-menu-phase=\"closing\"] .vwin-menu-panel {\n animation: vwin-slide-out 0.5s cubic-bezier(0.64, 0, 0.66, 0) forwards;\n}\n.vwin-frame[data-menu-phase=\"closed\"] .vwin-overlay,\n.vwin-frame[data-menu-phase=\"closed\"] .vwin-menu-panel {\n animation: none;\n}\n@keyframes vwin-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes vwin-fade-out { from { opacity: 1; } to { opacity: 0; } }\n@keyframes vwin-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }\n@keyframes vwin-slide-out { from { transform: translateX(0); } to { transform: translateX(calc(100% + 12px)); } }\n\n@media (prefers-reduced-motion: reduce) {\n .vwin-bar:hover .vwin-gear,\n .vwin-bar:active .vwin-menu-button,\n .vwin-overlay,\n .vwin-menu-panel {\n animation: none !important;\n }\n /* No slide to wait out: a closing menu is simply gone. */\n .vwin-frame[data-menu-phase=\"closing\"] .vwin-menu-layer {\n visibility: hidden;\n }\n}\n";
@@ -1,263 +0,0 @@
1
- import { SAFE_AREA_BOTTOM, SAFE_AREA_LEFT, SAFE_AREA_RIGHT, SAFE_AREA_TOP } from "../theme/safe-area.js";
2
- const DARK_TOKENS = `
3
- --vwin-line: #83817d;
4
- --vwin-field: #221f20;
5
- --vwin-menu-bg: #1a1a1a;
6
- --vwin-menu-ink: #e0e0e0;
7
- `;
8
- export const VIBES_WINDOW_CSS = `
9
- .vwin-scope {
10
- --vwin-frame: #000;
11
- --vwin-bar: #fefff1;
12
- --vwin-line: #2c2c22;
13
- --vwin-field: #cccdc8;
14
- --vwin-grid-line: #fffff0;
15
- --vwin-red: #d92a1c;
16
- --vwin-gear-disc: #231f20;
17
- --vwin-cream: #fffff0;
18
- --vwin-edge: #231f20;
19
- --vwin-menu-bg: #fefff1;
20
- --vwin-menu-ink: #1a1a1a;
21
- --vwin-bar-height: 53px;
22
- }
23
- @media (prefers-color-scheme: dark) {
24
- .vwin-scope:not([data-scheme="light"]) {${DARK_TOKENS}}
25
- }
26
- .vwin-scope[data-scheme="dark"] {${DARK_TOKENS}}
27
-
28
- html:has(.vwin-frame),
29
- body:has(.vwin-frame) {
30
- background-color: #000;
31
- }
32
-
33
- .vwin-frame {
34
- position: fixed;
35
- inset: 0;
36
- background-color: var(--vwin-frame);
37
- z-index: 0;
38
- }
39
- .vwin-panel {
40
- position: absolute;
41
- top: max(15px, ${SAFE_AREA_TOP});
42
- left: max(15px, ${SAFE_AREA_LEFT});
43
- right: max(15px, ${SAFE_AREA_RIGHT});
44
- bottom: max(15px, ${SAFE_AREA_BOTTOM});
45
- border-radius: 12px;
46
- overflow: hidden;
47
- background-color: var(--vwin-field);
48
- isolation: isolate;
49
- }
50
-
51
- /* The grid: fixed behind the content, whole cells only. */
52
- .vwin-grid-area {
53
- position: absolute;
54
- top: calc(var(--vwin-bar-height) + 1px);
55
- left: 15px;
56
- right: 15px;
57
- bottom: 25px;
58
- display: flex;
59
- justify-content: center;
60
- align-items: flex-start;
61
- pointer-events: none;
62
- z-index: 0;
63
- }
64
- .vwin-grid {
65
- flex: none;
66
- width: 100%;
67
- height: 100%;
68
- background-image:
69
- linear-gradient(to right, var(--vwin-grid-line) 1px, transparent 1px),
70
- linear-gradient(to bottom, var(--vwin-grid-line) 1px, transparent 1px);
71
- background-size: 32px 30px;
72
- background-position: 0 0;
73
- }
74
- @supports (width: round(down, 100px, 32px)) {
75
- .vwin-grid {
76
- width: calc(round(down, 100% - 1px, 32px) + 1px);
77
- height: calc(round(down, 100% - 1px, 30px) + 1px);
78
- }
79
- }
80
-
81
- /* Content scrolls here, under the bar, over the grid. */
82
- .vwin-scroll {
83
- position: absolute;
84
- top: calc(var(--vwin-bar-height) + 1px);
85
- left: 0;
86
- right: 0;
87
- bottom: 0;
88
- overflow-x: hidden;
89
- overflow-y: auto;
90
- overscroll-behavior: contain;
91
- -webkit-overflow-scrolling: touch;
92
- /* No z-index here on purpose: a page's own full-screen overlays (z-50 detail
93
- panels and modals) must still rise above the bar and menu, as they do
94
- outside the frame. Ordinary positioned content stays under the bar (40). */
95
- }
96
-
97
- /* The bar: one real button, so a tap anywhere on it toggles the menu. */
98
- .vwin-bar {
99
- position: relative;
100
- z-index: 40;
101
- box-sizing: content-box;
102
- display: flex;
103
- align-items: center;
104
- justify-content: space-between;
105
- width: 100%;
106
- height: var(--vwin-bar-height);
107
- margin: 0;
108
- padding: 0;
109
- border: 0;
110
- border-bottom: 1px solid var(--vwin-line);
111
- background-color: var(--vwin-bar);
112
- color: var(--vwin-cream);
113
- font: inherit;
114
- text-align: left;
115
- cursor: pointer;
116
- -webkit-tap-highlight-color: transparent;
117
- overflow: hidden;
118
- }
119
- .vwin-frame .vwin-bar {
120
- position: absolute;
121
- top: 0;
122
- left: 0;
123
- right: 0;
124
- }
125
- .vwin-bar:focus-visible {
126
- outline: 3px solid var(--vwin-red);
127
- outline-offset: -3px;
128
- }
129
- .vwin-pill {
130
- display: flex;
131
- align-items: center;
132
- height: 100%;
133
- padding-left: 4px;
134
- }
135
- .vwin-pill svg {
136
- position: relative;
137
- /* The switch's viewBox carries headroom for its status ring; this centres the
138
- drawn logo (not the svg box) on the bar. */
139
- top: -8.5px;
140
- pointer-events: none;
141
- }
142
- .vwin-menu-button {
143
- display: flex;
144
- align-items: center;
145
- gap: 8px;
146
- height: var(--vwin-bar-height);
147
- padding: 0 16px 0 10px;
148
- background-color: var(--vwin-red);
149
- color: var(--vwin-cream);
150
- flex-shrink: 0;
151
- }
152
- .vwin-gear {
153
- display: flex;
154
- width: 35px;
155
- height: 35px;
156
- transform-origin: 50% 50%;
157
- }
158
- .vwin-menu-label {
159
- font-size: 14px;
160
- font-weight: bold;
161
- letter-spacing: 1.5px;
162
- text-transform: uppercase;
163
- white-space: nowrap;
164
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
165
- color: var(--vwin-cream);
166
- opacity: 1;
167
- }
168
- @media (hover: hover) {
169
- .vwin-bar:hover .vwin-gear {
170
- animation: vwin-wiggle 0.6s ease-in-out infinite;
171
- }
172
- }
173
- .vwin-bar:active .vwin-menu-button {
174
- animation: vwin-shake 0.3s ease-in-out;
175
- }
176
- @keyframes vwin-wiggle {
177
- 0%, 100% { transform: rotate(0deg); }
178
- 25% { transform: rotate(-5deg); }
179
- 75% { transform: rotate(5deg); }
180
- }
181
- @keyframes vwin-shake {
182
- 0%, 100% { transform: translateX(0); }
183
- 25% { transform: translateX(-3px); }
184
- 75% { transform: translateX(3px); }
185
- }
186
-
187
- /* The menu: an overlay under the bar and a panel sliding in from the right.
188
- The bar stays live above it, so the pill's own slide plays and a header tap
189
- closes the menu the same way it opened it. */
190
- .vwin-menu-layer {
191
- position: absolute;
192
- top: calc(var(--vwin-bar-height) + 1px);
193
- left: 0;
194
- right: 0;
195
- bottom: 0;
196
- z-index: 45;
197
- overflow: hidden;
198
- }
199
- .vwin-frame[data-menu-phase="closed"] .vwin-menu-layer {
200
- visibility: hidden;
201
- pointer-events: none;
202
- }
203
- .vwin-overlay {
204
- position: absolute;
205
- inset: 0;
206
- background-color: rgba(0, 0, 0, 0.6);
207
- animation: vwin-fade-in 0.3s ease-out;
208
- }
209
- .vwin-menu-panel {
210
- position: absolute;
211
- top: 0;
212
- right: 0;
213
- bottom: 0;
214
- width: 400px;
215
- max-width: 90%;
216
- display: flex;
217
- flex-direction: column;
218
- box-sizing: border-box;
219
- background-color: var(--vwin-menu-bg);
220
- color: var(--vwin-menu-ink);
221
- border-top: 8px solid var(--vwin-edge);
222
- border-bottom: 8px solid var(--vwin-edge);
223
- box-shadow: -12px 0 0 0 var(--vwin-edge);
224
- animation: vwin-slide-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
225
- outline: none;
226
- overflow: hidden;
227
- }
228
- /* Focus lands on the panel itself when the menu opens (so the next Tab reaches
229
- the first row); that programmatic focus draws no ring. Rows and buttons
230
- inside keep their own focus-visible rings. */
231
- .vwin-menu-panel:focus,
232
- .vwin-menu-panel:focus-visible {
233
- outline: none;
234
- }
235
- .vwin-frame[data-menu-phase="closing"] .vwin-overlay {
236
- animation: vwin-fade-out 0.3s ease-out forwards;
237
- }
238
- .vwin-frame[data-menu-phase="closing"] .vwin-menu-panel {
239
- animation: vwin-slide-out 0.5s cubic-bezier(0.64, 0, 0.66, 0) forwards;
240
- }
241
- .vwin-frame[data-menu-phase="closed"] .vwin-overlay,
242
- .vwin-frame[data-menu-phase="closed"] .vwin-menu-panel {
243
- animation: none;
244
- }
245
- @keyframes vwin-fade-in { from { opacity: 0; } to { opacity: 1; } }
246
- @keyframes vwin-fade-out { from { opacity: 1; } to { opacity: 0; } }
247
- @keyframes vwin-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
248
- @keyframes vwin-slide-out { from { transform: translateX(0); } to { transform: translateX(calc(100% + 12px)); } }
249
-
250
- @media (prefers-reduced-motion: reduce) {
251
- .vwin-bar:hover .vwin-gear,
252
- .vwin-bar:active .vwin-menu-button,
253
- .vwin-overlay,
254
- .vwin-menu-panel {
255
- animation: none !important;
256
- }
257
- /* No slide to wait out: a closing menu is simply gone. */
258
- .vwin-frame[data-menu-phase="closing"] .vwin-menu-layer {
259
- visibility: hidden;
260
- }
261
- }
262
- `;
263
- //# sourceMappingURL=VibesWindowFrame.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VibesWindowFrame.styles.js","sourceRoot":"","sources":["../../jsr/components/VibesWindowFrame.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA8BzG,MAAM,WAAW,GAAG;;;;;CAKnB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;4CAgBY,WAAW;;mCAEpB,WAAW;;;;;;;;;;;;;;;mBAe3B,aAAa;oBACZ,cAAc;qBACb,eAAe;sBACd,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0NrC,CAAC"}
@@ -1,19 +0,0 @@
1
- import React from "react";
2
- export declare function VibesWindowStyles(): React.JSX.Element;
3
- export declare function VibesWindowGear({ size }: {
4
- size?: number;
5
- }): React.JSX.Element;
6
- export interface VibesWindowHeaderProps {
7
- isOpen: boolean;
8
- onToggle: () => void;
9
- controlsId: string;
10
- label?: string;
11
- scheme?: "light" | "dark";
12
- ovalColor?: string;
13
- ovalStatusKey?: string | number;
14
- isTwinkling?: boolean;
15
- buttonRef?: React.Ref<HTMLButtonElement>;
16
- withStyles?: boolean;
17
- onIntent?: () => void;
18
- }
19
- export declare function VibesWindowHeader({ isOpen, onToggle, controlsId, label, scheme, ovalColor, ovalStatusKey, isTwinkling, buttonRef, withStyles, onIntent, }: VibesWindowHeaderProps): React.JSX.Element;
@@ -1,23 +0,0 @@
1
- import React from "react";
2
- import { VibesSwitch } from "./VibesSwitch.js";
3
- import { VIBES_WINDOW_CSS } from "./VibesWindowFrame.styles.js";
4
- export function VibesWindowStyles() {
5
- return React.createElement("style", null, VIBES_WINDOW_CSS);
6
- }
7
- export function VibesWindowGear({ size = 35 }) {
8
- return (React.createElement("svg", { width: size, height: size, viewBox: "0 0 44 44", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" },
9
- React.createElement("circle", { cx: "22", cy: "22", r: "22", fill: "var(--vwin-gear-disc, #231f20)" }),
10
- React.createElement("path", { fill: "var(--vwin-cream, #fffff0)", d: "M21.894 26.925C22.816 26.925 23.656 26.699 24.418 26.246C25.176 25.797 25.785 25.187 26.242 24.422C26.695 23.66 26.926 22.816 26.926 21.894C26.926 20.972 26.695 20.129 26.242 19.363C25.785 18.601 25.176 17.992 24.418 17.543C23.656 17.09 22.816 16.863 21.894 16.863C20.965 16.863 20.117 17.09 19.359 17.543C18.598 17.992 17.992 18.601 17.543 19.363C17.09 20.129 16.867 20.972 16.867 21.894C16.867 22.816 17.09 23.66 17.543 24.422C17.992 25.187 18.598 25.797 19.359 26.246C20.117 26.699 20.965 26.925 21.894 26.925ZM20.582 36.785C20.215 36.785 19.902 36.683 19.648 36.48C19.398 36.273 19.226 35.988 19.129 35.617L18.3911 32.48C18.1131 32.386 17.844 32.285 17.578 32.183C17.312 32.078 17.059 31.968 16.82 31.855L14.0861 33.535C13.7731 33.726 13.4531 33.804 13.1251 33.777C12.7971 33.75 12.5041 33.609 12.2501 33.351L10.426 31.527C10.168 31.269 10.023 30.972 9.992 30.629C9.957 30.285 10.043 29.965 10.254 29.66L11.9221 26.937C11.8051 26.691 11.6951 26.441 11.5941 26.183C11.4881 25.925 11.398 25.672 11.32 25.414L8.16003 24.66C7.78903 24.574 7.50405 24.406 7.30505 24.152C7.10505 23.902 7.00403 23.59 7.00403 23.218V20.64C7.00403 20.281 7.10505 19.972 7.30505 19.722C7.50405 19.468 7.78903 19.301 8.16003 19.215L11.293 18.461C11.379 18.164 11.4761 17.89 11.5861 17.633C11.6951 17.379 11.7971 17.136 11.8911 16.906L10.223 14.144C10.023 13.828 9.93706 13.511 9.96106 13.187C9.98406 12.867 10.129 12.5739 10.394 12.3199L12.2501 10.48C12.5041 10.222 12.789 10.078 13.101 10.039C13.418 10 13.73 10.078 14.043 10.269L16.809 11.976C17.043 11.855 17.301 11.738 17.57 11.629C17.84 11.519 18.1131 11.4179 18.3911 11.3199L19.129 8.172C19.226 7.812 19.398 7.52695 19.648 7.31995C19.902 7.10895 20.215 7.00397 20.582 7.00397H23.207C23.578 7.00397 23.8871 7.10895 24.1411 7.31995C24.3911 7.52695 24.559 7.812 24.644 8.172L25.387 11.351C25.68 11.445 25.9571 11.5429 26.2191 11.6479C26.4801 11.7539 26.726 11.867 26.953 11.992L29.746 10.269C30.051 10.078 30.3551 10.008 30.6641 10.054C30.9731 10.101 31.262 10.242 31.527 10.48L33.394 12.3199C33.66 12.5739 33.801 12.867 33.82 13.187C33.84 13.511 33.754 13.828 33.566 14.144L31.8831 16.906C31.9761 17.136 32.082 17.379 32.191 17.633C32.297 17.89 32.402 18.164 32.496 18.461L35.629 19.215C35.992 19.301 36.273 19.468 36.476 19.722C36.683 19.972 36.785 20.281 36.785 20.64V23.218C36.785 23.59 36.683 23.902 36.476 24.152C36.273 24.406 35.992 24.574 35.629 24.66L32.4691 25.414C32.3831 25.672 32.289 25.925 32.191 26.183C32.09 26.441 31.976 26.691 31.855 26.937L33.535 29.66C33.746 29.965 33.832 30.285 33.801 30.629C33.766 30.972 33.621 31.269 33.367 31.527L31.527 33.351C31.269 33.609 30.976 33.75 30.652 33.777C30.324 33.804 30.008 33.726 29.703 33.535L26.953 31.855C26.715 31.968 26.465 32.078 26.199 32.183C25.933 32.285 25.66 32.386 25.387 32.48L24.644 35.617C24.559 35.988 24.3911 36.273 24.1411 36.48C23.8871 36.683 23.578 36.785 23.207 36.785H20.582Z" })));
11
- }
12
- export function VibesWindowHeader({ isOpen, onToggle, controlsId, label = "MENU", scheme, ovalColor, ovalStatusKey, isTwinkling, buttonRef, withStyles = true, onIntent, }) {
13
- return (React.createElement(React.Fragment, null,
14
- withStyles && React.createElement(VibesWindowStyles, null),
15
- React.createElement("button", { ref: buttonRef, type: "button", className: "vwin-scope vwin-bar", "data-scheme": scheme, "data-testid": "window-bar", "aria-expanded": isOpen, "aria-controls": controlsId, onClick: onToggle, onPointerEnter: onIntent, onPointerDown: onIntent, onFocus: onIntent },
16
- React.createElement("span", { className: "vwin-pill", "data-window-pill": true, "aria-hidden": "true" },
17
- React.createElement(VibesSwitch, { size: 54, isActive: isOpen, ovalColor: ovalColor, ovalStatusKey: ovalStatusKey, isTwinkling: isTwinkling, style: { pointerEvents: "none" } })),
18
- React.createElement("span", { className: "vwin-menu-button" },
19
- React.createElement("span", { className: "vwin-gear" },
20
- React.createElement(VibesWindowGear, null)),
21
- React.createElement("span", { className: "vwin-menu-label" }, label)))));
22
- }
23
- //# sourceMappingURL=VibesWindowHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VibesWindowHeader.js","sourceRoot":"","sources":["../../jsr/components/VibesWindowHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAQhE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,mCAAQ,gBAAgB,CAAS,CAAC;AAC3C,CAAC;AAID,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IAC9D,OAAO,CACL,6BAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,iBAAa,MAAM;QACnH,gCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,gCAAgC,GAAG;QACvE,8BACE,IAAI,EAAC,4BAA4B,EACjC,CAAC,EAAC,w0FAAw0F,GAC10F,CACE,CACP,CAAC;AACJ,CAAC;AAkCD,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,GAAG,MAAM,EACd,MAAM,EACN,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,GAAG,IAAI,EACjB,QAAQ,GACe;IACvB,OAAO,CACL;QACG,UAAU,IAAI,oBAAC,iBAAiB,OAAG;QACpC,gCACE,GAAG,EAAE,SAAS,EACd,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,iBAClB,MAAM,iBACP,YAAY,mBACT,MAAM,mBACN,UAAU,EACzB,OAAO,EAAE,QAAQ,EACjB,cAAc,EAAE,QAAQ,EACxB,aAAa,EAAE,QAAQ,EACvB,OAAO,EAAE,QAAQ;YAEjB,8BAAM,SAAS,EAAC,WAAW,2CAA8B,MAAM;gBAC7D,oBAAC,WAAW,IACV,IAAI,EAAE,EAAE,EACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAChC,CACG;YACP,8BAAM,SAAS,EAAC,kBAAkB;gBAChC,8BAAM,SAAS,EAAC,WAAW;oBACzB,oBAAC,eAAe,OAAG,CACd;gBACP,8BAAM,SAAS,EAAC,iBAAiB,IAAE,KAAK,CAAQ,CAC3C,CACA,CACR,CACJ,CAAC;AACJ,CAAC"}