powr-sdk-web 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ADMIN_USAGE.md ADDED
@@ -0,0 +1,129 @@
1
+ # Admin Dashboard Usage Guide
2
+
3
+ The `powr-sdk-web` now includes a **complete self-contained admin system** that eliminates the need for separate routes and components.
4
+
5
+ ## 🚀 **Revolutionary Approach**
6
+
7
+ **No more separate admin routes!** The AdminDashboard now handles everything internally:
8
+
9
+ - ✅ **Single Component** - Everything in one place
10
+ - ✅ **No Route Management** - No need for `/admin/users`, `/admin/functions`, etc.
11
+ - ✅ **Internal Navigation** - Click cards to switch between sections
12
+ - ✅ **Back Button** - Easy navigation back to dashboard
13
+ - ✅ **Consistent Styling** - Unified look across all sections
14
+
15
+ ## Basic Usage
16
+
17
+ ```jsx
18
+ // spriny-web/src/app/admin/page.tsx
19
+ "use client";
20
+
21
+ import ProtectedAdminRoute from "@/components/ProtectedAdminRoute";
22
+ import { AdminDashboard } from 'powr-sdk-web';
23
+ import { Users, FileText, Bell, Code } from "lucide-react";
24
+
25
+ export default function AdminPage() {
26
+ const adminCards = [
27
+ {
28
+ title: "Users",
29
+ description: "Manage project users, roles, and access levels",
30
+ icon: Users
31
+ },
32
+ {
33
+ title: "Functions",
34
+ description: "Manage dynamic API functions and endpoints",
35
+ icon: Code
36
+ },
37
+ {
38
+ title: "Invoices",
39
+ description: "View and manage project invoices",
40
+ icon: FileText
41
+ },
42
+ {
43
+ title: "Notifications",
44
+ description: "Manage system notifications and alerts",
45
+ icon: Bell
46
+ }
47
+ ];
48
+
49
+ return (
50
+ <ProtectedAdminRoute>
51
+ <AdminDashboard
52
+ projectId={process.env.NEXT_PUBLIC_PROJECT_ID}
53
+ adminCards={adminCards}
54
+ />
55
+ </ProtectedAdminRoute>
56
+ );
57
+ }
58
+ ```
59
+
60
+ ## Admin Card Configuration
61
+
62
+ Each admin card only needs these properties:
63
+
64
+ ```jsx
65
+ {
66
+ title: "Section Name", // Required: Display name
67
+ description: "Description", // Required: Section description
68
+ icon: IconComponent // Optional: Lucide React icon
69
+ }
70
+ ```
71
+
72
+ ## How It Works
73
+
74
+ 1. **Dashboard View** - Shows all admin cards
75
+ 2. **Click Any Card** - Opens that section internally
76
+ 3. **Back Button** - Returns to dashboard
77
+ 4. **No Page Reloads** - Smooth SPA experience
78
+
79
+ ## Supported Admin Sections
80
+
81
+ The dashboard automatically handles these sections:
82
+ - **Users** - User management
83
+ - **Functions** - Dynamic API functions
84
+ - **Notifications** - System notifications
85
+ - **Invoices** - Invoice management
86
+ - **Slides** - Slide management
87
+ - **Forms** - Form management
88
+ - **Waitlist** - Waitlist management
89
+
90
+ ## Benefits
91
+
92
+ ✅ **Zero Route Management** - No need to create `/admin/*` routes
93
+ ✅ **Single Component** - Everything in one place
94
+ ✅ **No Duplication** - Single source of truth
95
+ ✅ **Consistent UX** - Same interface everywhere
96
+ ✅ **Easy Maintenance** - Update once, affects all projects
97
+ ✅ **SPA Experience** - No page reloads, smooth navigation
98
+
99
+ ## Customization
100
+
101
+ ### Themes
102
+ - `"default"` - Light theme
103
+ - `"dark"` - Dark theme
104
+
105
+ ```jsx
106
+ <AdminDashboard
107
+ projectId={process.env.NEXT_PUBLIC_PROJECT_ID}
108
+ adminCards={adminCards}
109
+ theme="dark" // Optional: "default" or "dark"
110
+ />
111
+ ```
112
+
113
+ ## Migration from Old Approach
114
+
115
+ **Before (Multiple Routes):**
116
+ ```
117
+ /admin/page.tsx
118
+ /admin/users/page.tsx
119
+ /admin/functions/page.tsx
120
+ /admin/notifications/page.tsx
121
+ /admin/invoices/page.tsx
122
+ ```
123
+
124
+ **After (Single Component):**
125
+ ```
126
+ /admin/page.tsx // That's it!
127
+ ```
128
+
129
+ **All the individual admin route files can now be deleted!** 🎉
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _admin = _interopRequireDefault(require("../users/admin"));
11
+ var _admin2 = _interopRequireDefault(require("../functions/admin"));
12
+ var _admin3 = _interopRequireDefault(require("../notifications/admin"));
13
+ var _admin4 = _interopRequireDefault(require("../invoices/admin"));
14
+ var _admin5 = _interopRequireDefault(require("../slides/admin"));
15
+ var _admin6 = _interopRequireDefault(require("../forms/admin"));
16
+ var _admin7 = _interopRequireDefault(require("../waitlists/admin"));
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
23
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
25
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
26
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
28
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
29
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
30
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } // Import all admin components
31
+ var AdminDashboard = function AdminDashboard(_ref) {
32
+ var projectId = _ref.projectId,
33
+ _ref$adminCards = _ref.adminCards,
34
+ adminCards = _ref$adminCards === void 0 ? [] : _ref$adminCards,
35
+ _ref$theme = _ref.theme,
36
+ theme = _ref$theme === void 0 ? "default" : _ref$theme;
37
+ var _useState = (0, _react.useState)(null),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ currentSection = _useState2[0],
40
+ setCurrentSection = _useState2[1];
41
+ var getThemeStyles = function getThemeStyles() {
42
+ var baseStyles = {
43
+ container: {
44
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
45
+ padding: '24px',
46
+ maxWidth: '1200px',
47
+ margin: '0 auto'
48
+ },
49
+ header: {
50
+ marginBottom: '32px'
51
+ },
52
+ title: {
53
+ fontSize: '32px',
54
+ fontWeight: '800',
55
+ color: '#1f2937',
56
+ margin: '0 0 8px 0',
57
+ lineHeight: '1.2'
58
+ },
59
+ subtitle: {
60
+ fontSize: '16px',
61
+ color: '#6b7280',
62
+ margin: '0'
63
+ },
64
+ backButton: {
65
+ background: 'none',
66
+ border: 'none',
67
+ color: '#3b82f6',
68
+ fontSize: '16px',
69
+ cursor: 'pointer',
70
+ padding: '8px 0',
71
+ marginBottom: '16px',
72
+ display: 'flex',
73
+ alignItems: 'center',
74
+ gap: '8px'
75
+ },
76
+ grid: {
77
+ display: 'grid',
78
+ gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
79
+ gap: '24px',
80
+ marginBottom: '32px'
81
+ },
82
+ card: {
83
+ background: '#ffffff',
84
+ border: '1px solid #e5e7eb',
85
+ borderRadius: '12px',
86
+ padding: '24px',
87
+ transition: 'all 0.2s ease',
88
+ cursor: 'pointer',
89
+ boxShadow: '0 1px 3px rgba(0, 0, 0, 0.1)'
90
+ },
91
+ cardHover: {
92
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',
93
+ transform: 'translateY(-2px)'
94
+ },
95
+ cardHeader: {
96
+ display: 'flex',
97
+ alignItems: 'center',
98
+ marginBottom: '16px'
99
+ },
100
+ cardIcon: {
101
+ width: '24px',
102
+ height: '24px',
103
+ marginRight: '12px'
104
+ },
105
+ cardTitle: {
106
+ fontSize: '18px',
107
+ fontWeight: '600',
108
+ color: '#1f2937',
109
+ margin: '0'
110
+ },
111
+ cardDescription: {
112
+ fontSize: '14px',
113
+ color: '#6b7280',
114
+ margin: '0 0 16px 0',
115
+ lineHeight: '1.5'
116
+ },
117
+ cardButton: {
118
+ width: '100%',
119
+ padding: '12px 16px',
120
+ background: '#3b82f6',
121
+ color: '#ffffff',
122
+ border: 'none',
123
+ borderRadius: '8px',
124
+ fontSize: '14px',
125
+ fontWeight: '500',
126
+ cursor: 'pointer',
127
+ transition: 'background-color 0.2s ease'
128
+ },
129
+ cardButtonHover: {
130
+ background: '#2563eb'
131
+ },
132
+ statsCard: {
133
+ background: '#ffffff',
134
+ border: '1px solid #e5e7eb',
135
+ borderRadius: '12px',
136
+ padding: '24px',
137
+ marginTop: '32px'
138
+ },
139
+ statsGrid: {
140
+ display: 'grid',
141
+ gridTemplateColumns: 'repeat(auto-fit, minmax(150px, 1fr))',
142
+ gap: '16px'
143
+ },
144
+ statItem: {
145
+ textAlign: 'center'
146
+ },
147
+ statValue: {
148
+ fontSize: '24px',
149
+ fontWeight: '700',
150
+ color: '#3b82f6',
151
+ margin: '0 0 4px 0'
152
+ },
153
+ statLabel: {
154
+ fontSize: '14px',
155
+ color: '#6b7280',
156
+ margin: '0'
157
+ },
158
+ sectionContainer: {
159
+ background: '#ffffff',
160
+ border: '1px solid #e5e7eb',
161
+ borderRadius: '12px',
162
+ padding: '24px',
163
+ marginTop: '16px'
164
+ }
165
+ };
166
+
167
+ // Theme variations
168
+ if (theme === 'dark') {
169
+ baseStyles.container.backgroundColor = '#1f2937';
170
+ baseStyles.title.color = '#f9fafb';
171
+ baseStyles.subtitle.color = '#9ca3af';
172
+ baseStyles.card.backgroundColor = '#374151';
173
+ baseStyles.card.borderColor = '#4b5563';
174
+ baseStyles.cardTitle.color = '#f9fafb';
175
+ baseStyles.cardDescription.color = '#9ca3af';
176
+ baseStyles.statsCard.backgroundColor = '#374151';
177
+ baseStyles.statsCard.borderColor = '#4b5563';
178
+ baseStyles.statLabel.color = '#9ca3af';
179
+ baseStyles.sectionContainer.backgroundColor = '#374151';
180
+ baseStyles.sectionContainer.borderColor = '#4b5563';
181
+ }
182
+ return baseStyles;
183
+ };
184
+ var styles = getThemeStyles();
185
+ var handleCardClick = function handleCardClick(card) {
186
+ setCurrentSection(card.title.toLowerCase());
187
+ };
188
+ var handleBackToDashboard = function handleBackToDashboard() {
189
+ setCurrentSection(null);
190
+ };
191
+ var renderAdminSection = function renderAdminSection() {
192
+ var sectionProps = {
193
+ projectId: projectId,
194
+ theme: theme === 'dark' ? 'dark' : 'blue'
195
+ };
196
+ switch (currentSection) {
197
+ case 'users':
198
+ return /*#__PURE__*/_react["default"].createElement(_admin["default"], _extends({}, sectionProps, {
199
+ showActions: true
200
+ }));
201
+ case 'functions':
202
+ return /*#__PURE__*/_react["default"].createElement(_admin2["default"], sectionProps);
203
+ case 'notifications':
204
+ return /*#__PURE__*/_react["default"].createElement(_admin3["default"], sectionProps);
205
+ case 'invoices':
206
+ return /*#__PURE__*/_react["default"].createElement(_admin4["default"], sectionProps);
207
+ case 'slides':
208
+ return /*#__PURE__*/_react["default"].createElement(_admin5["default"], sectionProps);
209
+ case 'forms':
210
+ return /*#__PURE__*/_react["default"].createElement(_admin6["default"], sectionProps);
211
+ case 'waitlist':
212
+ return /*#__PURE__*/_react["default"].createElement(_admin7["default"], sectionProps);
213
+ default:
214
+ return null;
215
+ }
216
+ };
217
+ if (!projectId) {
218
+ return /*#__PURE__*/_react["default"].createElement("div", {
219
+ style: _objectSpread(_objectSpread({}, styles.container), {}, {
220
+ textAlign: 'center',
221
+ padding: '40px'
222
+ })
223
+ }, /*#__PURE__*/_react["default"].createElement("p", {
224
+ style: {
225
+ color: '#6b7280',
226
+ fontSize: '16px'
227
+ }
228
+ }, "Project ID is required for admin functionality"));
229
+ }
230
+
231
+ // If a section is selected, show that section
232
+ if (currentSection) {
233
+ return /*#__PURE__*/_react["default"].createElement("div", {
234
+ style: styles.container
235
+ }, /*#__PURE__*/_react["default"].createElement("button", {
236
+ style: styles.backButton,
237
+ onClick: handleBackToDashboard
238
+ }, "\u2190 Back to Dashboard"), /*#__PURE__*/_react["default"].createElement("div", {
239
+ style: styles.header
240
+ }, /*#__PURE__*/_react["default"].createElement("h1", {
241
+ style: styles.title
242
+ }, currentSection.charAt(0).toUpperCase() + currentSection.slice(1), " Management"), /*#__PURE__*/_react["default"].createElement("p", {
243
+ style: styles.subtitle
244
+ }, "Manage your ", currentSection, " settings")), /*#__PURE__*/_react["default"].createElement("div", {
245
+ style: styles.sectionContainer
246
+ }, renderAdminSection()));
247
+ }
248
+
249
+ // Show the main dashboard
250
+ return /*#__PURE__*/_react["default"].createElement("div", {
251
+ style: styles.container
252
+ }, /*#__PURE__*/_react["default"].createElement("div", {
253
+ style: styles.header
254
+ }, /*#__PURE__*/_react["default"].createElement("h1", {
255
+ style: styles.title
256
+ }, "Admin Dashboard"), /*#__PURE__*/_react["default"].createElement("p", {
257
+ style: styles.subtitle
258
+ }, "Manage your project settings and users")), /*#__PURE__*/_react["default"].createElement("div", {
259
+ style: styles.grid
260
+ }, adminCards.map(function (card, index) {
261
+ return /*#__PURE__*/_react["default"].createElement("div", {
262
+ key: card.href || index,
263
+ style: styles.card,
264
+ onMouseEnter: function onMouseEnter(e) {
265
+ e.currentTarget.style.transform = styles.cardHover.transform;
266
+ e.currentTarget.style.boxShadow = styles.cardHover.boxShadow;
267
+ },
268
+ onMouseLeave: function onMouseLeave(e) {
269
+ e.currentTarget.style.transform = 'none';
270
+ e.currentTarget.style.boxShadow = styles.card.boxShadow;
271
+ },
272
+ onClick: function onClick() {
273
+ return handleCardClick(card);
274
+ }
275
+ }, /*#__PURE__*/_react["default"].createElement("div", {
276
+ style: styles.cardHeader
277
+ }, card.icon && /*#__PURE__*/_react["default"].createElement("div", {
278
+ style: _objectSpread(_objectSpread({}, styles.cardIcon), {}, {
279
+ color: '#3b82f6'
280
+ })
281
+ }, /*#__PURE__*/_react["default"].createElement(card.icon)), /*#__PURE__*/_react["default"].createElement("h3", {
282
+ style: styles.cardTitle
283
+ }, card.title)), /*#__PURE__*/_react["default"].createElement("p", {
284
+ style: styles.cardDescription
285
+ }, card.description), /*#__PURE__*/_react["default"].createElement("button", {
286
+ style: styles.cardButton,
287
+ onMouseEnter: function onMouseEnter(e) {
288
+ e.target.style.background = styles.cardButtonHover.background;
289
+ },
290
+ onMouseLeave: function onMouseLeave(e) {
291
+ e.target.style.background = styles.cardButton.background;
292
+ }
293
+ }, "Manage ", card.title));
294
+ })), /*#__PURE__*/_react["default"].createElement("div", {
295
+ style: styles.statsCard
296
+ }, /*#__PURE__*/_react["default"].createElement("div", {
297
+ style: styles.cardHeader
298
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
299
+ style: styles.cardTitle
300
+ }, "Quick Stats")), /*#__PURE__*/_react["default"].createElement("div", {
301
+ style: styles.statsGrid
302
+ }, /*#__PURE__*/_react["default"].createElement("div", {
303
+ style: styles.statItem
304
+ }, /*#__PURE__*/_react["default"].createElement("div", {
305
+ style: styles.statValue
306
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
307
+ style: styles.statLabel
308
+ }, "Total Users")), /*#__PURE__*/_react["default"].createElement("div", {
309
+ style: styles.statItem
310
+ }, /*#__PURE__*/_react["default"].createElement("div", {
311
+ style: styles.statValue
312
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
313
+ style: styles.statLabel
314
+ }, "Active Projects")), /*#__PURE__*/_react["default"].createElement("div", {
315
+ style: styles.statItem
316
+ }, /*#__PURE__*/_react["default"].createElement("div", {
317
+ style: styles.statValue
318
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
319
+ style: styles.statLabel
320
+ }, "Pending Tasks")))));
321
+ };
322
+ AdminDashboard.propTypes = {
323
+ projectId: _propTypes["default"].string.isRequired,
324
+ adminCards: _propTypes["default"].arrayOf(_propTypes["default"].shape({
325
+ title: _propTypes["default"].string.isRequired,
326
+ description: _propTypes["default"].string.isRequired,
327
+ icon: _propTypes["default"].elementType
328
+ })),
329
+ theme: _propTypes["default"].oneOf(['default', 'dark'])
330
+ };
331
+ var _default = exports["default"] = AdminDashboard;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AdminDashboard", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _AdminDashboard["default"];
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "PowrBaseFormsAdmin", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _admin6["default"];
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "PowrBaseFunctionsAdmin", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _admin2["default"];
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "PowrBaseInvoicesAdmin", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _admin4["default"];
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "PowrBaseNotificationsAdmin", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _admin3["default"];
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "PowrBaseSlidesAdmin", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _admin5["default"];
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "PowrBaseUsersAdmin", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _admin["default"];
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "PowrBaseWaitListAdmin", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _admin7["default"];
52
+ }
53
+ });
54
+ var _AdminDashboard = _interopRequireDefault(require("./AdminDashboard"));
55
+ var _admin = _interopRequireDefault(require("../users/admin"));
56
+ var _admin2 = _interopRequireDefault(require("../functions/admin"));
57
+ var _admin3 = _interopRequireDefault(require("../notifications/admin"));
58
+ var _admin4 = _interopRequireDefault(require("../invoices/admin"));
59
+ var _admin5 = _interopRequireDefault(require("../slides/admin"));
60
+ var _admin6 = _interopRequireDefault(require("../forms/admin"));
61
+ var _admin7 = _interopRequireDefault(require("../waitlists/admin"));
62
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
package/dist/index.js CHANGED
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "AdminDashboard", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _admin8.AdminDashboard;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "PowrBaseActivities", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -143,4 +149,5 @@ var _admin4 = _interopRequireDefault(require("./invoices/admin"));
143
149
  var _admin5 = _interopRequireDefault(require("./notifications/admin"));
144
150
  var _admin6 = _interopRequireDefault(require("./users/admin"));
145
151
  var _admin7 = _interopRequireDefault(require("./functions/admin"));
152
+ var _admin8 = require("./admin");
146
153
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getAuthToken = exports.createAuthHeaders = exports.apiCall = void 0;
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
7
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
8
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
9
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
10
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
11
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -52,7 +52,10 @@ var apiCall = exports.apiCall = /*#__PURE__*/function () {
52
52
  options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
53
53
  config = _objectSpread({
54
54
  headers: createAuthHeaders(options.headers)
55
- }, options);
55
+ }, options); // If body is provided and is an object, stringify it
56
+ if (config.body && _typeof(config.body) === 'object' && !(config.body instanceof FormData)) {
57
+ config.body = JSON.stringify(config.body);
58
+ }
56
59
  _context.n = 1;
57
60
  return fetch(url, config);
58
61
  case 1:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",