powr-sdk-web 5.6.11 → 5.6.13

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.
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _auth = require("../utils/auth");
10
- 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 _t5 in e) "default" !== _t5 && {}.hasOwnProperty.call(e, _t5) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t5)) && (i.get || i.set) ? o(f, _t5, i) : f[_t5] = e[_t5]); return f; })(e, t); }
10
+ 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 _t6 in e) "default" !== _t6 && {}.hasOwnProperty.call(e, _t6) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t6)) && (i.get || i.set) ? o(f, _t6, i) : f[_t6] = e[_t6]); return f; })(e, t); }
11
11
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
12
12
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
13
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
@@ -69,35 +69,60 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
69
69
  formTitle: '',
70
70
  formName: '',
71
71
  formId: '',
72
+ description: '',
73
+ imageUrl: '',
72
74
  fields: []
73
75
  }),
74
76
  _useState16 = _slicedToArray(_useState15, 2),
75
77
  formDraft = _useState16[0],
76
78
  setFormDraft = _useState16[1];
77
- var _useState17 = (0, _react.useState)(null),
79
+ var _useState17 = (0, _react.useState)(false),
78
80
  _useState18 = _slicedToArray(_useState17, 2),
79
- selectedForm = _useState18[0],
80
- setSelectedForm = _useState18[1];
81
- var _useState19 = (0, _react.useState)(false),
81
+ showEditModal = _useState18[0],
82
+ setShowEditModal = _useState18[1];
83
+ var _useState19 = (0, _react.useState)({
84
+ formTitle: '',
85
+ formName: '',
86
+ formId: '',
87
+ description: '',
88
+ imageUrl: '',
89
+ fields: []
90
+ }),
82
91
  _useState20 = _slicedToArray(_useState19, 2),
83
- showDetailModal = _useState20[0],
84
- setShowDetailModal = _useState20[1];
85
- var _useState21 = (0, _react.useState)('responses'),
92
+ editDraft = _useState20[0],
93
+ setEditDraft = _useState20[1];
94
+ var _useState21 = (0, _react.useState)(''),
86
95
  _useState22 = _slicedToArray(_useState21, 2),
87
- activeTab = _useState22[0],
88
- setActiveTab = _useState22[1];
89
- var _useState23 = (0, _react.useState)([]),
96
+ editFeedback = _useState22[0],
97
+ setEditFeedback = _useState22[1];
98
+ var _useState23 = (0, _react.useState)(false),
90
99
  _useState24 = _slicedToArray(_useState23, 2),
91
- formResponses = _useState24[0],
92
- setFormResponses = _useState24[1];
93
- var _useState25 = (0, _react.useState)(0),
100
+ isUpdating = _useState24[0],
101
+ setIsUpdating = _useState24[1];
102
+ var _useState25 = (0, _react.useState)(null),
94
103
  _useState26 = _slicedToArray(_useState25, 2),
95
- responseCount = _useState26[0],
96
- setResponseCount = _useState26[1];
104
+ selectedForm = _useState26[0],
105
+ setSelectedForm = _useState26[1];
97
106
  var _useState27 = (0, _react.useState)(false),
98
107
  _useState28 = _slicedToArray(_useState27, 2),
99
- loadingResponses = _useState28[0],
100
- setLoadingResponses = _useState28[1];
108
+ showDetailModal = _useState28[0],
109
+ setShowDetailModal = _useState28[1];
110
+ var _useState29 = (0, _react.useState)('responses'),
111
+ _useState30 = _slicedToArray(_useState29, 2),
112
+ activeTab = _useState30[0],
113
+ setActiveTab = _useState30[1];
114
+ var _useState31 = (0, _react.useState)([]),
115
+ _useState32 = _slicedToArray(_useState31, 2),
116
+ formResponses = _useState32[0],
117
+ setFormResponses = _useState32[1];
118
+ var _useState33 = (0, _react.useState)(0),
119
+ _useState34 = _slicedToArray(_useState33, 2),
120
+ responseCount = _useState34[0],
121
+ setResponseCount = _useState34[1];
122
+ var _useState35 = (0, _react.useState)(false),
123
+ _useState36 = _slicedToArray(_useState35, 2),
124
+ loadingResponses = _useState36[0],
125
+ setLoadingResponses = _useState36[1];
101
126
  var fetchForms = /*#__PURE__*/function () {
102
127
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
103
128
  var _yield$apiCall, data, ok, _t;
@@ -282,9 +307,105 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
282
307
  formTitle: '',
283
308
  formName: '',
284
309
  formId: '',
310
+ description: '',
311
+ imageUrl: '',
285
312
  fields: []
286
313
  });
287
314
  };
