powr-sdk-web 6.7.0 → 6.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.
- package/dist/forms/admin.js +20 -2
- package/dist/forms/index.js +150 -65
- package/package.json +1 -1
package/dist/forms/admin.js
CHANGED
|
@@ -672,7 +672,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
672
672
|
className: "text-sm font-semibold text-gray-900"
|
|
673
673
|
}, "Fields"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
674
674
|
className: "flex flex-wrap gap-2"
|
|
675
|
-
}, ['text', 'email', 'mobile', 'textarea', 'radio', 'fileUploader'].map(function (type) {
|
|
675
|
+
}, ['text', 'email', 'mobile', 'textarea', 'radio', 'photo', 'fileUploader'].map(function (type) {
|
|
676
676
|
return /*#__PURE__*/_react["default"].createElement("button", {
|
|
677
677
|
key: type,
|
|
678
678
|
type: "button",
|
|
@@ -1137,7 +1137,25 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
1137
1137
|
className: "text-sm font-medium text-gray-700"
|
|
1138
1138
|
}, "Message"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
1139
1139
|
className: "text-gray-900 bg-gray-50 p-3 rounded whitespace-pre-wrap"
|
|
1140
|
-
}, response.message)),
|
|
1140
|
+
}, response.message)), (selectedForm.fields || []).filter(function (field) {
|
|
1141
|
+
return field.type === 'photo' && response[field.name];
|
|
1142
|
+
}).map(function (field) {
|
|
1143
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
1144
|
+
key: field.name,
|
|
1145
|
+
className: "space-y-1"
|
|
1146
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
1147
|
+
className: "text-sm font-medium text-gray-700"
|
|
1148
|
+
}, field.label), /*#__PURE__*/_react["default"].createElement("a", {
|
|
1149
|
+
href: response[field.name],
|
|
1150
|
+
target: "_blank",
|
|
1151
|
+
rel: "noopener noreferrer",
|
|
1152
|
+
className: "block"
|
|
1153
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
1154
|
+
src: response[field.name],
|
|
1155
|
+
alt: field.label,
|
|
1156
|
+
className: "max-h-40 rounded border border-gray-200 bg-gray-50"
|
|
1157
|
+
})));
|
|
1158
|
+
}), response.paymentProofUrls && response.paymentProofUrls.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
1141
1159
|
className: "space-y-1 md:col-span-2"
|
|
1142
1160
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
1143
1161
|
className: "text-sm font-medium text-gray-700"
|
package/dist/forms/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
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); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -9,9 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
8
|
var _reactHookForm = require("react-hook-form");
|
|
10
9
|
var _axios = _interopRequireDefault(require("axios"));
|
|
11
10
|
var _config = require("../config");
|
|
11
|
+
var _uploader = _interopRequireDefault(require("../uploader"));
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
13
|
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 _t3 in e) "default" !== _t3 && {}.hasOwnProperty.call(e, _t3) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t3)) && (i.get || i.set) ? o(f, _t3, i) : f[_t3] = e[_t3]); return f; })(e, t); }
|
|
14
14
|
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); }
|
|
15
|
+
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); }
|
|
15
16
|
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; }
|
|
16
17
|
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; }
|
|
17
18
|
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; }
|
|
@@ -27,6 +28,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
27
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; }
|
|
28
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; } }
|
|
29
30
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
31
|
+
var UPLOAD_FIELD_TYPES = ["photo", "fileUploader"];
|
|
30
32
|
var PowrForm = function PowrForm(_ref) {
|
|
31
33
|
var formName = _ref.formName,
|
|
32
34
|
projectId = _ref.projectId,
|
|
@@ -37,35 +39,50 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
37
39
|
_ref$className = _ref.className,
|
|
38
40
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
39
41
|
_ref$theme = _ref.theme,
|
|
40
|
-
theme = _ref$theme === void 0 ? "purple" : _ref$theme
|
|
41
|
-
|
|
42
|
+
theme = _ref$theme === void 0 ? "purple" : _ref$theme,
|
|
43
|
+
_ref$embed = _ref.embed,
|
|
44
|
+
embed = _ref$embed === void 0 ? false : _ref$embed,
|
|
45
|
+
_ref$showHeader = _ref.showHeader,
|
|
46
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
|
|
47
|
+
bannerUrl = _ref.bannerUrl,
|
|
48
|
+
title = _ref.title,
|
|
49
|
+
description = _ref.description,
|
|
50
|
+
_ref$requireLogin = _ref.requireLogin,
|
|
51
|
+
requireLogin = _ref$requireLogin === void 0 ? false : _ref$requireLogin,
|
|
52
|
+
_ref$isAuthenticated = _ref.isAuthenticated,
|
|
53
|
+
isAuthenticated = _ref$isAuthenticated === void 0 ? false : _ref$isAuthenticated,
|
|
54
|
+
onNeedLogin = _ref.onNeedLogin,
|
|
55
|
+
extraFields = _ref.extraFields,
|
|
56
|
+
submitLabel = _ref.submitLabel,
|
|
57
|
+
_ref$loginLabel = _ref.loginLabel,
|
|
58
|
+
loginLabel = _ref$loginLabel === void 0 ? "Sign in" : _ref$loginLabel,
|
|
59
|
+
_ref$loginMessage = _ref.loginMessage,
|
|
60
|
+
loginMessage = _ref$loginMessage === void 0 ? "Sign in to send this. Fill the questions first if you want." : _ref$loginMessage,
|
|
61
|
+
authenticatedLabel = _ref.authenticatedLabel;
|
|
62
|
+
var _useState = (0, _react.useState)({}),
|
|
42
63
|
_useState2 = _slicedToArray(_useState, 2),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
var _useState3 = (0, _react.useState)(
|
|
64
|
+
uploads = _useState2[0],
|
|
65
|
+
setUploads = _useState2[1];
|
|
66
|
+
var _useState3 = (0, _react.useState)(null),
|
|
46
67
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var _useState5 = (0, _react.useState)(
|
|
68
|
+
formSchema = _useState4[0],
|
|
69
|
+
setFormSchema = _useState4[1];
|
|
70
|
+
var _useState5 = (0, _react.useState)(true),
|
|
50
71
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var _useState7 = (0, _react.useState)(
|
|
72
|
+
isLoading = _useState6[0],
|
|
73
|
+
setIsLoading = _useState6[1];
|
|
74
|
+
var _useState7 = (0, _react.useState)(null),
|
|
54
75
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
55
|
-
|
|
56
|
-
|
|
76
|
+
error = _useState8[0],
|
|
77
|
+
setError = _useState8[1];
|
|
57
78
|
var _useState9 = (0, _react.useState)(null),
|
|
58
79
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
successMessage = _useState0[0],
|
|
81
|
+
setSuccessMessage = _useState0[1];
|
|
61
82
|
var _useState1 = (0, _react.useState)(null),
|
|
62
83
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var _useState11 = (0, _react.useState)(null),
|
|
66
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
67
|
-
submitError = _useState12[0],
|
|
68
|
-
setSubmitError = _useState12[1];
|
|
84
|
+
submitError = _useState10[0],
|
|
85
|
+
setSubmitError = _useState10[1];
|
|
69
86
|
var submissionId = Math.random().toString(36).substring(2, 10);
|
|
70
87
|
(0, _react.useEffect)(function () {
|
|
71
88
|
var fetchFormSchema = /*#__PURE__*/function () {
|
|
@@ -116,26 +133,53 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
116
133
|
}),
|
|
117
134
|
register = _useForm.register,
|
|
118
135
|
handleSubmit = _useForm.handleSubmit,
|
|
136
|
+
setValue = _useForm.setValue,
|
|
119
137
|
errors = _useForm.formState.errors;
|
|
138
|
+
|
|
139
|
+
// /files needs a Powr token, so a form with an upload field is login-only.
|
|
140
|
+
var hasUploadField = ((formSchema === null || formSchema === void 0 ? void 0 : formSchema.fields) || []).some(function (f) {
|
|
141
|
+
return UPLOAD_FIELD_TYPES.includes(f.type);
|
|
142
|
+
});
|
|
143
|
+
var needsLogin = Boolean(requireLogin || (formSchema === null || formSchema === void 0 ? void 0 : formSchema.requireLogin) || hasUploadField) && !isAuthenticated;
|
|
144
|
+
var setUploadedUrl = function setUploadedUrl(field, files) {
|
|
145
|
+
var url = files !== null && files !== void 0 && files.length ? files[files.length - 1].url : "";
|
|
146
|
+
setUploads(function (prev) {
|
|
147
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, field.name, url));
|
|
148
|
+
});
|
|
149
|
+
setValue(field.name, url, {
|
|
150
|
+
shouldValidate: true
|
|
151
|
+
});
|
|
152
|
+
};
|
|
120
153
|
var onSubmit = /*#__PURE__*/function () {
|
|
121
154
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(data) {
|
|
122
|
-
var finalData, response, resData, errorMsg, _errorMsg, _error$response, _errorMsg2, _t2;
|
|
155
|
+
var paymentProofUrls, finalData, response, resData, errorMsg, _errorMsg, _error$response, _errorMsg2, _t2;
|
|
123
156
|
return _regenerator().w(function (_context2) {
|
|
124
157
|
while (1) switch (_context2.p = _context2.n) {
|
|
125
158
|
case 0:
|
|
126
|
-
|
|
159
|
+
if (!needsLogin) {
|
|
160
|
+
_context2.n = 1;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
if (onNeedLogin) onNeedLogin();
|
|
164
|
+
return _context2.a(2);
|
|
165
|
+
case 1:
|
|
127
166
|
setSubmitError(null);
|
|
128
167
|
setSuccessMessage(null);
|
|
129
|
-
|
|
130
|
-
|
|
168
|
+
paymentProofUrls = ((formSchema === null || formSchema === void 0 ? void 0 : formSchema.fields) || []).filter(function (f) {
|
|
169
|
+
return f.type === "fileUploader" && uploads[f.name];
|
|
170
|
+
}).map(function (f) {
|
|
171
|
+
return uploads[f.name];
|
|
172
|
+
});
|
|
173
|
+
finalData = _objectSpread(_objectSpread(_objectSpread({}, data), extraFields && _typeof(extraFields) === "object" ? extraFields : {}), {}, {
|
|
174
|
+
paymentProofUrls: paymentProofUrls,
|
|
131
175
|
id: submissionId,
|
|
132
176
|
formTitle: formSchema === null || formSchema === void 0 ? void 0 : formSchema.formTitle,
|
|
133
177
|
formName: formSchema === null || formSchema === void 0 ? void 0 : formSchema.formName
|
|
134
178
|
});
|
|
135
|
-
_context2.p =
|
|
136
|
-
_context2.n =
|
|
179
|
+
_context2.p = 2;
|
|
180
|
+
_context2.n = 3;
|
|
137
181
|
return _axios["default"].post("".concat(apiUrl, "/forms/studentform?projectId=").concat(projectId), finalData);
|
|
138
|
-
case
|
|
182
|
+
case 3:
|
|
139
183
|
response = _context2.v;
|
|
140
184
|
resData = response.data;
|
|
141
185
|
if (resData && resData.existingFormId) {
|
|
@@ -150,18 +194,18 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
150
194
|
setSubmitError(_errorMsg);
|
|
151
195
|
if (onSubmitError) onSubmitError(_errorMsg);
|
|
152
196
|
}
|
|
153
|
-
_context2.n =
|
|
197
|
+
_context2.n = 5;
|
|
154
198
|
break;
|
|
155
|
-
case
|
|
156
|
-
_context2.p =
|
|
199
|
+
case 4:
|
|
200
|
+
_context2.p = 4;
|
|
157
201
|
_t2 = _context2.v;
|
|
158
202
|
_errorMsg2 = (_t2 === null || _t2 === void 0 || (_error$response = _t2.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 ? void 0 : _error$response.message) || "Submission failed. Please try again.";
|
|
159
203
|
setSubmitError(_errorMsg2);
|
|
160
204
|
if (onSubmitError) onSubmitError(_errorMsg2);
|
|
161
|
-
case
|
|
205
|
+
case 5:
|
|
162
206
|
return _context2.a(2);
|
|
163
207
|
}
|
|
164
|
-
}, _callee2, null, [[
|
|
208
|
+
}, _callee2, null, [[2, 4]]);
|
|
165
209
|
}));
|
|
166
210
|
return function onSubmit(_x) {
|
|
167
211
|
return _ref3.apply(this, arguments);
|
|
@@ -264,69 +308,110 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
264
308
|
})));
|
|
265
309
|
}
|
|
266
310
|
return null;
|
|
311
|
+
case "photo":
|
|
267
312
|
case "fileUploader":
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
313
|
+
{
|
|
314
|
+
var isPhoto = field.type === "photo";
|
|
315
|
+
return /*#__PURE__*/_react["default"].createElement(InputField, {
|
|
316
|
+
key: field.name,
|
|
317
|
+
label: field.label,
|
|
318
|
+
required: field.required,
|
|
319
|
+
error: errors[field.name] && {
|
|
320
|
+
message: isPhoto ? "Please add a photo." : "Please upload a file."
|
|
321
|
+
},
|
|
322
|
+
description: field.description,
|
|
323
|
+
theme: theme
|
|
324
|
+
}, /*#__PURE__*/_react["default"].createElement("input", _extends({
|
|
325
|
+
type: "hidden"
|
|
326
|
+
}, register(field.name, {
|
|
327
|
+
required: field.required
|
|
328
|
+
}))), isAuthenticated ? /*#__PURE__*/_react["default"].createElement(_uploader["default"], {
|
|
329
|
+
apiUrl: apiUrl,
|
|
330
|
+
projectId: projectId,
|
|
331
|
+
maxFiles: 1,
|
|
332
|
+
acceptedFileTypes: isPhoto ? "image/*" : "image/*,application/pdf",
|
|
333
|
+
onUploadComplete: function onUploadComplete(files) {
|
|
334
|
+
return setUploadedUrl(field, files);
|
|
335
|
+
},
|
|
336
|
+
onRemove: function onRemove(files) {
|
|
337
|
+
return setUploadedUrl(field, files);
|
|
338
|
+
},
|
|
339
|
+
onUploadError: function onUploadError() {
|
|
340
|
+
return setSubmitError("Upload failed. Please try again.");
|
|
285
341
|
}
|
|
286
|
-
},
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
}, "Payment proof is required."));
|
|
342
|
+
}) : /*#__PURE__*/_react["default"].createElement("p", {
|
|
343
|
+
className: "text-sm text-gray-500"
|
|
344
|
+
}, "Sign in to add ", isPhoto ? "a photo" : "a file", "."));
|
|
345
|
+
}
|
|
291
346
|
default:
|
|
292
347
|
return null;
|
|
293
348
|
}
|
|
294
349
|
};
|
|
350
|
+
var shellClass = embed ? "w-full ".concat(className) : "min-h-screen ".concat(theme === "purple" ? "bg-[#f3eaff]" : "bg-".concat(theme, "-50"), " flex justify-center items-start py-12 px-4 ").concat(className);
|
|
351
|
+
var cardClass = embed ? "bg-white w-full" : "bg-white w-full max-w-3xl rounded-lg shadow-lg p-10";
|
|
295
352
|
if (isLoading) {
|
|
296
353
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
297
|
-
className: "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
354
|
+
className: embed ? "py-8 text-center text-gray-600" : "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
298
355
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
299
356
|
className: "text-xl text-gray-600"
|
|
300
357
|
}, "Loading form..."));
|
|
301
358
|
}
|
|
302
359
|
if (error) {
|
|
303
360
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
304
|
-
className: "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
361
|
+
className: embed ? "py-8 text-center text-red-600" : "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
305
362
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
306
363
|
className: "text-xl text-red-600"
|
|
307
364
|
}, "Error: ", error));
|
|
308
365
|
}
|
|
309
366
|
if (!formSchema) {
|
|
310
367
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
311
|
-
className: "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
368
|
+
className: embed ? "py-8 text-center text-red-600" : "min-h-screen bg-gray-50 flex justify-center items-center"
|
|
312
369
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
313
370
|
className: "text-xl text-red-600"
|
|
314
371
|
}, "No form schema found"));
|
|
315
372
|
}
|
|
316
|
-
var bgColor = theme === "purple" ? "bg-[#f3eaff]" : "bg-".concat(theme, "-50");
|
|
317
373
|
var borderColor = theme === "purple" ? "border-purple-600" : "border-".concat(theme, "-600");
|
|
318
374
|
var buttonColor = theme === "purple" ? "bg-purple-600 hover:bg-purple-700" : "bg-".concat(theme, "-600 hover:bg-").concat(theme, "-700");
|
|
375
|
+
var heading = title || formSchema.formTitle;
|
|
376
|
+
var blurb = description || formSchema.description;
|
|
377
|
+
var banner = bannerUrl || formSchema.imageUrl;
|
|
378
|
+
var buttonText = submitLabel || (needsLogin ? "Sign in to submit" : "Submit");
|
|
319
379
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
320
|
-
className:
|
|
380
|
+
className: shellClass
|
|
321
381
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
322
|
-
className:
|
|
382
|
+
className: cardClass
|
|
383
|
+
}, showHeader && banner ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
384
|
+
className: "relative mb-8 overflow-hidden rounded-xl bg-slate-900 text-white"
|
|
323
385
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
386
|
+
className: "absolute inset-0 bg-cover bg-center opacity-40",
|
|
387
|
+
style: {
|
|
388
|
+
backgroundImage: "url('".concat(banner, "')")
|
|
389
|
+
}
|
|
390
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
391
|
+
className: "absolute inset-0 bg-gradient-to-t from-slate-900 via-slate-900/70 to-slate-900/30"
|
|
392
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
393
|
+
className: "relative px-5 py-8"
|
|
394
|
+
}, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
395
|
+
className: "text-2xl font-extrabold md:text-3xl"
|
|
396
|
+
}, heading), blurb ? /*#__PURE__*/_react["default"].createElement("p", {
|
|
397
|
+
className: "mt-2 max-w-xl text-sm text-slate-200"
|
|
398
|
+
}, blurb) : null)) : null, showHeader && !banner ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
324
399
|
className: "border-b-4 ".concat(borderColor, " pb-6 mb-8")
|
|
325
400
|
}, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
326
401
|
className: "text-3xl font-bold text-gray-800"
|
|
327
|
-
},
|
|
402
|
+
}, heading), blurb && /*#__PURE__*/_react["default"].createElement("p", {
|
|
328
403
|
className: "text-gray-600 mt-3 text-base leading-relaxed"
|
|
329
|
-
},
|
|
404
|
+
}, blurb)) : null, needsLogin ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
405
|
+
className: "mb-6 flex flex-col gap-3 rounded-xl border-2 border-yellow-400 bg-[#fff8d6] px-4 py-3 sm:flex-row sm:items-center sm:justify-between"
|
|
406
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
407
|
+
className: "text-sm font-semibold text-slate-900"
|
|
408
|
+
}, loginMessage), onNeedLogin ? /*#__PURE__*/_react["default"].createElement("button", {
|
|
409
|
+
type: "button",
|
|
410
|
+
onClick: onNeedLogin,
|
|
411
|
+
className: "shrink-0 rounded-md bg-slate-900 px-4 py-2 text-sm font-medium text-white hover:bg-slate-800"
|
|
412
|
+
}, loginLabel) : null) : null, isAuthenticated && authenticatedLabel ? /*#__PURE__*/_react["default"].createElement("p", {
|
|
413
|
+
className: "mb-6 text-sm text-slate-600"
|
|
414
|
+
}, authenticatedLabel) : null, successMessage && /*#__PURE__*/_react["default"].createElement("div", {
|
|
330
415
|
className: "mb-8 flex flex-col items-center justify-center p-6 bg-green-50 border border-green-300 rounded-lg shadow animate-fade-in"
|
|
331
416
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
332
417
|
className: "mb-2"
|
|
@@ -368,7 +453,7 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
368
453
|
}, "No form fields found or invalid form structure"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
369
454
|
type: "submit",
|
|
370
455
|
className: "w-full ".concat(buttonColor, " text-white py-3 px-4 rounded-md transition-colors")
|
|
371
|
-
},
|
|
456
|
+
}, buttonText))));
|
|
372
457
|
};
|
|
373
458
|
|
|
374
459
|
// Input field wrapper component
|