@rovela-ai/sdk 0.18.7 → 0.19.1

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 (70) hide show
  1. package/dist/admin/components/AdminAccountPage.d.ts.map +1 -1
  2. package/dist/admin/components/AdminAccountPage.js +42 -25
  3. package/dist/admin/components/AdminAccountPage.js.map +1 -1
  4. package/dist/admin/components/AdminLayout.d.ts +9 -2
  5. package/dist/admin/components/AdminLayout.d.ts.map +1 -1
  6. package/dist/admin/components/AdminLayout.js +40 -2
  7. package/dist/admin/components/AdminLayout.js.map +1 -1
  8. package/dist/admin/components/AdminModal.d.ts +2 -1
  9. package/dist/admin/components/AdminModal.d.ts.map +1 -1
  10. package/dist/admin/components/AdminModal.js +3 -19
  11. package/dist/admin/components/AdminModal.js.map +1 -1
  12. package/dist/admin/components/AdminNav.d.ts +5 -1
  13. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  14. package/dist/admin/components/AdminNav.js +10 -5
  15. package/dist/admin/components/AdminNav.js.map +1 -1
  16. package/dist/admin/components/AdminTopBar.d.ts +3 -1
  17. package/dist/admin/components/AdminTopBar.d.ts.map +1 -1
  18. package/dist/admin/components/AdminTopBar.js +3 -3
  19. package/dist/admin/components/AdminTopBar.js.map +1 -1
  20. package/dist/admin/components/CategoryForm.d.ts.map +1 -1
  21. package/dist/admin/components/CategoryForm.js +14 -9
  22. package/dist/admin/components/CategoryForm.js.map +1 -1
  23. package/dist/admin/components/CustomerDetails.d.ts.map +1 -1
  24. package/dist/admin/components/CustomerDetails.js +48 -21
  25. package/dist/admin/components/CustomerDetails.js.map +1 -1
  26. package/dist/admin/components/CustomerTable.d.ts.map +1 -1
  27. package/dist/admin/components/CustomerTable.js +11 -11
  28. package/dist/admin/components/CustomerTable.js.map +1 -1
  29. package/dist/admin/components/DiscardChangesModal.d.ts +9 -0
  30. package/dist/admin/components/DiscardChangesModal.d.ts.map +1 -0
  31. package/dist/admin/components/DiscardChangesModal.js +19 -0
  32. package/dist/admin/components/DiscardChangesModal.js.map +1 -0
  33. package/dist/admin/components/DiscountsManager.d.ts.map +1 -1
  34. package/dist/admin/components/DiscountsManager.js +47 -21
  35. package/dist/admin/components/DiscountsManager.js.map +1 -1
  36. package/dist/admin/components/EmailsManager.d.ts.map +1 -1
  37. package/dist/admin/components/EmailsManager.js +124 -52
  38. package/dist/admin/components/EmailsManager.js.map +1 -1
  39. package/dist/admin/components/LocationsManager.d.ts.map +1 -1
  40. package/dist/admin/components/LocationsManager.js +49 -22
  41. package/dist/admin/components/LocationsManager.js.map +1 -1
  42. package/dist/admin/components/OrderTable.js +3 -3
  43. package/dist/admin/components/OrderTable.js.map +1 -1
  44. package/dist/admin/components/ProductForm.d.ts.map +1 -1
  45. package/dist/admin/components/ProductForm.js +16 -7
  46. package/dist/admin/components/ProductForm.js.map +1 -1
  47. package/dist/admin/components/ProductTable.js +4 -4
  48. package/dist/admin/components/ProductTable.js.map +1 -1
  49. package/dist/admin/components/ShippingSettings.js +2 -2
  50. package/dist/admin/components/ShippingSettings.js.map +1 -1
  51. package/dist/admin/components/UsersTable.d.ts.map +1 -1
  52. package/dist/admin/components/UsersTable.js +18 -18
  53. package/dist/admin/components/UsersTable.js.map +1 -1
  54. package/dist/admin/components/emails/EmailThemePanel.d.ts +4 -2
  55. package/dist/admin/components/emails/EmailThemePanel.d.ts.map +1 -1
  56. package/dist/admin/components/emails/EmailThemePanel.js +1 -1
  57. package/dist/admin/components/emails/EmailThemePanel.js.map +1 -1
  58. package/dist/admin/components/index.d.ts +2 -0
  59. package/dist/admin/components/index.d.ts.map +1 -1
  60. package/dist/admin/components/index.js +1 -0
  61. package/dist/admin/components/index.js.map +1 -1
  62. package/dist/admin/components/scroll-lock.d.ts +11 -0
  63. package/dist/admin/components/scroll-lock.d.ts.map +1 -0
  64. package/dist/admin/components/scroll-lock.js +24 -0
  65. package/dist/admin/components/scroll-lock.js.map +1 -0
  66. package/dist/admin/hooks/useDirtyState.d.ts.map +1 -1
  67. package/dist/admin/hooks/useDirtyState.js +7 -0
  68. package/dist/admin/hooks/useDirtyState.js.map +1 -1
  69. package/dist/admin/styles/admin-theme.css +329 -0
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AdminAccountPage.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminAccountPage.tsx"],"names":[],"mappings":"AA8BA,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,SAAc,EACd,QAAyB,EACzB,eAAsB,GACvB,EAAE,qBAAqB,2CAyWvB"}
1
+ {"version":3,"file":"AdminAccountPage.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminAccountPage.tsx"],"names":[],"mappings":"AA8BA,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,SAAc,EACd,QAAyB,EACzB,eAAsB,GACvB,EAAE,qBAAqB,2CAoWvB"}
@@ -16,12 +16,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
16
16
  * Styled with the shared admin-theme classes, matching AdminLoginForm and
17
17
  * the rest of the admin panel.
18
18
  */
19
- import { useState, useEffect, useCallback } from 'react';
19
+ import { useState, useEffect, useCallback, useRef } from 'react';
20
20
  import { User, KeyRound, Mail, CheckCircle2, AlertCircle } from 'lucide-react';
21
21
  import { AdminPageHeader } from './AdminPageHeader';
22
22
  import { useAdminMe } from '../hooks/useAdminMe';
23
- import { adminToast } from './AdminToaster';
24
23
  import { AdminModal } from './AdminModal';
24
+ import { AdminSaveBar } from './AdminSaveBar';
25
25
  // =============================================================================
26
26
  // Component
27
27
  // =============================================================================