315
+ var populateEditDraft = function populateEditDraft(form) {
316
+ return {
317
+ formTitle: form.formTitle || '',
318
+ formName: form.formName || '',
319
+ formId: form.formId || '',
320
+ description: form.description || '',
321
+ imageUrl: form.imageUrl || '',
322
+ fields: (form.fields || []).map(function (field, index) {
323
+ return _objectSpread({
324
+ id: "".concat(field.name || 'field', "-").concat(index),
325
+ name: field.name || '',
326
+ label: field.label || '',
327
+ type: field.type || 'text',
328
+ required: !!field.required,
329
+ description: field.description || ''
330
+ }, field.type === 'radio' ? {
331
+ options: field.options || []
332
+ } : {});
333
+ })
334
+ };
335
+ };
336
+ var normalizeFieldsForSave = function normalizeFieldsForSave(fields) {
337
+ var usedNames = new Set();
338
+ return fields.map(function (field, index, allFields) {
339
+ var _field$name, _field$description;
340
+ var others = allFields.filter(function (_, i) {
341
+ return i !== index;
342
+ });
343
+ var name = ((_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.trim()) || uniqueFieldName(field.label, index, others);
344
+ var candidate = name;
345
+ var suffix = 2;
346
+ while (usedNames.has(candidate)) {
347
+ candidate = "".concat(name).concat(suffix);
348
+ suffix += 1;
349
+ }
350
+ usedNames.add(candidate);
351
+ return _objectSpread(_objectSpread({
352
+ name: candidate,
353
+ label: field.label.trim(),
354
+ type: field.type,
355
+ required: !!field.required
356
+ }, (_field$description = field.description) !== null && _field$description !== void 0 && _field$description.trim() ? {
357
+ description: field.description.trim()
358
+ } : {}), field.type === 'radio' ? {
359
+ options: field.options || []
360
+ } : {});
361
+ });
362
+ };
363
+ var validateFormDraft = function validateFormDraft(draft) {
364
+ var trimmedTitle = draft.formTitle.trim();
365
+ var trimmedName = draft.formName.trim();
366
+ var trimmedId = draft.formId.trim();
367
+ if (!trimmedTitle || !trimmedName || !trimmedId) {
368
+ return {
369
+ valid: false,
370
+ message: 'Form title, name, and ID are required'
371
+ };
372
+ }
373
+ if (draft.fields.length === 0) {
374
+ return {
375
+ valid: false,
376
+ message: 'Add at least one field'
377
+ };
378
+ }
379
+ var hasInvalidField = draft.fields.some(function (field) {
380
+ var _field$name2, _field$label;
381
+ return !((_field$name2 = field.name) !== null && _field$name2 !== void 0 && _field$name2.trim()) || !((_field$label = field.label) !== null && _field$label !== void 0 && _field$label.trim());
382
+ });
383
+ if (hasInvalidField) {
384
+ return {
385
+ valid: false,
386
+ message: 'Each field needs a name and label'
387
+ };
388
+ }
389
+ var fieldNames = draft.fields.map(function (field) {
390
+ return field.name.trim();
391
+ });
392
+ var duplicateNames = fieldNames.filter(function (name, index) {
393
+ return fieldNames.indexOf(name) !== index;
394
+ });
395
+ if (duplicateNames.length > 0) {
396
+ return {
397
+ valid: false,
398
+ message: "Each field needs a unique name. Duplicate: ".concat(_toConsumableArray(new Set(duplicateNames)).join(', '))
399
+ };
400
+ }
401
+ return {
402
+ valid: true,
403
+ trimmedTitle: trimmedTitle,
404
+ trimmedName: trimmedName,
405
+ trimmedId: trimmedId,
406
+ normalizedFields: normalizeFieldsForSave(draft.fields)
407
+ };
408
+ };
288
409
  var slugify = function slugify(value) {
289
410
  return value.toLowerCase().trim().replace(/[^a-z0-9]+/g, '').slice(0, 32);
290
411
  };
@@ -316,7 +437,8 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
316
437
  id: "".concat(Date.now(), "-").concat(index)
317
438
  }, defaults), {}, {
318
439
  type: type,
319
- required: false
440
+ required: false,
441
+ description: ''
320
442
  }, type === 'radio' ? {
321
443
  options: ['Option 1', 'Option 2']
322
444
  } : {})])
@@ -341,9 +463,50 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
341
463
  });
342
464
  });
343
465
  };
