teraprox-ui-kit 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -30,9 +30,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ ActionButtons: () => ActionButtons,
33
34
  AddButton: () => AddButton_default,
35
+ AutoComplete: () => AutoComplete,
34
36
  ConfigObject: () => ConfigObject,
35
37
  DeleteButton: () => DeleteButton_default,
38
+ DeleteConfirm: () => DeleteConfirm,
36
39
  GenericDisplay: () => GenericDisplay_default,
37
40
  GenericForm: () => GenericForm_default,
38
41
  GenericSelect: () => GenericSelect_default,
@@ -66,9 +69,207 @@ var DeleteButton = ({ title, onDeleteClick }) => {
66
69
  };
67
70
  var DeleteButton_default = DeleteButton;
68
71
 
69
- // src/containers/ResponsiveContainer.tsx
72
+ // src/buttons/ActionButtons.tsx
73
+ var import_react2 = require("react");
74
+ var import_react_bootstrap4 = require("react-bootstrap");
75
+ var import_fi = require("react-icons/fi");
76
+
77
+ // src/forms/DeleteConfirm.tsx
78
+ var import_react = require("react");
70
79
  var import_react_bootstrap3 = require("react-bootstrap");
71
80
  var import_jsx_runtime3 = require("react/jsx-runtime");
81
+ var DeleteConfirm = ({
82
+ show,
83
+ onHide,
84
+ onConfirm,
85
+ title = "Confirma\xE7\xE3o de Exclus\xE3o",
86
+ dialogText,
87
+ payload,
88
+ needExclusionDetails = false
89
+ }) => {
90
+ const [exclusionDetails, setExclusionDetails] = (0, import_react.useState)("");
91
+ const getDialogContent = () => {
92
+ if (typeof dialogText === "function" && payload) {
93
+ return dialogText(payload);
94
+ }
95
+ return dialogText || "Voc\xEA tem certeza que deseja excluir este item?";
96
+ };
97
+ const isConfirmEnabled = () => {
98
+ if (!needExclusionDetails) return true;
99
+ return exclusionDetails.length >= 8;
100
+ };
101
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Modal, { show, onHide: () => onHide(false), centered: true, children: [
102
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Header, { closeButton: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Title, { children: title }) }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "d-flex flex-column gap-3", children: [
104
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: getDialogContent() }) }),
105
+ needExclusionDetails && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Form.Group, { children: [
106
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Form.Label, { children: "Motivo da Exclus\xE3o (m\xEDn. 8 caracteres)" }),
107
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
108
+ import_react_bootstrap3.Form.Control,
109
+ {
110
+ as: "textarea",
111
+ rows: 3,
112
+ value: exclusionDetails,
113
+ onChange: (e) => setExclusionDetails(e.target.value),
114
+ placeholder: "Descreva o motivo...",
115
+ autoFocus: true
116
+ }
117
+ )
118
+ ] })
119
+ ] }) }),
120
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Modal.Footer, { children: [
121
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Button, { variant: "secondary", onClick: () => onHide(false), children: "Cancelar" }),
122
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
123
+ import_react_bootstrap3.Button,
124
+ {
125
+ variant: "danger",
126
+ disabled: !isConfirmEnabled(),
127
+ onClick: () => {
128
+ onConfirm(exclusionDetails);
129
+ onHide(false);
130
+ },
131
+ children: "Confirmar Exclus\xE3o"
132
+ }
133
+ )
134
+ ] })
135
+ ] });
136
+ };
137
+
138
+ // src/buttons/ActionButtons.tsx
139
+ var import_jsx_runtime4 = require("react/jsx-runtime");
140
+ var ActionButtons = ({
141
+ onSave,
142
+ saveLabel = "Salvar",
143
+ saveVariant = "primary",
144
+ disabled = false,
145
+ onDelete,
146
+ deleteLabel = "Excluir",
147
+ deleteConfirmMsg,
148
+ needExclusionDetails = false,
149
+ onBack,
150
+ backLabel = "Voltar",
151
+ onCancelEdit,
152
+ cancelEditLabel = "Cancelar",
153
+ onCopy,
154
+ copyLabel = "Copiar Formul\xE1rio",
155
+ isEditing = false,
156
+ useDelayedDelete = false,
157
+ delayedDeleteTimeout = 3e3,
158
+ PermissionWrapper = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children })
159
+ }) => {
160
+ const [showConfirm, setShowConfirm] = (0, import_react2.useState)(false);
161
+ const [isHolding, setIsHolding] = (0, import_react2.useState)(false);
162
+ const [progress, setProgress] = (0, import_react2.useState)(0);
163
+ const timeoutRef = (0, import_react2.useRef)(null);
164
+ const intervalRef = (0, import_react2.useRef)(null);
165
+ const startHold = () => {
166
+ if (disabled || !onDelete) return;
167
+ setIsHolding(true);
168
+ setProgress(0);
169
+ const step = 2;
170
+ const tickTime = delayedDeleteTimeout / (100 / step);
171
+ intervalRef.current = setInterval(() => {
172
+ setProgress((prev) => prev >= 100 ? 100 : prev + step);
173
+ }, tickTime);
174
+ timeoutRef.current = setTimeout(() => {
175
+ stopHold();
176
+ onDelete();
177
+ }, delayedDeleteTimeout);
178
+ };
179
+ const stopHold = () => {
180
+ setIsHolding(false);
181
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
182
+ if (intervalRef.current) clearInterval(intervalRef.current);
183
+ setProgress(0);
184
+ };
185
+ const renderDeleteButton = () => {
186
+ if (!onDelete || !isEditing) return null;
187
+ if (useDelayedDelete) {
188
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { position: "relative", display: "inline-block", margin: 2 }, children: [
189
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
190
+ import_react_bootstrap4.Button,
191
+ {
192
+ variant: "outline-danger",
193
+ onMouseDown: startHold,
194
+ onMouseUp: stopHold,
195
+ onMouseLeave: stopHold,
196
+ onTouchStart: startHold,
197
+ onTouchEnd: stopHold,
198
+ disabled,
199
+ style: { minWidth: "120px" },
200
+ children: [
201
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiTrash2, { className: "me-2" }),
202
+ isHolding ? "Segure..." : deleteLabel
203
+ ]
204
+ }
205
+ ),
206
+ isHolding && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
207
+ import_react_bootstrap4.ProgressBar,
208
+ {
209
+ now: progress,
210
+ style: {
211
+ position: "absolute",
212
+ bottom: 0,
213
+ left: 0,
214
+ right: 0,
215
+ height: "4px",
216
+ borderRadius: "0 0 4px 4px"
217
+ },
218
+ variant: "danger"
219
+ }
220
+ )
221
+ ] });
222
+ }
223
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
224
+ import_react_bootstrap4.Button,
225
+ {
226
+ variant: "danger",
227
+ onClick: () => setShowConfirm(true),
228
+ disabled,
229
+ style: { margin: 2 },
230
+ children: [
231
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiTrash2, { className: "me-2" }),
232
+ deleteLabel
233
+ ]
234
+ }
235
+ );
236
+ };
237
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
238
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
239
+ DeleteConfirm,
240
+ {
241
+ show: showConfirm,
242
+ onHide: setShowConfirm,
243
+ onConfirm: (details) => onDelete && onDelete(details),
244
+ dialogText: deleteConfirmMsg,
245
+ needExclusionDetails
246
+ }
247
+ ),
248
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Form.Group, { className: "d-flex flex-wrap align-items-center mt-3 gap-1", children: [
249
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "outline-secondary", onClick: onBack, disabled, style: { margin: 2 }, children: [
250
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiChevronLeft, { className: "me-2" }),
251
+ backLabel
252
+ ] }),
253
+ isEditing && onCancelEdit && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "warning", onClick: onCancelEdit, disabled, style: { margin: 2 }, children: [
254
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiRotateCcw, { className: "me-2" }),
255
+ cancelEditLabel
256
+ ] }),
257
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PermissionWrapper, { children: renderDeleteButton() }),
258
+ onSave && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: saveVariant, onClick: onSave, disabled, style: { margin: 2 }, children: [
259
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiSave, { className: "me-2" }),
260
+ saveLabel
261
+ ] }),
262
+ isEditing && onCopy && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "outline-primary", onClick: onCopy, disabled, style: { margin: 2 }, children: [
263
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiCopy, { className: "me-2" }),
264
+ copyLabel
265
+ ] })
266
+ ] })
267
+ ] });
268
+ };
269
+
270
+ // src/containers/ResponsiveContainer.tsx
271
+ var import_react_bootstrap5 = require("react-bootstrap");
272
+ var import_jsx_runtime5 = require("react/jsx-runtime");
72
273
  var ResponsiveContainer = ({
73
274
  title,
74
275
  show,
@@ -81,22 +282,22 @@ var ResponsiveContainer = ({
81
282
  setShow(false);
82
283
  if (onClose) onClose();
83
284
  };
84
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Modal, { size: "lg", show, onHide: handleClose, scrollable, children: [
85
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Header, { closeButton: true, onClick: handleClose }),
86
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.ModalBody, { children })
285
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_bootstrap5.Modal, { size: "lg", show, onHide: handleClose, scrollable, children: [
286
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.Modal.Header, { closeButton: true, onClick: handleClose }),
287
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.ModalBody, { children })
87
288
  ] });
