powr-sdk-web 5.8.2 → 5.9.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.
@@ -0,0 +1,32 @@
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"] = PowrBaseAdminFull;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _index = _interopRequireDefault(require("./index"));
10
+ var _optionalSectionLoaders = require("./optionalSectionLoaders");
11
+ var _excluded = ["sectionLoaders"];
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
+ 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); }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
18
+ 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); }
19
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
20
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
21
+ /**
22
+ * Full PowrBaseAdmin for host apps that already install optional peers
23
+ * (Excelrs / Spriny via the package root export).
24
+ * Prefer `powr-sdk-web/dist/admin` in lean apps (Ampy Ops) to avoid monaco/lucide.
25
+ */
26
+ function PowrBaseAdminFull(props) {
27
+ var sectionLoaders = props.sectionLoaders,
28
+ rest = _objectWithoutProperties(props, _excluded);
29
+ return /*#__PURE__*/_react["default"].createElement(_index["default"], _extends({}, rest, {
30
+ sectionLoaders: _objectSpread(_objectSpread({}, _optionalSectionLoaders.OPTIONAL_SECTION_LOADERS), sectionLoaders || {})
31
+ }));
32
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CORE_SECTION_LOADERS = 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
+ 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); }
9
+ /**
10
+ * Core admin sections — no heavy optional peers (monaco / lucide / hot-toast).
11
+ * Safe for apps that only need Users (e.g. Ampy Ops).
12
+ */
13
+ var CORE_SECTION_LOADERS = exports.CORE_SECTION_LOADERS = {
14
+ users: function users() {
15
+ return Promise.resolve().then(function () {
16
+ return _interopRequireWildcard(require('../users/admin'));
17
+ });
18
+ },
19
+ notifications: function notifications() {
20
+ return Promise.resolve().then(function () {
21
+ return _interopRequireWildcard(require('../notifications/admin'));
22
+ });
23
+ },
24
+ invoices: function invoices() {
25
+ return Promise.resolve().then(function () {
26
+ return _interopRequireWildcard(require('../invoices/admin'));
27
+ });
28
+ },
29
+ slides: function slides() {
30
+ return Promise.resolve().then(function () {
31
+ return _interopRequireWildcard(require('../slides/admin'));
32
+ });
33
+ },
34
+ forms: function forms() {
35
+ return Promise.resolve().then(function () {
36
+ return _interopRequireWildcard(require('../forms/admin'));
37
+ });
38
+ },
39
+ waitlist: function waitlist() {
40
+ return Promise.resolve().then(function () {
41
+ return _interopRequireWildcard(require('../waitlists/admin'));
42
+ });
43
+ },
44
+ feeds: function feeds() {
45
+ return Promise.resolve().then(function () {
46
+ return _interopRequireWildcard(require('../feeds/admin'));
47
+ });
48
+ }
49
+ };
@@ -7,36 +7,113 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
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
- var _admin8 = _interopRequireDefault(require("../feeds/admin"));
18
- var _admin9 = _interopRequireDefault(require("../tasks/admin"));
10
+ var _coreSectionLoaders = require("./coreSectionLoaders");
19
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
20
- 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); }
12
+ 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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
21
13
  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); }
14
+ 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 }; })(); }
15
+ 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); }
16
+ 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); }
17
+ 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); }); }; }
18
+ 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; }
19
+ 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; }
20
+ 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; }
21
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
+ 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); }
22
23
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
23
24
  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."); }
24
25
  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; } }
25
26
  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; }
26
27
  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; } }