@@ -31,10 +31,8 @@ export function AdminAccountPage({ className = '', loginUrl = '/admin/login', re
31
31
  const [name, setName] = useState('');
32
32
  const [email, setEmail] = useState('');
33
33
  const [originalEmail, setOriginalEmail] = useState('');
34
- const [profileSaving, setProfileSaving] = useState(false);
35
- const [profileError, setProfileError] = useState(null);
36
34
  const [showEmailWarning, setShowEmailWarning] = useState(false);
37
- // Seed form fields once `me` loads.
35
+ // Seed form fields once `me` loads (and re-seed after a save refetch).
38
36
  // Pattern C — populate state from async-loaded data.
39
37
  // Alternative is a data-fetching library (TanStack Query / SWR).
40
38
  useEffect(() => {
@@ -46,30 +44,44 @@ export function AdminAccountPage({ className = '', loginUrl = '/admin/login', re
46
44
  }
47
45
  }, [me]);
48
46
  const emailChanged = email.trim().toLowerCase() !== originalEmail.toLowerCase();
47
+ // Dirty is a live compare against `me` (not useDirtyState): the source of
48
+ // truth re-seeds the fields after every save refetch, so snapshot capture
49
+ // timing can never produce phantom dirt here.
49
50
  const profileDirty = me ? (name.trim() !== me.name || emailChanged) : false;
50
- const handleProfileSubmit = useCallback(async (e) => {
51
- e.preventDefault();
52
- setProfileError(null);
53
- // If email changed and user hasn't confirmed, show warning dialog
54
- if (emailChanged && !showEmailWarning) {
55
- setShowEmailWarning(true);
56
- return;
51
+ // Email-change confirm interlock: the bar's onSave awaits the modal's
52
+ // answer through this resolver. Confirm proceeds; Cancel reverts the email
53
+ // field to the current address (declining the change IS discarding that
54
+ // edit) so the bar never has to surface a fake error.
55
+ const emailConfirmResolver = useRef(null);
56
+ const doProfileSave = useCallback(async () => {
57
+ if (!me)
58
+ return { success: false, error: 'Account not loaded' };
59
+ let sendEmail = emailChanged;
60
+ if (emailChanged) {
61
+ const ok = await new Promise((resolve) => {
62
+ emailConfirmResolver.current = resolve;
63
+ setShowEmailWarning(true);
64
+ });
65
+ setShowEmailWarning(false);
66
+ emailConfirmResolver.current = null;
67
+ if (!ok) {
68
+ setEmail(originalEmail);
69
+ sendEmail = false;
70
+ // Only the email had changed — nothing left to save; the fields now
71
+ // match the server again, so a clean "Saved" morph is honest.
72
+ if (name.trim() === me.name)
73
+ return { success: true };
74
+ }
57
75
  }
58
- setProfileSaving(true);
59
76
  const result = await updateProfile({
60
- name: name.trim() !== me?.name ? name.trim() : undefined,
61
- email: emailChanged ? email.trim() : undefined,
77
+ name: name.trim() !== me.name ? name.trim() : undefined,
78
+ email: sendEmail ? email.trim() : undefined,
62
79
  });
63
- setProfileSaving(false);
64
- setShowEmailWarning(false);
65
80
  if (!result.success) {
66
- setProfileError(result.error || 'Failed to update profile.');
67
- return;
81
+ return { success: false, error: result.error || 'Failed to update profile.' };
68
82
  }
69
- // Profile saved is an EVENT → the toaster (the old inline banner with
70
- // a 3s timer was a pseudo-toast — the wrong channel, convention #7).
71
- adminToast.success('Profile updated');
72
- }, [emailChanged, showEmailWarning, me, name, email, updateProfile]);
83
+ return { success: true };
84
+ }, [me, emailChanged, name, email, originalEmail, updateProfile]);
73
85
  // --- Password form state -----------------------------------------------
74
86
  const [currentPassword, setCurrentPassword] = useState('');
75
87
  const [newPassword, setNewPassword] = useState('');
@@ -116,9 +128,14 @@ export function AdminAccountPage({ className = '', loginUrl = '/admin/login', re
116
128
  if (error || !me) {
117
129
  return (_jsx("div", { className: `space-y-4 ${className}`, children: _jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: error || 'Unable to load your account.' }) }) }));
118
130
  }
119
- return (_jsxs("div", { className: `space-y-6 ${className}`, children: [_jsx(AdminPageHeader, { title: "My account", subtitle: "Manage your profile and password." }), _jsxs("div", { className: "admin-card p-6", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(User, { className: "h-5 w-5 admin-icon-primary" }), _jsx("h2", { className: "text-lg font-semibold", children: "Profile" })] }), _jsxs("form", { onSubmit: handleProfileSubmit, className: "space-y-4", children: [profileError && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: profileError }) })), _jsxs("div", { children: [_jsx("label", { htmlFor: "account-name", className: "admin-label", children: "Name" }), _jsx("input", { id: "account-name", type: "text", value: name, onChange: (e) => setName(e.target.value), required: true, minLength: 2, disabled: profileSaving, className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "account-email", className: "admin-label", children: "Email" }), _jsxs("div", { className: "admin-input-with-icon", children: [_jsx(Mail, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { id: "account-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, disabled: profileSaving, className: "admin-input w-full" })] }), _jsx("p", { className: "text-xs admin-text-muted mt-1", children: "Used for sign-in and forgot-password emails." })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Role" }), _jsxs("div", { className: "text-sm admin-text-muted", children: [me.role, " (managed by the store owner)"] })] }), _jsx("div", { className: "flex items-center justify-end pt-2", children: _jsx("button", { type: "submit", disabled: !profileDirty || profileSaving, className: "admin-btn admin-btn-primary", children: profileSaving ? (_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "admin-spinner admin-spinner-sm" }), "Saving..."] })) : ('Save profile') }) })] }), _jsx(AdminModal, { open: showEmailWarning, onClose: () => setShowEmailWarning(false), busy: profileSaving, title: "Change email?", description: `Your sign-in email will change from ${originalEmail} to ${email}. Future forgot-password emails will go to the new address. Make sure you can receive email there.`, icon: _jsx(AlertCircle, { className: "h-5 w-5" }), iconTone: "warning", footer: _jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => setShowEmailWarning(false), disabled: profileSaving, className: "admin-btn admin-btn-secondary", children: "Cancel" }), _jsx("button", { type: "button", onClick: (e) => handleProfileSubmit(e), disabled: profileSaving, className: "admin-btn admin-btn-primary", children: profileSaving ? 'Saving…' : 'Yes, change email' })] }) })] }), _jsxs("div", { className: "admin-card p-6", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(KeyRound, { className: "h-5 w-5 admin-icon-primary" }), _jsx("h2", { className: "text-lg font-semibold", children: "Password" })] }), passwordSuccess ? (_jsxs("div", { className: "text-center py-6", children: [_jsx("div", { className: "admin-icon-container-sm mx-auto mb-4", children: _jsx(CheckCircle2, { className: "h-6 w-6 admin-icon-primary" }) }), _jsx("h3", { className: "admin-heading-2 mb-2", children: "Password changed" }), _jsx("p", { className: "text-sm admin-text-muted", children: "For your security, all sessions have been signed out. Redirecting to sign in..." })] })) : (_jsxs("form", { onSubmit: handlePasswordSubmit, className: "space-y-4", children: [passwordError && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: passwordError }) })), _jsxs("div", { children: [_jsx("label", { htmlFor: "current-password", className: "admin-label admin-label-required", children: "Current password" }), _jsx("input", { id: "current-password", type: "password", value: currentPassword, onChange: (e) => setCurrentPassword(e.target.value), required: true, autoComplete: "current-password", disabled: passwordSaving, className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "new-password", className: "admin-label admin-label-required", children: "New password" }), _jsx("input", { id: "new-password", type: "password", value: newPassword, onChange: (e) => setNewPassword(e.target.value), required: true, minLength: 8, autoComplete: "new-password", disabled: passwordSaving, className: "admin-input w-full", placeholder: "At least 8 characters" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "confirm-new-password", className: "admin-label admin-label-required", children: "Confirm new password" }), _jsx("input", { id: "confirm-new-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, minLength: 8, autoComplete: "new-password", disabled: passwordSaving, className: "admin-input w-full" })] }), _jsx("p", { className: "text-xs admin-text-muted", children: "After changing your password, you'll be signed out and need to sign back in." }), _jsx("div", { className: "flex items-center justify-end pt-2", children: _jsx("button", { type: "submit", disabled: passwordSaving ||
131
+ return (_jsxs("div", { className: `space-y-6 ${className}`, children: [_jsx(AdminPageHeader, { title: "My account", subtitle: "Manage your profile and password." }), _jsxs("div", { className: "admin-card p-6", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(User, { className: "h-5 w-5 admin-icon-primary" }), _jsx("h2", { className: "text-lg font-semibold", children: "Profile" })] }), _jsxs("form", { onSubmit: (e) => e.preventDefault(), className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "account-name", className: "admin-label", children: "Name" }), _jsx("input", { id: "account-name", type: "text", value: name, onChange: (e) => setName(e.target.value), required: true, minLength: 2, className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "account-email", className: "admin-label", children: "Email" }), _jsxs("div", { className: "admin-input-with-icon", children: [_jsx(Mail, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { id: "account-email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, className: "admin-input w-full" })] }), _jsx("p", { className: "text-xs admin-text-muted mt-1", children: "Used for sign-in and forgot-password emails." })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Role" }), _jsxs("div", { className: "text-sm admin-text-muted", children: [me.role, " (managed by the store owner)"] })] })] }), _jsx(AdminModal, { open: showEmailWarning, onClose: () => emailConfirmResolver.current?.(false), title: "Change email?", description: `Your sign-in email will change from ${originalEmail} to ${email}. Future forgot-password emails will go to the new address. Make sure you can receive email there.`, icon: _jsx(AlertCircle, { className: "h-5 w-5" }), iconTone: "warning", footer: _jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => emailConfirmResolver.current?.(false), className: "admin-btn admin-btn-secondary", children: "Keep current email" }), _jsx("button", { type: "button", onClick: () => emailConfirmResolver.current?.(true), className: "admin-btn admin-btn-primary", children: "Yes, change email" })] }) })] }), _jsxs("div", { className: "admin-card p-6", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(KeyRound, { className: "h-5 w-5 admin-icon-primary" }), _jsx("h2", { className: "text-lg font-semibold", children: "Password" })] }), passwordSuccess ? (_jsxs("div", { className: "text-center py-6", children: [_jsx("div", { className: "admin-icon-container-sm mx-auto mb-4", children: _jsx(CheckCircle2, { className: "h-6 w-6 admin-icon-primary" }) }), _jsx("h3", { className: "admin-heading-2 mb-2", children: "Password changed" }), _jsx("p", { className: "text-sm admin-text-muted", children: "For your security, all sessions have been signed out. Redirecting to sign in..." })] })) : (_jsxs("form", { onSubmit: handlePasswordSubmit, className: "space-y-4", children: [passwordError && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: passwordError }) })), _jsxs("div", { children: [_jsx("label", { htmlFor: "current-password", className: "admin-label admin-label-required", children: "Current password" }), _jsx("input", { id: "current-password", type: "password", value: currentPassword, onChange: (e) => setCurrentPassword(e.target.value), required: true, autoComplete: "current-password", disabled: passwordSaving, className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "new-password", className: "admin-label admin-label-required", children: "New password" }), _jsx("input", { id: "new-password", type: "password", value: newPassword, onChange: (e) => setNewPassword(e.target.value), required: true, minLength: 8, autoComplete: "new-password", disabled: passwordSaving, className: "admin-input w-full", placeholder: "At least 8 characters" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "confirm-new-password", className: "admin-label admin-label-required", children: "Confirm new password" }), _jsx("input", { id: "confirm-new-password", type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true, minLength: 8, autoComplete: "new-password", disabled: passwordSaving, className: "admin-input w-full" })] }), _jsx("p", { className: "text-xs admin-text-muted", children: "After changing your password, you'll be signed out and need to sign back in." }), _jsx("div", { className: "flex items-center justify-end pt-2", children: _jsx("button", { type: "submit", disabled: passwordSaving ||
120
132
  !currentPassword ||
121
133
  !newPassword ||
122
- !confirmPassword, className: "admin-btn admin-btn-primary", children: passwordSaving ? (_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "admin-spinner admin-spinner-sm" }), "Updating..."] })) : ('Change password') }) })] }))] })] }));
134
+ !confirmPassword, className: "admin-btn admin-btn-primary", children: passwordSaving ? (_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "admin-spinner admin-spinner-sm" }), "Updating..."] })) : ('Change password') }) })] }))] }), _jsx(AdminSaveBar, { isDirty: profileDirty, onSave: doProfileSave, onDiscard: () => {
135
+ if (me) {
136
+ setName(me.name);
137
+ setEmail(me.email);
138
+ }
139
+ } })] }));
123
140
  }