88
289
  };
89
290
  var ResponsiveContainer_default = ResponsiveContainer;
90
291
 
91
292
  // src/displays/UuidPill.tsx
92
- var import_react = require("react");
93
- var import_react_bootstrap4 = require("react-bootstrap");
94
- var import_jsx_runtime4 = require("react/jsx-runtime");
293
+ var import_react3 = require("react");
294
+ var import_react_bootstrap6 = require("react-bootstrap");
295
+ var import_jsx_runtime6 = require("react/jsx-runtime");
95
296
  var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
96
- const [copied, setCopied] = (0, import_react.useState)(false);
97
- const ref = (0, import_react.useRef)(null);
98
- const [showTooltip, setShowTooltip] = (0, import_react.useState)(false);
99
- if (!uuid) return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-muted", children: "\u2014" });
297
+ const [copied, setCopied] = (0, import_react3.useState)(false);
298
+ const ref = (0, import_react3.useRef)(null);
299
+ const [showTooltip, setShowTooltip] = (0, import_react3.useState)(false);
300
+ if (!uuid) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-muted", children: "\u2014" });
100
301
  const shortId = String(uuid).substring(0, short);
101
302
  const handleCopy = async (e) => {
102
303
  e.stopPropagation();
@@ -113,9 +314,9 @@ var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
113
314
  setCopied(true);
114
315
  setTimeout(() => setCopied(false), 1500);
115
316
  };
116
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
117
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
118
- import_react_bootstrap4.Badge,
317
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
318
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
319
+ import_react_bootstrap6.Badge,
119
320
  {
120
321
  ref,
121
322
  bg,
@@ -135,19 +336,19 @@ var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
135
336
  ]
136
337
  }
137
338
  ),
138
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_bootstrap4.Overlay, { target: ref.current, show: showTooltip, placement: "top", children: (props) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_bootstrap4.Tooltip, { ...props, children: copied ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { color: "#6f6" }, children: "Copiado!" }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { style: { fontFamily: "monospace", fontSize: "0.75rem" }, children: [
339
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Overlay, { target: ref.current, show: showTooltip, placement: "top", children: (props) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Tooltip, { ...props, children: copied ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { color: "#6f6" }, children: "Copiado!" }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { style: { fontFamily: "monospace", fontSize: "0.75rem" }, children: [
139
340
  uuid,
140
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("br", {}),
141
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("small", { className: "text-muted", children: "Clique para copiar" })
341
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("br", {}),
342
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("small", { className: "text-muted", children: "Clique para copiar" })
142
343
  ] }) }) })
143
344
  ] });
144
345
  };