27
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } // Import all admin components
28
- var AdminDashboard = function AdminDashboard(_ref) {
29
- var apiUrl = _ref.apiUrl,
30
- projectId = _ref.projectId,
31
- _ref$sections = _ref.sections,
32
- sections = _ref$sections === void 0 ? [] : _ref$sections,
33
- formPublicBaseUrl = _ref.formPublicBaseUrl,
34
- _ref$theme = _ref.theme,
35
- theme = _ref$theme === void 0 ? "default" : _ref$theme;
28
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
29
+ function normalizeSectionKey(section) {
30
+ return String(section || '').trim().toLowerCase();
31
+ }
32
+ function resolveLoader(sectionKey, loaders) {
33
+ if (loaders[sectionKey]) return loaders[sectionKey];
34
+ // Accept "Wait List" / "WaitLists" style labels for waitlist
35
+ if (sectionKey.replace(/\s+/g, '') === 'waitlists') return loaders.waitlist;
36
+ return null;
37
+ }
38
+ var MissingSection = function MissingSection(_ref) {
39
+ var section = _ref.section,
40
+ theme = _ref.theme;
41
+ var color = theme === 'dark' ? '#f9fafb' : '#1f2937';
42
+ var muted = theme === 'dark' ? '#9ca3af' : '#6b7280';
43
+ return /*#__PURE__*/_react["default"].createElement("div", {
44
+ style: {
45
+ padding: 16,
46
+ color: color
47
+ }
48
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
49
+ style: {
50
+ margin: '0 0 8px 0'
51
+ }
52
+ }, "Section unavailable: ", section), /*#__PURE__*/_react["default"].createElement("p", {
53
+ style: {
54
+ margin: 0,
55
+ color: muted,
56
+ lineHeight: 1.5
57
+ }
58
+ }, "This section needs optional peer dependencies. Install them in the host app, then pass loaders from ", /*#__PURE__*/_react["default"].createElement("code", null, "powr-sdk-web/dist/admin/optionalSectionLoaders"), " via the", ' ', /*#__PURE__*/_react["default"].createElement("code", null, "sectionLoaders"), " prop."));
59
+ };
60
+ var AdminDashboard = function AdminDashboard(_ref2) {
61
+ var apiUrl = _ref2.apiUrl,
62
+ projectId = _ref2.projectId,
63
+ _ref2$sections = _ref2.sections,
64
+ sections = _ref2$sections === void 0 ? [] : _ref2$sections,
65
+ formPublicBaseUrl = _ref2.formPublicBaseUrl,
66
+ _ref2$theme = _ref2.theme,
67
+ theme = _ref2$theme === void 0 ? 'default' : _ref2$theme,
68
+ _ref2$sectionLoaders = _ref2.sectionLoaders,
69
+ sectionLoaders = _ref2$sectionLoaders === void 0 ? {} : _ref2$sectionLoaders;
36
70
  var _useState = (0, _react.useState)(null),
37
71
  _useState2 = _slicedToArray(_useState, 2),
38
72
  currentSection = _useState2[0],
39
73
  setCurrentSection = _useState2[1];
74
+ var loaders = (0, _react.useMemo)(function () {
75
+ return _objectSpread(_objectSpread({}, _coreSectionLoaders.CORE_SECTION_LOADERS), sectionLoaders);
76
+ }, [sectionLoaders]);
77
+ var LazySection = (0, _react.useMemo)(function () {
78
+ if (!currentSection) return null;
79
+ var loader = resolveLoader(currentSection, loaders);
80
+ if (!loader) {
81
+ return function () {
82
+ return /*#__PURE__*/_react["default"].createElement(MissingSection, {
83
+ section: currentSection,
84
+ theme: theme
85
+ });
86
+ };
87
+ }
88
+ return /*#__PURE__*/(0, _react.lazy)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
89
+ var mod, _t;
90
+ return _regenerator().w(function (_context) {
91
+ while (1) switch (_context.p = _context.n) {
92
+ case 0:
93
+ _context.p = 0;
94
+ _context.n = 1;
95
+ return loader();
96
+ case 1:
97
+ mod = _context.v;
98
+ return _context.a(2, {
99
+ "default": mod["default"] || mod
100
+ });
101
+ case 2:
102
+ _context.p = 2;
103
+ _t = _context.v;
104
+ console.error("[PowrBaseAdmin] Failed to load section \"".concat(currentSection, "\""), _t);
105
+ return _context.a(2, {
106
+ "default": function _default() {
107
+ return /*#__PURE__*/_react["default"].createElement(MissingSection, {
108
+ section: currentSection,
109
+ theme: theme
110
+ });
111
+ }
112
+ });
113
+ }
114
+ }, _callee, null, [[0, 2]]);
115
+ })));
116
+ }, [currentSection, loaders, theme]);
40
117
  var getThemeStyles = function getThemeStyles() {
41
118
  var baseStyles = {
42
119
  container: {
@@ -160,10 +237,12 @@ var AdminDashboard = function AdminDashboard(_ref) {
160
237
  borderRadius: '12px',
161
238
  padding: '24px',
162
239
  marginTop: '16px'
240
+ },
241
+ loading: {
242
+ padding: '24px',
243
+ color: '#6b7280'
163
244
  }
164
245
  };
165
-
166
- // Theme variations
167
246
  if (theme === 'dark') {
168
247
  baseStyles.container.backgroundColor = '#1f2937';
169
248
  baseStyles.title.color = '#f9fafb';
@@ -177,69 +256,54 @@ var AdminDashboard = function AdminDashboard(_ref) {
177
256
  baseStyles.statLabel.color = '#9ca3af';
178
257
  baseStyles.sectionContainer.backgroundColor = '#374151';
179
258
  baseStyles.sectionContainer.borderColor = '#4b5563';
259
+ baseStyles.loading.color = '#9ca3af';
180
260
  }
181
261
  return baseStyles;
182
262
  };
183
263
  var styles = getThemeStyles();
184
264
  var handleCardClick = function handleCardClick(section) {
185
- setCurrentSection(section.toLowerCase());
265
+ setCurrentSection(normalizeSectionKey(section));
186
266
  };
187
267
  var handleBackToDashboard = function handleBackToDashboard() {
188
268
  setCurrentSection(null);
189
269
  };
190
270
  var renderAdminSection = function renderAdminSection() {
271
+ if (!LazySection) return null;
191
272
  var sectionProps = {
192
273
  apiUrl: apiUrl,
193
274
  projectId: projectId,
194
275
  formPublicBaseUrl: formPublicBaseUrl,
195
276
  theme: theme === 'dark' ? 'dark' : 'blue'
196
277
  };
197
- switch (currentSection) {
198
- case 'users':
199
- return /*#__PURE__*/_react["default"].createElement(_admin["default"], _extends({}, sectionProps, {
200
- showActions: true
201
- }));
202
- case 'functions':
203
- return /*#__PURE__*/_react["default"].createElement(_admin2["default"], sectionProps);
204
- case 'notifications':
205
- return /*#__PURE__*/_react["default"].createElement(_admin3["default"], sectionProps);
206
- case 'invoices':
207
- return /*#__PURE__*/_react["default"].createElement(_admin4["default"], sectionProps);
208
- case 'slides':
209
- return /*#__PURE__*/_react["default"].createElement(_admin5["default"], sectionProps);
210
- case 'forms':
211
- return /*#__PURE__*/_react["default"].createElement(_admin6["default"], sectionProps);
212
- case 'waitlist':
213
- return /*#__PURE__*/_react["default"].createElement(_admin7["default"], sectionProps);
214
- case 'feeds':
215
- return /*#__PURE__*/_react["default"].createElement(_admin8["default"], sectionProps);
216
- case 'tasks':
217
- return /*#__PURE__*/_react["default"].createElement(_admin9["default"], _extends({}, sectionProps, {
218
- onError: function onError(message) {
219
- return alert(message);
220
- }
221
- }));
222
- default:
223
- return null;
224
- }
278
+ var extraProps = currentSection === 'users' ? {
279
+ showActions: true
280
+ } : currentSection === 'tasks' ? {
281
+ onError: function onError(message) {
282
+ return alert(message);
283
+ }
284
+ } : {};
285
+ return /*#__PURE__*/_react["default"].createElement(_react.Suspense, {
286
+ fallback: /*#__PURE__*/_react["default"].createElement("div", {
287
+ style: styles.loading
288
+ }, "Loading ", currentSection, "\u2026")
289
+ }, /*#__PURE__*/_react["default"].createElement(LazySection, _extends({}, sectionProps, extraProps)));
225
290
  };
226
291
  if (currentSection) {
227
292
  return /*#__PURE__*/_react["default"].createElement("div", {
228
293
  style: styles.container
229
294
  }, /*#__PURE__*/_react["default"].createElement("button", {
295
+ type: "button",
230
296
  style: styles.backButton,
231
297
  onClick: handleBackToDashboard
232
298
  }, "\u2190 Back to Dashboard"), /*#__PURE__*/_react["default"].createElement("div", {
233
299
  style: styles.sectionContainer
234
300
  }, renderAdminSection()));
235
301
  }
236
-
237
- // Show the main dashboard
238
302
  return /*#__PURE__*/_react["default"].createElement("div", {
239
303
  style: styles.container
240
304
  }, /*#__PURE__*/_react["default"].createElement("div", {
241
305
  style: styles.grid
242
- }, sections.map(function (section, index) {
306
+ }, sections.map(function (section) {
243
307
  return /*#__PURE__*/_react["default"].createElement("div", {
244
308
  key: section,
245
309
  style: styles.card,
@@ -261,6 +325,7 @@ var AdminDashboard = function AdminDashboard(_ref) {
261
325
  }, section)), /*#__PURE__*/_react["default"].createElement("p", {
262
326
  style: styles.cardDescription
263
327
  }, "Manage your ", section.toLowerCase(), " settings"), /*#__PURE__*/_react["default"].createElement("button", {
328
+ type: "button",
264
329
  style: styles.cardButton,
265
330
  onMouseEnter: function onMouseEnter(e) {
266
331
  e.target.style.background = styles.cardButtonHover.background;
@@ -272,9 +337,11 @@ var AdminDashboard = function AdminDashboard(_ref) {
272
337
  })));
273
338
  };
274
339
  AdminDashboard.propTypes = {
340
+ apiUrl: _propTypes["default"].string,
275
341
  projectId: _propTypes["default"].string,
276
342
  sections: _propTypes["default"].arrayOf(_propTypes["default"].string),
277
343
  formPublicBaseUrl: _propTypes["default"].string,
278
- theme: _propTypes["default"].oneOf(['default', 'dark'])
344
+ theme: _propTypes["default"].oneOf(['default', 'dark']),
345
+ sectionLoaders: _propTypes["default"].objectOf(_propTypes["default"].func)
279
346
  };
280
- var _default = exports["default"] = AdminDashboard;
347
+ var _default2 = exports["default"] = AdminDashboard;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.OPTIONAL_SECTION_LOADERS = 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
+ 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); }
9
+ /**
10
+ * Heavy admin sections. Import only from apps that install optional peers:
11
+ * lucide-react, @monaco-editor/react, react-hot-toast
12
+ *
13
+ * @example
14
+ * import PowrBaseAdmin from 'powr-sdk-web/dist/admin';
15
+ * import { OPTIONAL_SECTION_LOADERS } from 'powr-sdk-web/dist/admin/optionalSectionLoaders';
16
+ * <PowrBaseAdmin sections={['Users','Functions']} sectionLoaders={OPTIONAL_SECTION_LOADERS} />
17
+ */
18
+ var OPTIONAL_SECTION_LOADERS = exports.OPTIONAL_SECTION_LOADERS = {
19
+ functions: function functions() {
20
+ return Promise.resolve().then(function () {
21
+ return _interopRequireWildcard(require('../functions/admin'));
22
+ });
23
+ },
24
+ tasks: function tasks() {
25
+ return Promise.resolve().then(function () {
26
+ return _interopRequireWildcard(require('../tasks/admin'));
27
+ });
28
+ }
29
+ };
30
+ var _default = exports["default"] = OPTIONAL_SECTION_LOADERS;
package/dist/index.js CHANGED
@@ -48,7 +48,7 @@ Object.defineProperty(exports, "PowrBaseActivities", {
48
48
  Object.defineProperty(exports, "PowrBaseAdmin", {
49
49
  enumerable: true,
50
50
  get: function get() {
51
- return _admin["default"];
51
+ return _PowrBaseAdminFull["default"];
52
52
  }
53
53
  });
54
54
  Object.defineProperty(exports, "PowrBaseBlogs", {
@@ -325,7 +325,7 @@ var _forms = _interopRequireDefault(require("./forms"));
325
325
  var _chat = _interopRequireDefault(require("./chat"));
326
326
  var _feeds = _interopRequireDefault(require("./feeds"));
327
327
  var _thread = _interopRequireDefault(require("./thread"));
328
- var _admin = _interopRequireDefault(require("./admin"));
328
+ var _PowrBaseAdminFull = _interopRequireDefault(require("./admin/PowrBaseAdminFull"));
329
329
  var _tools = _interopRequireDefault(require("./tools"));
330
330
  var _tasks = _interopRequireDefault(require("./tasks"));
331
331
  var _powrVerify = _interopRequireDefault(require("./powrVerify"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "5.8.2",
3
+ "version": "5.9.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",
@@ -21,16 +21,37 @@
21
21
  "url": "git+https://github.com/lawaziatech/powr-sdk-web.git"
22
22
  },
23
23
  "peerDependencies": {
24
+ "@monaco-editor/react": "*",
24
25
  "filepond": "*",
26
+ "lucide-react": "*",
25
27
  "react": "*",
26
28
  "react-dom": "*",
29
+ "react-hot-toast": "*",
27
30
  "react-toastify": "*"
28
31
  },
32
+ "peerDependenciesMeta": {
33
+ "@monaco-editor/react": {
34
+ "optional": true
35
+ },
36
+ "filepond": {
37
+ "optional": true
38
+ },
39
+ "lucide-react": {
40
+ "optional": true
41
+ },
42
+ "react-hot-toast": {
43
+ "optional": true
44
+ },
45
+ "react-toastify": {
46
+ "optional": true
47
+ }
48
+ },
29
49
  "dependencies": {
30
50
  "axios": "^1.7.7",
31
51
  "filepond": "*",
32
52
  "firebase": "^12.2.1",
33
53
  "libphonenumber-js": "^1.12.9",
54
+ "prop-types": "^15.8.1",
34
55
  "react-filepond": "^7.1.2",
35
56
  "react-hook-form": "^7.58.0"
36
57
  },
@@ -38,7 +59,6 @@
38
59
  "@babel/cli": "^7.24.1",
39
60
  "@babel/core": "^7.24.4",
40
61
  "@babel/preset-env": "^7.24.4",
41
- "@babel/preset-react": "^7.24.1",
42
- "prop-types": "^15.8.1"
62
+ "@babel/preset-react": "^7.24.1"
43
63
  }
44
64
  }