powr-sdk-web 3.2.0 → 3.2.2

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,57 +1,12 @@
1
1
  "use strict";
2
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); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
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"));
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
55
10
  var _admin = _interopRequireDefault(require("../users/admin"));
56
11
  var _admin2 = _interopRequireDefault(require("../functions/admin"));
57
12
  var _admin3 = _interopRequireDefault(require("../notifications/admin"));
@@ -59,4 +14,310 @@ var _admin4 = _interopRequireDefault(require("../invoices/admin"));
59
14
  var _admin5 = _interopRequireDefault(require("../slides/admin"));
60
15
  var _admin6 = _interopRequireDefault(require("../forms/admin"));
61
16
  var _admin7 = _interopRequireDefault(require("../waitlists/admin"));
62
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
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$sections = _ref.sections,
34
+ sections = _ref$sections === void 0 ? [] : _ref$sections,
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(section) {
186
+ setCurrentSection(section.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
+ }, sections.map(function (section, index) {
261
+ return /*#__PURE__*/_react["default"].createElement("div", {
262
+ key: section,
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(section);
274
+ }
275
+ }, /*#__PURE__*/_react["default"].createElement("div", {
276
+ style: styles.cardHeader
277
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
278
+ style: styles.cardTitle
279
+ }, section)), /*#__PURE__*/_react["default"].createElement("p", {
280
+ style: styles.cardDescription
281
+ }, "Manage your ", section.toLowerCase(), " settings"), /*#__PURE__*/_react["default"].createElement("button", {
282
+ style: styles.cardButton,
283
+ onMouseEnter: function onMouseEnter(e) {
284
+ e.target.style.background = styles.cardButtonHover.background;
285
+ },
286
+ onMouseLeave: function onMouseLeave(e) {
287
+ e.target.style.background = styles.cardButton.background;
288
+ }
289
+ }, "Manage ", section));
290
+ })), /*#__PURE__*/_react["default"].createElement("div", {
291
+ style: styles.statsCard
292
+ }, /*#__PURE__*/_react["default"].createElement("div", {
293
+ style: styles.cardHeader
294
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
295
+ style: styles.cardTitle
296
+ }, "Quick Stats")), /*#__PURE__*/_react["default"].createElement("div", {
297
+ style: styles.statsGrid
298
+ }, /*#__PURE__*/_react["default"].createElement("div", {
299
+ style: styles.statItem
300
+ }, /*#__PURE__*/_react["default"].createElement("div", {
301
+ style: styles.statValue
302
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
303
+ style: styles.statLabel
304
+ }, "Total Users")), /*#__PURE__*/_react["default"].createElement("div", {
305
+ style: styles.statItem
306
+ }, /*#__PURE__*/_react["default"].createElement("div", {
307
+ style: styles.statValue
308
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
309
+ style: styles.statLabel
310
+ }, "Active Projects")), /*#__PURE__*/_react["default"].createElement("div", {
311
+ style: styles.statItem
312
+ }, /*#__PURE__*/_react["default"].createElement("div", {
313
+ style: styles.statValue
314
+ }, "0"), /*#__PURE__*/_react["default"].createElement("div", {
315
+ style: styles.statLabel
316
+ }, "Pending Tasks")))));
317
+ };
318
+ AdminDashboard.propTypes = {
319
+ projectId: _propTypes["default"].string.isRequired,
320
+ sections: _propTypes["default"].arrayOf(_propTypes["default"].string),
321
+ theme: _propTypes["default"].oneOf(['default', 'dark'])
322
+ };
323
+ var _default = exports["default"] = AdminDashboard;
package/dist/index.js CHANGED
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "AdminDashboard", {
6
+ Object.defineProperty(exports, "PowrBaseActivities", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _admin8.AdminDashboard;
9
+ return _activities["default"];
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "PowrBaseActivities", {
12
+ Object.defineProperty(exports, "PowrBaseAdmin", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _activities["default"];
15
+ return _admin["default"];
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "PowrBaseBlogs", {
@@ -39,30 +39,12 @@ Object.defineProperty(exports, "PowrBaseForm", {
39
39
  return _forms["default"];
40
40
  }
41
41
  });
42
- Object.defineProperty(exports, "PowrBaseFormsAdmin", {
43
- enumerable: true,
44
- get: function get() {
45
- return _admin2["default"];
46
- }
47
- });
48
- Object.defineProperty(exports, "PowrBaseFunctionsAdmin", {
49
- enumerable: true,
50
- get: function get() {
51
- return _admin7["default"];
52
- }
53
- });
54
42
  Object.defineProperty(exports, "PowrBaseInvoice", {
55
43
  enumerable: true,
56
44
  get: function get() {
57
45
  return _invoices["default"];
58
46
  }
59
47
  });
60
- Object.defineProperty(exports, "PowrBaseInvoicesAdmin", {
61
- enumerable: true,
62
- get: function get() {
63
- return _admin4["default"];
64
- }
65
- });
66
48
  Object.defineProperty(exports, "PowrBaseLike", {
67
49
  enumerable: true,
68
50
  get: function get() {
@@ -75,24 +57,12 @@ Object.defineProperty(exports, "PowrBaseLogin", {
75
57
  return _auth["default"];
76
58
  }
77
59
  });
78
- Object.defineProperty(exports, "PowrBaseNotificationsAdmin", {
79
- enumerable: true,
80
- get: function get() {
81
- return _admin5["default"];
82
- }
83
- });
84
60
  Object.defineProperty(exports, "PowrBaseReviews", {
85
61
  enumerable: true,
86
62
  get: function get() {
87
63
  return _reviews["default"];
88
64
  }
89
65
  });
90
- Object.defineProperty(exports, "PowrBaseSlidesAdmin", {
91
- enumerable: true,
92
- get: function get() {
93
- return _admin3["default"];
94
- }
95
- });
96
66
  Object.defineProperty(exports, "PowrBaseSwiper", {
97
67
  enumerable: true,
98
68
  get: function get() {
@@ -105,12 +75,6 @@ Object.defineProperty(exports, "PowrBaseUploader", {
105
75
  return _uploader["default"];
106
76
  }
107
77
  });
108
- Object.defineProperty(exports, "PowrBaseUsersAdmin", {
109
- enumerable: true,
110
- get: function get() {
111
- return _admin6["default"];
112
- }
113
- });
114
78
  Object.defineProperty(exports, "PowrBaseWaitlist", {
115
79
  enumerable: true,
116
80
  get: function get() {
@@ -123,12 +87,6 @@ Object.defineProperty(exports, "PowrTable", {
123
87
  return _table["default"];
124
88
  }
125
89
  });
126
- Object.defineProperty(exports, "PowrWaitListAdmin", {
127
- enumerable: true,
128
- get: function get() {
129
- return _admin["default"];
130
- }
131
- });
132
90
  var _table = _interopRequireDefault(require("./table"));
133
91
  var _swiper = _interopRequireDefault(require("./swiper"));
134
92
  var _reviews = _interopRequireDefault(require("./reviews"));
@@ -142,12 +100,5 @@ var _likes = _interopRequireDefault(require("./likes"));
142
100
  var _auth = _interopRequireDefault(require("./auth"));
143
101
  var _forms = _interopRequireDefault(require("./forms"));
144
102
  var _chat = _interopRequireDefault(require("./chat"));
145
- var _admin = _interopRequireDefault(require("./waitlists/admin"));
146
- var _admin2 = _interopRequireDefault(require("./forms/admin"));
147
- var _admin3 = _interopRequireDefault(require("./slides/admin"));
148
- var _admin4 = _interopRequireDefault(require("./invoices/admin"));
149
- var _admin5 = _interopRequireDefault(require("./notifications/admin"));
150
- var _admin6 = _interopRequireDefault(require("./users/admin"));
151
- var _admin7 = _interopRequireDefault(require("./functions/admin"));
152
- var _admin8 = require("./admin");
103
+ var _admin = _interopRequireDefault(require("./admin"));
153
104
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",
package/ADMIN_USAGE.md DELETED
@@ -1,129 +0,0 @@
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!** 🎉