145
346
  var UuidPill_default = UuidPill;
146
347
 
147
348
  // src/displays/GenericDisplay.tsx
148
- var import_react2 = __toESM(require("react"));
149
- var import_react_bootstrap5 = require("react-bootstrap");
150
- var import_jsx_runtime5 = require("react/jsx-runtime");
349
+ var import_react4 = __toESM(require("react"));
350
+ var import_react_bootstrap7 = require("react-bootstrap");
351
+ var import_jsx_runtime7 = require("react/jsx-runtime");
151
352
  var ConfigObject = class {
152
353
  constructor(dotNotation, style, onClick, onBlur, onHideClick, hidden, mapData, additionalComponents) {
153
354
  this.dotNotation = dotNotation;
@@ -197,17 +398,17 @@ var buildData = (obj, propertiesMap, configObjects, opn, innerArray, dispatch, i
197
398
  const onClick = getOnClick(innerConfigs);
198
399
  const extraComponents = getAdditionalComponentes(innerConfigs);
199
400
  if (Array.isArray(obj)) {
200
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_bootstrap5.Container, { onClick, style: { ...styles }, children: [
201
- opn && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("strong", { children: opn }) }),
401
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Container, { onClick, style: { ...styles }, children: [
402
+ opn && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children: opn }) }),
202
403
  obj.map((o, index) => {
203
404
  const mapCopy = [...newPropertiesMap, `[${index}]`];
204
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.Row, { style: { padding: 4, ...styles }, children: buildData(o, mapCopy, configObjects, null, true, null, false, editButtonRenderer) }, index);
405
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Row, { style: { padding: 4, ...styles }, children: buildData(o, mapCopy, configObjects, null, true, null, false, editButtonRenderer) }, index);
205
406
  })
206
407
  ] });
207
408
  }
208
409
  if (typeof obj === "object" && obj != null) {
209
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
210
- import_react_bootstrap5.Container,
410
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
411
+ import_react_bootstrap7.Container,
211
412
  {
212
413
  onClick,
213
414
  style: {
@@ -219,17 +420,17 @@ var buildData = (obj, propertiesMap, configObjects, opn, innerArray, dispatch, i
219
420
  ...styles
220
421
  },
221
422
  children: [
222
- opn && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("strong", { children: opn }),
423
+ opn && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children: opn }),
223
424
  Object.entries(obj).map(
224
425
  ([key, value]) => buildData(value, newPropertiesMap, configObjects, key, false, null, false, editButtonRenderer)
225
426
  ),
226
- extraComponents.length > 0 ? extraComponents.map((comp, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react2.default.Fragment, { children: comp() }, i)) : isRoot && editButtonRenderer ? editButtonRenderer(obj, opn) : null
427
+ extraComponents.length > 0 ? extraComponents.map((comp, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react4.default.Fragment, { children: comp() }, i)) : isRoot && editButtonRenderer ? editButtonRenderer(obj, opn) : null
227
428
  ]
228
429
  }
229
430
  );
230
431
  }