124
141
  //# sourceMappingURL=AdminAccountPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminAccountPage.js","sourceRoot":"","sources":["../../../src/admin/components/AdminAccountPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdminAccountPage.js","sourceRoot":"","sources":["../../../src/admin/components/AdminAccountPage.tsx"],"names":[],"mappings":"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"}
@@ -3,11 +3,18 @@
3
3
  *
4
4
  * Admin dashboard layout with sidebar navigation.
5
5
  * Applies the Rovela admin theme for consistent branding.
6
- * User menu is rendered in the sidebar footer via AdminNav.
6
+ * User menu is rendered in the top bar via AdminTopBar.
7
+ *
8
+ * Mobile (<768px): the sidebar becomes an overlay DRAWER — opened by the
9
+ * top-bar hamburger, closed by the scrim, the X, Escape, navigating, or
10
+ * resizing past the breakpoint. The layout owns the open state (no context
11
+ * needed — TopBar and Nav are its direct children) and locks body scroll
12
+ * through the shared counter while the drawer is open, mirroring the
13
+ * platform sidebar's drawer behavior with pure CSS animation.
7
14
  */
15
+ import { type ReactNode } from 'react';
8
16
  import { type NavItem } from './AdminNav';
9
17
  import type { AdminLayoutProps } from '../types';
