@rovela-ai/sdk 0.3.11 → 0.3.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AdminBarBanner.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminBarBanner.tsx"],"names":[],"mappings":"AAwDA,wBAAgB,cAAc,uCA+F7B"}
1
+ {"version":3,"file":"AdminBarBanner.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminBarBanner.tsx"],"names":[],"mappings":"AAqDA,wBAAgB,cAAc,uCAyH7B"}
@@ -3,41 +3,36 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
4
  * @rovela/sdk/admin/components/AdminBarBanner
5
5
  *
6
- * Linear/Vercel-style admin session bar that sits above the storefront
7
- * whenever a signed-in admin browses the public store. Customers and
8
- * anonymous visitors never see it.
6
+ * Linear/Vercel-style admin session bar shown above the storefront whenever
7
+ * a signed-in admin browses the public store. Customers and anonymous
8
+ * visitors never see it.
9
9
  *
10
- * Design rules:
10
+ * Design rules (unchanged from v1):
11
11
  *
12
- * 1. Self-gating. The component takes no props and renders `null` when
13
- * the session is loading, when there is no admin role, or when the
14
- * user is on an `/admin/*` route. Safe to mount unconditionally at
15
- * the root of a customer layout.
12
+ * 1. Self-gating. No props. Renders `null` while loading, for sessions
13
+ * without a role, and on /admin/*.
16
14
  *
17
- * 2. Portal-rendered to <html> (outside <body>). This anchors the bar
18
- * to the viewport regardless of any body-level transform below it.
15
+ * 2. Portal-rendered to <html>. Combined with a `translateZ(0)` on
16
+ * <body> and a 40px body margin, fixed/sticky store chrome is pushed
17
+ * below the bar instead of overlapping it.
19
18
  *
20
- * 3. Offset the storefront without editing it. On mount we apply
21
- * `margin-top: 40px` + `transform: translateZ(0)` to <body>. The
22
- * transform reparents the containing block of every `position: fixed`
23
- * descendant from the viewport to <body>, so sticky/fixed store
24
- * headers sit *below* our bar instead of overlapping it. The banner
25
- * itself lives outside <body> (in the portal root appended to
26
- * <html>), so the same transform does not affect it — it stays
27
- * pinned to the real viewport at `top: 0`.
19
+ * 3. Theme-proof. Inline styles + one scoped <style> element.
28
20
  *
29
- * 4. Theme-proof styling. Inline styles + one scoped `<style>` element
30
- * for pseudo-states and media queries. Storefront Tailwind/CSS edits
31
- * cannot regress this.
21
+ * 4. Navigation-only. Server-side guards still authorize.
32
22
  *
33
- * 5. Navigation-only. The bar never authorizes — clicking "Dashboard"
34
- * sends a normal navigation to `/admin`, which is gated server-side
35
- * by `requireAdmin()`. A deactivated admin whose JWT is still valid
36
- * will land on `/admin/login`; this bar is never the gate.
23
+ * v2 changes:
24
+ * - Two actions instead of one: "Edit store" (rovela.ai/generate/{id})
25
+ * and "Manage store" (/admin). Both open in a new tab.
26
+ * - "Edit store" only renders when NEXT_PUBLIC_ROVELA_PROJECT_ID is set.
27
+ * This gives a graceful degradation path for stores whose env var
28
+ * hasn't propagated yet.
29
+ * - Rovela logo (same CDN asset as AdminNav sidebar footer) as the
30
+ * Edit-store glyph; Lucide LayoutDashboard as the Manage-store glyph.
37
31
  */
38
32
  import { useEffect, useState } from 'react';
39
33
  import { createPortal } from 'react-dom';
40
34
  import { usePathname } from 'next/navigation';
35
+ import { LayoutDashboard } from 'lucide-react';
41
36
  import { useAdminAuth } from '../hooks/useAdminAuth';
42
37
  import { roleLabel } from '../permissions';
43
38
  // =============================================================================
@@ -46,6 +41,8 @@ import { roleLabel } from '../permissions';
46
41
  const BAR_HEIGHT_PX = 40;
47
42
  const PORTAL_ROOT_ID = 'rovela-admin-bar-root';
48
43
  const STYLE_TAG_ID = 'rovela-admin-bar-style';
44
+ const DEFAULT_ROVELA_URL = 'https://rovela.ai';
45
+ const ROVELA_LOGO_SRC = 'https://rovela.ai/logo.png';
49
46
  // =============================================================================
50
47
  // Component
51
48
  // =============================================================================