466
+ var addEditField = function addEditField(type) {
467
+ setEditDraft(function (prev) {
468
+ var index = prev.fields.length + 1;
469
+ var defaults = type === 'mobile' ? {
470
+ name: 'whatsapp',
471
+ label: 'Mobile Number'
472
+ } : {
473
+ name: "field".concat(index),
474
+ label: "Field ".concat(index)
475
+ };
476
+ return _objectSpread(_objectSpread({}, prev), {}, {
477
+ fields: [].concat(_toConsumableArray(prev.fields), [_objectSpread(_objectSpread({
478
+ id: "".concat(Date.now(), "-").concat(index)
479
+ }, defaults), {}, {
480
+ type: type,
481
+ required: false,
482
+ description: ''
483
+ }, type === 'radio' ? {
484
+ options: ['Option 1', 'Option 2']
485
+ } : {})])
486
+ });
487
+ });
488
+ };
489
+ var updateEditField = function updateEditField(index, updates) {
490
+ setEditDraft(function (prev) {
491
+ return _objectSpread(_objectSpread({}, prev), {}, {
492
+ fields: prev.fields.map(function (field, i) {
493
+ return i === index ? _objectSpread(_objectSpread({}, field), updates) : field;
494
+ })
495
+ });
496
+ });
497
+ };
498
+ var removeEditField = function removeEditField(index) {
499
+ setEditDraft(function (prev) {
500
+ return _objectSpread(_objectSpread({}, prev), {}, {
501
+ fields: prev.fields.filter(function (_, i) {
502
+ return i !== index;
503
+ })
504
+ });
505
+ });
506
+ };
344
507
  var createForm = /*#__PURE__*/function () {
345
508
  var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
346
- var trimmedTitle, trimmedName, trimmedId, hasInvalidField, fieldNames, duplicateNames, usedNames, normalizedFields, payload, _yield$apiCall3, result, ok, errorMessage, _t4;
509
+ var validation, payload, _yield$apiCall3, result, ok, errorMessage, _t4;
347
510
  return _regenerator().w(function (_context4) {
348
511
  while (1) switch (_context4.p = _context4.n) {
349
512
  case 0:
@@ -355,120 +518,244 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
355
518
  notify('error', 'Project ID is required');
356
519
  return _context4.a(2);
357
520
  case 1:
358
- trimmedTitle = formDraft.formTitle.trim();
359
- trimmedName = formDraft.formName.trim();
360
- trimmedId = formDraft.formId.trim();
361
- if (!(!trimmedTitle || !trimmedName || !trimmedId)) {
521
+ validation = validateFormDraft(formDraft);
522
+ if (validation.valid) {
362
523
  _context4.n = 2;
363
524
  break;
364
525
  }
365
- notify('error', 'Form title, name, and ID are required');
526
+ notify('error', validation.message);
366
527
  return _context4.a(2);
367
528
  case 2:
368
- if (!(formDraft.fields.length === 0)) {
369
- _context4.n = 3;
370
- break;
371
- }
372
- notify('error', 'Add at least one field');
373
- return _context4.a(2);
374
- case 3:
375
- hasInvalidField = formDraft.fields.some(function (field) {
376
- var _field$name, _field$label;
377
- return !((_field$name = field.name) !== null && _field$name !== void 0 && _field$name.trim()) || !((_field$label = field.label) !== null && _field$label !== void 0 && _field$label.trim());
378
- });
379
- if (!hasInvalidField) {
380
- _context4.n = 4;
381
- break;
382
- }
383
- notify('error', 'Each field needs a name and label');
384
- return _context4.a(2);
385
- case 4:
386
- fieldNames = formDraft.fields.map(function (field) {
387
- return field.name.trim();
388
- });
389
- duplicateNames = fieldNames.filter(function (name, index) {
390
- return fieldNames.indexOf(name) !== index;
391
- });
392
- if (!(duplicateNames.length > 0)) {
393
- _context4.n = 5;
394
- break;
395
- }
396
- notify('error', "Each field needs a unique name. Duplicate: ".concat(_toConsumableArray(new Set(duplicateNames)).join(', ')));
397
- return _context4.a(2);
398
- case 5:
399
529
  setIsSaving(true);
400
- _context4.p = 6;
401
- usedNames = new Set();
402
- normalizedFields = formDraft.fields.map(function (field, index, allFields) {
403
- var _field$name2;
404
- var others = allFields.filter(function (_, i) {
405
- return i !== index;
406
- });
407
- var name = ((_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.trim()) || uniqueFieldName(field.label, index, others);
408
- var candidate = name;
409
- var suffix = 2;
410
- while (usedNames.has(candidate)) {
411
- candidate = "".concat(name).concat(suffix);
412
- suffix += 1;
413
- }
414
- usedNames.add(candidate);
415
- return _objectSpread({
416
- name: candidate,
417
- label: field.label.trim(),
418
- type: field.type,
419
- required: !!field.required
420
- }, field.type === 'radio' ? {
421
- options: field.options || []
422
- } : {});
423
- });
530
+ _context4.p = 3;
424
531
  payload = {
425
- formTitle: trimmedTitle,
426
- formName: trimmedName,
427
- formId: trimmedId,
428
- fields: normalizedFields
532
+ formTitle: validation.trimmedTitle,
533
+ formName: validation.trimmedName,
534
+ formId: validation.trimmedId,
535
+ description: formDraft.description.trim(),
536
+ imageUrl: formDraft.imageUrl.trim(),
537
+ fields: validation.normalizedFields
429
538
  };
430
- _context4.n = 7;
539
+ _context4.n = 4;
431
540
  return (0, _auth.apiCall)(apiUrl, "/forms/create-form", projectId, {
432
541
  method: 'POST',
433
542
  body: payload
434
543
  });
435
- case 7:
544
+ case 4:
436
545
  _yield$apiCall3 = _context4.v;
437
546
  result = _yield$apiCall3.data;
438
547
  ok = _yield$apiCall3.ok;
439
548
  if (ok) {
440
- _context4.n = 8;
549
+ _context4.n = 5;
441
550
  break;
442
551
  }
443
552
  throw new Error(result.message || 'Failed to create form');
444
- case 8:
553
+ case 5:
445
554
  notify('success', result.message || 'Form created successfully!');
446
- setCreatedFormLink(getFormPublicUrl(trimmedName));
555
+ setCreatedFormLink(getFormPublicUrl(validation.trimmedName));
447
556
  fetchForms();
448
557
  if (onRefresh) {
449
558
  onRefresh();
450
559
  }
451
- _context4.n = 10;
560
+ _context4.n = 7;
452
561
  break;
453
- case 9:
454
- _context4.p = 9;
562
+ case 6:
563
+ _context4.p = 6;
455
564
  _t4 = _context4.v;
456
565
  console.error('Error creating form:', _t4);
457
566
  errorMessage = _t4 instanceof Error ? _t4.message : 'Failed to create form';
458
567
  notify('error', errorMessage);
459
- case 10:
460
- _context4.p = 10;
568
+ case 7:
569
+ _context4.p = 7;
461
570
  setIsSaving(false);
462
- return _context4.f(10);
463
- case 11:
571
+ return _context4.f(7);
572
+ case 8:
464
573
  return _context4.a(2);
465
574
  }
466
- }, _callee4, null, [[6, 9, 10, 11]]);
575
+ }, _callee4, null, [[3, 6, 7, 8]]);
467
576
  }));
468
577
  return function createForm() {
469
578
  return _ref6.apply(this, arguments);
470
579
  };
471
580
  }();
