@oondemand/oon-core-front 0.3.34 → 0.3.35

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
@@ -1833,7 +1833,7 @@ function DynamicForm({ title, eyebrow = "Cadastro", fields, initialValues, submi
1833
1833
 
1834
1834
  // src/components/internal/CoreDetailModal.tsx
1835
1835
  import { useEffect as useEffect6, useMemo as useMemo7, useState as useState9 } from "react";
1836
- import { Box as Box8, Flex as Flex7, Heading as Heading3, IconButton, Text as Text10 } from "@chakra-ui/react";
1836
+ import { Box as Box8, Button as Button8, Flex as Flex7, Heading as Heading3, IconButton, Text as Text10 } from "@chakra-ui/react";
1837
1837
  import { useQuery as useQuery6, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
1838
1838
 
1839
1839
  // src/components/internal/CoreTabbedDetail.tsx
@@ -2024,6 +2024,8 @@ function CoreRowAction({ action, row, parent, onOpenDetail, onRefresh, onUpdate
2024
2024
  const [formInitialValues, setFormInitialValues] = useState6({});
2025
2025
  const pipelineAction = action;
2026
2026
  const tone = pipelineAction.tone ? ACTION_TONES[pipelineAction.tone] : void 0;
2027
+ const isWorkStatus = pipelineAction.group === "workStatus";
2028
+ const isSelected = isWorkStatus && !!pipelineAction.field && row[pipelineAction.field] === pipelineAction.value;
2027
2029
  if (evaluateCondition(action.hiddenWhen, row)) return null;
2028
2030
  const disabled = evaluateCondition(action.disabledWhen, row) || loading;
2029
2031
  const confirmAction = () => action.confirm ? window.confirm(action.confirm.description ?? action.confirm.title ?? `Executar ${action.label}?`) : true;
@@ -2082,27 +2084,32 @@ function CoreRowAction({ action, row, parent, onOpenDetail, onRefresh, onUpdate
2082
2084
  }
2083
2085
  };
2084
2086
  return /* @__PURE__ */ jsxs8("span", { style: { display: "inline-flex", flexDirection: "column" }, children: [
2085
- /* @__PURE__ */ jsx12(
2087
+ /* @__PURE__ */ jsxs8(
2086
2088
  Button5,
2087
2089
  {
2088
2090
  type: "button",
2089
2091
  size: "xs",
2090
- minH: "28px",
2091
- px: "9px",
2092
- borderRadius: "6px",
2092
+ minH: isWorkStatus ? "32px" : "28px",
2093
+ px: isWorkStatus ? "12px" : "9px",
2094
+ borderRadius: isWorkStatus ? "full" : "6px",
2093
2095
  fontSize: "10px",
2094
2096
  fontWeight: "700",
2095
2097
  variant: tone ? "outline" : void 0,
2096
- bg: tone?.bg,
2098
+ bg: isWorkStatus && !isSelected ? "white" : tone?.bg,
2097
2099
  color: tone?.color,
2098
- borderColor: tone?.border,
2099
- boxShadow: tone ? "none" : void 0,
2100
+ borderColor: isSelected ? tone?.color : tone?.border,
2101
+ borderWidth: isSelected ? "2px" : "1px",
2102
+ boxShadow: isSelected ? `0 0 0 3px ${tone?.border ?? "#E2E8F0"}` : tone ? "none" : void 0,
2103
+ "aria-pressed": isWorkStatus ? isSelected : void 0,
2100
2104
  loading,
2101
2105
  disabled,
2102
2106
  onClick: run,
2103
2107
  _hover: tone ? { bg: tone.hover, borderColor: tone.border } : void 0,
2104
- _disabled: tone ? { opacity: 0.55, cursor: "not-allowed" } : void 0,
2105
- children: action.label
2108
+ _disabled: tone ? { opacity: isSelected ? 1 : 0.55, cursor: "not-allowed" } : void 0,
2109
+ children: [
2110
+ isWorkStatus ? /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", style: { width: 8, height: 8, display: "inline-block", marginRight: 7, borderRadius: "999px", background: tone?.color ?? "#64748B", boxShadow: isSelected ? "0 0 0 2px rgba(255,255,255,.9)" : "none" } }) : null,
2111
+ action.label
2112
+ ]
2106
2113
  }
2107
2114
  ),
2108
2115
  error ? /* @__PURE__ */ jsx12(Text7, { mt: "3px", color: "#B42318", fontSize: "9px", children: messageOf2(error) }) : null,
@@ -2541,7 +2548,9 @@ function InlineParentForm({
2541
2548
  groups,
2542
2549
  parent,
2543
2550
  resource,
2544
- onSaved
2551
+ onSaved,
2552
+ formId,
2553
+ externalSubmit = false
2545
2554
  }) {
2546
2555
  const fields = rawFields;
2547
2556
  const [values, setValues] = useState8({});
@@ -2605,6 +2614,7 @@ function InlineParentForm({
2605
2614
  return /* @__PURE__ */ jsx14(
2606
2615
  "form",
2607
2616
  {
2617
+ id: formId,
2608
2618
  noValidate: true,
2609
2619
  onSubmit: async (event) => {
2610
2620
  event.preventDefault();
@@ -2633,7 +2643,7 @@ function InlineParentForm({
2633
2643
  children: /* @__PURE__ */ jsxs10(Stack3, { gap: "16px", children: [
2634
2644
  error ? /* @__PURE__ */ jsx14(Box7, { role: "alert", p: "10px 12px", color: "#B42318", bg: "#FEF3F2", borderWidth: "1px", borderColor: "#FECDCA", borderRadius: "7px", fontSize: "11px", children: messageOf3(error) }) : null,
2635
2645
  renderFields(),
2636
- /* @__PURE__ */ jsx14(Flex6, { justify: "flex-end", children: /* @__PURE__ */ jsx14(Button7, { type: "submit", colorPalette: "brand", loading: saving, children: "Salvar dados principais" }) })
2646
+ !externalSubmit ? /* @__PURE__ */ jsx14(Flex6, { justify: "flex-end", children: /* @__PURE__ */ jsx14(Button7, { type: "submit", colorPalette: "brand", loading: saving, children: "Salvar dados principais" }) }) : null
2637
2647
  ] })
2638
2648
  }
2639
2649
  );
@@ -2648,7 +2658,9 @@ function CoreTabbedDetail({
2648
2658
  relations,
2649
2659
  refreshTokens,
2650
2660
  onRefresh,
2651
- onParentSaved
2661
+ onParentSaved,
2662
+ formId,
2663
+ externalSubmit
2652
2664
  }) {
2653
2665
  const active = tabs.find((tab) => tab.id === activeTab) ?? tabs[0];
2654
2666
  return /* @__PURE__ */ jsxs10(Stack3, { gap: 4, children: [
@@ -2674,7 +2686,9 @@ function CoreTabbedDetail({
2674
2686
  groups: active.groups,
2675
2687
  parent: parent ?? {},
2676
2688
  resource,
2677
- onSaved: onParentSaved
2689
+ onSaved: onParentSaved,
2690
+ formId,
2691
+ externalSubmit
2678
2692
  }
2679
2693
  ) : (active.type === "relatedGrid" || active.type === "readonlyGrid") && parent ? /* @__PURE__ */ jsx14(
2680
2694
  CoreRelatedGrid,
@@ -2703,7 +2717,8 @@ function CoreDetailModal({
2703
2717
  initialRecord,
2704
2718
  initialTab,
2705
2719
  relations,
2706
- actions,
2720
+ topActions,
2721
+ bottomActions,
2707
2722
  onClose,
2708
2723
  onSaved
2709
2724
  }) {
@@ -2748,14 +2763,16 @@ function CoreDetailModal({
2748
2763
  };
2749
2764
  const width = config.size === "full" ? "98vw" : config.size === "md" ? "760px" : config.size === "lg" ? "980px" : "1180px";
2750
2765
  const displayTitle = parent?.[config.titleField ?? ""] ? String(parent[config.titleField ?? ""]) : title;
2751
- return /* @__PURE__ */ jsx15(Flex7, { position: "fixed", inset: 0, zIndex: 1e3, align: "center", justify: "center", p: 4, bg: "rgba(15,23,42,.48)", children: /* @__PURE__ */ jsxs11(Box8, { role: "dialog", "aria-modal": "true", w: `min(${width}, 98vw)`, maxH: "94vh", overflow: "hidden", bg: "white", borderRadius: "14px", boxShadow: "0 24px 70px rgba(15,23,42,.24)", children: [
2766
+ const activeIsForm = (config.tabs.find((tab) => tab.id === activeTab) ?? config.tabs[0])?.type === "form";
2767
+ const formId = `oon-detail-form-${model.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
2768
+ return /* @__PURE__ */ jsx15(Flex7, { position: "fixed", inset: 0, zIndex: 1e3, align: "center", justify: "center", p: 4, bg: "rgba(15,23,42,.48)", children: /* @__PURE__ */ jsxs11(Box8, { role: "dialog", "aria-modal": "true", display: "flex", flexDirection: "column", w: `min(${width}, 98vw)`, h: "94vh", maxH: "94vh", overflow: "hidden", bg: "white", borderRadius: "14px", boxShadow: "0 24px 70px rgba(15,23,42,.24)", children: [
2752
2769
  /* @__PURE__ */ jsxs11(Flex7, { minH: "72px", px: "20px", py: "10px", align: "center", justify: "space-between", gap: 4, borderBottomWidth: "1px", borderColor: "#E5E9ED", children: [
2753
2770
  /* @__PURE__ */ jsxs11(Box8, { minW: "160px", children: [
2754
2771
  /* @__PURE__ */ jsx15(Text10, { color: "#0474AF", fontSize: "10px", fontWeight: "700", textTransform: "uppercase", children: "Detalhe" }),
2755
2772
  /* @__PURE__ */ jsx15(Heading3, { size: "md", children: recordId ? displayTitle : `Novo ${title}` })
2756
2773
  ] }),
2757
2774
  /* @__PURE__ */ jsxs11(Flex7, { flex: "1", align: "center", justify: "flex-end", gap: "8px", wrap: "wrap", children: [
2758
- recordId ? actions : null,
2775
+ recordId ? topActions : null,
2759
2776
  /* @__PURE__ */ jsx15(
2760
2777
  IconButton,
2761
2778
  {
@@ -2777,7 +2794,7 @@ function CoreDetailModal({
2777
2794
  )
2778
2795
  ] })
2779
2796
  ] }),
2780
- /* @__PURE__ */ jsx15(Box8, { maxH: "calc(94vh - 73px)", p: "20px", overflowY: "auto", children: schemaQuery.isLoading || parentQuery.isLoading ? /* @__PURE__ */ jsx15(Text10, { children: "Carregando..." }) : /* @__PURE__ */ jsx15(
2797
+ /* @__PURE__ */ jsx15(Box8, { flex: "1", minH: 0, p: "20px", overflowY: "auto", children: schemaQuery.isLoading || parentQuery.isLoading ? /* @__PURE__ */ jsx15(Text10, { children: "Carregando..." }) : /* @__PURE__ */ jsx15(
2781
2798
  CoreTabbedDetail,
2782
2799
  {
2783
2800
  tabs: config.tabs,
@@ -2789,13 +2806,35 @@ function CoreDetailModal({
2789
2806
  relations,
2790
2807
  refreshTokens,
2791
2808
  onRefresh: refresh,
2809
+ formId,
2810
+ externalSubmit: true,
2792
2811
  onParentSaved: (saved) => {
2793
2812
  setParent(saved);
2794
2813
  onSaved?.(saved);
2795
2814
  refresh(["parent"]);
2796
2815
  }
2797
2816
  }
2798
- ) })
2817
+ ) }),
2818
+ /* @__PURE__ */ jsxs11(
2819
+ Flex7,
2820
+ {
2821
+ flex: "0 0 auto",
2822
+ minH: "64px",
2823
+ px: "20px",
2824
+ py: "10px",
2825
+ align: "center",
2826
+ justify: "space-between",
2827
+ gap: "12px",
2828
+ bg: "white",
2829
+ borderTopWidth: "1px",
2830
+ borderColor: "#E5E9ED",
2831
+ boxShadow: "0 -8px 24px rgba(15,23,42,.06)",
2832
+ children: [
2833
+ /* @__PURE__ */ jsx15(Box8, { children: recordId ? bottomActions : null }),
2834
+ /* @__PURE__ */ jsx15(Button8, { type: "submit", form: formId, colorPalette: "brand", disabled: !activeIsForm || schemaQuery.isLoading || parentQuery.isLoading, children: "Salvar" })
2835
+ ]
2836
+ }
2837
+ )
2799
2838
  ] }) });
2800
2839
  }
2801
2840
 
@@ -2941,7 +2980,7 @@ function CoreDocument({ model, label, endpoint, columns, form }) {
2941
2980
 
2942
2981
  // src/components/CorePipeline.tsx
2943
2982
  import { useState as useState11 } from "react";
2944
- import { Badge as Badge4, Box as Box10, Button as Button8, Flex as Flex8, Heading as Heading5, Input as Input6, NativeSelect as NativeSelect5, Stack as Stack5, Text as Text12 } from "@chakra-ui/react";
2983
+ import { Badge as Badge4, Box as Box10, Button as Button9, Flex as Flex8, Heading as Heading5, Input as Input6, NativeSelect as NativeSelect5, Stack as Stack5, Text as Text12 } from "@chakra-ui/react";
2945
2984
  import { useMutation as useMutation3, useQuery as useQuery7, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
2946
2985
 
2947
2986
  // src/pipelineTicket.ts
@@ -3085,6 +3124,13 @@ function mergeFormFields2(metadataFields, overrides) {
3085
3124
  });
3086
3125
  return merged;
3087
3126
  }
3127
+ function workStatusColor(value) {
3128
+ const normalized2 = String(value ?? "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
3129
+ if (/aguardando.*inicio|nao.*iniciado|waiting/.test(normalized2)) return "#D97706";
3130
+ if (/trabalhando|em.*andamento|working/.test(normalized2)) return "#16A34A";
3131
+ if (/revisar|revisao|review/.test(normalized2)) return "#DC2626";
3132
+ return "#94A3B8";
3133
+ }
3088
3134
  function PipelineFilterControl({
3089
3135
  filter,
3090
3136
  value,
@@ -3243,38 +3289,10 @@ function CorePipeline({
3243
3289
  },
3244
3290
  action.id ?? `${action.label}-${index}`
3245
3291
  ) : null;
3246
- const modalActions = selectedTicket && !creating ? /* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", justify: "flex-end", wrap: "wrap", children: [
3247
- groupedTicketActions.approval.length ? /* @__PURE__ */ jsx18(
3248
- Flex8,
3249
- {
3250
- role: "group",
3251
- "aria-label": "Aprova\xE7\xE3o do ticket",
3252
- gap: "4px",
3253
- align: "center",
3254
- p: "3px",
3255
- bg: "#F8FAFC",
3256
- borderWidth: "1px",
3257
- borderColor: "#E2E8F0",
3258
- borderRadius: "9px",
3259
- children: groupedTicketActions.approval.map(renderModalAction)
3260
- }
3261
- ) : null,
3262
- groupedTicketActions.workStatus.length ? /* @__PURE__ */ jsx18(
3263
- Flex8,
3264
- {
3265
- role: "group",
3266
- "aria-label": "Status de trabalho",
3267
- gap: "4px",
3268
- align: "center",
3269
- p: "3px",
3270
- bg: "#F8FAFC",
3271
- borderWidth: "1px",
3272
- borderColor: "#E2E8F0",
3273
- borderRadius: "9px",
3274
- children: groupedTicketActions.workStatus.map(renderModalAction)
3275
- }
3276
- ) : null,
3277
- groupedTicketActions.custom.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Outras a\xE7\xF5es", gap: "4px", align: "center", wrap: "wrap", children: groupedTicketActions.custom.map(renderModalAction) }) : null
3292
+ const modalTopActions = selectedTicket && !creating && groupedTicketActions.workStatus.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Status da atividade", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.workStatus.map(renderModalAction) }) : null;
3293
+ const modalBottomActions = selectedTicket && !creating ? /* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
3294
+ groupedTicketActions.approval.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Aprova\xE7\xE3o do ticket", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.approval.map(renderModalAction) }) : null,
3295
+ groupedTicketActions.custom.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "A\xE7\xF5es do neg\xF3cio", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.custom.map(renderModalAction) }) : null
3278
3296
  ] }) : null;
3279
3297
  return /* @__PURE__ */ jsxs13(Stack5, { gap: 5, children: [
3280
3298
  /* @__PURE__ */ jsxs13(Flex8, { align: { base: "stretch", md: "flex-end" }, justify: "space-between", gap: 4, direction: { base: "column", md: "row" }, children: [
@@ -3284,8 +3302,8 @@ function CorePipeline({
3284
3302
  /* @__PURE__ */ jsx18(Text12, { mt: 1, fontSize: "13px", color: "gray.500", children: "Acompanhe os tickets por etapa e visualize os principais dados de cada item." })
3285
3303
  ] }),
3286
3304
  /* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
3287
- allowedViewModes.length > 1 ? allowedViewModes.map((mode) => /* @__PURE__ */ jsx18(Button8, { size: "sm", variant: viewMode === mode ? "solid" : "outline", colorPalette: "brand", onClick: () => setViewMode(mode), children: mode === "board" ? "Quadro" : "Lista" }, mode)) : null,
3288
- create?.enabled ? /* @__PURE__ */ jsx18(Button8, { size: "sm", colorPalette: "brand", onClick: openCreate, children: create.label ?? "Novo ticket" }) : null
3305
+ allowedViewModes.length > 1 ? allowedViewModes.map((mode) => /* @__PURE__ */ jsx18(Button9, { size: "sm", variant: viewMode === mode ? "solid" : "outline", colorPalette: "brand", onClick: () => setViewMode(mode), children: mode === "board" ? "Quadro" : "Lista" }, mode)) : null,
3306
+ create?.enabled ? /* @__PURE__ */ jsx18(Button9, { size: "sm", colorPalette: "brand", onClick: openCreate, children: create.label ?? "Novo ticket" }) : null
3289
3307
  ] })
3290
3308
  ] }),
3291
3309
  filters.length ? /* @__PURE__ */ jsxs13(Flex8, { p: "12px", gap: "10px", align: "flex-end", wrap: "wrap", bg: "white", borderWidth: "1px", borderColor: "#E5E9ED", borderRadius: "10px", children: [
@@ -3305,7 +3323,7 @@ function CorePipeline({
3305
3323
  ] }, filter.field);
3306
3324
  }),
3307
3325
  /* @__PURE__ */ jsx18(
3308
- Button8,
3326
+ Button9,
3309
3327
  {
3310
3328
  size: "sm",
3311
3329
  variant: "outline",
@@ -3337,7 +3355,7 @@ function CorePipeline({
3337
3355
  /* @__PURE__ */ jsx18(Stack5, { gap: 2, children: items.length === 0 ? /* @__PURE__ */ jsx18(Box10, { borderWidth: "1px", borderStyle: "dashed", borderColor: "#C8D0D5", borderRadius: "10px", p: 5, textAlign: "center", children: /* @__PURE__ */ jsx18(Text12, { fontSize: "12px", color: "gray.500", children: "Nenhum ticket nesta etapa." }) }) : items.map((row, index) => {
3338
3356
  const ticketTitle = formatCell(row[resolvedTitleField], "string");
3339
3357
  return /* @__PURE__ */ jsxs13(
3340
- Button8,
3358
+ Button9,
3341
3359
  {
3342
3360
  type: "button",
3343
3361
  variant: "plain",
@@ -3361,7 +3379,24 @@ function CorePipeline({
3361
3379
  },
3362
3380
  _hover: { borderColor: "brand.300", transform: "translateY(-1px)", boxShadow: "0 7px 18px rgba(7, 38, 46, 0.09)" },
3363
3381
  children: [
3364
- /* @__PURE__ */ jsx18(Text12, { fontSize: "13px", fontWeight: "700", color: "#24323A", mb: 2, lineClamp: 2, children: ticketTitle }),
3382
+ /* @__PURE__ */ jsxs13(Flex8, { align: "flex-start", justify: "space-between", gap: "8px", mb: 2, children: [
3383
+ /* @__PURE__ */ jsx18(Text12, { fontSize: "13px", fontWeight: "700", color: "#24323A", lineClamp: 2, children: ticketTitle }),
3384
+ /* @__PURE__ */ jsx18(
3385
+ Box10,
3386
+ {
3387
+ as: "span",
3388
+ title: `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
3389
+ "aria-label": `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
3390
+ flex: "0 0 auto",
3391
+ w: "10px",
3392
+ h: "10px",
3393
+ mt: "4px",
3394
+ borderRadius: "full",
3395
+ bg: workStatusColor(row[workStatusField]),
3396
+ boxShadow: "0 0 0 3px white, 0 0 0 4px #E2E8F0"
3397
+ }
3398
+ )
3399
+ ] }),
3365
3400
  /* @__PURE__ */ jsx18(Stack5, { gap: 1, children: detailFields.map((field) => /* @__PURE__ */ jsxs13(Flex8, { gap: 2, align: "baseline", justify: "space-between", children: [
3366
3401
  /* @__PURE__ */ jsx18(Text12, { fontSize: "10px", color: "gray.500", textTransform: "uppercase", letterSpacing: "0.03em", children: fieldLabel(field) }),
3367
3402
  /* @__PURE__ */ jsx18(Text12, { fontSize: "11px", color: "#46545C", fontWeight: "500", textAlign: "right", lineClamp: 1, children: formatCell(row[field.name], field.kind) })
@@ -3384,7 +3419,8 @@ function CorePipeline({
3384
3419
  initialRecord: selectedTicket,
3385
3420
  initialTab: creating ? create?.initialTab : void 0,
3386
3421
  relations,
3387
- actions: modalActions,
3422
+ topActions: modalTopActions,
3423
+ bottomActions: modalBottomActions,
3388
3424
  onClose: () => {
3389
3425
  setSelectedTicket(null);
3390
3426
  setCreating(false);
@@ -3516,7 +3552,7 @@ function MissingRenderer({ renderer, children }) {
3516
3552
  }
3517
3553
 
3518
3554
  // src/components/ui-v2/CorePrimitives.tsx
3519
- import { Box as Box13, Button as Button9, Flex as Flex9, Heading as Heading7, Spinner as Spinner3, Text as Text15 } from "@chakra-ui/react";
3555
+ import { Box as Box13, Button as Button10, Flex as Flex9, Heading as Heading7, Spinner as Spinner3, Text as Text15 } from "@chakra-ui/react";
3520
3556
  import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
3521
3557
  function CorePage({ children }) {
3522
3558
  return /* @__PURE__ */ jsx22(Box13, { children });
@@ -3557,7 +3593,7 @@ function CoreActions({ children }) {
3557
3593
  function CoreEmptyState({ title = "Nenhum dado encontrado", actionLabel, onAction }) {
3558
3594
  return /* @__PURE__ */ jsxs16(Box13, { textAlign: "center", py: 10, children: [
3559
3595
  /* @__PURE__ */ jsx22(Text15, { children: title }),
3560
- actionLabel ? /* @__PURE__ */ jsx22(Button9, { mt: 3, onClick: onAction, children: actionLabel }) : null
3596
+ actionLabel ? /* @__PURE__ */ jsx22(Button10, { mt: 3, onClick: onAction, children: actionLabel }) : null
3561
3597
  ] });
3562
3598
  }
3563
3599
  function CoreLoadingState({ label = "Carregando..." }) {
@@ -3762,7 +3798,7 @@ import {
3762
3798
  } from "react-router-dom";
3763
3799
 
3764
3800
  // src/shell/DefaultShell.tsx
3765
- import { Box as Box16, Button as Button10, Flex as Flex11, Spacer as Spacer2, Text as Text18 } from "@chakra-ui/react";
3801
+ import { Box as Box16, Button as Button11, Flex as Flex11, Spacer as Spacer2, Text as Text18 } from "@chakra-ui/react";
3766
3802
  import { Outlet } from "react-router-dom";
3767
3803
 
3768
3804
  // src/shell/Sidebar.tsx
@@ -3882,7 +3918,7 @@ function CoreTopbar({ app }) {
3882
3918
  /* @__PURE__ */ jsx26(Text18, { fontSize: "sm", fontWeight: "600", color: "#24323A", children: user.nome }),
3883
3919
  user.email ? /* @__PURE__ */ jsx26(Text18, { fontSize: "xs", color: "gray.500", children: user.email }) : null
3884
3920
  ] }),
3885
- /* @__PURE__ */ jsx26(Button10, { size: "sm", variant: "outline", colorPalette: "brand", borderRadius: "8px", onClick: logout, children: "Sair" })
3921
+ /* @__PURE__ */ jsx26(Button11, { size: "sm", variant: "outline", colorPalette: "brand", borderRadius: "8px", onClick: logout, children: "Sair" })
3886
3922
  ] }) : null
3887
3923
  ] });
3888
3924
  }
@@ -3926,7 +3962,7 @@ function AuthenticatedLayout({ app, menu, layout, registry }) {
3926
3962
  }
3927
3963
 
3928
3964
  // src/security/AccessDeniedPage.tsx
3929
- import { Box as Box17, Button as Button11, Flex as Flex12, Heading as Heading9, Text as Text19, VStack } from "@chakra-ui/react";
3965
+ import { Box as Box17, Button as Button12, Flex as Flex12, Heading as Heading9, Text as Text19, VStack } from "@chakra-ui/react";
3930
3966
  import { useNavigate } from "react-router-dom";
3931
3967
  import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
3932
3968
  function AccessDeniedPage({ app }) {
@@ -3985,7 +4021,7 @@ function AccessDeniedPage({ app }) {
3985
4021
  ] })
3986
4022
  ] }),
3987
4023
  /* @__PURE__ */ jsx28(
3988
- Button11,
4024
+ Button12,
3989
4025
  {
3990
4026
  alignSelf: "flex-start",
3991
4027
  bg: "#07262E",
@@ -4042,7 +4078,7 @@ function AppAccessGuard({ children }) {
4042
4078
  import { useState as useState12 } from "react";
4043
4079
  import {
4044
4080
  Box as Box18,
4045
- Button as Button12,
4081
+ Button as Button13,
4046
4082
  Flex as Flex13,
4047
4083
  Heading as Heading10,
4048
4084
  Input as Input7,
@@ -4160,7 +4196,7 @@ function LoginPage({ app }) {
4160
4196
  }
4161
4197
  ) : null,
4162
4198
  /* @__PURE__ */ jsx30(
4163
- Button12,
4199
+ Button13,
4164
4200
  {
4165
4201
  type: "submit",
4166
4202
  bg: "#07262E",
@@ -4177,7 +4213,7 @@ function LoginPage({ app }) {
4177
4213
 
4178
4214
  // src/security/ActivationPage.tsx
4179
4215
  import { useEffect as useEffect7, useState as useState13 } from "react";
4180
- import { Box as Box19, Button as Button13, Heading as Heading11, Input as Input8, Text as Text21, VStack as VStack3 } from "@chakra-ui/react";
4216
+ import { Box as Box19, Button as Button14, Heading as Heading11, Input as Input8, Text as Text21, VStack as VStack3 } from "@chakra-ui/react";
4181
4217
  import { Fragment as Fragment6, jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
4182
4218
  function encodeBasicCredentials2(email, password) {
4183
4219
  const bytes = new TextEncoder().encode(`${email}:${password}`);
@@ -4375,7 +4411,7 @@ function ActivationPage() {
4375
4411
  )
4376
4412
  ] }),
4377
4413
  /* @__PURE__ */ jsx31(
4378
- Button13,
4414
+ Button14,
4379
4415
  {
4380
4416
  colorPalette: "blue",
4381
4417
  onClick: activateDevLocal,
@@ -4385,7 +4421,7 @@ function ActivationPage() {
4385
4421
  }
4386
4422
  ),
4387
4423
  /* @__PURE__ */ jsx31(
4388
- Button13,
4424
+ Button14,
4389
4425
  {
4390
4426
  variant: "outline",
4391
4427
  onClick: () => setShowCodeFlow(true),
@@ -4466,7 +4502,7 @@ function ActivationPage() {
4466
4502
  )
4467
4503
  ] }),
4468
4504
  /* @__PURE__ */ jsx31(
4469
- Button13,
4505
+ Button14,
4470
4506
  {
4471
4507
  colorPalette: "blue",
4472
4508
  onClick: activateRoot,
@@ -4519,7 +4555,7 @@ function ActivationPage() {
4519
4555
  }
4520
4556
  ),
4521
4557
  /* @__PURE__ */ jsx31(
4522
- Button13,
4558
+ Button14,
4523
4559
  {
4524
4560
  onClick: validateCode,
4525
4561
  loading: submitting,
@@ -4528,7 +4564,7 @@ function ActivationPage() {
4528
4564
  }
4529
4565
  ),
4530
4566
  isDevelopmentMember ? /* @__PURE__ */ jsx31(
4531
- Button13,
4567
+ Button14,
4532
4568
  {
4533
4569
  variant: "outline",
4534
4570
  onClick: () => setShowCodeFlow(false),
@@ -4540,22 +4576,22 @@ function ActivationPage() {
4540
4576
  step === 2 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
4541
4577
  /* @__PURE__ */ jsx31(Heading11, { size: "md", children: "Confirma\xE7\xE3o" }),
4542
4578
  /* @__PURE__ */ jsx31("pre", { children: JSON.stringify(preview, null, 2) }),
4543
- /* @__PURE__ */ jsx31(Button13, { onClick: () => setStep(3), children: "Continuar" })
4579
+ /* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(3), children: "Continuar" })
4544
4580
  ] }),
4545
4581
  step === 3 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
4546
4582
  config.globalFields.map(
4547
4583
  (field) => renderField(field, global, setGlobal)
4548
4584
  ),
4549
- /* @__PURE__ */ jsx31(Button13, { onClick: () => setStep(4), children: "Continuar" })
4585
+ /* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(4), children: "Continuar" })
4550
4586
  ] }),
4551
4587
  step === 4 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
4552
4588
  config.appFields.length ? config.appFields.map((field) => renderField(field, app, setApp)) : /* @__PURE__ */ jsx31(Text21, { children: "Nenhum par\xE2metro adicional declarado." }),
4553
- /* @__PURE__ */ jsx31(Button13, { onClick: () => setStep(5), children: "Revisar" })
4589
+ /* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(5), children: "Revisar" })
4554
4590
  ] }),
4555
4591
  step === 5 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
4556
4592
  /* @__PURE__ */ jsx31(Text21, { children: "Ao confirmar, o c\xF3digo ser\xE1 consumido e a inst\xE2ncia ser\xE1 registrada no Ecossistema Oon." }),
4557
4593
  /* @__PURE__ */ jsx31(
4558
- Button13,
4594
+ Button14,
4559
4595
  {
4560
4596
  colorPalette: "blue",
4561
4597
  onClick: completeMemberActivation,
@@ -4896,7 +4932,7 @@ function defineOonModule(mod) {
4896
4932
  }
4897
4933
 
4898
4934
  // src/components/CoreIntegration.tsx
4899
- import { Badge as Badge5, Box as Box20, Button as Button14, Flex as Flex14, Heading as Heading12, Stack as Stack9, Text as Text22 } from "@chakra-ui/react";
4935
+ import { Badge as Badge5, Box as Box20, Button as Button15, Flex as Flex14, Heading as Heading12, Stack as Stack9, Text as Text22 } from "@chakra-ui/react";
4900
4936
  import { useMutation as useMutation4 } from "@tanstack/react-query";
4901
4937
  import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
4902
4938
  function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
@@ -4911,7 +4947,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
4911
4947
  return /* @__PURE__ */ jsxs23(Stack9, { gap: 6, children: [
4912
4948
  /* @__PURE__ */ jsxs23(Flex14, { align: "center", justify: "space-between", children: [
4913
4949
  /* @__PURE__ */ jsx37(Heading12, { size: "lg", children: label }),
4914
- /* @__PURE__ */ jsx37(Button14, { size: "sm", variant: "outline", loading: reprocess.isPending, onClick: () => reprocess.mutate(), children: "Reprocessar ativos" })
4950
+ /* @__PURE__ */ jsx37(Button15, { size: "sm", variant: "outline", loading: reprocess.isPending, onClick: () => reprocess.mutate(), children: "Reprocessar ativos" })
4915
4951
  ] }),
4916
4952
  /* @__PURE__ */ jsx37(Stack9, { gap: 3, children: integrations.length === 0 ? /* @__PURE__ */ jsx37(Text22, { color: "gray.400", children: "Nenhuma integra\xE7\xE3o declarada." }) : integrations.map((it, idx) => /* @__PURE__ */ jsx37(
4917
4953
  Box20,
@@ -4932,7 +4968,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
4932
4968
  }
4933
4969
 
4934
4970
  // src/components/CoreCurrency.tsx
4935
- import { Button as Button15, Flex as Flex15, Heading as Heading13, Stack as Stack10, Text as Text23 } from "@chakra-ui/react";
4971
+ import { Button as Button16, Flex as Flex15, Heading as Heading13, Stack as Stack10, Text as Text23 } from "@chakra-ui/react";
4936
4972
  import { useMutation as useMutation5, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
4937
4973
  import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
4938
4974
  function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/moedas", columns }) {
@@ -4945,7 +4981,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
4945
4981
  return /* @__PURE__ */ jsxs24(Stack10, { gap: 6, children: [
4946
4982
  /* @__PURE__ */ jsxs24(Flex15, { align: "center", justify: "space-between", children: [
4947
4983
  /* @__PURE__ */ jsx38(Heading13, { size: "lg", children: label }),
4948
- /* @__PURE__ */ jsx38(Button15, { size: "sm", colorPalette: "blue", loading: updateRates.isPending, onClick: () => updateRates.mutate(), children: "Atualizar cota\xE7\xF5es" })
4984
+ /* @__PURE__ */ jsx38(Button16, { size: "sm", colorPalette: "blue", loading: updateRates.isPending, onClick: () => updateRates.mutate(), children: "Atualizar cota\xE7\xF5es" })
4949
4985
  ] }),
4950
4986
  updateRates.isError ? /* @__PURE__ */ jsx38(Text23, { fontSize: "sm", color: "red.600", children: updateRates.error?.message }) : null,
4951
4987
  /* @__PURE__ */ jsx38(CoreCollection, { model, label: "", mode: columns ? "full" : "dynamic", endpoint, columns })
@@ -4954,7 +4990,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
4954
4990
 
4955
4991
  // src/components/CoreAssistant.tsx
4956
4992
  import { useState as useState14 } from "react";
4957
- import { Box as Box21, Button as Button16, Flex as Flex16, Heading as Heading14, Input as Input9, Stack as Stack11, Text as Text24 } from "@chakra-ui/react";
4993
+ import { Box as Box21, Button as Button17, Flex as Flex16, Heading as Heading14, Input as Input9, Stack as Stack11, Text as Text24 } from "@chakra-ui/react";
4958
4994
  import { useMutation as useMutation6 } from "@tanstack/react-query";
4959
4995
  import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
4960
4996
  function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint = "/assistant-runs" }) {
@@ -5017,7 +5053,7 @@ function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint =
5017
5053
  }
5018
5054
  }
5019
5055
  ),
5020
- /* @__PURE__ */ jsx39(Button16, { size: "sm", colorPalette: "blue", onClick: send, loading: ask.isPending, children: "Enviar" })
5056
+ /* @__PURE__ */ jsx39(Button17, { size: "sm", colorPalette: "blue", onClick: send, loading: ask.isPending, children: "Enviar" })
5021
5057
  ] })
5022
5058
  ] });
5023
5059
  }