231
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_bootstrap5.Col, { children: [
232
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("strong", { children: [
432
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Col, { children: [
433
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("strong", { children: [
233
434
  opn,
234
435
  ": "
235
436
  ] }),
@@ -245,7 +446,7 @@ var GenericDisplay = ({
245
446
  onRefresh,
246
447
  editButtonRenderer
247
448
  }) => {
248
- const [innerOptions, setInnerOptions] = (0, import_react2.useState)();
449
+ const [innerOptions, setInnerOptions] = (0, import_react4.useState)();
249
450
  const refreshFunc = () => {
250
451
  if (loadFunc) {
251
452
  loadFunc().then((res) => {
@@ -259,22 +460,22 @@ var GenericDisplay = ({
259
460
  setInnerOptions(ops);
260
461
  }
261
462
  };
262
- (0, import_react2.useEffect)(() => {
463
+ (0, import_react4.useEffect)(() => {
263
464
  if (onRefresh) {
264
465
  onRefresh(refreshFunc);
265
466
  } else {
266
467
  refreshFunc();
267
468
  }
268
469
  }, [context]);
269
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: innerOptions && innerOptions.map((cObj, index) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.Container, { style: { padding: 4, border: "solid" }, children: buildData(cObj, [], configObjects, rootName || null, false, null, true, editButtonRenderer) }, index)) });
470
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: innerOptions && innerOptions.map((cObj, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Container, { style: { padding: 4, border: "solid" }, children: buildData(cObj, [], configObjects, rootName || null, false, null, true, editButtonRenderer) }, index)) });
270
471
  };
271
472
  var GenericDisplay_default = GenericDisplay;
272
473
 
273
474
  // src/forms/MailSender.tsx
274
- var import_react3 = require("react");
275
- var import_react_bootstrap6 = require("react-bootstrap");
276
- var import_fi = require("react-icons/fi");
277
- var import_jsx_runtime6 = require("react/jsx-runtime");
475
+ var import_react5 = require("react");
476
+ var import_react_bootstrap8 = require("react-bootstrap");
477
+ var import_fi2 = require("react-icons/fi");
478
+ var import_jsx_runtime8 = require("react/jsx-runtime");
278
479
  var MailSender = ({
279
480
  htmlContent,
280
481
  companyName,
@@ -283,15 +484,15 @@ var MailSender = ({
283
484
  hide = false,
284
485
  renderTrigger
285
486
  }) => {
286
- const [opened, setOpened] = (0, import_react3.useState)(false);
287
- const [addingEmail, setAddingEmail] = (0, import_react3.useState)(false);
288
- const [selectedEmails, setSelectedEmails] = (0, import_react3.useState)([]);
289
- const [emails, setEmails] = (0, import_react3.useState)([]);
290
- const [loading, setLoading] = (0, import_react3.useState)(false);
291
- const [postLoading, setPostLoading] = (0, import_react3.useState)(false);
292
- const [customEmail, setCustomEmail] = (0, import_react3.useState)("");
293
- const [emailError, setEmailError] = (0, import_react3.useState)("");
294
- const [searchFilter, setSearchFilter] = (0, import_react3.useState)("");
487
+ const [opened, setOpened] = (0, import_react5.useState)(false);
488
+ const [addingEmail, setAddingEmail] = (0, import_react5.useState)(false);
489
+ const [selectedEmails, setSelectedEmails] = (0, import_react5.useState)([]);
490
+ const [emails, setEmails] = (0, import_react5.useState)([]);
491
+ const [loading, setLoading] = (0, import_react5.useState)(false);
492
+ const [postLoading, setPostLoading] = (0, import_react5.useState)(false);
493
+ const [customEmail, setCustomEmail] = (0, import_react5.useState)("");
494
+ const [emailError, setEmailError] = (0, import_react5.useState)("");
495
+ const [searchFilter, setSearchFilter] = (0, import_react5.useState)("");
295
496
  const handleOpen = async () => {
296
497
  setLoading(true);
297
498
  try {
@@ -374,9 +575,9 @@ var MailSender = ({
374
575
  if (renderTrigger) {
375
576
  return renderTrigger({ onClick: handleOpen, loading });
376
577
  }
377
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Button, { disabled: loading, className: "w-100", onClick: handleOpen, children: loading ? "Carregando..." : "Enviar por E-mail" });
578
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Button, { disabled: loading, className: "w-100", onClick: handleOpen, children: loading ? "Carregando..." : "Enviar por E-mail" });
378
579
  }
379
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
580
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
380
581
  "div",
381
582
  {
382
583
  style: {
@@ -387,7 +588,7 @@ var MailSender = ({
387
588
  boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)"
388
589
  },
389
590
  children: [
390
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
591
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
391
592
  "div",
392
593
  {
393
594
  style: {
@@ -395,20 +596,20 @@ var MailSender = ({
395
596
  color: "white",
396
597
  padding: "25px"
397
598
  },
398
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "d-flex justify-content-between align-items-center", children: [
399
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { children: [
400
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("h4", { className: "mb-1", style: { fontWeight: "600", fontSize: "22px" }, children: [
401
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiMail, { className: "me-2", size: 20 }),
599
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex justify-content-between align-items-center", children: [
600
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
601
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("h4", { className: "mb-1", style: { fontWeight: "600", fontSize: "22px" }, children: [
602
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiMail, { className: "me-2", size: 20 }),
402
603
  "Enviar Relat\xF3rio por E-mail"
403
604
  ] }),
404
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("small", { style: { opacity: "0.9", fontSize: "14px" }, children: [
605
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("small", { style: { opacity: "0.9", fontSize: "14px" }, children: [
405
606
  "Selecione os destinat\xE1rios para envio do relat\xF3rio de ",
406
607
  companyName
407
608
  ] })
408
609
  ] }),
409
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "d-flex gap-2", children: [
410
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
411
- import_react_bootstrap6.Button,
610
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex gap-2", children: [
611
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
612
+ import_react_bootstrap8.Button,
412
613
  {
413
614
  variant: "light",
414
615
  onClick: sendEmail,
@@ -419,38 +620,38 @@ var MailSender = ({
419
620
  minWidth: "130px",
420
621
  height: "40px"
421
622
  },
422
- children: postLoading ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
423
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Spinner, { size: "sm", className: "me-2" }),
623
+ children: postLoading ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
624
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Spinner, { size: "sm", className: "me-2" }),
424
625
  "Enviando..."
425
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
426
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiSend, { className: "me-2", size: 14 }),
626
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
627
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiSend, { className: "me-2", size: 14 }),
427
628
  "Enviar E-mail"
428
629
  ] })
429
630
  }
430
631
  ),
431
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
432
- import_react_bootstrap6.Button,
632
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
633
+ import_react_bootstrap8.Button,
433
634
  {
434
635
  variant: "outline-light",
435
636
  onClick: () => setOpened(false),
436
637
  disabled: postLoading,
437
638
  style: { borderRadius: "8px", width: "40px", height: "40px" },
438
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiX, { size: 16 })
639
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { size: 16 })
439
640
  }
440
641
  )
441
642
  ] })
442
643
  ] })
443
644
  }
444
645
  ),
445
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { padding: "25px" }, children: [
446
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Card.Body, { style: { padding: "20px" }, children: [
447
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Row, { className: "align-items-center", children: [
448
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Col, { md: 6, children: [
449
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h6", { className: "mb-2", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F527} Filtros e A\xE7\xF5es" }),
450
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.InputGroup, { style: { maxWidth: "300px" }, children: [
451
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.InputGroup.Text, { style: { backgroundColor: "#f8f9fa", border: "1px solid #dee2e6" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiSearch, { size: 14, color: "#6c757d" }) }),
452
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
453
- import_react_bootstrap6.Form.Control,
646
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { padding: "25px" }, children: [
647
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
648
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Row, { className: "align-items-center", children: [
649
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Col, { md: 6, children: [
650
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-2", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F527} Filtros e A\xE7\xF5es" }),
651
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.InputGroup, { style: { maxWidth: "300px" }, children: [
652
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.InputGroup.Text, { style: { backgroundColor: "#f8f9fa", border: "1px solid #dee2e6" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiSearch, { size: 14, color: "#6c757d" }) }),
653
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
654
+ import_react_bootstrap8.Form.Control,
454
655
  {
455
656
  type: "text",
456
657
  placeholder: "Buscar e-mails...",
@@ -461,25 +662,25 @@ var MailSender = ({
461
662
  )
462
663
  ] })
463
664
  ] }),
464
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Col, { md: 6, className: "text-end", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
465
- import_react_bootstrap6.Button,
665
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { md: 6, className: "text-end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
666
+ import_react_bootstrap8.Button,
466
667
  {
467
668
  variant: addingEmail ? "outline-secondary" : "outline-primary",
468
669
  size: "sm",
469
670
  onClick: () => setAddingEmail(!addingEmail),
470
671
  disabled: postLoading,
471
672
  style: { borderRadius: "8px" },
472
- children: addingEmail ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
473
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiX, { className: "me-1", size: 14 }),
673
+ children: addingEmail ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
674
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { className: "me-1", size: 14 }),
474
675
  "Cancelar"
475
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
476
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiPlus, { className: "me-1", size: 14 }),
676
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
677
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiPlus, { className: "me-1", size: 14 }),
477
678
  "E-mail Personalizado"
478
679
  ] })
479
680
  }
480
681
  ) })
481
682
  ] }),