581
+ var updateForm = /*#__PURE__*/function () {
582
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
583
+ var validation, payload, _yield$apiCall4, result, ok, updatedForm, _t5;
584
+ return _regenerator().w(function (_context5) {
585
+ while (1) switch (_context5.p = _context5.n) {
586
+ case 0:
587
+ setEditFeedback('');
588
+ if (projectId) {
589
+ _context5.n = 1;
590
+ break;
591
+ }
592
+ setEditFeedback('Project ID is required');
593
+ return _context5.a(2);
594
+ case 1:
595
+ validation = validateFormDraft(editDraft);
596
+ if (validation.valid) {
597
+ _context5.n = 2;
598
+ break;
599
+ }
600
+ setEditFeedback(validation.message);
601
+ return _context5.a(2);
602
+ case 2:
603
+ setIsUpdating(true);
604
+ _context5.p = 3;
605
+ payload = {
606
+ formTitle: validation.trimmedTitle,
607
+ formId: validation.trimmedId,
608
+ description: editDraft.description.trim(),
609
+ imageUrl: editDraft.imageUrl.trim(),
610
+ fields: validation.normalizedFields
611
+ };
612
+ _context5.n = 4;
613
+ return (0, _auth.apiCall)(apiUrl, "/forms/update-form/".concat(encodeURIComponent(editDraft.formName)), projectId, {
614
+ method: 'PUT',
615
+ body: payload
616
+ });
617
+ case 4:
618
+ _yield$apiCall4 = _context5.v;
619
+ result = _yield$apiCall4.data;
620
+ ok = _yield$apiCall4.ok;
621
+ if (ok) {
622
+ _context5.n = 5;
623
+ break;
624
+ }
625
+ throw new Error(result.message || 'Failed to update form');
626
+ case 5:
627
+ updatedForm = result.data || _objectSpread(_objectSpread(_objectSpread({}, selectedForm), payload), {}, {
628
+ formName: editDraft.formName
629
+ });
630
+ setSelectedForm(updatedForm);
631
+ setShowEditModal(false);
632
+ setEditFeedback('');
633
+ fetchForms();
634
+ if (onRefresh) {
635
+ onRefresh();
636
+ }
637
+ if (onFormAction) {
638
+ onFormAction('success', result.message || 'Form updated successfully!');
639
+ }
640
+ _context5.n = 7;
641
+ break;
642
+ case 6:
643
+ _context5.p = 6;
644
+ _t5 = _context5.v;
645
+ console.error('Error updating form:', _t5);
646
+ setEditFeedback(_t5 instanceof Error ? _t5.message : 'Failed to update form');
647
+ case 7:
648
+ _context5.p = 7;
649
+ setIsUpdating(false);
650
+ return _context5.f(7);
651
+ case 8:
652
+ return _context5.a(2);
653
+ }
654
+ }, _callee5, null, [[3, 6, 7, 8]]);
655
+ }));
656
+ return function updateForm() {
657
+ return _ref7.apply(this, arguments);
658
+ };
659
+ }();
660
+ var openEditModal = function openEditModal(form) {
661
+ setEditDraft(populateEditDraft(form));
662
+ setEditFeedback('');
663
+ setShowEditModal(true);
664
+ };
665
+ var renderFieldBuilder = function renderFieldBuilder(draft, _ref8) {
666
+ var addFieldFn = _ref8.addFieldFn,
667
+ updateFieldFn = _ref8.updateFieldFn,
668
+ removeFieldFn = _ref8.removeFieldFn;
669
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
670
+ className: "flex items-center justify-between mb-3"
671
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
672
+ className: "text-sm font-semibold text-gray-900"
673
+ }, "Fields"), /*#__PURE__*/_react["default"].createElement("div", {
674
+ className: "flex flex-wrap gap-2"
675
+ }, ['text', 'email', 'mobile', 'textarea', 'radio', 'fileUploader'].map(function (type) {
676
+ return /*#__PURE__*/_react["default"].createElement("button", {
677
+ key: type,
678
+ type: "button",
679
+ onClick: function onClick() {
680
+ return addFieldFn(type);
681
+ },
682
+ className: "px-3 py-1 text-xs rounded-full border border-gray-300 hover:bg-gray-50"
683
+ }, "+ ", type);
684
+ }))), draft.fields.length === 0 ? /*#__PURE__*/_react["default"].createElement("div", {
685
+ className: "rounded-lg border border-dashed border-gray-300 p-6 text-center text-sm text-gray-500"
686
+ }, "Add fields using the buttons above") : /*#__PURE__*/_react["default"].createElement("div", {
687
+ className: "space-y-4"
688
+ }, draft.fields.map(function (field, index) {
689
+ return /*#__PURE__*/_react["default"].createElement("div", {
690
+ key: field.id || index,
691
+ className: "rounded-lg border border-gray-200 p-4 space-y-3"
692
+ }, /*#__PURE__*/_react["default"].createElement("div", {
693
+ className: "flex items-center justify-between"
694
+ }, /*#__PURE__*/_react["default"].createElement("span", {
695
+ className: "text-sm font-medium text-gray-700 capitalize"
696
+ }, field.type, " field"), /*#__PURE__*/_react["default"].createElement("button", {
697
+ type: "button",
698
+ onClick: function onClick() {
699
+ return removeFieldFn(index);
700
+ },
701
+ className: "text-sm text-red-600 hover:text-red-700"
702
+ }, "Remove")), /*#__PURE__*/_react["default"].createElement("div", {
703
+ className: "grid grid-cols-1 md:grid-cols-2 gap-3"
704
+ }, /*#__PURE__*/_react["default"].createElement("input", {
705
+ type: "text",
706
+ value: field.label,
707
+ onChange: function onChange(e) {
708
+ return updateFieldFn(index, {
709
+ label: e.target.value
710
+ });
711
+ },
712
+ placeholder: "Label",
713
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md"
714
+ }), /*#__PURE__*/_react["default"].createElement("input", {
715
+ type: "text",
716
+ value: field.name,
717
+ onChange: function onChange(e) {
718
+ return updateFieldFn(index, {
719
+ name: slugify(e.target.value)
720
+ });
721
+ },
722
+ placeholder: "name",
723
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md"
724
+ })), /*#__PURE__*/_react["default"].createElement("input", {
725
+ type: "text",
726
+ value: field.description || '',
727
+ onChange: function onChange(e) {
728
+ return updateFieldFn(index, {
729
+ description: e.target.value
730
+ });
731
+ },
732
+ placeholder: "Help text (optional, shown below the label)",
733
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md text-sm"
734
+ }), /*#__PURE__*/_react["default"].createElement("label", {
735
+ className: "flex items-center gap-2 text-sm text-gray-700"
736
+ }, /*#__PURE__*/_react["default"].createElement("input", {
737
+ type: "checkbox",
738
+ checked: !!field.required,
739
+ onChange: function onChange(e) {
740
+ return updateFieldFn(index, {
741
+ required: e.target.checked
742
+ });
743
+ }
744
+ }), "Required"), field.type === 'radio' && /*#__PURE__*/_react["default"].createElement("textarea", {
745
+ value: (field.options || []).join('\n'),
746
+ onChange: function onChange(e) {
747
+ return updateFieldFn(index, {
748
+ options: e.target.value.split('\n').map(function (option) {
749
+ return option.trim();
750
+ }).filter(Boolean)
751
+ });
752
+ },
753
+ placeholder: "One option per line",
754
+ rows: 3,
755
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md"
756
+ }));
757
+ })));
758
+ };
472
759
  var handleViewForm = function handleViewForm(form) {
473
760
  setSelectedForm(form);
474
761
  setActiveTab('responses');
@@ -652,85 +939,45 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
652
939
  }, "Public form link"), /*#__PURE__*/_react["default"].createElement(FormPublicLink, {
653
940
  formName: formDraft.formName.trim(),
654
941
  compact: true
655
- })))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
656
- className: "flex items-center justify-between mb-3"
657
- }, /*#__PURE__*/_react["default"].createElement("h3", {
658
- className: "text-sm font-semibold text-gray-900"
659
- }, "Fields"), /*#__PURE__*/_react["default"].createElement("div", {
660
- className: "flex flex-wrap gap-2"
661
- }, ['text', 'email', 'mobile', 'textarea', 'radio', 'fileUploader'].map(function (type) {
662
- return /*#__PURE__*/_react["default"].createElement("button", {
663
- key: type,
664
- type: "button",
665
- onClick: function onClick() {
666
- return addField(type);
667
- },
668
- className: "px-3 py-1 text-xs rounded-full border border-gray-300 hover:bg-gray-50"
669
- }, "+ ", type);
670
- }))), formDraft.fields.length === 0 ? /*#__PURE__*/_react["default"].createElement("div", {
671
- className: "rounded-lg border border-dashed border-gray-300 p-6 text-center text-sm text-gray-500"
672
- }, "Add fields using the buttons above") : /*#__PURE__*/_react["default"].createElement("div", {
673
- className: "space-y-4"
674
- }, formDraft.fields.map(function (field, index) {
675
- return /*#__PURE__*/_react["default"].createElement("div", {
676
- key: field.id || index,
677
- className: "rounded-lg border border-gray-200 p-4 space-y-3"
678
- }, /*#__PURE__*/_react["default"].createElement("div", {
679
- className: "flex items-center justify-between"
680
- }, /*#__PURE__*/_react["default"].createElement("span", {
681
- className: "text-sm font-medium text-gray-700 capitalize"
682
- }, field.type, " field"), /*#__PURE__*/_react["default"].createElement("button", {
683
- type: "button",
684
- onClick: function onClick() {
685
- return removeField(index);
686
- },
687
- className: "text-sm text-red-600 hover:text-red-700"
688
- }, "Remove")), /*#__PURE__*/_react["default"].createElement("div", {
689
- className: "grid grid-cols-1 md:grid-cols-2 gap-3"
690
- }, /*#__PURE__*/_react["default"].createElement("input", {
691
- type: "text",
692
- value: field.label,
693
- onChange: function onChange(e) {
694
- return updateField(index, {
695
- label: e.target.value
696
- });
697
- },
698
- placeholder: "Label",
699
- className: "w-full px-3 py-2 border border-gray-300 rounded-md"
700
- }), /*#__PURE__*/_react["default"].createElement("input", {
701
- type: "text",
702
- value: field.name,
703
- onChange: function onChange(e) {
704
- return updateField(index, {
705
- name: slugify(e.target.value)
706
- });
707
- },
708
- placeholder: "name",
709
- className: "w-full px-3 py-2 border border-gray-300 rounded-md"
710
- })), /*#__PURE__*/_react["default"].createElement("label", {
711
- className: "flex items-center gap-2 text-sm text-gray-700"
712
- }, /*#__PURE__*/_react["default"].createElement("input", {
713
- type: "checkbox",
714
- checked: !!field.required,
715
- onChange: function onChange(e) {
716
- return updateField(index, {
717
- required: e.target.checked
942
+ })))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
943
+ htmlFor: "formDescription",
944
+ className: "block text-sm font-medium text-gray-700 mb-1"
945
+ }, "Description (optional)"), /*#__PURE__*/_react["default"].createElement("textarea", {
946
+ id: "formDescription",
947
+ value: formDraft.description,
948
+ onChange: function onChange(e) {
949
+ return setFormDraft(function (prev) {
950
+ return _objectSpread(_objectSpread({}, prev), {}, {
951
+ description: e.target.value
718
952
  });
719
- }
720
- }), "Required"), field.type === 'radio' && /*#__PURE__*/_react["default"].createElement("textarea", {
721
- value: (field.options || []).join('\n'),
722
- onChange: function onChange(e) {
723
- return updateField(index, {
724
- options: e.target.value.split('\n').map(function (option) {
725
- return option.trim();
726
- }).filter(Boolean)
953
+ });
954
+ },
955
+ placeholder: "Instructions or context shown at the top of the public form",
956
+ rows: 3,
957
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
958
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
959
+ htmlFor: "formImageUrl",
960
+ className: "block text-sm font-medium text-gray-700 mb-1"
961
+ }, "Banner / share image URL (optional)"), /*#__PURE__*/_react["default"].createElement("input", {
962
+ id: "formImageUrl",
963
+ type: "url",
964
+ value: formDraft.imageUrl,
965
+ onChange: function onChange(e) {
966
+ return setFormDraft(function (prev) {
967
+ return _objectSpread(_objectSpread({}, prev), {}, {
968
+ imageUrl: e.target.value
727
969
  });
728
- },
729
- placeholder: "One option per line",
730
- rows: 3,
731
- className: "w-full px-3 py-2 border border-gray-300 rounded-md"
732
- }));
733
- })))), /*#__PURE__*/_react["default"].createElement("div", {
970
+ });
971
+ },
972
+ placeholder: "https://www.excelrs.dev/bannar1.jpg",
973
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
974
+ }), /*#__PURE__*/_react["default"].createElement("p", {
975
+ className: "text-xs text-gray-500 mt-1"
976
+ }, "Used for the form banner and link previews (Open Graph / Twitter).")), renderFieldBuilder(formDraft, {
977
+ addFieldFn: addField,
978
+ updateFieldFn: updateField,
979
+ removeFieldFn: removeField
980
+ })), /*#__PURE__*/_react["default"].createElement("div", {
734
981
  className: "flex justify-end gap-4 mt-6"
735
982
  }, createdFormLink ? /*#__PURE__*/_react["default"].createElement("button", {
736
983
  type: "button",
@@ -763,7 +1010,15 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
763
1010
  className: "flex items-center justify-between mb-6"
764
1011
  }, /*#__PURE__*/_react["default"].createElement("h2", {
765
1012
  className: "text-xl font-bold text-gray-800"
766
- }, selectedForm.formTitle), /*#__PURE__*/_react["default"].createElement("button", {
1013
+ }, selectedForm.formTitle), /*#__PURE__*/_react["default"].createElement("div", {
1014
+ className: "flex items-center gap-2"
1015
+ }, /*#__PURE__*/_react["default"].createElement("button", {
1016
+ type: "button",
1017
+ onClick: function onClick() {
1018
+ return openEditModal(selectedForm);
1019
+ },
1020
+ className: "text-sm bg-blue-600 hover:bg-blue-700 text-white px-3 py-1.5 rounded-md"
1021
+ }, "Edit Form"), /*#__PURE__*/_react["default"].createElement("button", {
767
1022
  onClick: function onClick() {
768
1023
  return setShowDetailModal(false);
769
1024
  },
@@ -778,7 +1033,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
778
1033
  strokeLinejoin: "round",
779
1034
  strokeWidth: 2,
780
1035
  d: "M6 18L18 6M6 6l12 12"
781
- })))), /*#__PURE__*/_react["default"].createElement("div", {
1036
+ }))))), /*#__PURE__*/_react["default"].createElement("div", {
782
1037
  className: "mb-4 rounded-lg border border-blue-100 bg-blue-50 px-4 py-3"
783
1038
  }, /*#__PURE__*/_react["default"].createElement("p", {
784
1039
  className: "text-sm font-medium text-blue-900 mb-1"
@@ -810,7 +1065,19 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
810
1065
  className: "font-medium text-gray-700"
811
1066
  }, "Form Name:"), /*#__PURE__*/_react["default"].createElement("p", {
812
1067
  className: "text-gray-900"
813
- }, selectedForm.formName))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("p", {
1068
+ }, selectedForm.formName)), selectedForm.description && /*#__PURE__*/_react["default"].createElement("div", {
1069
+ className: "md:col-span-2"
1070
+ }, /*#__PURE__*/_react["default"].createElement("p", {
1071
+ className: "font-medium text-gray-700"
1072
+ }, "Description:"), /*#__PURE__*/_react["default"].createElement("p", {
1073
+ className: "text-gray-900 whitespace-pre-wrap"
1074
+ }, selectedForm.description)), selectedForm.imageUrl && /*#__PURE__*/_react["default"].createElement("div", {
1075
+ className: "md:col-span-2"
1076
+ }, /*#__PURE__*/_react["default"].createElement("p", {
1077
+ className: "font-medium text-gray-700"
1078
+ }, "Banner / share image:"), /*#__PURE__*/_react["default"].createElement("p", {
1079
+ className: "text-gray-900 break-all"
1080
+ }, selectedForm.imageUrl))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("p", {
814
1081
  className: "font-medium text-gray-700 mb-2"
815
1082
  }, "Form Fields:"), /*#__PURE__*/_react["default"].createElement("div", {
816
1083
  className: "bg-gray-50 p-4 rounded-lg"
@@ -893,6 +1160,115 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
893
1160
  }, "View Raw Data"), /*#__PURE__*/_react["default"].createElement("pre", {
894
1161
  className: "mt-2 text-xs bg-gray-50 p-3 rounded overflow-x-auto"
895
1162
  }, JSON.stringify(response, null, 2)))));