10
- import type { ReactNode } from 'react';
11
18
  import '../styles/admin-theme.css';
12
19
  interface ExtendedAdminLayoutProps extends AdminLayoutProps {
13
20
  /** Store name for sidebar */
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQtC,OAAO,2BAA2B,CAAA;AAMlC,UAAU,wBAAyB,SAAQ,gBAAgB;IACzD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,SAAmB,EACnB,QAAc,EACd,QAAQ,EACR,IAAI,EACJ,SAAc,GACf,EAAE,wBAAwB,2CA+B1B"}
1
+ {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAQhD,OAAO,2BAA2B,CAAA;AAMlC,UAAU,wBAAyB,SAAQ,gBAAgB;IACzD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAUD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,SAAmB,EACnB,QAAc,EACd,QAAQ,EACR,IAAI,EACJ,SAAc,GACf,EAAE,wBAAwB,2CA6E1B"}
@@ -5,17 +5,29 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  *
6
6
  * Admin dashboard layout with sidebar navigation.
7
7
  * Applies the Rovela admin theme for consistent branding.
8
- * User menu is rendered in the sidebar footer via AdminNav.
8
+ * User menu is rendered in the top bar via AdminTopBar.
9
+ *
10
+ * Mobile (<768px): the sidebar becomes an overlay DRAWER — opened by the
11
+ * top-bar hamburger, closed by the scrim, the X, Escape, navigating, or
12
+ * resizing past the breakpoint. The layout owns the open state (no context
13
+ * needed — TopBar and Nav are its direct children) and locks body scroll
14
+ * through the shared counter while the drawer is open, mirroring the
15
+ * platform sidebar's drawer behavior with pure CSS animation.
9
16
  */
17
+ import { useEffect, useState } from 'react';
10
18
  import { AdminNav } from './AdminNav';
11
19
  import { AdminTopBar } from './AdminTopBar';
12
20
  import { AdminToaster } from './AdminToaster';
21
+ import { lockBodyScroll, unlockBodyScroll } from './scroll-lock';
13
22
  // `ExampleContentBanner` (R107) was retired in favor of the SetupGuide,
14
23
  // which subsumes the "review your example content" nudge into its
15
24
  // "Add or edit your first product" task. The banner component is still
16
25
  // exported for any custom store that imported it directly.
17
26
  // Import Rovela admin theme CSS
18
27
  import '../styles/admin-theme.css';
28
+ // The shell pivot — keep in lockstep with the `@media (max-width: 767px)`
29
+ // mobile rules in admin-theme.css.
30
+ const MOBILE_BREAKPOINT = 768;
19
31
  // =============================================================================
20
32
  // Component
21
33
  // =============================================================================
@@ -36,6 +48,32 @@ import '../styles/admin-theme.css';
36
48
  * ```
37
49
  */
38
50
  export function AdminLayout({ children, activeNav, storeName = 'Admin', storeUrl = '/', navItems, logo, className = '', }) {
39
- return (_jsxs("div", { className: `rovela-admin-theme ${className}`, children: [_jsxs("div", { className: "admin-shell", children: [_jsx(AdminTopBar, { storeName: storeName, logo: logo, storeUrl: storeUrl }), _jsxs("div", { className: "admin-shell-body", children: [_jsx(AdminNav, { activeNav: activeNav, items: navItems }), _jsx("div", { className: "admin-layout-main", children: _jsx("main", { className: "admin-layout-content", children: children }) })] })] }), _jsx(AdminToaster, {})] }));
51
+ // Mobile drawer state. Desktop sidebar is always visible (CSS ignores this).
52
+ const [mobileNavOpen, setMobileNavOpen] = useState(false);
53
+ // While the drawer is open: Escape closes it, body scroll locks (shared
54
+ // counter — safe under a modal opened from the drawer), and growing the
55
+ // viewport past the breakpoint resets it so stale state can't reappear
56
+ // on the next shrink.
57
+ useEffect(() => {
58
+ if (!mobileNavOpen)
59
+ return;
60
+ const onKeyDown = (e) => {
61
+ if (e.key === 'Escape')
62
+ setMobileNavOpen(false);
63
+ };
64
+ const onResize = () => {
65
+ if (window.innerWidth >= MOBILE_BREAKPOINT)
66
+ setMobileNavOpen(false);
67
+ };
68
+ document.addEventListener('keydown', onKeyDown);
69
+ window.addEventListener('resize', onResize);
70
+ lockBodyScroll();
71
+ return () => {
72
+ document.removeEventListener('keydown', onKeyDown);
73
+ window.removeEventListener('resize', onResize);
74
+ unlockBodyScroll();
75
+ };
76
+ }, [mobileNavOpen]);
77
+ return (_jsxs("div", { className: `rovela-admin-theme ${className}`, children: [_jsxs("div", { className: "admin-shell", children: [_jsx(AdminTopBar, { storeName: storeName, logo: logo, storeUrl: storeUrl, onMenuClick: () => setMobileNavOpen(true) }), _jsxs("div", { className: "admin-shell-body", children: [_jsx("div", { className: "admin-nav-backdrop", "data-open": mobileNavOpen ? 'true' : 'false', onClick: () => setMobileNavOpen(false), "aria-hidden": "true" }), _jsx(AdminNav, { activeNav: activeNav, items: navItems, mobileOpen: mobileNavOpen, onMobileClose: () => setMobileNavOpen(false) }), _jsx("div", { className: "admin-layout-main", children: _jsx("main", { className: "admin-layout-content", children: children }) })] })] }), _jsx(AdminToaster, {})] }));
40
78
  }
41
79
  //# sourceMappingURL=AdminLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.js","sourceRoot":"","sources":["../../../src/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C,wEAAwE;AACxE,kEAAkE;AAClE,uEAAuE;AACvE,2DAA2D;AAE3D,gCAAgC;AAChC,OAAO,2BAA2B,CAAA;AAiBlC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,GAAG,EACd,QAAQ,EACR,IAAI,EACJ,SAAS,GAAG,EAAE,GACW;IACzB,OAAO,CACL,eAAK,SAAS,EAAE,sBAAsB,SAAS,EAAE,aAI/C,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAC,WAAW,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAErE,eAAK,SAAS,EAAC,kBAAkB,aAE/B,KAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAI,EAGnD,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAM,SAAS,EAAC,sBAAsB,YAKnC,QAAQ,GACJ,GACH,IACF,IACF,EAIN,KAAC,YAAY,KAAG,IACZ,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"AdminLayout.js","sourceRoot":"","sources":["../../../src/admin/components/AdminLayout.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@
9
9
  * - the one blurred backdrop (`admin-modal-backdrop`)
10
10
  * - Escape closes, click-outside closes — both inert while `busy`
11
11
  * (an in-flight submit must never be dismissed out from under itself)
12
- * - body scroll lock (counter-based, safe for stacked modals)
12
+ * - body scroll lock (the shared counter in ./scroll-lock safe when
13
+ * stacked with the mobile nav drawer or another modal)
13
14
  * - focus moves into the card on open, Tab wraps inside it, and focus
14
15
  * returns to the opener on close
15
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AdminModal.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminModal.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQnE,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,2EAA2E;IAC3E,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAkCD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAkB,EAClB,KAAY,EACZ,IAAY,EACZ,SAAiB,EACjB,MAAM,EACN,SAAc,EACd,QAAQ,GACT,EAAE,eAAe,sCA0HjB"}
1
+ {"version":3,"file":"AdminModal.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminModal.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AASnE,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,2EAA2E;IAC3E,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAYD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAkB,EAClB,KAAY,EACZ,IAAY,EACZ,SAAiB,EACjB,MAAM,EACN,SAAc,EACd,QAAQ,GACT,EAAE,eAAe,sCA0HjB"}
@@ -11,7 +11,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  * - the one blurred backdrop (`admin-modal-backdrop`)
12
12
  * - Escape closes, click-outside closes — both inert while `busy`
13
13
  * (an in-flight submit must never be dismissed out from under itself)
14
- * - body scroll lock (counter-based, safe for stacked modals)
14
+ * - body scroll lock (the shared counter in ./scroll-lock safe when
15
+ * stacked with the mobile nav drawer or another modal)
15
16
  * - focus moves into the card on open, Tab wraps inside it, and focus
16
17
  * returns to the opener on close
17
18
  *
@@ -26,24 +27,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
27
  import { useEffect, useRef, useState } from 'react';
27
28
  import { createPortal } from 'react-dom';
28
29
  import { X } from 'lucide-react';
29
- // =============================================================================
30
- // Body scroll lock — counter-based so stacked modals can't unlock early
31
- // =============================================================================
32
- let scrollLockCount = 0;
33
- let previousOverflow = '';
34
- function lockBodyScroll() {
35
- if (scrollLockCount === 0) {
36
- previousOverflow = document.body.style.overflow;
37
- document.body.style.overflow = 'hidden';
38
- }
39
- scrollLockCount++;
40
- }
41
- function unlockBodyScroll() {
42
- scrollLockCount = Math.max(0, scrollLockCount - 1);
43
- if (scrollLockCount === 0) {
44
- document.body.style.overflow = previousOverflow;
45
- }
46
- }
30
+ import { lockBodyScroll, unlockBodyScroll } from './scroll-lock';
47
31
  // =============================================================================
48
32
  // Component
49
33
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"AdminModal.js","sourceRoot":"","sources":["../../../src/admin/components/AdminModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdminModal.js","sourceRoot":"","sources":["../../../src/admin/components/AdminModal.tsx"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ export interface AdminNavProps {
37
37
  logo?: ReactNode;
38
38
  /** @deprecated The View-store link moved to AdminTopBar — accepted for back-compat, unused. */
39
39
  storeUrl?: string;
40
+ /** Mobile drawer open state (<768px the sidebar becomes an overlay drawer). */
41
+ mobileOpen?: boolean;
42
+ /** Close the mobile drawer (X button, link navigation). */
43
+ onMobileClose?: () => void;
40
44
  /** Custom className */
41
45
  className?: string;
42
46
  }
@@ -48,5 +52,5 @@ export interface AdminNavProps {
48
52
  * <AdminNav activeNav="dashboard" />
49
53
  * ```
50
54
  */
51
- export declare function AdminNav({ activeNav, items, className, }: AdminNavProps): import("react/jsx-runtime").JSX.Element;
55
+ export declare function AdminNav({ activeNav, items, mobileOpen, onMobileClose, className, }: AdminNavProps): import("react/jsx-runtime").JSX.Element;
52
56
  //# sourceMappingURL=AdminNav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminNav.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminNav.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAc,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAU1E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAsJD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,KAAK,EACL,SAAc,GACf,EAAE,aAAa,2CA6Hf"}
1
+ {"version":3,"file":"AdminNav.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminNav.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAc,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAY1E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAyJD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,KAAK,EACL,UAAkB,EAClB,aAAa,EACb,SAAc,GACf,EAAE,aAAa,2CAwJf"}
@@ -20,7 +20,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  import React, { useEffect, useRef, useState } from 'react';
21
21
  import Link from 'next/link';
22
22
  import { usePathname } from 'next/navigation';
23
- import { LayoutDashboard, Package, FolderOpen, ClipboardList, Users, UserCog, Settings, Truck, CreditCard, Tag, Receipt, BarChart3, MapPin, Mail, Image as ImageGlyph } from 'lucide-react';
23
+ import { LayoutDashboard, Package, FolderOpen, ClipboardList, Users, UserCog, Settings, Truck, CreditCard, Tag, Receipt, BarChart3, MapPin, Mail, X, Image as ImageGlyph } from 'lucide-react';
24
+ import { useStoreSettingsOptional } from '../../core';
25
+ import { AdminBrandTile } from './AdminBrandTile';
24
26
  import { useAdminAuth } from '../hooks/useAdminAuth';
25
27
  // =============================================================================
26
28
  // Default Navigation Groups
@@ -117,9 +119,9 @@ const iconMap = {
117
119
  // =============================================================================
118
120
  // Nav Item Component
119
121
  // =============================================================================
120
- function NavItemButton({ item, isActive, }) {
122
+ function NavItemButton({ item, isActive, onNavigate, }) {
121
123
  const Icon = item.icon || iconMap[item.id];
122
- return (_jsxs(Link, { href: item.href, className: `admin-sidebar-item ${isActive ? 'active' : ''}`, children: [_jsx("span", { className: "admin-sidebar-item-icon", children: Icon && (React.isValidElement(Icon)
124
+ return (_jsxs(Link, { href: item.href, onClick: onNavigate, className: `admin-sidebar-item ${isActive ? 'active' : ''}`, children: [_jsx("span", { className: "admin-sidebar-item-icon", children: Icon && (React.isValidElement(Icon)
123
125
  ? Icon
124
126
  : React.createElement(Icon, { className: 'admin-sidebar-item-svg' })) }), _jsx("span", { className: "admin-sidebar-item-label", children: item.label })] }));
125
127
  }
@@ -134,7 +136,10 @@ function NavItemButton({ item, isActive, }) {
134
136
  * <AdminNav activeNav="dashboard" />
135
137
  * ```
136
138
  */
137
- export function AdminNav({ activeNav, items, className = '', }) {
139
+ export function AdminNav({ activeNav, items, mobileOpen = false, onMobileClose, className = '', }) {
140
+ // Drawer-head identity (mobile only — desktop identity lives in AdminTopBar)
141
+ const storeSettings = useStoreSettingsOptional();
142
+ const drawerStoreName = storeSettings?.storeName || 'Admin';
138
143
  // Get the current admin's role for nav filtering. Safe to call even when
139
144
  // AdminNav is mounted outside a SessionProvider — useAdminAuth defends
140
145
  // against that and returns `{ admin: null }`.
@@ -208,6 +213,6 @@ export function AdminNav({ activeNav, items, className = '', }) {
208
213
  window.removeEventListener('resize', sync);
209
214
  };
210
215
  }, [items, admin?.role]);
211
- return (_jsxs("nav", { className: `admin-sidebar admin-sidebar-slim ${className}`, children: [_jsxs("div", { className: "admin-sidebar-scrollwrap", children: [_jsx("div", { className: "admin-sidebar-nav", ref: navScrollRef, children: _jsx("div", { className: "admin-sidebar-groups", children: navGroups.map((group, groupIndex) => (_jsxs("div", { className: "admin-sidebar-section", children: [group.label && (_jsx("p", { className: "admin-sidebar-section-title", children: group.label })), _jsx("ul", { className: "admin-sidebar-items", children: group.items.map((item) => (_jsx("li", { children: _jsx(NavItemButton, { item: item, isActive: resolvedActiveNav === item.id }) }, item.id))) })] }, group.label || `group-${groupIndex}`))) }) }), _jsx("span", { className: `admin-sidebar-fade admin-sidebar-fade-up ${fade.up ? 'show' : ''}`, "aria-hidden": "true" }), _jsx("span", { className: `admin-sidebar-fade admin-sidebar-fade-down ${fade.down ? 'show' : ''}`, "aria-hidden": "true" })] }), _jsx("div", { className: "admin-sidebar-footer", children: _jsxs("div", { className: "admin-sidebar-footer-content", children: [_jsx(NavItemButton, { item: settingsItem, isActive: resolvedActiveNav === 'settings' }), _jsxs("a", { href: "https://rovela.ai", target: "_blank", rel: "noopener noreferrer", className: "admin-sidebar-powered-by", children: [_jsx("span", { children: "Powered by" }), _jsx(RovelaLogo, { className: "admin-rovela-logo" }), _jsx("span", { className: "admin-powered-by-name", children: "Rovela" })] })] }) })] }));
216
+ return (_jsxs("nav", { className: `admin-sidebar admin-sidebar-slim ${className}`, "data-mobile-open": mobileOpen ? 'true' : 'false', children: [_jsxs("div", { className: "admin-nav-drawer-head", children: [_jsx(AdminBrandTile, { storeName: drawerStoreName }), _jsxs("div", { className: "admin-nav-drawer-name", children: [_jsx("b", { children: drawerStoreName }), _jsx("span", { className: "admin-topbar-tag", children: "Admin" })] }), _jsx("button", { type: "button", onClick: onMobileClose, "aria-label": "Close menu", className: "admin-nav-drawer-x", children: _jsx(X, { className: "h-4 w-4" }) })] }), _jsxs("div", { className: "admin-sidebar-scrollwrap", children: [_jsx("div", { className: "admin-sidebar-nav", ref: navScrollRef, children: _jsx("div", { className: "admin-sidebar-groups", children: navGroups.map((group, groupIndex) => (_jsxs("div", { className: "admin-sidebar-section", children: [group.label && (_jsx("p", { className: "admin-sidebar-section-title", children: group.label })), _jsx("ul", { className: "admin-sidebar-items", children: group.items.map((item) => (_jsx("li", { children: _jsx(NavItemButton, { item: item, isActive: resolvedActiveNav === item.id, onNavigate: onMobileClose }) }, item.id))) })] }, group.label || `group-${groupIndex}`))) }) }), _jsx("span", { className: `admin-sidebar-fade admin-sidebar-fade-up ${fade.up ? 'show' : ''}`, "aria-hidden": "true" }), _jsx("span", { className: `admin-sidebar-fade admin-sidebar-fade-down ${fade.down ? 'show' : ''}`, "aria-hidden": "true" })] }), _jsx("div", { className: "admin-sidebar-footer", children: _jsxs("div", { className: "admin-sidebar-footer-content", children: [_jsx(NavItemButton, { item: settingsItem, isActive: resolvedActiveNav === 'settings', onNavigate: onMobileClose }), _jsxs("a", { href: "https://rovela.ai", target: "_blank", rel: "noopener noreferrer", className: "admin-sidebar-powered-by", children: [_jsx("span", { children: "Powered by" }), _jsx(RovelaLogo, { className: "admin-rovela-logo" }), _jsx("span", { className: "admin-powered-by-name", children: "Rovela" })] })] }) })] }));
212
217
  }
213
218
  //# sourceMappingURL=AdminNav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminNav.js","sourceRoot":"","sources":["../../../src/admin/components/AdminNav.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3L,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAiCpD,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,yCAAyC;AACzC,MAAM,gBAAgB,GAAe;IACnC;QACE,KAAK,EAAE,EAAE;QACT,KAAK,EAAE;YACL,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE;YACxD,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9D,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClE;KACF;IACD;QACE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE;YACL,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACpE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACjE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACjE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;YACrD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE;YACxD,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;SAClE;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE;YACL,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9D,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;YAC/C,qEAAqE;YACrE,4DAA4D;YAC5D,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;SACrD;KACF;CACF,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,qBAAqB,CAC5B,MAAkB,EAClB,IAA+B;IAE/B,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAChE,IAAI,CAAC,YAAY;QAAE,OAAO,MAAM,CAAA;IAEhC,MAAM,cAAc,GAClB,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,OAAO,CAAA;IAElE,IAAI,cAAc;QAAE,OAAO,MAAM,CAAA;IAEjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC;KACzD,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,YAAY,GAAY,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;AAE5F,sEAAsE;AACtE,SAAS,UAAU,CAAC,EAAE,SAAS,GAAG,mBAAmB,EAAE,OAAO,GAAG,OAAO,EAAuD;IAC7H,OAAO;IACL,qDAAqD;IACrD,cACE,GAAG,EAAC,4BAA4B,EAChC,GAAG,EAAC,QAAQ,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,SAAS,GAC9E,CACH,CAAA;AACH,CAAC;AAED,MAAM,OAAO,GAAqD;IAChE,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,OAAO;IACZ,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,QAAQ;CACnB,CAAA;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,SAAS,aAAa,CAAC,EACrB,IAAI,EACJ,QAAQ,GAIT;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE1C,OAAO,CACL,MAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,sBAAsB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,aAG3D,eAAM,SAAS,EAAC,yBAAyB,YACtC,IAAI,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;oBACxB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAmD,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,CACtH,GACI,EAGP,eAAM,SAAS,EAAC,0BAA0B,YACvC,IAAI,CAAC,KAAK,GACN,IACF,CACR,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,SAAS,EACT,KAAK,EACL,SAAS,GAAG,EAAE,GACA;IACd,yEAAyE;IACzE,uEAAuE;IACvE,8CAA8C;IAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAA;IAEhC,oEAAoE;IACpE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QAC/B,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,WAAW,CAAA;QACvE,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,OAAO,CAAA;QACvD,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,UAAU,CAAA;QAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,YAAY,CAAA;QACjE,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,QAAQ,CAAA;QACzD,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,WAAW,CAAA;QAC/D,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,UAAU,CAAA;QAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,WAAW,CAAA;QAC/D,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,UAAU,CAAA;QAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAA;QACnD,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,WAAW,CAAA;QAC/D,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,WAAW,CAAA;QAC/D,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,UAAU,CAAA;QAC7D,yFAAyF;QACzF,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IAEJ,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,UAAU,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,CAAA;IAE/E,wFAAwF;IACxF,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,UAAU,CAAA;IAEd,wEAAwE;IACxE,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,gBAAgB;IAChB,MAAM,YAAY,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,OAAO,CAAC;YACN,EAAE,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC;YACpB,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,CAAC;SAC3D,CAAC,CAAA;QACJ,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACvC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,GAAG,EAAE;YACV,oBAAoB,CAAC,GAAG,CAAC,CAAA;YACzB,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAExB,OAAO,CACL,eAAK,SAAS,EAAE,oCAAoC,SAAS,EAAE,aAE7D,eAAK,SAAS,EAAC,0BAA0B,aACvC,cAAK,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAE,YAAY,YAClD,cAAK,SAAS,EAAC,sBAAsB,YAClC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CACpC,eAAgD,SAAS,EAAC,uBAAuB,aAE9E,KAAK,CAAC,KAAK,IAAI,CACd,YAAG,SAAS,EAAC,6BAA6B,YACvC,KAAK,CAAC,KAAK,GACV,CACL,EACD,aAAI,SAAS,EAAC,qBAAqB,YAChC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,uBACE,KAAC,aAAa,IACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC,EAAE,GACvC,IAJK,IAAI,CAAC,EAAE,CAKX,CACN,CAAC,GACC,KAhBG,KAAK,CAAC,KAAK,IAAI,SAAS,UAAU,EAAE,CAiBxC,CACP,CAAC,GACE,GACF,EACN,eACE,SAAS,EAAE,4CAA4C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iBAClE,MAAM,GAClB,EACF,eACE,SAAS,EAAE,8CAA8C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iBACtE,MAAM,GAClB,IACE,EAGN,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,aAAa,IACZ,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,iBAAiB,KAAK,UAAU,GAC1C,EAEF,aACE,IAAI,EAAC,mBAAmB,EACxB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,0BAA0B,aAEpC,wCAAuB,EACvB,KAAC,UAAU,IAAC,SAAS,EAAC,mBAAmB,GAAG,EAC5C,eAAM,SAAS,EAAC,uBAAuB,uBAAc,IACnD,IACA,GACF,IACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"AdminNav.js","sourceRoot":"","sources":["../../../src/admin/components/AdminNav.tsx"],"names":[],"mappings":"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"}
@@ -6,8 +6,10 @@ export interface AdminTopBarProps {
6
6
  logo?: ReactNode;
7
7
  /** Storefront URL for the View-store link. */
8
8
  storeUrl?: string;
9
+ /** Opens the mobile nav drawer (renders the hamburger, <768px only). */
10
+ onMenuClick?: () => void;
9
11
  /** Custom className */
10
12
  className?: string;
11
13
  }
12
- export declare function AdminTopBar({ storeName: storeNameProp, logo, storeUrl, className, }: AdminTopBarProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function AdminTopBar({ storeName: storeNameProp, logo, storeUrl, onMenuClick, className, }: AdminTopBarProps): import("react/jsx-runtime").JSX.Element;
13
15
  //# sourceMappingURL=AdminTopBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTopBar.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminTopBar.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAStC,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EAAE,aAAuB,EAClC,IAAI,EACJ,QAAc,EACd,SAAc,GACf,EAAE,gBAAgB,2CAiElB"}
1
+ {"version":3,"file":"AdminTopBar.d.ts","sourceRoot":"","sources":["../../../src/admin/components/AdminTopBar.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAStC,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EAAE,aAAuB,EAClC,IAAI,EACJ,QAAc,EACd,WAAW,EACX,SAAc,GACf,EAAE,gBAAgB,2CA+ElB"}
@@ -16,14 +16,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  * renders a skeleton (a wrong value that corrects itself reads as a glitch).
17
17
  */
18
18
  import Link from 'next/link';
19
- import { ExternalLink, Pencil } from 'lucide-react';
19
+ import { ExternalLink, Menu, Pencil } from 'lucide-react';
20
20
  import { useStoreSettingsOptional } from '../../core';
21
21
  import { AdminBrandTile } from './AdminBrandTile';
22
22
  import { AdminUserMenu } from './AdminUserMenu';
23
23
  // =============================================================================
24
24
  // Component
25
25
  // =============================================================================
26
- export function AdminTopBar({ storeName: storeNameProp = 'Admin', logo, storeUrl = '/', className = '', }) {
26
+ export function AdminTopBar({ storeName: storeNameProp = 'Admin', logo, storeUrl = '/', onMenuClick, className = '', }) {
27
27
  // Store name + logo resolve from context (optional — works outside the
28
28
  // provider too). Same precedence AdminNav used before the revamp:
29
29
  // prop > context > default.
@@ -44,6 +44,6 @@ export function AdminTopBar({ storeName: storeNameProp = 'Admin', logo, storeUrl
44
44
  const editStoreUrl = rovelaProjectId
45
45
  ? `${rovelaBase.replace(/\/$/, '')}/generate/${rovelaProjectId}`
46
46
  : null;
47
- return (_jsxs("header", { className: `admin-topbar ${className}`.trim(), children: [_jsxs(Link, { href: "/admin", className: "admin-topbar-brand", children: [logo || _jsx(AdminBrandTile, { storeName: storeName }), settingsLoading ? (_jsx("span", { className: "admin-skeleton admin-topbar-name-skeleton" })) : (_jsx("span", { className: "admin-topbar-store", children: storeName })), _jsx("span", { className: "admin-topbar-tag", children: "Admin" })] }), _jsxs("div", { className: "admin-topbar-actions", children: [_jsxs("a", { href: storeUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-topbar-btn", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), "View store"] }), editStoreUrl && (_jsxs("a", { href: editStoreUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-topbar-btn", children: [_jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), "Edit store"] })), _jsx("span", { className: "admin-topbar-divider", "aria-hidden": "true" }), _jsx(AdminUserMenu, { compact: true })] })] }));
47
+ return (_jsxs("header", { className: `admin-topbar ${className}`.trim(), children: [onMenuClick && (_jsx("button", { type: "button", onClick: onMenuClick, "aria-label": "Open menu", className: "admin-topbar-burger", children: _jsx(Menu, { className: "h-[18px] w-[18px]" }) })), _jsxs(Link, { href: "/admin", className: "admin-topbar-brand", children: [logo || _jsx(AdminBrandTile, { storeName: storeName }), settingsLoading ? (_jsx("span", { className: "admin-skeleton admin-topbar-name-skeleton" })) : (_jsx("span", { className: "admin-topbar-store", children: storeName })), _jsx("span", { className: "admin-topbar-tag", children: "Admin" })] }), _jsxs("div", { className: "admin-topbar-actions", children: [_jsxs("a", { href: storeUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-topbar-btn", "aria-label": "View store", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), _jsx("span", { className: "admin-topbar-btn-label", children: "View store" })] }), editStoreUrl && (_jsxs("a", { href: editStoreUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-topbar-btn", "aria-label": "Edit store", children: [_jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), _jsx("span", { className: "admin-topbar-btn-label", children: "Edit store" })] })), _jsx("span", { className: "admin-topbar-divider", "aria-hidden": "true" }), _jsx(AdminUserMenu, { compact: true })] })] }));
48
48
  }
49
49
  //# sourceMappingURL=AdminTopBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTopBar.js","sourceRoot":"","sources":["../../../src/admin/components/AdminTopBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;GAcG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAiB/C,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EAAE,aAAa,GAAG,OAAO,EAClC,IAAI,EACJ,QAAQ,GAAG,GAAG,EACd,SAAS,GAAG,EAAE,GACG;IACjB,uEAAuE;IACvE,kEAAkE;IAClE,4BAA4B;IAC5B,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAA;IAChD,MAAM,eAAe,GACnB,aAAa,KAAK,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAA;IACrF,MAAM,SAAS,GACb,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,IAAI,aAAa,CAAC,CAAA;IACzF,wEAAwE;IACxE,yEAAyE;IACzE,2CAA2C;IAE3C,2EAA2E;IAC3E,+EAA+E;IAC/E,yEAAyE;IACzE,iEAAiE;IACjE,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,mBAAmB,CAAA;IAC5E,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,eAAe,EAAE;QAChE,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,CACL,kBAAQ,SAAS,EAAE,gBAAgB,SAAS,EAAE,CAAC,IAAI,EAAE,aAEnD,MAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,aAC/C,IAAI,IAAI,KAAC,cAAc,IAAC,SAAS,EAAE,SAAS,GAAI,EAChD,eAAe,CAAC,CAAC,CAAC,CACjB,eAAM,SAAS,EAAC,2CAA2C,GAAG,CAC/D,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,oBAAoB,YAAE,SAAS,GAAQ,CACxD,EACD,eAAM,SAAS,EAAC,kBAAkB,sBAAa,IAC1C,EAGP,eAAK,SAAS,EAAC,sBAAsB,aACnC,aACE,IAAI,EAAE,QAAQ,EACd,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,kBAAkB,aAE5B,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,GAAG,GAAI,kBAExD,EACH,YAAY,IAAI,CACf,aACE,IAAI,EAAE,YAAY,EAClB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,kBAAkB,aAE5B,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,GAAG,GAAI,kBAElD,CACL,EACD,eAAM,SAAS,EAAC,sBAAsB,iBAAa,MAAM,GAAG,EAC5D,KAAC,aAAa,IAAC,OAAO,SAAG,IACrB,IACC,CACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"AdminTopBar.js","sourceRoot":"","sources":["../../../src/admin/components/AdminTopBar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryForm.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CategoryForm.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAA;AAYvE,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvC,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAc,GACf,EAAE,iBAAiB,2CA4SnB"}
1
+ {"version":3,"file":"CategoryForm.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CategoryForm.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAA;AAYvE,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvC,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAc,GACf,EAAE,iBAAiB,2CAgTnB"}