482
- addingEmail && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
683
+ addingEmail && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
483
684
  "div",
484
685
  {
485
686
  style: {
@@ -490,12 +691,12 @@ var MailSender = ({
490
691
  border: "1px solid #e3f2fd"
491
692
  },
492
693
  children: [
493
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h6", { className: "mb-3", style: { color: "#1976d2", fontWeight: "600" }, children: "\u2709\uFE0F Adicionar E-mail Personalizado" }),
494
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Row, { className: "align-items-end", children: [
495
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Col, { md: 8, children: [
496
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Form.Label, { style: { fontSize: "13px", color: "#6c757d", fontWeight: "500" }, children: "Endere\xE7o de E-mail" }),
497
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
498
- import_react_bootstrap6.Form.Control,
694
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-3", style: { color: "#1976d2", fontWeight: "600" }, children: "\u2709\uFE0F Adicionar E-mail Personalizado" }),
695
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Row, { className: "align-items-end", children: [
696
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Col, { md: 8, children: [
697
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Label, { style: { fontSize: "13px", color: "#6c757d", fontWeight: "500" }, children: "Endere\xE7o de E-mail" }),
698
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
699
+ import_react_bootstrap8.Form.Control,
499
700
  {
500
701
  type: "email",
501
702
  placeholder: "exemplo@empresa.com",
@@ -510,17 +711,17 @@ var MailSender = ({
510
711
  onKeyPress: (e) => e.key === "Enter" && handleEmailAdd()
511
712
  }
512
713
  ),
513
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Form.Control.Feedback, { type: "invalid", children: emailError })
714
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Control.Feedback, { type: "invalid", children: emailError })
514
715
  ] }),
515
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Col, { md: 4, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
516
- import_react_bootstrap6.Button,
716
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { md: 4, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
717
+ import_react_bootstrap8.Button,
517
718
  {
518
719
  variant: "success",
519
720
  onClick: handleEmailAdd,
520
721
  disabled: postLoading,
521
722
  style: { borderRadius: "8px", width: "100%" },
522
723
  children: [
523
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiPlus, { className: "me-1", size: 14 }),
724
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiPlus, { className: "me-1", size: 14 }),
524
725
  "Adicionar"
525
726
  ]
526
727
  }
@@ -530,16 +731,16 @@ var MailSender = ({
530
731
  }
531
732
  )
532
733
  ] }) }),
533
- selectedEmails.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Card.Body, { style: { padding: "20px" }, children: [
534
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "d-flex justify-content-between align-items-center mb-3", children: [
535
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h6", { className: "mb-0", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F4CB} Destinat\xE1rios Selecionados" }),
536
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Badge, { bg: "primary", style: { fontSize: "12px", padding: "6px 12px" }, children: [
734
+ selectedEmails.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
735
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex justify-content-between align-items-center mb-3", children: [
736
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-0", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F4CB} Destinat\xE1rios Selecionados" }),
737
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Badge, { bg: "primary", style: { fontSize: "12px", padding: "6px 12px" }, children: [
537
738
  selectedEmails.length,
538
739
  " selecionado",
539
740
  selectedEmails.length > 1 ? "s" : ""
540
741
  ] })
541
742
  ] }),
542
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "d-flex flex-wrap gap-2", children: selectedEmails.map((email, index) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
743
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "d-flex flex-wrap gap-2", children: selectedEmails.map((email, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
543
744
  "div",
544
745
  {
545
746
  style: {
@@ -553,10 +754,10 @@ var MailSender = ({
553
754
  fontWeight: "500"
554
755
  },
555
756
  children: [
556
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiUser, { size: 12, className: "me-2", color: "#1976d2" }),
557
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: email.email || email }),
558
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
559
- import_react_bootstrap6.Button,
757
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiUser, { size: 12, className: "me-2", color: "#1976d2" }),
758
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: email.email || email }),
759
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
760
+ import_react_bootstrap8.Button,
560
761
  {
561
762
  variant: "link",
562
763
  size: "sm",
@@ -568,7 +769,7 @@ var MailSender = ({
568
769
  textDecoration: "none",
569
770
  fontSize: "16px"
570
771
  },
571
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiX, { size: 14 })
772
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { size: 14 })
572
773
  }
573
774
  )
574
775
  ]
@@ -576,17 +777,17 @@ var MailSender = ({
576
777
  index
577
778
  )) })
578
779
  ] }) }),