896
- }))))));
1163
+ }))))), showEditModal && /*#__PURE__*/_react["default"].createElement("div", {
1164
+ className: "fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-[60] p-4"
1165
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1166
+ className: "bg-white rounded-2xl shadow-xl p-8 w-full max-w-3xl max-h-[90vh] overflow-y-auto"
1167
+ }, /*#__PURE__*/_react["default"].createElement("h2", {
1168
+ className: "text-xl font-bold text-gray-800 mb-6"
1169
+ }, "Edit Form"), editFeedback && /*#__PURE__*/_react["default"].createElement("div", {
1170
+ className: "mb-4 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700"
1171
+ }, editFeedback), /*#__PURE__*/_react["default"].createElement("div", {
1172
+ className: "space-y-6"
1173
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1174
+ className: "grid grid-cols-1 md:grid-cols-2 gap-4"
1175
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
1176
+ htmlFor: "editFormTitle",
1177
+ className: "block text-sm font-medium text-gray-700 mb-1"
1178
+ }, "Form Title *"), /*#__PURE__*/_react["default"].createElement("input", {
1179
+ id: "editFormTitle",
1180
+ type: "text",
1181
+ value: editDraft.formTitle,
1182
+ onChange: function onChange(e) {
1183
+ return setEditDraft(function (prev) {
1184
+ return _objectSpread(_objectSpread({}, prev), {}, {
1185
+ formTitle: e.target.value
1186
+ });
1187
+ });
1188
+ },
1189
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
1190
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
1191
+ htmlFor: "editFormId",
1192
+ className: "block text-sm font-medium text-gray-700 mb-1"
1193
+ }, "Form ID *"), /*#__PURE__*/_react["default"].createElement("input", {
1194
+ id: "editFormId",
1195
+ type: "text",
1196
+ value: editDraft.formId,
1197
+ onChange: function onChange(e) {
1198
+ return setEditDraft(function (prev) {
1199
+ return _objectSpread(_objectSpread({}, prev), {}, {
1200
+ formId: e.target.value.toUpperCase()
1201
+ });
1202
+ });
1203
+ },
1204
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
1205
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1206
+ className: "md:col-span-2"
1207
+ }, /*#__PURE__*/_react["default"].createElement("label", {
1208
+ htmlFor: "editFormName",
1209
+ className: "block text-sm font-medium text-gray-700 mb-1"
1210
+ }, "Form Name (URL slug)"), /*#__PURE__*/_react["default"].createElement("input", {
1211
+ id: "editFormName",
1212
+ type: "text",
1213
+ value: editDraft.formName,
1214
+ disabled: true,
1215
+ className: "w-full px-3 py-2 border border-gray-200 rounded-md bg-gray-50 text-gray-500"
1216
+ }), /*#__PURE__*/_react["default"].createElement("p", {
1217
+ className: "text-xs text-gray-500 mt-1"
1218
+ }, "Form name cannot be changed after creation"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
1219
+ htmlFor: "editFormDescription",
1220
+ className: "block text-sm font-medium text-gray-700 mb-1"
1221
+ }, "Description (optional)"), /*#__PURE__*/_react["default"].createElement("textarea", {
1222
+ id: "editFormDescription",
1223
+ value: editDraft.description,
1224
+ onChange: function onChange(e) {
1225
+ return setEditDraft(function (prev) {
1226
+ return _objectSpread(_objectSpread({}, prev), {}, {
1227
+ description: e.target.value
1228
+ });
1229
+ });
1230
+ },
1231
+ placeholder: "Instructions or context shown at the top of the public form",
1232
+ rows: 3,
1233
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
1234
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
1235
+ htmlFor: "editFormImageUrl",
1236
+ className: "block text-sm font-medium text-gray-700 mb-1"
1237
+ }, "Banner / share image URL (optional)"), /*#__PURE__*/_react["default"].createElement("input", {
1238
+ id: "editFormImageUrl",
1239
+ type: "url",
1240
+ value: editDraft.imageUrl,
1241
+ onChange: function onChange(e) {
1242
+ return setEditDraft(function (prev) {
1243
+ return _objectSpread(_objectSpread({}, prev), {}, {
1244
+ imageUrl: e.target.value
1245
+ });
1246
+ });
1247
+ },
1248
+ placeholder: "https://www.excelrs.dev/bannar1.jpg",
1249
+ className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
1250
+ }), /*#__PURE__*/_react["default"].createElement("p", {
1251
+ className: "text-xs text-gray-500 mt-1"
1252
+ }, "Used for the form banner and link previews (Open Graph / Twitter).")), renderFieldBuilder(editDraft, {
1253
+ addFieldFn: addEditField,
1254
+ updateFieldFn: updateEditField,
1255
+ removeFieldFn: removeEditField
1256
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1257
+ className: "flex justify-end gap-4 mt-6"
1258
+ }, /*#__PURE__*/_react["default"].createElement("button", {
1259
+ type: "button",
1260
+ onClick: function onClick() {
1261
+ setShowEditModal(false);
1262
+ setEditFeedback('');
1263
+ },
1264
+ className: "bg-gray-300 text-gray-700 hover:bg-gray-400 px-4 py-2 rounded-md"
1265
+ }, "Cancel"), /*#__PURE__*/_react["default"].createElement("button", {
1266
+ type: "button",
1267
+ onClick: updateForm,
1268
+ disabled: isUpdating,
1269
+ className: "bg-blue-600 text-white hover:bg-blue-700 px-4 py-2 rounded-md disabled:opacity-50"
1270
+ }, isUpdating ? /*#__PURE__*/_react["default"].createElement("div", {
1271
+ className: "animate-spin h-5 w-5 mx-auto border-2 border-white border-t-transparent rounded-full"
1272
+ }) : 'Save Changes')))));
897
1273
  };