@@ -53,8 +50,6 @@ export function AdminBarBanner() {
53
50
  const pathname = usePathname();
54
51
  const { admin, isAuthenticated, isLoading } = useAdminAuth();
55
52
  const [portalRoot, setPortalRoot] = useState(null);
56
- // Visibility gate. Any change here triggers mount/unmount side-effects
57
- // via the `useEffect` below.
58
53
  const visible = !isLoading &&
59
54
  isAuthenticated &&
60
55
  Boolean(admin?.role) &&
@@ -64,7 +59,7 @@ export function AdminBarBanner() {
64
59
  return;
65
60
  if (!visible)
66
61
  return;
67
- // --- 1. Portal root (child of <html>, sibling of <body>) ---
62
+ // --- Portal root (<html> child, sibling of <body>) ---
68
63
  let root = document.getElementById(PORTAL_ROOT_ID);
69
64
  let ownsRoot = false;
70
65
  if (!root) {
@@ -74,7 +69,7 @@ export function AdminBarBanner() {
74
69
  ownsRoot = true;
75
70
  }
76
71
  setPortalRoot(root);
77
- // --- 2. Global stylesheet for pseudo-states + responsive behavior ---
72
+ // --- Scoped global stylesheet (pseudo-states + responsive hides) ---
78
73
  let styleEl = document.getElementById(STYLE_TAG_ID);
79
74
  let ownsStyle = false;
80
75
  if (!styleEl) {
@@ -84,14 +79,10 @@ export function AdminBarBanner() {
84
79
  document.head.appendChild(styleEl);
85
80
  ownsStyle = true;
86
81
  }
87
- // --- 3. Push the storefront down + reparent fixed descendants ---
88
- // Remember previous inline values so we restore precisely on unmount.
82
+ // --- Push the storefront down + reparent fixed descendants ---
89
83
  const prevBodyMarginTop = document.body.style.marginTop;
90
84
  const prevBodyTransform = document.body.style.transform;
91
85
  document.body.style.marginTop = `${BAR_HEIGHT_PX}px`;
92
- // `translateZ(0)` creates a new containing block for any descendant
93
- // with `position: fixed`. Combined with the body margin above, this
94
- // shifts sticky/fixed store chrome out from under our bar.
95
86
  document.body.style.transform = 'translateZ(0)';
96
87
  return () => {
97
88
  document.body.style.marginTop = prevBodyMarginTop;
@@ -108,7 +99,30 @@ export function AdminBarBanner() {
108
99
  if (!visible || !portalRoot || !admin)
109
100
  return null;
110
101
  const role = roleLabel(admin.role).toLowerCase();
111
- return createPortal(_jsx("div", { "data-rovela-admin-bar": "", style: wrapStyle, children: _jsxs("div", { style: innerStyle, children: [_jsxs("div", { style: leftGroupStyle, children: [_jsx("span", { "aria-hidden": "true", style: dotStyle }), _jsx("span", { style: labelStyle, children: "Admin session" }), _jsx("span", { "aria-hidden": "true", "data-rovela-desktop-only": "", style: dividerStyle, children: "\u00B7" }), _jsx("span", { "data-rovela-desktop-only": "", style: roleStyle, children: role })] }), _jsxs("a", { href: "/admin", "data-rovela-action": "", "aria-label": "Open admin dashboard", style: buttonStyle, children: [_jsx("span", { "data-rovela-desktop-only": "", children: "Dashboard" }), _jsx("span", { "aria-hidden": "true", style: arrowStyle, children: "\u2197" })] })] }) }), portalRoot);
102
+ // Deep-link to Rovela platform. Only shown when the project ID env var is
103
+ // present — which is the case for every store that has redeployed since
104
+ // the env var was added to buildStoreEnvVars(). Older stores see only the
105
+ // "Manage store" button until their next rebuild.
106
+ const projectId = getEnv('NEXT_PUBLIC_ROVELA_PROJECT_ID');
107
+ const rovelaBase = getEnv('NEXT_PUBLIC_ROVELA_URL') || DEFAULT_ROVELA_URL;
108
+ const editUrl = projectId ? `${rovelaBase.replace(/\/$/, '')}/generate/${projectId}` : null;
109
+ return createPortal(_jsx("div", { "data-rovela-admin-bar": "", style: wrapStyle, children: _jsxs("div", { style: innerStyle, children: [_jsxs("div", { style: leftGroupStyle, children: [_jsx("span", { "aria-hidden": "true", style: dotStyle }), _jsx("span", { "data-rovela-tablet-only": "", style: labelStyle, children: "Admin session" }), _jsx("span", { "aria-hidden": "true", "data-rovela-desktop-only": "", style: dividerStyle, children: "\u00B7" }), _jsx("span", { "data-rovela-desktop-only": "", style: roleStyle, children: role })] }), _jsxs("div", { style: actionsStyle, children: [editUrl && (_jsxs("a", { href: editUrl, target: "_blank", rel: "noopener noreferrer", "data-rovela-action": "", "aria-label": "Edit store in Rovela", style: buttonStyle, children: [_jsx("img", { src: ROVELA_LOGO_SRC, alt: "", "aria-hidden": "true", style: rovelaIconStyle }), _jsx("span", { "data-rovela-desktop-only": "", children: "Edit store" })] })), _jsxs("a", { href: "/admin", target: "_blank", rel: "noopener noreferrer", "data-rovela-action": "", "aria-label": "Open the admin dashboard", style: buttonStyle, children: [_jsx(LayoutDashboard, { "aria-hidden": "true", style: lucideIconStyle, strokeWidth: 1.8 }), _jsx("span", { "data-rovela-desktop-only": "", children: "Manage store" })] })] })] }) }), portalRoot);
110
+ }
111
+ // =============================================================================
112
+ // Helpers
113
+ // =============================================================================
114
+ /**
115
+ * `NEXT_PUBLIC_*` vars get statically inlined by Next.js when a component
116
+ * is bundled, so reading via `process.env[name]` with a dynamic key does
117
+ * not work in the SDK (no direct access to the compile-time substitution).
118
+ * We read the literal strings so the bundler can substitute them.
119
+ */
120
+ function getEnv(key) {
121
+ if (key === 'NEXT_PUBLIC_ROVELA_PROJECT_ID')
122
+ return process.env.NEXT_PUBLIC_ROVELA_PROJECT_ID;
123
+ if (key === 'NEXT_PUBLIC_ROVELA_URL')
124
+ return process.env.NEXT_PUBLIC_ROVELA_URL;
125
+ return undefined;
112
126
  }
113
127
  // =============================================================================
114
128
  // Styles
@@ -119,8 +133,6 @@ const wrapStyle = {
119
133
  left: 0,
120
134
  right: 0,
121
135
  height: `${BAR_HEIGHT_PX}px`,
122
- // Max 32-bit signed int — safely above any storefront z-index stacking
123
- // context (Intercom widgets cap at ~2147483000; we still sit above).
124
136
  zIndex: 2147483647,
125
137
  background: 'rgba(10, 10, 12, 0.85)',
126
138
  backdropFilter: 'blur(12px) saturate(140%)',
@@ -172,12 +184,18 @@ const roleStyle = {
172
184
  color: 'rgba(255, 255, 255, 0.55)',
173
185
  whiteSpace: 'nowrap',
174
186
  };
187
+ const actionsStyle = {
188
+ display: 'inline-flex',
189
+ alignItems: 'center',
190
+ gap: '6px',
191
+ flexShrink: 0,
192
+ };
175
193
  const buttonStyle = {
176
194
  display: 'inline-flex',
177
195
  alignItems: 'center',
178
196
  gap: '6px',
179
197
  height: '28px',
180
- padding: '0 12px',
198
+ padding: '0 10px',
181
199
  borderRadius: '6px',
182
200
  fontSize: '12.5px',
183
201
  fontWeight: 500,
@@ -190,14 +208,25 @@ const buttonStyle = {
190
208
  flexShrink: 0,
191
209
  transition: 'background 120ms ease, border-color 120ms ease',
192
210
  };
193
- const arrowStyle = {
194
- display: 'inline-block',
195
- transform: 'translateY(-0.5px)',
196
- fontSize: '13px',
197
- opacity: 0.9,
211
+ const rovelaIconStyle = {
212
+ width: '14px',
213
+ height: '14px',
214
+ objectFit: 'contain',
215
+ // Force the logo to render pure white so it reads correctly on the dark bar
216
+ filter: 'brightness(0) invert(1)',
217
+ flexShrink: 0,
198
218
  };
199
- // Scoped to `[data-rovela-admin-bar]` so we can never leak into storefront
200
- // styles. Injected once per mount, removed on unmount.
219
+ const lucideIconStyle = {
220
+ width: '14px',
221
+ height: '14px',
222
+ flexShrink: 0,
223
+ };
224
+ // Scoped under [data-rovela-admin-bar] so no rules can escape into the
225
+ // storefront. Injected on mount, removed on unmount.
226
+ //
227
+ // Responsive hide rules:
228
+ // - [data-rovela-desktop-only] hidden below 640px (role tag, button labels)
229
+ // - [data-rovela-tablet-only] hidden below 480px ("Admin session" label)
201
230
  const GLOBAL_CSS = `
202
231
  @keyframes rab-pulse {
203
232
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.55); }
@@ -212,9 +241,13 @@ const GLOBAL_CSS = `
212
241
  outline: 2px solid rgba(255, 255, 255, 0.6);
213
242
  outline-offset: 2px;
214
243
  }
215
- @media (max-width: 480px) {
244
+ @media (max-width: 639px) {
216
245
  [data-rovela-admin-bar] [data-rovela-desktop-only] { display: none !important; }
217
246
  }
247
+ @media (max-width: 479px) {
248
+ [data-rovela-admin-bar] [data-rovela-tablet-only] { display: none !important; }
249
+ [data-rovela-admin-bar] a[data-rovela-action] { padding: 0 8px; }
250
+ }
218
251
  @media (prefers-reduced-motion: reduce) {
219
252
  [data-rovela-admin-bar] [aria-hidden="true"] { animation: none !important; }
220
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdminBarBanner.js","sourceRoot":"","sources":["../../../src/admin/components/AdminBarBanner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdminBarBanner.js","sourceRoot":"","sources":["../../../src/admin/components/AdminBarBanner.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovela-ai/sdk",
3
- "version": "0.3.11",
3
+ "version": "0.3.12",
4
4
  "description": "Rovela SDK - Pre-built e-commerce components for AI-powered store generation",
5
5
  "type": "module",
6
6
  "license": "MIT",