579
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Card, { style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Card.Body, { style: { padding: "20px" }, children: [
580
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("h6", { className: "mb-3", style: { color: "#495057", fontWeight: "600" }, children: [
581
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiUser, { className: "me-2", size: 16 }),
780
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
781
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("h6", { className: "mb-3", style: { color: "#495057", fontWeight: "600" }, children: [
782
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiUser, { className: "me-2", size: 16 }),
582
783
  "E-mails de ",
583
784
  companyName
584
785
  ] }),
585
- loading ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "text-center py-4", children: [
586
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Spinner, {}),
587
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "mt-2 text-muted", children: "Carregando e-mails..." })
588
- ] }) : filteredEmails.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "text-center py-4", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-muted mb-0", children: searchFilter ? "Nenhum e-mail encontrado com esse filtro" : "Nenhum e-mail dispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Row, { children: filteredEmails.map((email) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Col, { xs: 12, sm: 6, lg: 4, className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
589
- import_react_bootstrap6.Card,
786
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "text-center py-4", children: [
787
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Spinner, {}),
788
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "mt-2 text-muted", children: "Carregando e-mails..." })
789
+ ] }) : filteredEmails.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "text-center py-4", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "text-muted mb-0", children: searchFilter ? "Nenhum e-mail encontrado com esse filtro" : "Nenhum e-mail dispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Row, { children: filteredEmails.map((email) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { xs: 12, sm: 6, lg: 4, className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
790
+ import_react_bootstrap8.Card,
590
791
  {
591
792
  onClick: () => setSelectedEmails([...selectedEmails, email]),
592
793
  style: {
@@ -606,9 +807,9 @@ var MailSender = ({
606
807
  e.currentTarget.style.boxShadow = "none";
607
808
  e.currentTarget.style.borderColor = "#e9ecef";
608
809
  },
609
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_bootstrap6.Card.Body, { style: { padding: "15px", textAlign: "center" }, children: [
610
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_fi.FiMail, { size: 20, color: "#007bff", className: "mb-2" }),
611
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
810
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "15px", textAlign: "center" }, children: [
811
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiMail, { size: 20, color: "#007bff", className: "mb-2" }),
812
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
612
813
  "div",
613
814
  {
614
815
  style: {
@@ -630,13 +831,227 @@ var MailSender = ({
630
831
  );
631
832
  };
632
833
 
834
+ // src/forms/AutoComplete.tsx
835
+ var import_react6 = require("react");
836
+ var import_react_bootstrap9 = require("react-bootstrap");
837
+ var import_jsx_runtime9 = require("react/jsx-runtime");
838
+ var AutoComplete = ({
839
+ className,
840
+ ops = [],
841
+ sortKey,
842
+ displayKey,
843
+ displayKeys,
844
+ onValueChanged,
845
+ onSelectedClick,
846
+ value,
847
+ actionButton,
848
+ actionButton2,
849
+ placeH,
850
+ title,
851
+ filter,
852
+ filterField,
853
+ loadFunc,
854
+ loadCondition,
855
+ onBlurEvent,
856
+ formatationFunc,
857
+ onEscKeyDown,
858
+ onEnterKeyDown,
859
+ margT,
860
+ margB,
861
+ hideComponent,
862
+ disableComponent = false,
863
+ disableSelect = false,
864
+ autoFocusConfig,
865
+ onLoad,
866
+ cacheKey,
867
+ minChars = 0,
868
+ maxItems,
869
+ showListOnFocus = true,
870
+ lazyLoad = false
871
+ }) => {
872
+ const [liItem, setListItem] = (0, import_react6.useState)([]);
873
+ const [options, setOptions] = (0, import_react6.useState)([]);
874
+ const [input, setInput] = (0, import_react6.useState)("");
875
+ const [hide, setHide] = (0, import_react6.useState)(true);
876
+ const [onLoaded, setOnLoaded] = (0, import_react6.useState)(false);
877
+ const [loading, setLoading] = (0, import_react6.useState)(false);
878
+ const cacheStore = (0, import_react6.useMemo)(() => {
879
+ const win = window;
880
+ if (!win.__AUTO_COMPLETE_CACHE__) {
881
+ win.__AUTO_COMPLETE_CACHE__ = /* @__PURE__ */ new Map();
882
+ }
883
+ return win.__AUTO_COMPLETE_CACHE__;
884
+ }, []);
885
+ const sortOptions = (data, key) => {
886
+ if (!key || !Array.isArray(data)) return data;
887
+ return [...data].sort((a, b) => String(a[key]).localeCompare(String(b[key])));
888
+ };
889
+ (0, import_react6.useEffect)(() => {
890
+ setInput(value || "");
891
+ }, [value]);
892
+ (0, import_react6.useEffect)(() => {
893
+ const sortedOptions = sortOptions(ops, sortKey);
894
+ setListItem(sortedOptions);
895
+ setOptions(sortedOptions);
896
+ }, [ops, sortKey]);
897
+ (0, import_react6.useEffect)(() => {
898
+ const loadData = async () => {
899
+ if (!(loadCondition && loadFunc)) return;
900
+ if (lazyLoad && minChars > 0 && !showListOnFocus && (!value || String(value).length < minChars)) {
901
+ return;
902
+ }
903
+ const key = cacheKey ? `${cacheKey}${filter ? `:${filterField}:${filter}` : ""}` : null;
904
+ if (key && cacheStore.has(key)) {
905
+ const cacheEntry = cacheStore.get(key);
906
+ const data = cacheEntry.promise ? await cacheEntry.promise : cacheEntry.data || cacheEntry;
907
+ setListItem(data);
908
+ setOptions(data);
909
+ triggerOnLoad(data);
910
+ return;
911
+ }
912
+ setLoading(true);
913
+ try {
914
+ const requestPromise = loadFunc().then((res) => {
915
+ let newOps = (res == null ? void 0 : res.content) || res;
916
+ newOps = Array.isArray(newOps) ? newOps.filter((op) => op != null) : [];
917
+ if (filter && filterField) {
918
+ newOps = newOps.filter((op) => op[filterField] === filter);
919
+ }
920
+ return sortOptions(newOps, sortKey);
921
+ });
922
+ if (key) cacheStore.set(key, { promise: requestPromise });
923
+ const sortedOptions = await requestPromise;
924
+ setListItem(sortedOptions);
925
+ setOptions(sortedOptions);
926
+ if (key) cacheStore.set(key, { data: sortedOptions });
927
+ triggerOnLoad(sortedOptions);
928
+ } catch (error) {
929
+ if (key) cacheStore.delete(key);
930
+ setListItem([]);
931
+ } finally {
932
+ setLoading(false);
933
+ }
934
+ };
935
+ loadData();
936
+ }, [loadCondition, filter, filterField, sortKey, cacheKey, lazyLoad, minChars, showListOnFocus]);
937
+ const triggerOnLoad = (data) => {
938
+ if (onLoad && !onLoaded) {
939
+ setOnLoaded(true);
940
+ onLoad(data);
941
+ }
942
+ };
943
+ const keysJoinner = (li) => {
944
+ if (!displayKeys || !Array.isArray(displayKeys)) return "";
945
+ return displayKeys.map((key) => `${li[key]} `).join("").trim();
946
+ };
947
+ const getDisplayText = (item) => {
948
+ if (formatationFunc) return formatationFunc(item);
949
+ if (displayKey) return item[displayKey];
950
+ if (displayKeys) return keysJoinner(item);
951
+ return String(item);
952
+ };
953
+ const onFieldUpdate = (val) => {
954
+ const search = val.toLowerCase();
955
+ const canSearch = search.length >= minChars;
956
+ if (canSearch && Array.isArray(options)) {
957
+ const filtered = options.filter((item) => {
958
+ const text = getDisplayText(item);
959
+ return String(text).toLowerCase().includes(search);
960
+ });
961
+ setListItem(filtered);
962
+ } else {
963
+ setListItem(options || []);
964
+ }
965
+ onValueChanged == null ? void 0 : onValueChanged(val);
966
+ setInput(val);
967
+ setHide(!canSearch && options.length === 0);
968
+ };
969
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
970
+ "div",
971
+ {
972
+ className,
973
+ style: { marginTop: margT != null ? margT : 4, marginBottom: margB != null ? margB : 4, position: "relative" },
974
+ onBlur: (e) => {
975
+ setTimeout(() => {
976
+ onBlurEvent == null ? void 0 : onBlurEvent(e, input);
977
+ setHide(true);
978
+ }, 200);
979
+ },
980
+ onKeyDown: (e) => {
981
+ if (e.key === "Escape") {
982
+ setHide(true);
983
+ onEscKeyDown == null ? void 0 : onEscKeyDown();
984
+ }
985
+ if (e.key === "Enter" && onEnterKeyDown) {
986
+ onEnterKeyDown(input);
987
+ }
988
+ },
989
+ onMouseLeave: () => setHide(true),
990
+ children: [
991
+ !hideComponent && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_bootstrap9.InputGroup, { children: [
992
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.FloatingLabel, { controlId: "floatingInput", label: title, style: { zIndex: 0, flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
993
+ import_react_bootstrap9.Form.Control,
994
+ {
995
+ autoFocus: autoFocusConfig,
996
+ disabled: disableComponent || disableSelect,
997
+ placeholder: placeH,
998
+ autoComplete: "off",
999
+ value: input,
1000
+ onClickCapture: () => {
1001
+ const canOpen = showListOnFocus && input.length >= minChars;
1002
+ setHide(!canOpen);
1003
+ },
1004
+ onChange: (e) => onFieldUpdate(e.currentTarget.value),
1005
+ type: "text"
1006
+ }
1007
+ ) }),
1008
+ loading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.InputGroup.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.Spinner, { animation: "border", size: "sm" }) }),
1009
+ !disableComponent && (actionButton == null ? void 0 : actionButton(() => setInput(""))),
1010
+ !disableComponent && (actionButton2 == null ? void 0 : actionButton2(input))
1011
+ ] }),
1012
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1013
+ import_react_bootstrap9.ListGroup,
1014
+ {
1015
+ className: "listgroup-autocomplete shadow-sm",
1016
+ hidden: hide || liItem.length === 0,
1017
+ style: {
1018
+ position: "absolute",
1019
+ top: "100%",
1020
+ left: 0,
1021
+ width: "100%",
1022
+ maxHeight: "250px",
1023
+ overflowY: "auto",
1024
+ zIndex: 1050,
1025
+ backgroundColor: "#fff"
1026
+ },
1027
+ children: (maxItems ? liItem.slice(0, maxItems) : liItem).map((li, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1028
+ import_react_bootstrap9.ListGroup.Item,
1029
+ {
1030
+ action: true,
1031
+ onClick: () => {
1032
+ const text = getDisplayText(li);
1033
+ setInput(text);
1034
+ onSelectedClick(li, index, liItem);
1035
+ setHide(true);
1036
+ },
1037
+ children: getDisplayText(li)
1038
+ },
1039
+ index
1040
+ ))
1041
+ }
1042
+ )
1043
+ ]
1044
+ }
1045
+ );
1046
+ };
1047
+
633
1048
  // src/forms/GenericForm.tsx