898
1274
  var _default = exports["default"] = PowrFormsAdmin;
@@ -176,6 +176,7 @@ var PowrForm = function PowrForm(_ref) {
176
176
  label: field.label,
177
177
  required: field.required,
178
178
  error: errors[field.name],
179
+ description: field.description,
179
180
  theme: theme
180
181
  }, /*#__PURE__*/_react["default"].createElement("input", _extends({
181
182
  type: "email"
@@ -194,6 +195,7 @@ var PowrForm = function PowrForm(_ref) {
194
195
  label: field.label,
195
196
  required: field.required,
196
197
  error: errors[field.name],
198
+ description: field.description,
197
199
  theme: theme
198
200
  }, /*#__PURE__*/_react["default"].createElement("input", _extends({
199
201
  type: "text"
@@ -208,6 +210,7 @@ var PowrForm = function PowrForm(_ref) {
208
210
  label: field.label,
209
211
  required: field.required,
210
212
  error: errors[field.name],
213
+ description: field.description,
211
214
  theme: theme
212
215
  }, /*#__PURE__*/_react["default"].createElement("input", _extends({
213
216
  type: "tel",
@@ -226,7 +229,8 @@ var PowrForm = function PowrForm(_ref) {
226
229
  return /*#__PURE__*/_react["default"].createElement(InputField, {
227
230
  key: field.name,
228
231
  label: field.label,
229
- required: field.required
232
+ required: field.required,
233
+ description: field.description
230
234
  }, /*#__PURE__*/_react["default"].createElement("textarea", _extends({}, register(field.name, {
231
235
  required: field.required
232
236
  }), {
@@ -240,6 +244,7 @@ var PowrForm = function PowrForm(_ref) {
240
244
  options: field.options || [],
241
245
  register: register,
242
246
  error: errors[field.name],
247
+ description: field.description,
243
248
  theme: theme
244
249
  });
245
250
  case "custom":
@@ -267,7 +272,9 @@ var PowrForm = function PowrForm(_ref) {
267
272
  className: "block text-base font-medium mb-1"
268
273
  }, field.label, " ", field.required && /*#__PURE__*/_react["default"].createElement("span", {
269
274
  className: "text-red-600"
270
- }, "*")), /*#__PURE__*/_react["default"].createElement("input", {
275
+ }, "*")), field.description && /*#__PURE__*/_react["default"].createElement("p", {
276
+ className: "text-sm text-gray-500 mb-2"
277
+ }, field.description), /*#__PURE__*/_react["default"].createElement("input", {
271
278
  type: "file",
272
279
  accept: "image/*,application/pdf",
273
280
  onChange: function onChange(e) {
@@ -317,7 +324,9 @@ var PowrForm = function PowrForm(_ref) {
317
324
  className: "border-b-4 ".concat(borderColor, " pb-6 mb-8")
318
325
  }, /*#__PURE__*/_react["default"].createElement("h1", {
319
326
  className: "text-3xl font-bold text-gray-800"
320
- }, formSchema.formTitle)), successMessage && /*#__PURE__*/_react["default"].createElement("div", {
327
+ }, formSchema.formTitle), formSchema.description && /*#__PURE__*/_react["default"].createElement("p", {
328
+ className: "text-gray-600 mt-3 text-base leading-relaxed"
329
+ }, formSchema.description)), successMessage && /*#__PURE__*/_react["default"].createElement("div", {
321
330
  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"
322
331
  }, /*#__PURE__*/_react["default"].createElement("div", {
323
332
  className: "mb-2"
@@ -368,13 +377,16 @@ var InputField = function InputField(_ref4) {
368
377
  required = _ref4.required,
369
378
  error = _ref4.error,
370
379
  children = _ref4.children,
380
+ description = _ref4.description,
371
381
  _ref4$theme = _ref4.theme,
372
382
  theme = _ref4$theme === void 0 ? "purple" : _ref4$theme;
373
383
  return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
374
384
  className: "block text-base font-medium mb-1"
375
385
  }, label, " ", required && /*#__PURE__*/_react["default"].createElement("span", {
376
386
  className: "text-red-600"
377
- }, "*")), children, error && /*#__PURE__*/_react["default"].createElement("p", {
387
+ }, "*")), description && /*#__PURE__*/_react["default"].createElement("p", {
388
+ className: "text-sm text-gray-500 mb-2"
389
+ }, description), children, error && /*#__PURE__*/_react["default"].createElement("p", {
378
390
  className: "text-red-600 text-sm mt-1"
379
391
  }, error.message));
380
392
  };
@@ -386,13 +398,16 @@ var RadioGroup = function RadioGroup(_ref5) {
386
398
  options = _ref5.options,
387
399
  register = _ref5.register,
388
400
  error = _ref5.error,
401
+ description = _ref5.description,
389
402
  _ref5$theme = _ref5.theme,
390
403
  theme = _ref5$theme === void 0 ? "purple" : _ref5$theme;
391
404
  return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
392
405
  className: "block text-base font-medium mb-2"
393
406
  }, label, " ", /*#__PURE__*/_react["default"].createElement("span", {
394
407
  className: "text-red-600"
395
- }, "*")), /*#__PURE__*/_react["default"].createElement("div", {
408
+ }, "*")), description && /*#__PURE__*/_react["default"].createElement("p", {
409
+ className: "text-sm text-gray-500 mb-2"
410
+ }, description), /*#__PURE__*/_react["default"].createElement("div", {
396
411
  className: "flex flex-col gap-3"
397
412
  }, options.map(function (option) {
398
413
  return /*#__PURE__*/_react["default"].createElement("label", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "5.6.11",
3
+ "version": "5.6.13",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",