634
- var import_react4 = require("react");
635
- var import_react_bootstrap7 = require("react-bootstrap");
636
- var import_jsx_runtime7 = require("react/jsx-runtime");
1049
+ var import_react7 = require("react");
1050
+ var import_react_bootstrap10 = require("react-bootstrap");
1051
+ var import_jsx_runtime10 = require("react/jsx-runtime");
637
1052
  var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
638
- const [formValues, setFormValues] = (0, import_react4.useState)({});
639
- const [errors, setErrors] = (0, import_react4.useState)({});
1053
+ const [formValues, setFormValues] = (0, import_react7.useState)({});
1054
+ const [errors, setErrors] = (0, import_react7.useState)({});
640
1055
  const handleChange = (key, value) => {
641
1056
  setFormValues({
642
1057
  ...formValues,
@@ -665,10 +1080,10 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
665
1080
  switch (type) {
666
1081
  case "text":
667
1082
  case "number":
668
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Form.Group, { className: "mb-3", children: [
669
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Label, { children: label }),
670
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
671
- import_react_bootstrap7.Form.Control,
1083
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
1084
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
1085
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1086
+ import_react_bootstrap10.Form.Control,
672
1087
  {
673
1088
  type,
674
1089
  placeholder,
@@ -677,30 +1092,30 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
677
1092
  isInvalid: !!errors[key]
678
1093
  }
679
1094
  ),
680
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Control.Feedback, { type: "invalid", children: errors[key] })
1095
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
681
1096
  ] }, key);
682
1097
  case "select": {
683
1098
  const orderedOptions = (options || []).filter((opt) => opt && opt.value !== void 0 && opt.label !== void 0).sort((a, b) => a.label.localeCompare(b.label));
684
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Form.Group, { className: "mb-3", children: [
685
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Label, { children: label }),
686
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
687
- import_react_bootstrap7.Form.Select,
1099
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
1100
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
1101
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1102
+ import_react_bootstrap10.Form.Select,
688
1103
  {
689
1104
  value,
690
1105
  onChange: (e) => handleChange(key, e.target.value),
691
1106
  isInvalid: !!errors[key],
692
1107
  children: [
693
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("option", { value: "", children: "Selecione..." }),
694
- orderedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("option", { value: option.value, children: option.label }, String(option.value)))
1108
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("option", { value: "", children: "Selecione..." }),
1109
+ orderedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("option", { value: option.value, children: option.label }, String(option.value)))
695
1110
  ]
696
1111
  }
697
1112
  ),
698
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Control.Feedback, { type: "invalid", children: errors[key] })
1113
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
699
1114
  ] }, key);
700
1115
  }
701
1116
  case "custom-select":
702
1117
  if (renderCustomSelect) {
703
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
1118
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { children: [
704
1119
  renderCustomSelect({
705
1120
  label,
706
1121
  value,
@@ -708,15 +1123,15 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
708
1123
  onChange: (v) => handleChange(key, v),
709
1124
  placeholder
710
1125
  }),
711
- errors[key] && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "invalid-feedback d-block", children: errors[key] })
1126
+ errors[key] && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "invalid-feedback d-block", children: errors[key] })
712
1127
  ] }, key);
713
1128
  }
714
1129
  return null;
715
1130
  case "date":
716
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Form.Group, { className: "mb-3", children: [
717
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Label, { children: label }),
718
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
719
- import_react_bootstrap7.Form.Control,
1131
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
1132
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
1133
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1134
+ import_react_bootstrap10.Form.Control,
720
1135
  {
721
1136
  type: "date",
722
1137
  value,
@@ -724,23 +1139,23 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
724
1139
  isInvalid: !!errors[key]
725
1140
  }
726
1141
  ),
727
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Form.Control.Feedback, { type: "invalid", children: errors[key] })
1142
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
728
1143
  ] }, key);
729
1144
  default:
730
1145
  return null;
731
1146
  }
732
1147
  };
733
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Form, { onSubmit: handleSubmit, children: [
1148
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form, { onSubmit: handleSubmit, children: [
734
1149
  fields.map((field) => renderField(field)),
735
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "d-grid", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Button, { variant: "primary", type: "submit", children: "Salvar" }) })
1150
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "d-grid", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Button, { variant: "primary", type: "submit", children: "Salvar" }) })
736
1151
  ] });
737
1152
  };
738
1153
  var GenericForm_default = GenericForm;
739
1154
 
740
1155
  // src/forms/GenericSelect.tsx
741
- var import_react5 = require("react");
742
- var import_react_bootstrap8 = require("react-bootstrap");
743
- var import_jsx_runtime8 = require("react/jsx-runtime");
1156
+ var import_react8 = require("react");
1157
+ var import_react_bootstrap11 = require("react-bootstrap");
1158
+ var import_jsx_runtime11 = require("react/jsx-runtime");
744
1159
  var GenericSelectOps = class {
745
1160
  constructor(noLabel, title, onChange, ops, selection, returnType, displayType, filter, filterField, valueType, loadFunc, loadCondition, actionClick, locked) {
746
1161
  this.noLabel = noLabel;
@@ -777,8 +1192,8 @@ var GenericSelect = ({
777
1192
  isBold,
778
1193
  ...restProps
779
1194
  }) => {
780
- const [options, setOptions] = (0, import_react5.useState)(ops || []);
781
- (0, import_react5.useEffect)(() => {
1195
+ const [options, setOptions] = (0, import_react8.useState)(ops || []);
1196
+ (0, import_react8.useEffect)(() => {
782
1197
  const loadFunction = async () => {
783
1198
  if (loadCondition && loadFunc) {
784
1199
  loadFunc().then((res) => {
@@ -803,15 +1218,15 @@ var GenericSelect = ({
803
1218
  }
804
1219
  };
805
1220
  const defaultPlaceholder = (restProps == null ? void 0 : restProps.default) || "Seleciona uma Op\xE7\xE3o";
806
- const selectContent = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
807
- import_react_bootstrap8.Form.Control,
1221
+ const selectContent = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1222
+ import_react_bootstrap11.Form.Control,
808
1223
  {
809
1224
  disabled: locked,
810
1225
  as: "select",
811
1226
  value: selection,
812
1227
  onChange: (event) => getTrueValue(event.target.selectedIndex),
813
1228
  children: [
814
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("option", { value: void 0, children: [
1229
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("option", { value: void 0, children: [
815
1230
  "-- ",
816
1231
  defaultPlaceholder,
817
1232
  " --"
@@ -820,31 +1235,34 @@ var GenericSelect = ({
820
1235
  const val = valueType && op[valueType] || op.id || op;
821
1236
  let fill = displayType && op[displayType] || op;
822
1237
  if (typeof fill == "object") fill = "";
823
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: val, children: fill }, op.id || index);
1238
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("option", { value: val, children: fill }, op.id || index);
824
1239
  })
825
1240
  ]
826
1241
  }
827
1242
  );
828
1243
  if (actionClick) {
829
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
830
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
831
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.InputGroup, { children: [
1244
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1245
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap11.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
1246
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_bootstrap11.InputGroup, { children: [
832
1247
  selectContent,
833
1248
  actionClick()
834
1249
  ] })
835
1250
  ] });
836
1251
  }
837
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
838
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
1252
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1253
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap11.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
839
1254
  selectContent
840
1255
  ] });
841
1256
  };
842
1257
  var GenericSelect_default = GenericSelect;
843
1258
  // Annotate the CommonJS export names for ESM import in node:
844
1259
  0 && (module.exports = {
1260
+ ActionButtons,
845
1261
  AddButton,
1262
+ AutoComplete,
846
1263
  ConfigObject,
847
1264
  DeleteButton,
1265
+ DeleteConfirm,
848
1266
  GenericDisplay,
849
1267
  GenericForm,
850
1268
  GenericSelect,