@mlw-packages/react-components 1.7.8 → 1.7.10

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
@@ -566,6 +566,7 @@ __export(index_exports, {
566
566
  CopyButton: () => CopyButton,
567
567
  DateTimePicker: () => DateTimePicker,
568
568
  DayView: () => DayView,
569
+ DebouncedInput: () => DebouncedInput,
569
570
  DefaultEndHour: () => DefaultEndHour,
570
571
  DefaultStartHour: () => DefaultStartHour,
571
572
  DestructiveDialog: () => DestructiveDialog,
@@ -2121,21 +2122,28 @@ function Select({
2121
2122
  onChange,
2122
2123
  error,
2123
2124
  testIds = {},
2124
- disabled
2125
+ disabled,
2126
+ selected,
2127
+ label,
2128
+ labelClassname,
2129
+ className
2125
2130
  }) {
2126
2131
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { "data-testid": testIds.root ?? "select-root", children: [
2132
+ label ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { className: cn("mb-1 block text-sm font-medium", labelClassname), children: label }) : null,
2127
2133
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2128
2134
  SelectBase,
2129
2135
  {
2130
- onValueChange: onChange,
2136
+ value: selected ?? void 0,
2137
+ onValueChange: (v) => onChange(v),
2131
2138
  "data-testid": testIds.base ?? "select-base",
2132
2139
  children: [
2133
2140
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2134
2141
  SelectTriggerBase,
2135
2142
  {
2136
2143
  className: cn(
2137
- "flex h-9 w-full content-start text-lg shadow-md",
2138
- error && "border-red-500"
2144
+ "flex items-center gap-2 justify-between [&>div]:line-clamp-1 [&>span]:line-clamp-1 ",
2145
+ error && "border-red-500",
2146
+ className
2139
2147
  ),
2140
2148
  "data-testid": testIds.trigger ?? "select-trigger",
2141
2149
  disabled,
@@ -2164,7 +2172,7 @@ function Select({
2164
2172
  SelectItemBase,
2165
2173
  {
2166
2174
  value: item.value,
2167
- "data-testid": testIds.item?.(item.value) ?? `select-item-${item.value}`,
2175
+ "data-testid": testIds.item?.(String(item.value)) ?? `select-item-${item.value}`,
2168
2176
  children: item.label
2169
2177
  },
2170
2178
  item.value
@@ -2176,7 +2184,7 @@ function Select({
2176
2184
  SelectItemBase,
2177
2185
  {
2178
2186
  value: item.value,
2179
- "data-testid": testIds.item?.(item.value) ?? `select-item-${item.value}`,
2187
+ "data-testid": testIds.item?.(String(item.value)) ?? `select-item-${item.value}`,
2180
2188
  children: item.label
2181
2189
  },
2182
2190
  item.value
@@ -2190,7 +2198,21 @@ function Select({
2190
2198
 
2191
2199
  // src/components/selects/AvatarSelect.tsx
2192
2200
  var import_react15 = require("react");
2201
+ var import_react16 = require("@phosphor-icons/react");
2193
2202
  var import_jsx_runtime19 = require("react/jsx-runtime");
2203
+ var DEFAULT_COLORS = [
2204
+ "bg-purple-100 text-purple-700",
2205
+ "bg-green-100 text-green-700",
2206
+ "bg-blue-100 text-blue-700"
2207
+ ];
2208
+ var getColor = (value, colors2 = DEFAULT_COLORS) => {
2209
+ let hash = 0;
2210
+ for (let i = 0; i < value.length; i++) {
2211
+ hash = value.charCodeAt(i) + ((hash << 5) - hash);
2212
+ }
2213
+ const index = Math.abs(hash) % colors2.length;
2214
+ return colors2[index];
2215
+ };
2194
2216
  var Square = ({
2195
2217
  className,
2196
2218
  children
@@ -2217,13 +2239,18 @@ function AvatarSelect({
2217
2239
  selected,
2218
2240
  label,
2219
2241
  labelClassname,
2220
- className
2242
+ className,
2243
+ colors: colors2
2221
2244
  }) {
2245
+ const [open, setOpen] = (0, import_react15.useState)(false);
2222
2246
  const id = (0, import_react15.useId)();
2247
+ const allItems = items || (groupItems ? Object.values(groupItems).flat() : []);
2248
+ const selectedItem = allItems.find((item) => item.value === selected);
2223
2249
  const renderItem = (item) => {
2224
2250
  const avatarContent = item.avatar ?? item.label.charAt(0).toUpperCase();
2251
+ const colorClass = item.avatarClassName ?? getColor(item.value, colors2);
2225
2252
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2226
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Square, { className: item.avatarClassName, children: avatarContent }),
2253
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Square, { className: colorClass, children: avatarContent }),
2227
2254
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "truncate", children: item.label })
2228
2255
  ] });
2229
2256
  };
@@ -2236,95 +2263,95 @@ function AvatarSelect({
2236
2263
  children: label
2237
2264
  }
2238
2265
  ) : null,
2239
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2240
- SelectBase,
2241
- {
2242
- value: selected ?? void 0,
2243
- onValueChange: (v) => onChange(v),
2244
- "data-testid": testIds.base ?? "avatar-select-base",
2245
- children: [
2246
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2247
- SelectTriggerBase,
2248
- {
2249
- id,
2250
- className: cn(
2251
- " [&>span]:flex [&>span]:items-center [&>span]:gap-2 [&>span_[data-square]]:shrink-0",
2252
- error && "border-red-500",
2253
- className
2254
- ),
2255
- "data-testid": testIds.trigger ?? "avatar-select-trigger",
2256
- disabled,
2257
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2258
- SelectValueBase,
2259
- {
2260
- placeholder,
2261
- "data-testid": testIds.value ?? "avatar-select-value"
2262
- }
2263
- )
2264
- }
2266
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(PopoverBase, { open, onOpenChange: setOpen, children: [
2267
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverTriggerBase, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2268
+ ButtonBase,
2269
+ {
2270
+ id,
2271
+ variant: "select",
2272
+ role: "combobox",
2273
+ "aria-expanded": open,
2274
+ className: cn(
2275
+ "w-full justify-between px-3 font-normal",
2276
+ error && "border-red-500",
2277
+ className
2265
2278
  ),
2266
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2267
- ScrollAreaBase,
2268
- {
2269
- "data-testid": testIds.scrollarea ?? "avatar-select-scrollarea",
2270
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2271
- SelectContentBase,
2279
+ disabled,
2280
+ "data-testid": testIds.trigger ?? "avatar-select-trigger",
2281
+ children: [
2282
+ selectedItem ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "flex items-center gap-2 truncate", children: renderItem(selectedItem) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-muted-foreground", children: placeholder }),
2283
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react16.CaretDownIcon, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
2284
+ ]
2285
+ }
2286
+ ) }),
2287
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2288
+ PopoverContentBase,
2289
+ {
2290
+ className: "w-[--radix-popover-trigger-width] p-0",
2291
+ align: "start",
2292
+ "data-testid": testIds.content ?? "avatar-select-content",
2293
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(CommandBase, { children: [
2294
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandInputBase, { placeholder: "Search..." }),
2295
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(CommandListBase, { children: [
2296
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandEmptyBase, { children: "No results found." }),
2297
+ groupItems ? Object.keys(groupItems).map((key) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandGroupBase, { heading: key, children: groupItems[key].map((item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2298
+ CommandItemBase,
2272
2299
  {
2273
- className: "[&_*[role=option]>span]:start-auto [&_*[role=option]>span]:end-2 [&_*[role=option]>span]:flex [&_*[role=option]>span]:items-center [&_*[role=option]>span]:gap-2 [&_*[role=option]]:ps-2 [&_*[role=option]]:pe-8",
2274
- "data-testid": testIds.content ?? "avatar-select-content",
2275
- children: groupItems ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, { children: Object.keys(groupItems).map((key) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2276
- SelectGroupBase,
2277
- {
2278
- "data-testid": testIds.group ?? "avatar-select-group",
2279
- children: [
2280
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2281
- SelectLabelBase,
2282
- {
2283
- className: "ps-2",
2284
- "data-testid": testIds.label ?? "avatar-select-label",
2285
- children: key
2286
- }
2287
- ),
2288
- groupItems[key].map((item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2289
- SelectItemBase,
2290
- {
2291
- value: item.value,
2292
- "data-testid": testIds.item?.(String(item.value)) ?? `avatar-select-item-${item.value}`,
2293
- children: renderItem(item)
2294
- },
2295
- item.value
2296
- ))
2297
- ]
2298
- },
2299
- key
2300
- )) }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2301
- SelectGroupBase,
2302
- {
2303
- "data-testid": testIds.group ?? "avatar-select-group",
2304
- children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2305
- SelectItemBase,
2306
- {
2307
- value: item.value,
2308
- "data-testid": testIds.item?.(String(item.value)) ?? `avatar-select-item-${item.value}`,
2309
- children: renderItem(item)
2310
- },
2311
- item.value
2312
- ))
2313
- }
2314
- )
2315
- }
2316
- )
2317
- }
2318
- )
2319
- ]
2320
- }
2321
- ),
2300
+ value: item.label,
2301
+ onSelect: () => {
2302
+ onChange(item.value);
2303
+ setOpen(false);
2304
+ },
2305
+ "data-testid": testIds.item?.(String(item.value)) ?? `avatar-select-item-${item.value}`,
2306
+ children: [
2307
+ renderItem(item),
2308
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2309
+ import_react16.CheckIcon,
2310
+ {
2311
+ className: cn(
2312
+ "ml-auto h-4 w-4",
2313
+ selected === item.value ? "opacity-100" : "opacity-0"
2314
+ )
2315
+ }
2316
+ )
2317
+ ]
2318
+ },
2319
+ item.value
2320
+ )) }, key)) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandGroupBase, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2321
+ CommandItemBase,
2322
+ {
2323
+ value: item.label,
2324
+ onSelect: () => {
2325
+ onChange(item.value);
2326
+ setOpen(false);
2327
+ },
2328
+ "data-testid": testIds.item?.(String(item.value)) ?? `avatar-select-item-${item.value}`,
2329
+ children: [
2330
+ renderItem(item),
2331
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2332
+ import_react16.CheckIcon,
2333
+ {
2334
+ className: cn(
2335
+ "ml-auto h-4 w-4",
2336
+ selected === item.value ? "opacity-100" : "opacity-0"
2337
+ )
2338
+ }
2339
+ )
2340
+ ]
2341
+ },
2342
+ item.value
2343
+ )) })
2344
+ ] })
2345
+ ] })
2346
+ }
2347
+ )
2348
+ ] }),
2322
2349
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ErrorMessage_default, { error })
2323
2350
  ] });
2324
2351
  }
2325
2352
 
2326
2353
  // src/components/charts/Chart.tsx
2327
- var import_react20 = require("react");
2354
+ var import_react21 = require("react");
2328
2355
  var import_recharts = require("recharts");
2329
2356
 
2330
2357
  // src/components/charts/utils/helpers.ts
@@ -2471,7 +2498,7 @@ var resolveChartMargins = (margins, chartMargins, showLabels) => {
2471
2498
  var import_sonner = require("sonner");
2472
2499
 
2473
2500
  // src/components/charts/components/controls/PeriodsDropdown.tsx
2474
- var import_react16 = require("react");
2501
+ var import_react17 = require("react");
2475
2502
  var import_framer_motion6 = require("framer-motion");
2476
2503
  var import_ssr = require("@phosphor-icons/react/dist/ssr");
2477
2504
  var import_ssr2 = require("@phosphor-icons/react/dist/ssr");
@@ -2494,11 +2521,11 @@ function PeriodsDropdown({
2494
2521
  activePeriods
2495
2522
  }) {
2496
2523
  const periods = processedData.map((d) => String(d.name));
2497
- const [open, setOpen] = (0, import_react16.useState)(false);
2498
- const wrapperRef = (0, import_react16.useRef)(null);
2499
- const firstItemRef = (0, import_react16.useRef)(null);
2500
- const listRef = (0, import_react16.useRef)(null);
2501
- (0, import_react16.useEffect)(() => {
2524
+ const [open, setOpen] = (0, import_react17.useState)(false);
2525
+ const wrapperRef = (0, import_react17.useRef)(null);
2526
+ const firstItemRef = (0, import_react17.useRef)(null);
2527
+ const listRef = (0, import_react17.useRef)(null);
2528
+ (0, import_react17.useEffect)(() => {
2502
2529
  const handleClickOutside = (e) => {
2503
2530
  if (!wrapperRef.current) return;
2504
2531
  if (!wrapperRef.current.contains(e.target)) setOpen(false);
@@ -2513,7 +2540,7 @@ function PeriodsDropdown({
2513
2540
  document.removeEventListener("keydown", handleEscape);
2514
2541
  };
2515
2542
  }, []);
2516
- (0, import_react16.useEffect)(() => {
2543
+ (0, import_react17.useEffect)(() => {
2517
2544
  if (open && firstItemRef.current) {
2518
2545
  firstItemRef.current.focus();
2519
2546
  }
@@ -2606,7 +2633,7 @@ var PeriodsDropdown_default = PeriodsDropdown;
2606
2633
 
2607
2634
  // src/components/charts/components/controls/ShowOnly.tsx
2608
2635
  var import_framer_motion7 = require("framer-motion");
2609
- var import_react17 = require("@phosphor-icons/react");
2636
+ var import_react18 = require("@phosphor-icons/react");
2610
2637
  var import_jsx_runtime21 = require("react/jsx-runtime");
2611
2638
  var ShowOnly = ({
2612
2639
  showOnlyHighlighted,
@@ -2635,10 +2662,10 @@ var ShowOnly = ({
2635
2662
  !hasHighlights ? "opacity-60 cursor-not-allowed pointer-events-none" : showOnlyHighlighted ? "bg-primary/10 text-primary shadow-sm border border-primary/20" : "bg-transparent text-muted-foreground border border-transparent hover:bg-muted/10 hover:text-foreground"
2636
2663
  ),
2637
2664
  children: showOnlyHighlighted ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2638
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react17.EyeSlash, { size: 16, weight: "regular" }),
2665
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react18.EyeSlash, { size: 16, weight: "regular" }),
2639
2666
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sr-only", children: "Exibir todos" })
2640
2667
  ] }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2641
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react17.Eye, { size: 16, weight: "bold" }),
2668
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react18.Eye, { size: 16, weight: "bold" }),
2642
2669
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sr-only", children: "Mostrar somente destacados" })
2643
2670
  ] })
2644
2671
  }
@@ -2856,9 +2883,9 @@ var CloseAllButton = ({
2856
2883
  var CloseAllButton_default = CloseAllButton;
2857
2884
 
2858
2885
  // src/components/charts/components/tooltips/DraggableTooltip.tsx
2859
- var import_react18 = __toESM(require("react"));
2886
+ var import_react19 = __toESM(require("react"));
2860
2887
  var import_framer_motion9 = require("framer-motion");
2861
- var import_react19 = require("@phosphor-icons/react");
2888
+ var import_react20 = require("@phosphor-icons/react");
2862
2889
  var import_ssr5 = require("@phosphor-icons/react/dist/ssr");
2863
2890
  var import_jsx_runtime24 = require("react/jsx-runtime");
2864
2891
  var ALIGNMENT_THRESHOLD = 25;
@@ -2937,12 +2964,12 @@ var DraggableTooltipComponent = ({
2937
2964
  valueFormatter: valueFormatter2,
2938
2965
  categoryFormatter
2939
2966
  }) => {
2940
- const visibleKeys = (0, import_react18.useMemo)(
2967
+ const visibleKeys = (0, import_react19.useMemo)(
2941
2968
  () => showOnlyHighlighted && highlightedSeries && highlightedSeries.size > 0 ? dataKeys.filter((k) => highlightedSeries.has(k)) : dataKeys,
2942
2969
  [showOnlyHighlighted, highlightedSeries, dataKeys]
2943
2970
  );
2944
- const TotalDisplay = import_react18.default.memo(({ data: data2, visibleKeys: visibleKeys2, valueFormatter: localformatter }) => {
2945
- const total = (0, import_react18.useMemo)(() => {
2971
+ const TotalDisplay = import_react19.default.memo(({ data: data2, visibleKeys: visibleKeys2, valueFormatter: localformatter }) => {
2972
+ const total = (0, import_react19.useMemo)(() => {
2946
2973
  const numeric = visibleKeys2.map((k) => data2[k]).filter((v) => typeof v === "number");
2947
2974
  return numeric.reduce((s, v) => s + (v || 0), 0);
2948
2975
  }, [data2, visibleKeys2]);
@@ -2964,14 +2991,14 @@ var DraggableTooltipComponent = ({
2964
2991
  )
2965
2992
  ] });
2966
2993
  });
2967
- const [localPos, setLocalPos] = (0, import_react18.useState)(position);
2968
- const [dragging, setDragging] = (0, import_react18.useState)(false);
2969
- const offsetRef = (0, import_react18.useRef)({ x: 0, y: 0 });
2970
- const lastMouse = (0, import_react18.useRef)({ x: 0, y: 0 });
2971
- const [alignmentGuides, setAlignmentGuides] = (0, import_react18.useState)([]);
2972
- const [globalTooltipCountLocal, setGlobalTooltipCountLocal] = (0, import_react18.useState)(0);
2973
- (0, import_react18.useEffect)(() => setLocalPos(position), [position]);
2974
- const getAllTooltips = (0, import_react18.useCallback)(() => {
2994
+ const [localPos, setLocalPos] = (0, import_react19.useState)(position);
2995
+ const [dragging, setDragging] = (0, import_react19.useState)(false);
2996
+ const offsetRef = (0, import_react19.useRef)({ x: 0, y: 0 });
2997
+ const lastMouse = (0, import_react19.useRef)({ x: 0, y: 0 });
2998
+ const [alignmentGuides, setAlignmentGuides] = (0, import_react19.useState)([]);
2999
+ const [globalTooltipCountLocal, setGlobalTooltipCountLocal] = (0, import_react19.useState)(0);
3000
+ (0, import_react19.useEffect)(() => setLocalPos(position), [position]);
3001
+ const getAllTooltips = (0, import_react19.useCallback)(() => {
2975
3002
  const response = [];
2976
3003
  const ev = new CustomEvent("requestGlobalTooltips", {
2977
3004
  detail: { requesterId: id, response }
@@ -2979,7 +3006,7 @@ var DraggableTooltipComponent = ({
2979
3006
  window.dispatchEvent(ev);
2980
3007
  return response;
2981
3008
  }, [id]);
2982
- const updateAlignmentGuides = (0, import_react18.useCallback)(
3009
+ const updateAlignmentGuides = (0, import_react19.useCallback)(
2983
3010
  (currentPosition) => {
2984
3011
  const allTooltips = getAllTooltips();
2985
3012
  const otherTooltips = allTooltips.filter((t) => t.id !== id);
@@ -3028,7 +3055,7 @@ var DraggableTooltipComponent = ({
3028
3055
  },
3029
3056
  [getAllTooltips, id]
3030
3057
  );
3031
- const snapToGuides = (0, import_react18.useCallback)(
3058
+ const snapToGuides = (0, import_react19.useCallback)(
3032
3059
  (position2) => {
3033
3060
  const snappedPosition = { ...position2 };
3034
3061
  let hasSnapped = false;
@@ -3075,7 +3102,7 @@ var DraggableTooltipComponent = ({
3075
3102
  },
3076
3103
  [alignmentGuides]
3077
3104
  );
3078
- (0, import_react18.useEffect)(() => {
3105
+ (0, import_react19.useEffect)(() => {
3079
3106
  let rafId = null;
3080
3107
  const handleMouseMove = (e) => {
3081
3108
  if (!dragging) return;
@@ -3117,7 +3144,7 @@ var DraggableTooltipComponent = ({
3117
3144
  document.body.style.userSelect = "";
3118
3145
  };
3119
3146
  }, [dragging, snapToGuides, updateAlignmentGuides, id, onPositionChange]);
3120
- (0, import_react18.useEffect)(() => {
3147
+ (0, import_react19.useEffect)(() => {
3121
3148
  const handleCloseAll = () => onClose(id);
3122
3149
  const handleRequestTooltipCount = () => {
3123
3150
  window.dispatchEvent(
@@ -3148,7 +3175,7 @@ var DraggableTooltipComponent = ({
3148
3175
  });
3149
3176
  };
3150
3177
  }, [id, localPos, onClose]);
3151
- (0, import_react18.useEffect)(() => {
3178
+ (0, import_react19.useEffect)(() => {
3152
3179
  if (dragging) return;
3153
3180
  let total = 0;
3154
3181
  const timeoutId = setTimeout(() => {
@@ -3166,7 +3193,7 @@ var DraggableTooltipComponent = ({
3166
3193
  }, 0);
3167
3194
  return () => clearTimeout(timeoutId);
3168
3195
  }, [localPos, dragging]);
3169
- (0, import_react18.useEffect)(() => {
3196
+ (0, import_react19.useEffect)(() => {
3170
3197
  const recount = () => {
3171
3198
  if (dragging) return;
3172
3199
  let total = 0;
@@ -3184,7 +3211,7 @@ var DraggableTooltipComponent = ({
3184
3211
  window.addEventListener("recountTooltips", recount);
3185
3212
  return () => window.removeEventListener("recountTooltips", recount);
3186
3213
  }, [dragging]);
3187
- const handleMouseDownLocal = (0, import_react18.useCallback)(
3214
+ const handleMouseDownLocal = (0, import_react19.useCallback)(
3188
3215
  (e) => {
3189
3216
  e.preventDefault();
3190
3217
  e.stopPropagation();
@@ -3195,7 +3222,7 @@ var DraggableTooltipComponent = ({
3195
3222
  },
3196
3223
  [id, onMouseDown]
3197
3224
  );
3198
- const handleTouchStartLocal = (0, import_react18.useCallback)(
3225
+ const handleTouchStartLocal = (0, import_react19.useCallback)(
3199
3226
  (e) => {
3200
3227
  e.stopPropagation();
3201
3228
  const touch = e.touches[0];
@@ -3210,7 +3237,7 @@ var DraggableTooltipComponent = ({
3210
3237
  },
3211
3238
  [id, onMouseDown]
3212
3239
  );
3213
- const handleCloseClick = (0, import_react18.useCallback)(
3240
+ const handleCloseClick = (0, import_react19.useCallback)(
3214
3241
  (e) => {
3215
3242
  e.stopPropagation();
3216
3243
  onClose(id);
@@ -3326,7 +3353,7 @@ var DraggableTooltipComponent = ({
3326
3353
  onTouchStart: handleTouchStartLocal,
3327
3354
  style: { touchAction: "none" },
3328
3355
  children: [
3329
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react19.DotsSixVerticalIcon, { size: 16 }),
3356
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react20.DotsSixVerticalIcon, { size: 16 }),
3330
3357
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex flex-col gap-1", children: title && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex items-center gap-2 pb-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "font-bold text-foreground text-base", children: title }) }) }),
3331
3358
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3332
3359
  "button",
@@ -3356,7 +3383,7 @@ var DraggableTooltipComponent = ({
3356
3383
  ] }) }),
3357
3384
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "p-3 pt-2 space-y-2", children: [
3358
3385
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2", children: dataLabel }),
3359
- (0, import_react18.useMemo)(
3386
+ (0, import_react19.useMemo)(
3360
3387
  () => visibleKeys.map((key) => {
3361
3388
  const value = data[key];
3362
3389
  if (value === void 0) return null;
@@ -3474,7 +3501,7 @@ var DraggableTooltipComponent = ({
3474
3501
  )
3475
3502
  ] });
3476
3503
  };
3477
- var DraggableTooltip = import_react18.default.memo(DraggableTooltipComponent);
3504
+ var DraggableTooltip = import_react19.default.memo(DraggableTooltipComponent);
3478
3505
  DraggableTooltip.displayName = "DraggableTooltip";
3479
3506
  var DraggableTooltip_default = DraggableTooltip;
3480
3507
 
@@ -3818,14 +3845,14 @@ var pillLabelRenderer_default = renderPillLabel;
3818
3845
 
3819
3846
  // src/components/charts/Chart.tsx
3820
3847
  var import_jsx_runtime28 = require("react/jsx-runtime");
3821
- var DEFAULT_COLORS = ["#55af7d", "#8e68ff", "#2273e1"];
3848
+ var DEFAULT_COLORS2 = ["#55af7d", "#8e68ff", "#2273e1"];
3822
3849
  var Chart = ({
3823
3850
  data,
3824
3851
  series,
3825
3852
  className,
3826
3853
  height = 350,
3827
3854
  width = "100%",
3828
- colors: colors2 = DEFAULT_COLORS,
3855
+ colors: colors2 = DEFAULT_COLORS2,
3829
3856
  gridColor,
3830
3857
  showGrid = true,
3831
3858
  showTooltip = true,
@@ -3848,7 +3875,7 @@ var Chart = ({
3848
3875
  formatBR = false,
3849
3876
  chartMargin
3850
3877
  }) => {
3851
- const smartConfig = (0, import_react20.useMemo)(() => {
3878
+ const smartConfig = (0, import_react21.useMemo)(() => {
3852
3879
  const resolvedXAxisKey = typeof xAxis === "string" ? xAxis : xAxis && xAxis.dataKey || detectXAxis(data);
3853
3880
  const xAxisConfig2 = typeof xAxis === "string" ? {
3854
3881
  dataKey: resolvedXAxisKey,
@@ -3872,12 +3899,12 @@ var Chart = ({
3872
3899
  return { xAxisConfig: xAxisConfig2, mapperConfig: mapperConfig2 };
3873
3900
  }, [data, xAxis, labelMap]);
3874
3901
  const { xAxisConfig, mapperConfig } = smartConfig;
3875
- const [activeTooltips, setActiveTooltips] = (0, import_react20.useState)([]);
3876
- const [highlightedSeries, setHighlightedSeries] = (0, import_react20.useState)(
3902
+ const [activeTooltips, setActiveTooltips] = (0, import_react21.useState)([]);
3903
+ const [highlightedSeries, setHighlightedSeries] = (0, import_react21.useState)(
3877
3904
  /* @__PURE__ */ new Set()
3878
3905
  );
3879
- const [showOnlyHighlighted, setShowOnlyHighlighted] = (0, import_react20.useState)(false);
3880
- (0, import_react20.useEffect)(() => {
3906
+ const [showOnlyHighlighted, setShowOnlyHighlighted] = (0, import_react21.useState)(false);
3907
+ (0, import_react21.useEffect)(() => {
3881
3908
  if (highlightedSeries.size === 0 && showOnlyHighlighted) {
3882
3909
  setShowOnlyHighlighted(false);
3883
3910
  }
@@ -3886,9 +3913,9 @@ var Chart = ({
3886
3913
  ...item,
3887
3914
  name: String(item[xAxisConfig.dataKey] || "N/A")
3888
3915
  }));
3889
- const wrapperRef = (0, import_react20.useRef)(null);
3890
- const [measuredWidth, setMeasuredWidth] = (0, import_react20.useState)(null);
3891
- (0, import_react20.useLayoutEffect)(() => {
3916
+ const wrapperRef = (0, import_react21.useRef)(null);
3917
+ const [measuredWidth, setMeasuredWidth] = (0, import_react21.useState)(null);
3918
+ (0, import_react21.useLayoutEffect)(() => {
3892
3919
  const el = wrapperRef.current;
3893
3920
  if (!el) return;
3894
3921
  const ro = new ResizeObserver((entries) => {
@@ -3915,7 +3942,7 @@ var Chart = ({
3915
3942
  );
3916
3943
  }
3917
3944
  const allKeys = seriesOrder.map((s) => s.key).filter(Boolean);
3918
- const generateColors = (0, import_react20.useCallback)(
3945
+ const generateColors = (0, import_react21.useCallback)(
3919
3946
  (dataKeys) => {
3920
3947
  const colorMap = {};
3921
3948
  const allColors = generateAdditionalColors(colors2, dataKeys.length);
@@ -3926,25 +3953,25 @@ var Chart = ({
3926
3953
  },
3927
3954
  [colors2, mapperConfig]
3928
3955
  );
3929
- const finalColors = (0, import_react20.useMemo)(
3956
+ const finalColors = (0, import_react21.useMemo)(
3930
3957
  () => generateColors(allKeys),
3931
3958
  [generateColors, allKeys]
3932
3959
  );
3933
- const adaptDataForTooltip = (0, import_react20.useCallback)(
3960
+ const adaptDataForTooltip = (0, import_react21.useCallback)(
3934
3961
  (universalData) => ({
3935
3962
  ...universalData,
3936
3963
  name: String(universalData[xAxisConfig.dataKey] || "N/A")
3937
3964
  }),
3938
3965
  [xAxisConfig.dataKey]
3939
3966
  );
3940
- const activePeriods = (0, import_react20.useMemo)(
3967
+ const activePeriods = (0, import_react21.useMemo)(
3941
3968
  () => activeTooltips.map((t) => adaptDataForTooltip(t.data).name),
3942
3969
  [activeTooltips, adaptDataForTooltip]
3943
3970
  );
3944
- (0, import_react20.useEffect)(() => {
3971
+ (0, import_react21.useEffect)(() => {
3945
3972
  window.dispatchEvent(new Event("recountTooltips"));
3946
3973
  }, [activeTooltips.length]);
3947
- const toggleHighlight = (0, import_react20.useCallback)((key) => {
3974
+ const toggleHighlight = (0, import_react21.useCallback)((key) => {
3948
3975
  setHighlightedSeries((prev) => {
3949
3976
  const next = new Set(prev);
3950
3977
  if (next.has(key)) next.delete(key);
@@ -3952,7 +3979,7 @@ var Chart = ({
3952
3979
  return next;
3953
3980
  });
3954
3981
  }, []);
3955
- const maxDataValue = (0, import_react20.useMemo)(() => {
3982
+ const maxDataValue = (0, import_react21.useMemo)(() => {
3956
3983
  let max = 0;
3957
3984
  const numericKeys = allKeys;
3958
3985
  for (const row of processedData) {
@@ -3964,7 +3991,7 @@ var Chart = ({
3964
3991
  }
3965
3992
  return max;
3966
3993
  }, [processedData, allKeys]);
3967
- const minDataValue = (0, import_react20.useMemo)(() => {
3994
+ const minDataValue = (0, import_react21.useMemo)(() => {
3968
3995
  let min = 0;
3969
3996
  const numericKeys = allKeys;
3970
3997
  for (const row of processedData) {
@@ -3977,7 +4004,7 @@ var Chart = ({
3977
4004
  }
3978
4005
  return min;
3979
4006
  }, [processedData, allKeys]);
3980
- const niceMax = (0, import_react20.useMemo)(() => {
4007
+ const niceMax = (0, import_react21.useMemo)(() => {
3981
4008
  let padding = 0.08;
3982
4009
  if (maxDataValue > 1e6) padding = 0.05;
3983
4010
  if (maxDataValue > 1e7) padding = 0.03;
@@ -3985,7 +4012,7 @@ var Chart = ({
3985
4012
  const padded = maxDataValue * (1 + padding);
3986
4013
  return niceCeil(padded);
3987
4014
  }, [maxDataValue]);
3988
- const computedWidth = (0, import_react20.useMemo)(() => {
4015
+ const computedWidth = (0, import_react21.useMemo)(() => {
3989
4016
  if (typeof width === "number") return width;
3990
4017
  const points = Math.max(1, processedData.length);
3991
4018
  const barCount = series?.bar?.length ?? 0;
@@ -4014,7 +4041,7 @@ var Chart = ({
4014
4041
  series?.area?.length,
4015
4042
  niceMax
4016
4043
  ]);
4017
- const toggleTooltip = (0, import_react20.useCallback)(
4044
+ const toggleTooltip = (0, import_react21.useCallback)(
4018
4045
  (tooltipId, data2, basePosition) => {
4019
4046
  const existingIndex = activeTooltips.findIndex((t) => t.id === tooltipId);
4020
4047
  if (existingIndex !== -1) {
@@ -4043,7 +4070,7 @@ var Chart = ({
4043
4070
  },
4044
4071
  [activeTooltips, maxTooltips]
4045
4072
  );
4046
- const handleChartClick = (0, import_react20.useCallback)(
4073
+ const handleChartClick = (0, import_react21.useCallback)(
4047
4074
  (e) => {
4048
4075
  if (!enableDraggableTooltips) return;
4049
4076
  const ev = e;
@@ -4061,7 +4088,7 @@ var Chart = ({
4061
4088
  },
4062
4089
  [enableDraggableTooltips, xAxisConfig.dataKey, toggleTooltip]
4063
4090
  );
4064
- const handleBarClick = (0, import_react20.useCallback)(
4091
+ const handleBarClick = (0, import_react21.useCallback)(
4065
4092
  (data2, index, event) => {
4066
4093
  if (!enableDraggableTooltips) return;
4067
4094
  event.stopPropagation();
@@ -4075,7 +4102,7 @@ var Chart = ({
4075
4102
  },
4076
4103
  [enableDraggableTooltips, xAxisConfig.dataKey, toggleTooltip]
4077
4104
  );
4078
- const handleSeriesClick = (0, import_react20.useCallback)(
4105
+ const handleSeriesClick = (0, import_react21.useCallback)(
4079
4106
  (...args) => {
4080
4107
  if (args.length >= 3) {
4081
4108
  const [data2, index, event] = args;
@@ -4086,7 +4113,7 @@ var Chart = ({
4086
4113
  },
4087
4114
  [handleBarClick, handleChartClick]
4088
4115
  );
4089
- const onTooltipPositionChange = (0, import_react20.useCallback)(
4116
+ const onTooltipPositionChange = (0, import_react21.useCallback)(
4090
4117
  (id, position) => {
4091
4118
  setActiveTooltips(
4092
4119
  (prev) => prev.map((t) => t.id === id ? { ...t, position } : t)
@@ -4094,11 +4121,11 @@ var Chart = ({
4094
4121
  },
4095
4122
  []
4096
4123
  );
4097
- const titleClassName = (0, import_react20.useMemo)(
4124
+ const titleClassName = (0, import_react21.useMemo)(
4098
4125
  () => "text-xl font-semibold text-foreground mb-3",
4099
4126
  []
4100
4127
  );
4101
- const finalValueFormatter = (0, import_react20.useMemo)(() => {
4128
+ const finalValueFormatter = (0, import_react21.useMemo)(() => {
4102
4129
  const nf = new Intl.NumberFormat("pt-BR", {
4103
4130
  minimumFractionDigits: 2,
4104
4131
  maximumFractionDigits: 2
@@ -4138,7 +4165,7 @@ var Chart = ({
4138
4165
  };
4139
4166
  return builtIn;
4140
4167
  }, [valueFormatter2, formatBR]);
4141
- const yTickFormatter = (0, import_react20.useMemo)(() => {
4168
+ const yTickFormatter = (0, import_react21.useMemo)(() => {
4142
4169
  const nf = new Intl.NumberFormat("pt-BR", {
4143
4170
  minimumFractionDigits: 2,
4144
4171
  maximumFractionDigits: 2
@@ -4176,7 +4203,7 @@ var Chart = ({
4176
4203
  const measuredInner = measuredWidth ? Math.max(0, measuredWidth - 32) : void 0;
4177
4204
  const effectiveChartWidth = typeof width === "number" ? width : measuredInner ?? computedWidth;
4178
4205
  const chartInnerWidth = effectiveChartWidth - finalChartLeftMargin - finalChartRightMargin;
4179
- const openTooltipForPeriod = (0, import_react20.useCallback)(
4206
+ const openTooltipForPeriod = (0, import_react21.useCallback)(
4180
4207
  (periodName) => {
4181
4208
  if (!enableDraggableTooltips) return;
4182
4209
  const row = processedData.find((r) => String(r.name) === periodName);
@@ -4615,16 +4642,16 @@ var Chart = ({
4615
4642
  var Chart_default = Chart;
4616
4643
 
4617
4644
  // src/components/charts/BarChart.tsx
4618
- var import_react21 = require("react");
4645
+ var import_react22 = require("react");
4619
4646
  var import_recharts2 = require("recharts");
4620
4647
  var import_jsx_runtime29 = require("react/jsx-runtime");
4621
- var DEFAULT_COLORS2 = ["#55af7d", "#8e68ff", "#2273e1"];
4648
+ var DEFAULT_COLORS3 = ["#55af7d", "#8e68ff", "#2273e1"];
4622
4649
  var BarChart = ({
4623
4650
  data,
4624
4651
  className,
4625
4652
  height = 350,
4626
4653
  width = 900,
4627
- colors: colors2 = DEFAULT_COLORS2,
4654
+ colors: colors2 = DEFAULT_COLORS3,
4628
4655
  gridColor,
4629
4656
  showGrid = true,
4630
4657
  showTooltip = true,
@@ -4647,7 +4674,7 @@ var BarChart = ({
4647
4674
  containerPaddingLeft,
4648
4675
  16
4649
4676
  );
4650
- const smartConfig = (0, import_react21.useMemo)(() => {
4677
+ const smartConfig = (0, import_react22.useMemo)(() => {
4651
4678
  const providedMapper = yAxis ?? mapper;
4652
4679
  if (autoDetect === true || xAxis == null || providedMapper == null) {
4653
4680
  const detectedXAxis = detectXAxis(data);
@@ -4697,14 +4724,14 @@ var BarChart = ({
4697
4724
  return { xAxisConfig: xAxisConfig2, mapperConfig: mapperConfig2 };
4698
4725
  }, [data, xAxis, mapper, yAxis, autoDetect, labelMap]);
4699
4726
  const { xAxisConfig, mapperConfig } = smartConfig;
4700
- const [activeTooltips, setActiveTooltips] = (0, import_react21.useState)([]);
4701
- const [isDragging, setIsDragging] = (0, import_react21.useState)(null);
4702
- const [dragOffset, setDragOffset] = (0, import_react21.useState)({
4727
+ const [activeTooltips, setActiveTooltips] = (0, import_react22.useState)([]);
4728
+ const [isDragging, setIsDragging] = (0, import_react22.useState)(null);
4729
+ const [dragOffset, setDragOffset] = (0, import_react22.useState)({
4703
4730
  x: 0,
4704
4731
  y: 0
4705
4732
  });
4706
- const [globalTooltipCount, setGlobalTooltipCount] = (0, import_react21.useState)(0);
4707
- const [alignmentGuides, setAlignmentGuides] = (0, import_react21.useState)([]);
4733
+ const [globalTooltipCount, setGlobalTooltipCount] = (0, import_react22.useState)(0);
4734
+ const [alignmentGuides, setAlignmentGuides] = (0, import_react22.useState)([]);
4708
4735
  const processedData = data.map((item) => ({
4709
4736
  ...item,
4710
4737
  name: String(item[xAxisConfig.dataKey] || "N/A")
@@ -4727,7 +4754,7 @@ var BarChart = ({
4727
4754
  // Garantir que tem a propriedade 'name'
4728
4755
  };
4729
4756
  };
4730
- const maxDataValue = (0, import_react21.useMemo)(() => {
4757
+ const maxDataValue = (0, import_react22.useMemo)(() => {
4731
4758
  let max = 0;
4732
4759
  const keys = Object.keys(mapperConfig);
4733
4760
  for (const row of processedData) {
@@ -4740,7 +4767,7 @@ var BarChart = ({
4740
4767
  }
4741
4768
  return max;
4742
4769
  }, [processedData, mapperConfig]);
4743
- const niceMax = (0, import_react21.useMemo)(() => {
4770
+ const niceMax = (0, import_react22.useMemo)(() => {
4744
4771
  let padding2 = 0.08;
4745
4772
  if (maxDataValue > 1e6) padding2 = 0.05;
4746
4773
  if (maxDataValue > 1e7) padding2 = 0.03;
@@ -4781,7 +4808,7 @@ var BarChart = ({
4781
4808
  const GUIDE_THRESHOLD2 = 60;
4782
4809
  const STRONG_SNAP_THRESHOLD2 = 35;
4783
4810
  const PRECISION_SNAP_THRESHOLD2 = 8;
4784
- const updateAlignmentGuides = (0, import_react21.useCallback)(
4811
+ const updateAlignmentGuides = (0, import_react22.useCallback)(
4785
4812
  (draggedTooltipId, currentPosition) => {
4786
4813
  if (!isDragging) return;
4787
4814
  const getAllTooltips = () => {
@@ -4845,7 +4872,7 @@ var BarChart = ({
4845
4872
  },
4846
4873
  [isDragging, activeTooltips]
4847
4874
  );
4848
- const snapToGuides = (0, import_react21.useCallback)(
4875
+ const snapToGuides = (0, import_react22.useCallback)(
4849
4876
  (position) => {
4850
4877
  const snappedPosition = { ...position };
4851
4878
  let hasSnapped = false;
@@ -4907,7 +4934,7 @@ var BarChart = ({
4907
4934
  setIsDragging(tooltipId);
4908
4935
  setDragOffset({ x: offsetX, y: offsetY });
4909
4936
  };
4910
- (0, import_react21.useEffect)(() => {
4937
+ (0, import_react22.useEffect)(() => {
4911
4938
  let rafId;
4912
4939
  let lastMousePosition = { x: 0, y: 0 };
4913
4940
  const handleGlobalMouseMove = (e) => {
@@ -4965,7 +4992,7 @@ var BarChart = ({
4965
4992
  updateAlignmentGuides,
4966
4993
  snapToGuides
4967
4994
  ]);
4968
- (0, import_react21.useEffect)(() => {
4995
+ (0, import_react22.useEffect)(() => {
4969
4996
  const handleCloseAllTooltips = () => {
4970
4997
  setActiveTooltips([]);
4971
4998
  setGlobalTooltipCount(0);
@@ -4975,7 +5002,7 @@ var BarChart = ({
4975
5002
  window.removeEventListener("closeAllTooltips", handleCloseAllTooltips);
4976
5003
  };
4977
5004
  }, []);
4978
- (0, import_react21.useEffect)(() => {
5005
+ (0, import_react22.useEffect)(() => {
4979
5006
  const handleTooltipCountRequest = () => {
4980
5007
  window.dispatchEvent(
4981
5008
  new CustomEvent("tooltipCountResponse", {
@@ -5014,7 +5041,7 @@ var BarChart = ({
5014
5041
  );
5015
5042
  };
5016
5043
  }, [activeTooltips]);
5017
- (0, import_react21.useEffect)(() => {
5044
+ (0, import_react22.useEffect)(() => {
5018
5045
  if (isDragging) return;
5019
5046
  let totalCount = 0;
5020
5047
  const handleCountResponse = (event) => {
@@ -5280,7 +5307,7 @@ var BarChart = ({
5280
5307
  var BarChart_default = BarChart;
5281
5308
 
5282
5309
  // src/components/charts/LineChart.tsx
5283
- var import_react22 = require("react");
5310
+ var import_react23 = require("react");
5284
5311
  var import_recharts3 = require("recharts");
5285
5312
  var import_jsx_runtime30 = require("react/jsx-runtime");
5286
5313
  var defaultData = [
@@ -5288,13 +5315,13 @@ var defaultData = [
5288
5315
  { name: "B", value: 200 },
5289
5316
  { name: "C", value: 150 }
5290
5317
  ];
5291
- var DEFAULT_COLORS3 = ["#55af7d", "#8e68ff", "#2273e1"];
5318
+ var DEFAULT_COLORS4 = ["#55af7d", "#8e68ff", "#2273e1"];
5292
5319
  var CustomLineChart = ({
5293
5320
  data = defaultData,
5294
5321
  className,
5295
5322
  height = 300,
5296
5323
  width = "100%",
5297
- colors: colors2 = DEFAULT_COLORS3,
5324
+ colors: colors2 = DEFAULT_COLORS4,
5298
5325
  gridColor,
5299
5326
  showGrid = true,
5300
5327
  showTooltip = true,
@@ -5314,14 +5341,14 @@ var CustomLineChart = ({
5314
5341
  containerPaddingLeft,
5315
5342
  16
5316
5343
  );
5317
- const [activeTooltips, setActiveTooltips] = (0, import_react22.useState)([]);
5318
- const [isDragging, setIsDragging] = (0, import_react22.useState)(null);
5319
- const [dragOffset, setDragOffset] = (0, import_react22.useState)({
5344
+ const [activeTooltips, setActiveTooltips] = (0, import_react23.useState)([]);
5345
+ const [isDragging, setIsDragging] = (0, import_react23.useState)(null);
5346
+ const [dragOffset, setDragOffset] = (0, import_react23.useState)({
5320
5347
  x: 0,
5321
5348
  y: 0
5322
5349
  });
5323
- const [globalTooltipCount, setGlobalTooltipCount] = (0, import_react22.useState)(0);
5324
- const [alignmentGuides, setAlignmentGuides] = (0, import_react22.useState)([]);
5350
+ const [globalTooltipCount, setGlobalTooltipCount] = (0, import_react23.useState)(0);
5351
+ const [alignmentGuides, setAlignmentGuides] = (0, import_react23.useState)([]);
5325
5352
  const generateColors = (dataKeys2) => {
5326
5353
  const colorMap = {};
5327
5354
  const allColors = generateAdditionalColors(colors2, dataKeys2.length);
@@ -5330,12 +5357,12 @@ var CustomLineChart = ({
5330
5357
  });
5331
5358
  return colorMap;
5332
5359
  };
5333
- const dataKeys = (0, import_react22.useMemo)(
5360
+ const dataKeys = (0, import_react23.useMemo)(
5334
5361
  () => data.length > 0 ? Object.keys(data[0]).filter((key) => key !== "name") : [],
5335
5362
  [data]
5336
5363
  );
5337
5364
  const finalColors = generateColors(dataKeys);
5338
- const maxDataValue = (0, import_react22.useMemo)(() => {
5365
+ const maxDataValue = (0, import_react23.useMemo)(() => {
5339
5366
  let max = 0;
5340
5367
  for (const row of data) {
5341
5368
  const r = row;
@@ -5347,7 +5374,7 @@ var CustomLineChart = ({
5347
5374
  }
5348
5375
  return max;
5349
5376
  }, [data, dataKeys]);
5350
- const niceMax = (0, import_react22.useMemo)(() => {
5377
+ const niceMax = (0, import_react23.useMemo)(() => {
5351
5378
  let padding2 = 0.08;
5352
5379
  if (maxDataValue > 1e6) padding2 = 0.05;
5353
5380
  if (maxDataValue > 1e7) padding2 = 0.03;
@@ -5423,10 +5450,10 @@ var CustomLineChart = ({
5423
5450
  const handleChartBackgroundClick = () => {
5424
5451
  setActiveTooltips([]);
5425
5452
  };
5426
- const handleCloseAllTooltips = (0, import_react22.useCallback)(() => {
5453
+ const handleCloseAllTooltips = (0, import_react23.useCallback)(() => {
5427
5454
  window.dispatchEvent(new CustomEvent("closeAllTooltips"));
5428
5455
  }, []);
5429
- const updateAlignmentGuides = (0, import_react22.useCallback)(
5456
+ const updateAlignmentGuides = (0, import_react23.useCallback)(
5430
5457
  (draggedTooltipId, draggedPosition) => {
5431
5458
  const SNAP_THRESHOLD = 15;
5432
5459
  const draggedTooltip = activeTooltips.find(
@@ -5507,7 +5534,7 @@ var CustomLineChart = ({
5507
5534
  },
5508
5535
  [activeTooltips]
5509
5536
  );
5510
- const snapToGuides = (0, import_react22.useCallback)(
5537
+ const snapToGuides = (0, import_react23.useCallback)(
5511
5538
  (position) => {
5512
5539
  const SNAP_DISTANCE = 10;
5513
5540
  const snappedPosition = { ...position };
@@ -5535,7 +5562,7 @@ var CustomLineChart = ({
5535
5562
  setIsDragging(tooltipId);
5536
5563
  setDragOffset({ x: offsetX, y: offsetY });
5537
5564
  };
5538
- (0, import_react22.useEffect)(() => {
5565
+ (0, import_react23.useEffect)(() => {
5539
5566
  let rafId;
5540
5567
  let lastMousePosition = { x: 0, y: 0 };
5541
5568
  const handleGlobalMouseMove = (e) => {
@@ -5582,7 +5609,7 @@ var CustomLineChart = ({
5582
5609
  updateAlignmentGuides,
5583
5610
  snapToGuides
5584
5611
  ]);
5585
- (0, import_react22.useEffect)(() => {
5612
+ (0, import_react23.useEffect)(() => {
5586
5613
  const handleCloseAllTooltips2 = () => {
5587
5614
  setActiveTooltips([]);
5588
5615
  setGlobalTooltipCount(0);
@@ -5592,7 +5619,7 @@ var CustomLineChart = ({
5592
5619
  window.removeEventListener("closeAllTooltips", handleCloseAllTooltips2);
5593
5620
  };
5594
5621
  }, []);
5595
- (0, import_react22.useEffect)(() => {
5622
+ (0, import_react23.useEffect)(() => {
5596
5623
  const handleTooltipCountRequest = () => {
5597
5624
  window.dispatchEvent(
5598
5625
  new CustomEvent("tooltipCountResponse", {
@@ -5636,7 +5663,7 @@ var CustomLineChart = ({
5636
5663
  );
5637
5664
  };
5638
5665
  }, [activeTooltips]);
5639
- (0, import_react22.useEffect)(() => {
5666
+ (0, import_react23.useEffect)(() => {
5640
5667
  if (isDragging) return;
5641
5668
  let totalCount = 0;
5642
5669
  const handleCountResponse = (event) => {
@@ -5860,7 +5887,7 @@ var defaultData2 = [
5860
5887
  { name: "Suporte", value: 1e3 },
5861
5888
  { name: "Outros", value: 800 }
5862
5889
  ];
5863
- var DEFAULT_COLORS4 = [
5890
+ var DEFAULT_COLORS5 = [
5864
5891
  "#55af7d",
5865
5892
  // verde do projeto
5866
5893
  "#8e68ff",
@@ -5918,7 +5945,7 @@ var CustomPieChart = ({
5918
5945
  centerX = "50%",
5919
5946
  centerY = "50%"
5920
5947
  }) => {
5921
- const finalColors = colors2 || DEFAULT_COLORS4;
5948
+ const finalColors = colors2 || DEFAULT_COLORS5;
5922
5949
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: cn("w-full rounded-lg bg-card p-4", className), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_recharts4.ResponsiveContainer, { width, height, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_recharts4.PieChart, { children: [
5923
5950
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5924
5951
  import_recharts4.Pie,
@@ -5958,13 +5985,13 @@ var CustomPieChart = ({
5958
5985
  var PieChart_default = CustomPieChart;
5959
5986
 
5960
5987
  // src/components/charts/hooks/useChartHighlights.tsx
5961
- var import_react23 = require("react");
5988
+ var import_react24 = require("react");
5962
5989
  var useChartHighlights = () => {
5963
- const [highlightedSeries, setHighlightedSeries] = (0, import_react23.useState)(
5990
+ const [highlightedSeries, setHighlightedSeries] = (0, import_react24.useState)(
5964
5991
  /* @__PURE__ */ new Set()
5965
5992
  );
5966
- const [showOnlyHighlighted, setShowOnlyHighlighted] = (0, import_react23.useState)(false);
5967
- const toggleHighlight = (0, import_react23.useCallback)((key) => {
5993
+ const [showOnlyHighlighted, setShowOnlyHighlighted] = (0, import_react24.useState)(false);
5994
+ const toggleHighlight = (0, import_react24.useCallback)((key) => {
5968
5995
  setHighlightedSeries((prev) => {
5969
5996
  const next = new Set(prev);
5970
5997
  if (next.has(key)) {
@@ -5975,17 +6002,17 @@ var useChartHighlights = () => {
5975
6002
  return next;
5976
6003
  });
5977
6004
  }, []);
5978
- const clearHighlights = (0, import_react23.useCallback)(() => {
6005
+ const clearHighlights = (0, import_react24.useCallback)(() => {
5979
6006
  setHighlightedSeries(/* @__PURE__ */ new Set());
5980
6007
  setShowOnlyHighlighted(false);
5981
6008
  }, []);
5982
- const isHighlighted = (0, import_react23.useCallback)(
6009
+ const isHighlighted = (0, import_react24.useCallback)(
5983
6010
  (key) => {
5984
6011
  return highlightedSeries.has(key);
5985
6012
  },
5986
6013
  [highlightedSeries]
5987
6014
  );
5988
- const getSeriesStyle = (0, import_react23.useCallback)(
6015
+ const getSeriesStyle = (0, import_react24.useCallback)(
5989
6016
  (key) => {
5990
6017
  const hasHighlights = highlightedSeries.size > 0;
5991
6018
  const isSeriesHighlighted = highlightedSeries.has(key);
@@ -6123,7 +6150,7 @@ function Badge({
6123
6150
  }
6124
6151
 
6125
6152
  // src/components/ui/data/CalendarBase.tsx
6126
- var import_react24 = require("@phosphor-icons/react");
6153
+ var import_react25 = require("@phosphor-icons/react");
6127
6154
  var import_react_day_picker = require("react-day-picker");
6128
6155
  var import_jsx_runtime34 = require("react/jsx-runtime");
6129
6156
  function CalendarBase({
@@ -6168,8 +6195,8 @@ function CalendarBase({
6168
6195
  ...classNames
6169
6196
  },
6170
6197
  components: {
6171
- IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react24.CaretLeftIcon, { className: "h-4 w-4" }),
6172
- IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react24.CaretRightIcon, { className: "h-4 w-4" })
6198
+ IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react25.CaretLeftIcon, { className: "h-4 w-4" }),
6199
+ IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react25.CaretRightIcon, { className: "h-4 w-4" })
6173
6200
  },
6174
6201
  ...props
6175
6202
  }
@@ -6247,7 +6274,7 @@ CardFooterBase.displayName = "CardFooter";
6247
6274
  // src/components/ui/data/FileUploader.tsx
6248
6275
  var React18 = __toESM(require("react"));
6249
6276
  var import_framer_motion10 = require("framer-motion");
6250
- var import_react25 = require("@phosphor-icons/react");
6277
+ var import_react26 = require("@phosphor-icons/react");
6251
6278
  var import_jsx_runtime36 = require("react/jsx-runtime");
6252
6279
  var formatFileSize = (bytes) => {
6253
6280
  if (bytes === 0) return "0 Bytes";
@@ -6263,38 +6290,38 @@ var getFileTypeIcon = (file) => {
6263
6290
  const extension = getFileExtension(file.name).toLowerCase();
6264
6291
  const mimeType = file.type.toLowerCase();
6265
6292
  if (extension === "pdf" || mimeType === "application/pdf") {
6266
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FilePdfIcon, { size: 20, className: "text-red-500" });
6293
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FilePdfIcon, { size: 20, className: "text-red-500" });
6267
6294
  }
6268
6295
  if (["doc", "docx"].includes(extension) || mimeType.includes("word")) {
6269
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileDocIcon, { size: 20, className: "text-blue-500" });
6296
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileDocIcon, { size: 20, className: "text-blue-500" });
6270
6297
  }
6271
6298
  if (["xls", "xlsx"].includes(extension) || mimeType.includes("sheet")) {
6272
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileXlsIcon, { size: 20, className: "text-green-500" });
6299
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileXlsIcon, { size: 20, className: "text-green-500" });
6273
6300
  }
6274
6301
  if (["ppt", "pptx"].includes(extension) || mimeType.includes("presentation")) {
6275
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FilePptIcon, { size: 20, className: "text-orange-500" });
6302
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FilePptIcon, { size: 20, className: "text-orange-500" });
6276
6303
  }
6277
6304
  if (extension === "csv" || mimeType === "text/csv") {
6278
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileCsvIcon, { size: 20, className: "text-green-600" });
6305
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileCsvIcon, { size: 20, className: "text-green-600" });
6279
6306
  }
6280
6307
  if (["txt", "md", "json", "xml", "js", "ts", "html", "css"].includes(
6281
6308
  extension
6282
6309
  ) || mimeType.includes("text")) {
6283
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileTextIcon, { size: 20, className: "text-gray-500" });
6310
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileTextIcon, { size: 20, className: "text-gray-500" });
6284
6311
  }
6285
6312
  if (mimeType.startsWith("image/")) {
6286
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileImageIcon, { size: 20, className: "text-purple-500" });
6313
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileImageIcon, { size: 20, className: "text-purple-500" });
6287
6314
  }
6288
6315
  if (mimeType.startsWith("video/")) {
6289
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileVideoIcon, { size: 20, className: "text-pink-500" });
6316
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileVideoIcon, { size: 20, className: "text-pink-500" });
6290
6317
  }
6291
6318
  if (mimeType.startsWith("audio/")) {
6292
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileAudioIcon, { size: 20, className: "text-indigo-500" });
6319
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileAudioIcon, { size: 20, className: "text-indigo-500" });
6293
6320
  }
6294
6321
  if (["zip", "rar", "7z", "tar", "gz"].includes(extension)) {
6295
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileZipIcon, { size: 20, className: "text-yellow-600" });
6322
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileZipIcon, { size: 20, className: "text-yellow-600" });
6296
6323
  }
6297
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.FileIcon, { size: 20, className: "text-muted-foreground" });
6324
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.FileIcon, { size: 20, className: "text-muted-foreground" });
6298
6325
  };
6299
6326
  var createImagePreview = (file) => {
6300
6327
  return new Promise((resolve) => {
@@ -6524,7 +6551,7 @@ var FileUploader = React18.forwardRef(
6524
6551
  color: isDragging ? `hsl(var(--primary))` : `hsl(var(--muted-foreground))`
6525
6552
  },
6526
6553
  transition: { duration: 0.3 },
6527
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.CloudArrowUpIcon, { size: 64 })
6554
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.CloudArrowUpIcon, { size: 64 })
6528
6555
  }
6529
6556
  )
6530
6557
  }
@@ -6566,7 +6593,7 @@ var FileUploader = React18.forwardRef(
6566
6593
  ),
6567
6594
  transition: { duration: 0.3 },
6568
6595
  children: [
6569
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-4 w-4 text-primary flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.CheckIcon, { size: 16, className: "text-emerald-500" }) }),
6596
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-4 w-4 text-primary flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.CheckIcon, { size: 16, className: "text-emerald-500" }) }),
6570
6597
  /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
6571
6598
  import_framer_motion10.motion.span,
6572
6599
  {
@@ -6668,7 +6695,7 @@ var FileUploader = React18.forwardRef(
6668
6695
  handleRemoveFile(file.id);
6669
6696
  },
6670
6697
  className: "",
6671
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.XIcon, { size: 12 })
6698
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react26.XIcon, { size: 12 })
6672
6699
  }
6673
6700
  )
6674
6701
  ]
@@ -6792,7 +6819,7 @@ AlertDialogCancelBase.displayName = AlertDialogPrimitive.Cancel.displayName;
6792
6819
 
6793
6820
  // src/components/ui/feedback/DestructiveDialog.tsx
6794
6821
  var React20 = __toESM(require("react"));
6795
- var import_react26 = require("@phosphor-icons/react");
6822
+ var import_react27 = require("@phosphor-icons/react");
6796
6823
  var import_jsx_runtime38 = require("react/jsx-runtime");
6797
6824
  var DestructiveDialog = ({
6798
6825
  title,
@@ -6812,7 +6839,7 @@ var DestructiveDialog = ({
6812
6839
  className: cn("border border-destructive bg-background", className),
6813
6840
  children: [
6814
6841
  /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-start gap-4", children: [
6815
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center w-10 h-10 rounded-full ring-1 ring-destructive/30", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react26.XCircleIcon, { className: "w-6 h-6 text-destructive" }) }),
6842
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center w-10 h-10 rounded-full ring-1 ring-destructive/30", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react27.XCircleIcon, { className: "w-6 h-6 text-destructive" }) }),
6816
6843
  /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex-1", children: [
6817
6844
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AlertDialogTitleBase, { className: "text-lg sm:text-xl font-semibold text-destructive", children: title }),
6818
6845
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AlertDialogDescriptionBase, { className: "mt-2 text-sm text-muted-foreground", children: description })
@@ -7021,7 +7048,7 @@ LoadingBase.displayName = "LoadingBase";
7021
7048
  // src/components/ui/feedback/ModalBase.tsx
7022
7049
  var React22 = __toESM(require("react"));
7023
7050
  var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"));
7024
- var import_react27 = require("@phosphor-icons/react");
7051
+ var import_react28 = require("@phosphor-icons/react");
7025
7052
  var import_jsx_runtime40 = require("react/jsx-runtime");
7026
7053
  var ModalBase = DialogPrimitive2.Root;
7027
7054
  var ModalTriggerBase = DialogPrimitive2.Trigger;
@@ -7094,7 +7121,7 @@ var ModalContentBase = React22.forwardRef(
7094
7121
  children: [
7095
7122
  children,
7096
7123
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(DialogPrimitive2.Close, { className: "absolute right-3 top-3 sm:right-4 sm:top-4 rounded-md bg-muted/10 p-1.5 opacity-80 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none z-10 hover:bg-muted/20 transition-colors", children: [
7097
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react27.XIcon, { className: "h-5 w-5 sm:h-4 sm:w-4 text-foreground" }),
7124
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react28.XIcon, { className: "h-5 w-5 sm:h-4 sm:w-4 text-foreground" }),
7098
7125
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "sr-only", children: "Close" })
7099
7126
  ] })
7100
7127
  ]
@@ -7418,7 +7445,7 @@ function SkeletonBase({
7418
7445
  }
7419
7446
 
7420
7447
  // src/components/ui/feedback/SonnerBase.tsx
7421
- var import_react28 = require("@phosphor-icons/react");
7448
+ var import_react29 = require("@phosphor-icons/react");
7422
7449
  var import_sonner2 = require("sonner");
7423
7450
  var import_jsx_runtime43 = require("react/jsx-runtime");
7424
7451
  var iconBaseClass = "w-5 h-auto";
@@ -7470,23 +7497,23 @@ var Toaster = ({ testId, ...props }) => {
7470
7497
  };
7471
7498
  var toast2 = {
7472
7499
  success: (message) => import_sonner2.toast.success(message, {
7473
- icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react28.CheckCircleIcon, { className: `${iconBaseClass} text-green-600`, weight: "fill" }),
7500
+ icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react29.CheckCircleIcon, { className: `${iconBaseClass} text-green-600`, weight: "fill" }),
7474
7501
  className: "sonner-success"
7475
7502
  }),
7476
7503
  error: (message) => import_sonner2.toast.error(message, {
7477
- icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react28.XCircleIcon, { className: `${iconBaseClass} text-red-600`, weight: "fill" }),
7504
+ icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react29.XCircleIcon, { className: `${iconBaseClass} text-red-600`, weight: "fill" }),
7478
7505
  className: "sonner-error"
7479
7506
  }),
7480
7507
  warning: (message) => import_sonner2.toast.warning(message, {
7481
- icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react28.WarningIcon, { className: `${iconBaseClass} text-yellow-600`, weight: "fill" }),
7508
+ icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react29.WarningIcon, { className: `${iconBaseClass} text-yellow-600`, weight: "fill" }),
7482
7509
  className: "sonner-WarningIcon"
7483
7510
  }),
7484
7511
  info: (message) => import_sonner2.toast.info(message, {
7485
- icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react28.InfoIcon, { className: `${iconBaseClass} text-blue-600`, weight: "fill" }),
7512
+ icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react29.InfoIcon, { className: `${iconBaseClass} text-blue-600`, weight: "fill" }),
7486
7513
  className: "sonner-InfoIcon"
7487
7514
  }),
7488
7515
  loading: (message) => (0, import_sonner2.toast)(message, {
7489
- icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react28.SpinnerIcon, { className: `${iconBaseClass} animate-spin text-neutral-500`, weight: "fill" }),
7516
+ icon: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react29.SpinnerIcon, { className: `${iconBaseClass} animate-spin text-neutral-500`, weight: "fill" }),
7490
7517
  className: "sonner-loading"
7491
7518
  })
7492
7519
  };
@@ -7494,7 +7521,7 @@ var toast2 = {
7494
7521
  // src/components/ui/form/CheckBoxBase.tsx
7495
7522
  var React24 = __toESM(require("react"));
7496
7523
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
7497
- var import_react29 = require("@phosphor-icons/react");
7524
+ var import_react30 = require("@phosphor-icons/react");
7498
7525
  var import_framer_motion11 = require("framer-motion");
7499
7526
  var import_jsx_runtime44 = require("react/jsx-runtime");
7500
7527
  var CheckboxBase = React24.forwardRef(({ className, testid: dataTestId = "checkbox-base", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
@@ -7502,20 +7529,35 @@ var CheckboxBase = React24.forwardRef(({ className, testid: dataTestId = "checkb
7502
7529
  {
7503
7530
  ref,
7504
7531
  className: cn(
7505
- "peer h-4 w-4 shrink-0 rounded-md border border-primary shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground transition-colors",
7532
+ "peer h-4 w-4 shrink-0 rounded-md border border-primary shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground transition-colors",
7506
7533
  className
7507
7534
  ),
7508
7535
  "data-testid": dataTestId,
7509
7536
  ...props,
7510
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(CheckboxPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7537
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(CheckboxPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7511
7538
  import_framer_motion11.motion.div,
7512
7539
  {
7513
7540
  initial: { scale: 0, opacity: 0, rotate: -90 },
7514
7541
  animate: { scale: 1, opacity: 1, rotate: 0 },
7515
7542
  exit: { scale: 0, opacity: 0, rotate: 90 },
7516
7543
  transition: { type: "spring", stiffness: 500, damping: 30 },
7517
- className: "flex items-center justify-center text-current",
7518
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react29.CheckIcon, { className: "h-4 w-4", weight: "bold" })
7544
+ className: "flex items-center justify-center text-current group",
7545
+ children: [
7546
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7547
+ import_react30.CheckIcon,
7548
+ {
7549
+ className: "h-4 w-4 hidden group-data-[state=checked]:block",
7550
+ weight: "bold"
7551
+ }
7552
+ ),
7553
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7554
+ import_react30.MinusIcon,
7555
+ {
7556
+ className: "h-4 w-4 hidden group-data-[state=indeterminate]:block",
7557
+ weight: "bold"
7558
+ }
7559
+ )
7560
+ ]
7519
7561
  }
7520
7562
  ) })
7521
7563
  }
@@ -7525,7 +7567,7 @@ CheckboxBase.displayName = CheckboxPrimitive.Root.displayName;
7525
7567
  // src/components/ui/form/CollapsibleBase.tsx
7526
7568
  var React25 = __toESM(require("react"));
7527
7569
  var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"));
7528
- var import_react30 = require("@phosphor-icons/react");
7570
+ var import_react31 = require("@phosphor-icons/react");
7529
7571
  var import_jsx_runtime45 = require("react/jsx-runtime");
7530
7572
  var CollapsibleBase = React25.forwardRef(({ ...props }, ref) => {
7531
7573
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CollapsiblePrimitive.Root, { ref, "data-slot": "collapsible", ...props });
@@ -7547,7 +7589,7 @@ var CollapsibleTriggerBase = React25.forwardRef(({ className, children, leftIcon
7547
7589
  leftIcon && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "flex-shrink-0 [&>svg]:size-4", children: leftIcon }),
7548
7590
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { children })
7549
7591
  ] }),
7550
- showCaret && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "caret-icon flex-shrink-0 transition-transform duration-500 ease-[cubic-bezier(0.4,0,0.2,1)]", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react30.CaretUpDownIcon, { className: "h-4 w-4" }) })
7592
+ showCaret && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "caret-icon flex-shrink-0 transition-transform duration-500 ease-[cubic-bezier(0.4,0,0.2,1)]", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react31.CaretUpDownIcon, { className: "h-4 w-4" }) })
7551
7593
  ]
7552
7594
  }
7553
7595
  );
@@ -7628,7 +7670,7 @@ HoverCardContentBase.displayName = HoverCardPrimitive.Content.displayName;
7628
7670
  // src/components/ui/form/Input-OTP-Base.tsx
7629
7671
  var React27 = __toESM(require("react"));
7630
7672
  var import_input_otp = require("input-otp");
7631
- var import_react31 = require("@phosphor-icons/react");
7673
+ var import_react32 = require("@phosphor-icons/react");
7632
7674
  var import_jsx_runtime47 = require("react/jsx-runtime");
7633
7675
  function InputOTPBase({
7634
7676
  className,
@@ -7683,7 +7725,7 @@ function InputOTPSlotBase({
7683
7725
  );
7684
7726
  }
7685
7727
  function InputOTPSeparatorBase({ ...props }) {
7686
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react31.MinusIcon, {}) });
7728
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react32.MinusIcon, {}) });
7687
7729
  }
7688
7730
 
7689
7731
  // src/components/ui/form/SliderBase.tsx
@@ -7771,7 +7813,7 @@ SlideBase.displayName = "SlideBase";
7771
7813
 
7772
7814
  // src/components/ui/form/SmallButtons.tsx
7773
7815
  var React29 = __toESM(require("react"));
7774
- var import_react32 = require("@phosphor-icons/react");
7816
+ var import_react33 = require("@phosphor-icons/react");
7775
7817
  var import_jsx_runtime49 = require("react/jsx-runtime");
7776
7818
  var EditButton = React29.forwardRef(
7777
7819
  ({
@@ -7802,7 +7844,7 @@ var EditButton = React29.forwardRef(
7802
7844
  ),
7803
7845
  ...props,
7804
7846
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7805
- import_react32.PencilSimpleIcon,
7847
+ import_react33.PencilSimpleIcon,
7806
7848
  {
7807
7849
  size: iconSize,
7808
7850
  color: iconColor,
@@ -7842,7 +7884,7 @@ var ChangeButton = React29.forwardRef(
7842
7884
  ),
7843
7885
  ...props,
7844
7886
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7845
- import_react32.ArrowsLeftRightIcon,
7887
+ import_react33.ArrowsLeftRightIcon,
7846
7888
  {
7847
7889
  size: iconSize,
7848
7890
  color: iconColor,
@@ -7882,7 +7924,7 @@ var SaveButton = React29.forwardRef(
7882
7924
  ),
7883
7925
  ...props,
7884
7926
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7885
- import_react32.FloppyDiskIcon,
7927
+ import_react33.FloppyDiskIcon,
7886
7928
  {
7887
7929
  size: iconSize,
7888
7930
  color: iconColor,
@@ -7922,7 +7964,7 @@ var AddButton = React29.forwardRef(
7922
7964
  ),
7923
7965
  ...props,
7924
7966
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7925
- import_react32.PlusIcon,
7967
+ import_react33.PlusIcon,
7926
7968
  {
7927
7969
  size: iconSize,
7928
7970
  color: iconColor,
@@ -7962,7 +8004,7 @@ var CloseButton = React29.forwardRef(
7962
8004
  ),
7963
8005
  ...props,
7964
8006
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7965
- import_react32.XIcon,
8007
+ import_react33.XIcon,
7966
8008
  {
7967
8009
  size: iconSize,
7968
8010
  color: iconColor,
@@ -7994,7 +8036,7 @@ var DownloadButton = ({
7994
8036
  ),
7995
8037
  ...props,
7996
8038
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7997
- import_react32.DownloadSimpleIcon,
8039
+ import_react33.DownloadSimpleIcon,
7998
8040
  {
7999
8041
  size: 18,
8000
8042
  className: "transition-transform duration-300 group-hover:translate-y-0.5"
@@ -8023,7 +8065,7 @@ var UploadButton = ({
8023
8065
  ),
8024
8066
  ...props,
8025
8067
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8026
- import_react32.UploadSimpleIcon,
8068
+ import_react33.UploadSimpleIcon,
8027
8069
  {
8028
8070
  size: 18,
8029
8071
  className: "transition-transform duration-300 group-hover:-translate-y-0.5"
@@ -8052,7 +8094,7 @@ var CopyButton = ({
8052
8094
  ),
8053
8095
  ...props,
8054
8096
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8055
- import_react32.CopyIcon,
8097
+ import_react33.CopyIcon,
8056
8098
  {
8057
8099
  size: 18,
8058
8100
  className: "transition-transform duration-200 group-hover:scale-110"
@@ -8081,7 +8123,7 @@ var RefreshButton = ({
8081
8123
  ),
8082
8124
  ...props,
8083
8125
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8084
- import_react32.ArrowClockwiseIcon,
8126
+ import_react33.ArrowClockwiseIcon,
8085
8127
  {
8086
8128
  size: 18,
8087
8129
  className: "transition-transform duration-500 group-hover:rotate-180"
@@ -8110,7 +8152,7 @@ var SearchButton = ({
8110
8152
  ),
8111
8153
  ...props,
8112
8154
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8113
- import_react32.MagnifyingGlassIcon,
8155
+ import_react33.MagnifyingGlassIcon,
8114
8156
  {
8115
8157
  size: 18,
8116
8158
  className: "transition-transform duration-200 group-hover:scale-110 group-hover:-rotate-12"
@@ -8139,7 +8181,7 @@ var BackButton = ({
8139
8181
  ),
8140
8182
  ...props,
8141
8183
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8142
- import_react32.ArrowLeftIcon,
8184
+ import_react33.ArrowLeftIcon,
8143
8185
  {
8144
8186
  size: 18,
8145
8187
  className: "transition-transform duration-300 group-hover:-translate-x-1"
@@ -8168,7 +8210,7 @@ var SettingsButton = ({
8168
8210
  ),
8169
8211
  ...props,
8170
8212
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8171
- import_react32.GearIcon,
8213
+ import_react33.GearIcon,
8172
8214
  {
8173
8215
  size: 18,
8174
8216
  className: "transition-transform duration-500 group-hover:rotate-90"
@@ -8197,7 +8239,7 @@ var NotificationButton = ({
8197
8239
  ),
8198
8240
  ...props,
8199
8241
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8200
- import_react32.BellIcon,
8242
+ import_react33.BellIcon,
8201
8243
  {
8202
8244
  size: 18,
8203
8245
  className: "transition-transform duration-300 group-hover:scale-110 group-hover:-rotate-12"
@@ -8226,7 +8268,7 @@ var MoreButton = ({
8226
8268
  ),
8227
8269
  ...props,
8228
8270
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8229
- import_react32.DotsThreeIcon,
8271
+ import_react33.DotsThreeIcon,
8230
8272
  {
8231
8273
  size: 18,
8232
8274
  className: "transition-transform duration-200 group-hover:scale-110"
@@ -8255,7 +8297,7 @@ var CheckButton = ({
8255
8297
  ),
8256
8298
  ...props,
8257
8299
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8258
- import_react32.CheckIcon,
8300
+ import_react33.CheckIcon,
8259
8301
  {
8260
8302
  size: 18,
8261
8303
  className: "transition-transform duration-200 group-hover:scale-110"
@@ -8291,7 +8333,7 @@ var FilterButton = ({
8291
8333
  ),
8292
8334
  ...props,
8293
8335
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8294
- import_react32.FunnelIcon,
8336
+ import_react33.FunnelIcon,
8295
8337
  {
8296
8338
  size: iconSize,
8297
8339
  color: iconColor,
@@ -8330,7 +8372,7 @@ var LikeButton = ({
8330
8372
  ),
8331
8373
  ...props,
8332
8374
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8333
- import_react32.HeartIcon,
8375
+ import_react33.HeartIcon,
8334
8376
  {
8335
8377
  size: iconSize,
8336
8378
  color: iconColor,
@@ -8369,7 +8411,7 @@ var FavoriteButton = ({
8369
8411
  ),
8370
8412
  ...props,
8371
8413
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8372
- import_react32.StarIcon,
8414
+ import_react33.StarIcon,
8373
8415
  {
8374
8416
  size: iconSize,
8375
8417
  color: iconColor,
@@ -8407,14 +8449,14 @@ var VisibilityButton = ({
8407
8449
  ),
8408
8450
  ...props,
8409
8451
  children: isVisible ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8410
- import_react32.EyeIcon,
8452
+ import_react33.EyeIcon,
8411
8453
  {
8412
8454
  size: iconSize,
8413
8455
  color: iconColor,
8414
8456
  className: "transition-opacity duration-200"
8415
8457
  }
8416
8458
  ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8417
- import_react32.EyeSlashIcon,
8459
+ import_react33.EyeSlashIcon,
8418
8460
  {
8419
8461
  size: iconSize,
8420
8462
  color: iconColor,
@@ -8454,14 +8496,14 @@ var LockButton = ({
8454
8496
  ),
8455
8497
  ...props,
8456
8498
  children: isLocked ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8457
- import_react32.LockIcon,
8499
+ import_react33.LockIcon,
8458
8500
  {
8459
8501
  size: iconSize,
8460
8502
  color: iconColor,
8461
8503
  className: "transition-all duration-200 group-hover:scale-110"
8462
8504
  }
8463
8505
  ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8464
- import_react32.LockOpenIcon,
8506
+ import_react33.LockOpenIcon,
8465
8507
  {
8466
8508
  size: iconSize,
8467
8509
  color: iconColor,
@@ -8507,7 +8549,7 @@ SwitchBase.displayName = SwitchPrimitives.Root.displayName;
8507
8549
  // src/components/ui/form/TextAreaBase.tsx
8508
8550
  var React31 = __toESM(require("react"));
8509
8551
  var import_framer_motion12 = require("framer-motion");
8510
- var import_react33 = require("@phosphor-icons/react");
8552
+ var import_react34 = require("@phosphor-icons/react");
8511
8553
  var import_jsx_runtime51 = require("react/jsx-runtime");
8512
8554
  var TextAreaBase = React31.forwardRef(
8513
8555
  ({ className, clearable = false, onClear, ...props }, ref) => {
@@ -8604,7 +8646,7 @@ var TextAreaBase = React31.forwardRef(
8604
8646
  ),
8605
8647
  disabled: props.disabled,
8606
8648
  "aria-label": "Limpar texto",
8607
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react33.TrashIcon, { size: 16, weight: "regular" })
8649
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react34.TrashIcon, { size: 16, weight: "regular" })
8608
8650
  }
8609
8651
  ) }),
8610
8652
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
@@ -8682,7 +8724,7 @@ TextAreaBase.displayName = "TextAreaBase";
8682
8724
  // src/components/ui/layout/CarouselBase.tsx
8683
8725
  var React32 = __toESM(require("react"));
8684
8726
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
8685
- var import_react34 = require("@phosphor-icons/react");
8727
+ var import_react35 = require("@phosphor-icons/react");
8686
8728
  var import_jsx_runtime52 = require("react/jsx-runtime");
8687
8729
  var CarouselContext = React32.createContext(null);
8688
8730
  function useCarousel() {
@@ -8843,7 +8885,7 @@ function CarouselPreviousBase({
8843
8885
  onClick: scrollPrev,
8844
8886
  ...props,
8845
8887
  children: [
8846
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react34.ArrowLeftIcon, {}),
8888
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react35.ArrowLeftIcon, {}),
8847
8889
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "sr-only", children: "Previous slide" })
8848
8890
  ]
8849
8891
  }
@@ -8873,7 +8915,7 @@ function CarouselNextBase({
8873
8915
  onClick: scrollNext,
8874
8916
  ...props,
8875
8917
  children: [
8876
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react34.ArrowRightIcon, {}),
8918
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react35.ArrowRightIcon, {}),
8877
8919
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "sr-only", children: "Next slide" })
8878
8920
  ]
8879
8921
  }
@@ -9056,7 +9098,7 @@ TabsContentBase.displayName = TabsPrimitive.Content.displayName;
9056
9098
 
9057
9099
  // src/components/ui/navigation/BreadcrumbBase.tsx
9058
9100
  var import_react_slot4 = require("@radix-ui/react-slot");
9059
- var import_react35 = require("@phosphor-icons/react");
9101
+ var import_react36 = require("@phosphor-icons/react");
9060
9102
  var import_jsx_runtime56 = require("react/jsx-runtime");
9061
9103
  function BreadcrumbBase({ ...props }) {
9062
9104
  return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
@@ -9125,7 +9167,7 @@ function BreadcrumbSeparatorBase({
9125
9167
  "aria-hidden": "true",
9126
9168
  className: cn("[&>svg]:size-3.5", className),
9127
9169
  ...props,
9128
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react35.CaretRightIcon, {})
9170
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react36.CaretRightIcon, {})
9129
9171
  }
9130
9172
  );
9131
9173
  }
@@ -9142,7 +9184,7 @@ function BreadcrumbEllipsisBase({
9142
9184
  className: cn("flex size-9 items-center justify-center", className),
9143
9185
  ...props,
9144
9186
  children: [
9145
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react35.DotsThreeIcon, { className: "size-4" }),
9187
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react36.DotsThreeIcon, { className: "size-4" }),
9146
9188
  /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "sr-only", children: "More" })
9147
9189
  ]
9148
9190
  }
@@ -9151,7 +9193,7 @@ function BreadcrumbEllipsisBase({
9151
9193
 
9152
9194
  // src/components/ui/navigation/NavigationMenuBase.tsx
9153
9195
  var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"));
9154
- var import_react36 = require("@phosphor-icons/react");
9196
+ var import_react37 = require("@phosphor-icons/react");
9155
9197
  var import_jsx_runtime57 = require("react/jsx-runtime");
9156
9198
  function NavigationMenuBase({
9157
9199
  className,
@@ -9219,7 +9261,7 @@ function NavigationMenuTriggerBase({
9219
9261
  children: [
9220
9262
  children,
9221
9263
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
9222
- import_react36.CaretDownIcon,
9264
+ import_react37.CaretDownIcon,
9223
9265
  {
9224
9266
  className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
9225
9267
  "aria-hidden": "true"
@@ -9322,7 +9364,7 @@ function useIsMobile() {
9322
9364
  var React37 = __toESM(require("react"));
9323
9365
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"));
9324
9366
  var import_class_variance_authority4 = require("class-variance-authority");
9325
- var import_react37 = require("@phosphor-icons/react");
9367
+ var import_react38 = require("@phosphor-icons/react");
9326
9368
  var import_jsx_runtime58 = require("react/jsx-runtime");
9327
9369
  var SheetBase = SheetPrimitive.Root;
9328
9370
  var SheetTriggerBase = SheetPrimitive.Trigger;
@@ -9366,7 +9408,7 @@ var SheetContentBase = React37.forwardRef(({ side = "right", className, children
9366
9408
  ...props,
9367
9409
  children: [
9368
9410
  /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
9369
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react37.XIcon, { className: "h-4 w-4" }),
9411
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react38.XIcon, { className: "h-4 w-4" }),
9370
9412
  /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "sr-only", children: "Close" })
9371
9413
  ] }),
9372
9414
  children
@@ -9423,7 +9465,7 @@ var SheetDescriptionBase = React37.forwardRef(({ className, ...props }, ref) =>
9423
9465
  SheetDescriptionBase.displayName = SheetPrimitive.Description.displayName;
9424
9466
 
9425
9467
  // src/components/ui/navigation/SidebarBase.tsx
9426
- var import_react38 = require("@phosphor-icons/react");
9468
+ var import_react39 = require("@phosphor-icons/react");
9427
9469
  var import_jsx_runtime59 = require("react/jsx-runtime");
9428
9470
  var SIDEBAR_COOKIE_NAME = "sidebar:state";
9429
9471
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
@@ -9617,7 +9659,7 @@ var SidebarTriggerBase = React38.forwardRef(({ className, onClick, ...props }, r
9617
9659
  ...props,
9618
9660
  children: [
9619
9661
  /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "sr-only", children: "Toggle SidebarBase" }),
9620
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react38.SidebarSimpleIcon, {})
9662
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react39.SidebarSimpleIcon, {})
9621
9663
  ]
9622
9664
  }
9623
9665
  ) });
@@ -10111,11 +10153,11 @@ function DrawerDescriptionBase({
10111
10153
  }
10112
10154
 
10113
10155
  // src/hooks/use-universal-tooltip.tsx
10114
- var import_react39 = require("react");
10156
+ var import_react40 = require("react");
10115
10157
  var import_jsx_runtime61 = require("react/jsx-runtime");
10116
- var UniversalTooltipContext = (0, import_react39.createContext)(null);
10158
+ var UniversalTooltipContext = (0, import_react40.createContext)(null);
10117
10159
  var useUniversalTooltip = () => {
10118
- const context = (0, import_react39.useContext)(UniversalTooltipContext);
10160
+ const context = (0, import_react40.useContext)(UniversalTooltipContext);
10119
10161
  if (!context) {
10120
10162
  throw new Error("useUniversalTooltip deve ser usado dentro de UniversalTooltipProvider");
10121
10163
  }
@@ -10123,7 +10165,7 @@ var useUniversalTooltip = () => {
10123
10165
  };
10124
10166
  var useTooltip = () => {
10125
10167
  const { addTooltip, removeTooltip, startDrag } = useUniversalTooltip();
10126
- const createTooltip = (0, import_react39.useCallback)((element, content, options) => {
10168
+ const createTooltip = (0, import_react40.useCallback)((element, content, options) => {
10127
10169
  const rect = element.getBoundingClientRect();
10128
10170
  let position;
10129
10171
  switch (options?.position || "auto") {
@@ -10153,7 +10195,7 @@ var useTooltip = () => {
10153
10195
  metadata: options?.metadata
10154
10196
  });
10155
10197
  }, [addTooltip]);
10156
- const handleElementMouseDown = (0, import_react39.useCallback)((tooltipId, event) => {
10198
+ const handleElementMouseDown = (0, import_react40.useCallback)((tooltipId, event) => {
10157
10199
  const rect = event.target.getBoundingClientRect();
10158
10200
  const offset = {
10159
10201
  x: event.clientX - rect.left,
@@ -10312,7 +10354,7 @@ var import_date_fns = require("date-fns");
10312
10354
  // src/components/picker/calendar.tsx
10313
10355
  var React40 = __toESM(require("react"));
10314
10356
  var import_react_day_picker2 = require("react-day-picker");
10315
- var import_react40 = require("@phosphor-icons/react");
10357
+ var import_react41 = require("@phosphor-icons/react");
10316
10358
  var import_framer_motion14 = require("framer-motion");
10317
10359
  var import_jsx_runtime63 = require("react/jsx-runtime");
10318
10360
  function CalendarBase2({
@@ -10386,8 +10428,8 @@ function CalendarBase2({
10386
10428
  ...classNames
10387
10429
  },
10388
10430
  components: {
10389
- IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react40.CaretLeftIcon, { className: "h-4 w-4" }),
10390
- IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react40.CaretRightIcon, { className: "h-4 w-4" })
10431
+ IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react41.CaretLeftIcon, { className: "h-4 w-4" }),
10432
+ IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react41.CaretRightIcon, { className: "h-4 w-4" })
10391
10433
  },
10392
10434
  ...props
10393
10435
  }
@@ -10402,15 +10444,15 @@ CalendarBase2.displayName = "CalendarBase";
10402
10444
 
10403
10445
  // src/components/picker/DateTimePicker.tsx
10404
10446
  var import_locale = require("date-fns/locale");
10405
- var import_react43 = require("react");
10447
+ var import_react44 = require("react");
10406
10448
 
10407
10449
  // src/components/picker/TimePicker.tsx
10408
10450
  var import_framer_motion15 = require("framer-motion");
10409
10451
  var React42 = __toESM(require("react"));
10410
10452
 
10411
10453
  // src/components/picker/TimePickerInput.tsx
10412
- var import_react41 = require("@phosphor-icons/react");
10413
- var import_react42 = __toESM(require("react"));
10454
+ var import_react42 = require("@phosphor-icons/react");
10455
+ var import_react43 = __toESM(require("react"));
10414
10456
 
10415
10457
  // src/components/picker/utils/time-picker-utils.ts
10416
10458
  function isValidHour(value) {
@@ -10553,7 +10595,7 @@ function display12HourValue(hours) {
10553
10595
 
10554
10596
  // src/components/picker/TimePickerInput.tsx
10555
10597
  var import_jsx_runtime64 = require("react/jsx-runtime");
10556
- var TimePickerInput = import_react42.default.forwardRef(
10598
+ var TimePickerInput = import_react43.default.forwardRef(
10557
10599
  ({
10558
10600
  className,
10559
10601
  type = "tel",
@@ -10572,10 +10614,10 @@ var TimePickerInput = import_react42.default.forwardRef(
10572
10614
  label,
10573
10615
  ...props
10574
10616
  }, ref) => {
10575
- const [flag, setFlag] = import_react42.default.useState(false);
10576
- const [prevIntKey, setPrevIntKey] = import_react42.default.useState("0");
10577
- const [isFocused, setIsFocused] = import_react42.default.useState(false);
10578
- import_react42.default.useEffect(() => {
10617
+ const [flag, setFlag] = import_react43.default.useState(false);
10618
+ const [prevIntKey, setPrevIntKey] = import_react43.default.useState("0");
10619
+ const [isFocused, setIsFocused] = import_react43.default.useState(false);
10620
+ import_react43.default.useEffect(() => {
10579
10621
  if (flag) {
10580
10622
  const timer = setTimeout(() => {
10581
10623
  setFlag(false);
@@ -10583,7 +10625,7 @@ var TimePickerInput = import_react42.default.forwardRef(
10583
10625
  return () => clearTimeout(timer);
10584
10626
  }
10585
10627
  }, [flag]);
10586
- const calculatedValue = import_react42.default.useMemo(() => {
10628
+ const calculatedValue = import_react43.default.useMemo(() => {
10587
10629
  return getDateByType(date, picker);
10588
10630
  }, [date, picker]);
10589
10631
  const calculateNewValue = (key) => {
@@ -10672,7 +10714,7 @@ var TimePickerInput = import_react42.default.forwardRef(
10672
10714
  ),
10673
10715
  tabIndex: -1,
10674
10716
  "aria-label": `Incrementar ${getPickerLabel().toLowerCase()}`,
10675
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react41.CaretUpIcon, { size: 14, className: "sm:w-4 sm:h-4" })
10717
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react42.CaretUpIcon, { size: 14, className: "sm:w-4 sm:h-4" })
10676
10718
  }
10677
10719
  ),
10678
10720
  /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "relative", children: [
@@ -10739,7 +10781,7 @@ var TimePickerInput = import_react42.default.forwardRef(
10739
10781
  ),
10740
10782
  tabIndex: -1,
10741
10783
  "aria-label": `Decrementar ${getPickerLabel().toLowerCase()}`,
10742
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react41.CaretDownIcon, { size: 14, className: "sm:w-4 sm:h-4" })
10784
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react42.CaretDownIcon, { size: 14, className: "sm:w-4 sm:h-4" })
10743
10785
  }
10744
10786
  )
10745
10787
  ]
@@ -10848,7 +10890,7 @@ function TimePicker({
10848
10890
  }
10849
10891
 
10850
10892
  // src/components/picker/DateTimePicker.tsx
10851
- var import_react44 = require("@phosphor-icons/react");
10893
+ var import_react45 = require("@phosphor-icons/react");
10852
10894
  var import_jsx_runtime66 = require("react/jsx-runtime");
10853
10895
  function DateTimePicker({
10854
10896
  label,
@@ -10863,9 +10905,9 @@ function DateTimePicker({
10863
10905
  className,
10864
10906
  error
10865
10907
  }) {
10866
- const [internalDate, setInternalDate] = (0, import_react43.useState)(date);
10867
- const [open, setOpen] = (0, import_react43.useState)(false);
10868
- const [timePickerOpen, setTimePickerOpen] = (0, import_react43.useState)(false);
10908
+ const [internalDate, setInternalDate] = (0, import_react44.useState)(date);
10909
+ const [open, setOpen] = (0, import_react44.useState)(false);
10910
+ const [timePickerOpen, setTimePickerOpen] = (0, import_react44.useState)(false);
10869
10911
  const handleSelect = (newDay) => {
10870
10912
  if (!newDay) return;
10871
10913
  if (!internalDate) {
@@ -10896,10 +10938,10 @@ function DateTimePicker({
10896
10938
  if (!timeFormat) return "dd MMMM yyyy";
10897
10939
  return `dd MMMM yyyy - ${timeFormat}`;
10898
10940
  };
10899
- (0, import_react43.useEffect)(() => {
10941
+ (0, import_react44.useEffect)(() => {
10900
10942
  setInternalDate(date);
10901
10943
  }, [date, open]);
10902
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: cn("space-y-2 w-full sm:w-auto", className), children: [
10944
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: cn("w-full sm:w-auto", className), children: [
10903
10945
  label && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(LabelBase_default, { children: label }),
10904
10946
  /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(PopoverBase, { open, onOpenChange: setOpen, children: [
10905
10947
  /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
@@ -10927,7 +10969,7 @@ function DateTimePicker({
10927
10969
  children: date ? (0, import_date_fns.format)(date, getDisplayFormat(), { locale: import_locale.ptBR }) : "Selecione uma data"
10928
10970
  }
10929
10971
  ),
10930
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react44.CalendarBlankIcon, { className: "flex-shrink-0 w-5 h-5 sm:w-6 sm:h-6" })
10972
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react45.CalendarBlankIcon, { className: "flex-shrink-0 w-5 h-5 sm:w-6 sm:h-6" })
10931
10973
  ]
10932
10974
  }
10933
10975
  )
@@ -10977,7 +11019,7 @@ function DateTimePicker({
10977
11019
  "shadow-sm hover:shadow-md active:scale-[0.98]"
10978
11020
  ),
10979
11021
  children: [
10980
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react44.ClockIcon, { className: "text-primary flex-shrink-0 w-4 h-4 sm:w-5 sm:h-5" }),
11022
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react45.ClockIcon, { className: "text-primary flex-shrink-0 w-4 h-4 sm:w-5 sm:h-5" }),
10981
11023
  /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-black truncate", children: internalDate ? (0, import_date_fns.format)(internalDate, getTimeFormat() || "HH:mm", {
10982
11024
  locale: import_locale.ptBR
10983
11025
  }) : "00:00" })
@@ -11031,7 +11073,7 @@ var React43 = __toESM(require("react"));
11031
11073
  var import_react_day_picker3 = require("react-day-picker");
11032
11074
  var import_pt_BR = __toESM(require("date-fns/locale/pt-BR"));
11033
11075
  var import_date_fns2 = require("date-fns");
11034
- var import_react45 = require("@phosphor-icons/react");
11076
+ var import_react46 = require("@phosphor-icons/react");
11035
11077
  var import_framer_motion16 = require("framer-motion");
11036
11078
  var import_ssr7 = require("@phosphor-icons/react/dist/ssr");
11037
11079
  var import_jsx_runtime67 = require("react/jsx-runtime");
@@ -11059,7 +11101,7 @@ function RangePicker({
11059
11101
  onChange?.(void 0);
11060
11102
  };
11061
11103
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(PopoverBase, { open, onOpenChange: setOpen, children: [
11062
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PopoverTriggerBase, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
11104
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PopoverTriggerBase, { asChild: true, className: cn(error && "border-red-500"), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
11063
11105
  import_framer_motion16.motion.div,
11064
11106
  {
11065
11107
  whileTap: { scale: 0.97 },
@@ -11069,12 +11111,18 @@ function RangePicker({
11069
11111
  ButtonBase,
11070
11112
  {
11071
11113
  variant: "outline",
11072
- className: "flex gap-2 transition-all duration-200 min-w-[250px] text-left justify-between items-center",
11114
+ className: cn(
11115
+ "w-full justify-start text-left min-w-0 overflow-hidden",
11116
+ !range && "text-muted-foreground"
11117
+ ),
11073
11118
  children: [
11074
11119
  /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
11075
11120
  import_framer_motion16.motion.span,
11076
11121
  {
11077
- className: "text-sm font-medium",
11122
+ className: cn(
11123
+ "truncate flex-1",
11124
+ !range && "text-muted-foreground"
11125
+ ),
11078
11126
  transition: { duration: 0.2 },
11079
11127
  animate: controls,
11080
11128
  children: range?.from && range?.to ? `${(0, import_date_fns2.format)(range.from, "P", {
@@ -11087,7 +11135,7 @@ function RangePicker({
11087
11135
  {
11088
11136
  animate: open ? { rotate: 8, scale: 1.15 } : { rotate: 0, scale: 1 },
11089
11137
  transition: { type: "spring", stiffness: 300, damping: 18 },
11090
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react45.CalendarBlankIcon, { className: "w-4 h-4 transition-transform group-hover:scale-110" })
11138
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react46.CalendarBlankIcon, { className: "flex-shrink-0 w-5 h-5 sm:w-6 sm:h-6" })
11091
11139
  }
11092
11140
  )
11093
11141
  ]
@@ -11164,8 +11212,8 @@ function RangePicker({
11164
11212
  day_hidden: "invisible"
11165
11213
  },
11166
11214
  components: {
11167
- IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react45.CaretLeftIcon, { className: "h-4 w-4" }),
11168
- IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react45.CaretRightIcon, { className: "h-4 w-4" })
11215
+ IconLeft: () => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react46.CaretLeftIcon, { className: "h-4 w-4" }),
11216
+ IconRight: () => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react46.CaretRightIcon, { className: "h-4 w-4" })
11169
11217
  }
11170
11218
  }
11171
11219
  )
@@ -11237,7 +11285,7 @@ RangePicker.displayName = "RangePicker";
11237
11285
 
11238
11286
  // src/components/ui/navigation/ContextMenuBase.tsx
11239
11287
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
11240
- var import_react46 = require("@phosphor-icons/react");
11288
+ var import_react47 = require("@phosphor-icons/react");
11241
11289
  var import_jsx_runtime68 = require("react/jsx-runtime");
11242
11290
  function ContextMenuBase(props) {
11243
11291
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
@@ -11279,7 +11327,7 @@ function ContextMenuSubTriggerBase({
11279
11327
  ...props,
11280
11328
  children: [
11281
11329
  children,
11282
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react46.CaretRightIcon, { className: "ml-auto" })
11330
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react47.CaretRightIcon, { className: "ml-auto" })
11283
11331
  ]
11284
11332
  }
11285
11333
  );
@@ -11374,7 +11422,7 @@ function ContextMenuCheckboxItemBase({
11374
11422
  checked,
11375
11423
  ...props,
11376
11424
  children: [
11377
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react46.CheckIcon, { className: "size-4" }) }) }),
11425
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react47.CheckIcon, { className: "size-4" }) }) }),
11378
11426
  children
11379
11427
  ]
11380
11428
  }
@@ -11399,7 +11447,7 @@ function ContextMenuRadioItemBase({
11399
11447
  ),
11400
11448
  ...props,
11401
11449
  children: [
11402
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react46.CircleIcon, { className: "size-2 fill-current" }) }) }),
11450
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react47.CircleIcon, { className: "size-2 fill-current" }) }) }),
11403
11451
  children
11404
11452
  ]
11405
11453
  }
@@ -11448,8 +11496,8 @@ function ContextMenuShortcutBase({
11448
11496
  }
11449
11497
 
11450
11498
  // src/components/ui/CodeBlock.tsx
11451
- var import_react47 = require("@phosphor-icons/react");
11452
- var import_react48 = __toESM(require("react"));
11499
+ var import_react48 = require("@phosphor-icons/react");
11500
+ var import_react49 = __toESM(require("react"));
11453
11501
  var import_react_syntax_highlighter = require("react-syntax-highlighter");
11454
11502
  var import_jsx_runtime69 = require("react/jsx-runtime");
11455
11503
  var CodeBlock = ({
@@ -11461,11 +11509,11 @@ var CodeBlock = ({
11461
11509
  breadcrumb = [],
11462
11510
  showStats = true
11463
11511
  }) => {
11464
- const [copied, setCopied] = import_react48.default.useState(false);
11465
- const [activeTab, setActiveTab] = import_react48.default.useState(0);
11466
- const [isExpanded, setIsExpanded] = import_react48.default.useState(false);
11512
+ const [copied, setCopied] = import_react49.default.useState(false);
11513
+ const [activeTab, setActiveTab] = import_react49.default.useState(0);
11514
+ const [isExpanded, setIsExpanded] = import_react49.default.useState(false);
11467
11515
  const tabsExist = tabs.length > 0;
11468
- const cssVars = import_react48.default.useMemo(
11516
+ const cssVars = import_react49.default.useMemo(
11469
11517
  () => ({
11470
11518
  container: {
11471
11519
  backgroundColor: "hsl(var(--card))",
@@ -11530,12 +11578,12 @@ var CodeBlock = ({
11530
11578
  case "jsx":
11531
11579
  case "typescript":
11532
11580
  case "tsx":
11533
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.CodeIcon, { size: "1em", className: "text-yellow-400" });
11581
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.CodeIcon, { size: "1em", className: "text-yellow-400" });
11534
11582
  case "bash":
11535
11583
  case "shell":
11536
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.TerminalIcon, { size: "1em", className: "text-green-400" });
11584
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.TerminalIcon, { size: "1em", className: "text-green-400" });
11537
11585
  default:
11538
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.FileArchiveIcon, { size: "1em", className: "text-blue-400" });
11586
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.FileArchiveIcon, { size: "1em", className: "text-blue-400" });
11539
11587
  }
11540
11588
  };
11541
11589
  const getCodeStats = (source) => {
@@ -11560,8 +11608,8 @@ var CodeBlock = ({
11560
11608
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "w-3 h-3 rounded-full bg-green-500" })
11561
11609
  ] }),
11562
11610
  breadcrumb.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center min-w-0", children: [
11563
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.FolderIcon, { size: "1em", style: cssVars.icon }),
11564
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex items-center min-w-0 ml-2", children: breadcrumb.map((crumb, index) => /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react48.default.Fragment, { children: [
11611
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.FolderIcon, { size: "1em", style: cssVars.icon }),
11612
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex items-center min-w-0 ml-2", children: breadcrumb.map((crumb, index) => /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react49.default.Fragment, { children: [
11565
11613
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
11566
11614
  "span",
11567
11615
  {
@@ -11571,7 +11619,7 @@ var CodeBlock = ({
11571
11619
  }
11572
11620
  ),
11573
11621
  index < breadcrumb.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
11574
- import_react47.ArrowRightIcon,
11622
+ import_react48.ArrowRightIcon,
11575
11623
  {
11576
11624
  size: "0.75em",
11577
11625
  style: cssVars.icon,
@@ -11602,7 +11650,7 @@ var CodeBlock = ({
11602
11650
  onClick: () => setIsExpanded(!isExpanded),
11603
11651
  className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
11604
11652
  title: "Toggle fullscreen",
11605
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.ArrowsOutIcon, { size: "1em", style: cssVars.icon })
11653
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.ArrowsOutIcon, { size: "1em", style: cssVars.icon })
11606
11654
  }
11607
11655
  ),
11608
11656
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
@@ -11611,7 +11659,7 @@ var CodeBlock = ({
11611
11659
  onClick: downloadCode,
11612
11660
  className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
11613
11661
  title: "Download code",
11614
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.DownloadIcon, { size: "1em", style: cssVars.icon })
11662
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.DownloadIcon, { size: "1em", style: cssVars.icon })
11615
11663
  }
11616
11664
  ),
11617
11665
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
@@ -11621,12 +11669,12 @@ var CodeBlock = ({
11621
11669
  className: `p-2 transition-colors hover:bg-gray-200 dark:hover:bg-slate-700`,
11622
11670
  title: "Copy code",
11623
11671
  children: copied ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
11624
- import_react47.CheckIcon,
11672
+ import_react48.CheckIcon,
11625
11673
  {
11626
11674
  size: "1em",
11627
11675
  style: { color: "hsl(var(--primary))" }
11628
11676
  }
11629
- ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.CopyIcon, { size: "1em", style: cssVars.icon })
11677
+ ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.CopyIcon, { size: "1em", style: cssVars.icon })
11630
11678
  }
11631
11679
  )
11632
11680
  ] })
@@ -11739,7 +11787,7 @@ var CodeBlock = ({
11739
11787
  ] })
11740
11788
  ] }),
11741
11789
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-1 shrink-0", children: [
11742
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react47.GearIcon, { size: "0.75em", style: cssVars.icon }),
11790
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react48.GearIcon, { size: "0.75em", style: cssVars.icon }),
11743
11791
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: "UTF-8" })
11744
11792
  ] })
11745
11793
  ]
@@ -11818,22 +11866,74 @@ function StatusIndicator({
11818
11866
  }
11819
11867
 
11820
11868
  // src/components/ui/form/DebouncedInput.tsx
11821
- var import_react49 = require("react");
11822
- var import_react50 = require("@phosphor-icons/react");
11869
+ var import_react50 = require("react");
11870
+ var import_react51 = require("@phosphor-icons/react");
11823
11871
  var import_jsx_runtime71 = require("react/jsx-runtime");
11872
+ function DebouncedInput({
11873
+ value: initialValue,
11874
+ onChange,
11875
+ debounce = 500,
11876
+ label,
11877
+ labelClassname,
11878
+ leftIcon,
11879
+ rightIcon,
11880
+ showLoadingIndicator = false,
11881
+ className,
11882
+ error,
11883
+ ...props
11884
+ }) {
11885
+ const [value, setValue] = (0, import_react50.useState)(initialValue);
11886
+ const [isDebouncing, setIsDebouncing] = (0, import_react50.useState)(false);
11887
+ (0, import_react50.useEffect)(() => {
11888
+ setValue(initialValue);
11889
+ }, [initialValue]);
11890
+ (0, import_react50.useEffect)(() => {
11891
+ if (value !== initialValue) {
11892
+ setIsDebouncing(true);
11893
+ }
11894
+ const timeout = setTimeout(() => {
11895
+ onChange(value);
11896
+ setIsDebouncing(false);
11897
+ }, debounce);
11898
+ return () => {
11899
+ clearTimeout(timeout);
11900
+ setIsDebouncing(false);
11901
+ };
11902
+ }, [debounce, initialValue, onChange, value]);
11903
+ const renderRightIcon = () => {
11904
+ if (showLoadingIndicator && isDebouncing) {
11905
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react51.CircleNotchIcon, { className: "h-4 w-4 animate-spin text-muted-foreground" });
11906
+ }
11907
+ return rightIcon;
11908
+ };
11909
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
11910
+ InputBase,
11911
+ {
11912
+ ...props,
11913
+ label,
11914
+ labelClassname,
11915
+ leftIcon,
11916
+ rightIcon: renderRightIcon(),
11917
+ className: cn("transition-all duration-200", className),
11918
+ value,
11919
+ onChange: (e) => setValue(e.target.value),
11920
+ error
11921
+ }
11922
+ );
11923
+ }
11824
11924
 
11825
11925
  // src/components/event-calendar/AgendaView.tsx
11826
11926
  var import_date_fns3 = require("date-fns");
11827
11927
  var import_locale2 = require("date-fns/locale");
11828
- var import_react51 = require("react");
11829
- var import_react52 = require("@phosphor-icons/react");
11928
+ var import_react52 = require("react");
11929
+ var import_react53 = require("@phosphor-icons/react");
11830
11930
  var import_jsx_runtime72 = require("react/jsx-runtime");
11831
11931
  function AgendaView({
11832
11932
  currentDate,
11833
11933
  events,
11834
11934
  onEventSelect
11835
11935
  }) {
11836
- const days = (0, import_react51.useMemo)(() => {
11936
+ const days = (0, import_react52.useMemo)(() => {
11837
11937
  console.log("Agenda view updating with date:", currentDate.toISOString());
11838
11938
  return Array.from(
11839
11939
  { length: AgendaDaysToShow },
@@ -11849,9 +11949,9 @@ function AgendaView({
11849
11949
  (day) => getAgendaEventsForDay(events, day).length > 0
11850
11950
  );
11851
11951
  return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "border-border/70 border-t px-4", children: !hasEvents ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex min-h-[70svh] flex-col items-center justify-center py-16 text-center", children: [
11852
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react52.CalendarIcon, { className: "mb-2 text-muted-foreground/50", size: 32 }),
11853
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("h3", { className: "font-medium text-lg", children: "No events found" }),
11854
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-muted-foreground", children: "There are no events scheduled for this time period." })
11952
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react53.CalendarIcon, { className: "mb-2 text-muted-foreground/50", size: 32 }),
11953
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("h3", { className: "font-medium text-lg", children: "Nenhum evento encontrado" }),
11954
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-muted-foreground", children: "N\xE3o h\xE1 eventos agendados para este per\xEDodo." })
11855
11955
  ] }) : days.map((day) => {
11856
11956
  const dayEvents = getAgendaEventsForDay(events, day);
11857
11957
  if (dayEvents.length === 0) return null;
@@ -11890,11 +11990,11 @@ function AgendaView({
11890
11990
  // src/components/event-calendar/CalendarDND.tsx
11891
11991
  var import_core = require("@dnd-kit/core");
11892
11992
  var import_date_fns4 = require("date-fns");
11893
- var import_react54 = require("react");
11993
+ var import_react55 = require("react");
11894
11994
 
11895
11995
  // src/components/event-calendar/hooks.ts
11896
- var import_react53 = require("react");
11897
- var CalendarDndContext = (0, import_react53.createContext)({
11996
+ var import_react54 = require("react");
11997
+ var CalendarDndContext = (0, import_react54.createContext)({
11898
11998
  activeEvent: null,
11899
11999
  activeId: null,
11900
12000
  activeView: null,
@@ -11904,7 +12004,7 @@ var CalendarDndContext = (0, import_react53.createContext)({
11904
12004
  isMultiDay: false,
11905
12005
  multiDayWidth: null
11906
12006
  });
11907
- var useCalendarDnd = () => (0, import_react53.useContext)(CalendarDndContext);
12007
+ var useCalendarDnd = () => (0, import_react54.useContext)(CalendarDndContext);
11908
12008
 
11909
12009
  // src/components/event-calendar/CalendarDND.tsx
11910
12010
  var import_jsx_runtime73 = require("react/jsx-runtime");
@@ -11912,17 +12012,17 @@ function CalendarDndProvider({
11912
12012
  children,
11913
12013
  onEventUpdate
11914
12014
  }) {
11915
- const [activeEvent, setActiveEvent] = (0, import_react54.useState)(null);
11916
- const [activeId, setActiveId] = (0, import_react54.useState)(null);
11917
- const [activeView, setActiveView] = (0, import_react54.useState)(
12015
+ const [activeEvent, setActiveEvent] = (0, import_react55.useState)(null);
12016
+ const [activeId, setActiveId] = (0, import_react55.useState)(null);
12017
+ const [activeView, setActiveView] = (0, import_react55.useState)(
11918
12018
  null
11919
12019
  );
11920
- const [currentTime, setCurrentTime] = (0, import_react54.useState)(null);
11921
- const [eventHeight, setEventHeight] = (0, import_react54.useState)(null);
11922
- const [isMultiDay, setIsMultiDay] = (0, import_react54.useState)(false);
11923
- const [multiDayWidth, setMultiDayWidth] = (0, import_react54.useState)(null);
11924
- const [dragHandlePosition, setDragHandlePosition] = (0, import_react54.useState)(null);
11925
- const eventDimensions = (0, import_react54.useRef)({ height: 0 });
12020
+ const [currentTime, setCurrentTime] = (0, import_react55.useState)(null);
12021
+ const [eventHeight, setEventHeight] = (0, import_react55.useState)(null);
12022
+ const [isMultiDay, setIsMultiDay] = (0, import_react55.useState)(false);
12023
+ const [multiDayWidth, setMultiDayWidth] = (0, import_react55.useState)(null);
12024
+ const [dragHandlePosition, setDragHandlePosition] = (0, import_react55.useState)(null);
12025
+ const eventDimensions = (0, import_react55.useRef)({ height: 0 });
11926
12026
  const sensors = (0, import_core.useSensors)(
11927
12027
  (0, import_core.useSensor)(import_core.MouseSensor, {
11928
12028
  // Require the mouse to move by 5px before activating
@@ -11944,7 +12044,7 @@ function CalendarDndProvider({
11944
12044
  }
11945
12045
  })
11946
12046
  );
11947
- const dndContextId = (0, import_react54.useId)();
12047
+ const dndContextId = (0, import_react55.useId)();
11948
12048
  const handleDragStart = (event) => {
11949
12049
  const { active } = event;
11950
12050
  if (!active.data.current) {
@@ -12136,7 +12236,7 @@ var DefaultEndHour = 10;
12136
12236
 
12137
12237
  // src/components/event-calendar/DayView.tsx
12138
12238
  var import_date_fns5 = require("date-fns");
12139
- var import_react55 = require("react");
12239
+ var import_react56 = require("react");
12140
12240
  var import_jsx_runtime74 = require("react/jsx-runtime");
12141
12241
  function DayView({
12142
12242
  currentDate,
@@ -12144,14 +12244,14 @@ function DayView({
12144
12244
  onEventSelect,
12145
12245
  onEventCreate
12146
12246
  }) {
12147
- const hours = (0, import_react55.useMemo)(() => {
12247
+ const hours = (0, import_react56.useMemo)(() => {
12148
12248
  const dayStart = (0, import_date_fns5.startOfDay)(currentDate);
12149
12249
  return (0, import_date_fns5.eachHourOfInterval)({
12150
12250
  end: (0, import_date_fns5.addHours)(dayStart, EndHour - 1),
12151
12251
  start: (0, import_date_fns5.addHours)(dayStart, StartHour)
12152
12252
  });
12153
12253
  }, [currentDate]);
12154
- const dayEvents = (0, import_react55.useMemo)(() => {
12254
+ const dayEvents = (0, import_react56.useMemo)(() => {
12155
12255
  return events.filter((event) => {
12156
12256
  const eventStart = new Date(event.start);
12157
12257
  const eventEnd = new Date(event.end);
@@ -12160,17 +12260,17 @@ function DayView({
12160
12260
  (a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()
12161
12261
  );
12162
12262
  }, [currentDate, events]);
12163
- const allDayEvents = (0, import_react55.useMemo)(() => {
12263
+ const allDayEvents = (0, import_react56.useMemo)(() => {
12164
12264
  return dayEvents.filter((event) => {
12165
12265
  return event.allDay || isMultiDayEvent(event);
12166
12266
  });
12167
12267
  }, [dayEvents]);
12168
- const timeEvents = (0, import_react55.useMemo)(() => {
12268
+ const timeEvents = (0, import_react56.useMemo)(() => {
12169
12269
  return dayEvents.filter((event) => {
12170
12270
  return !event.allDay && !isMultiDayEvent(event);
12171
12271
  });
12172
12272
  }, [dayEvents]);
12173
- const positionedEvents = (0, import_react55.useMemo)(() => {
12273
+ const positionedEvents = (0, import_react56.useMemo)(() => {
12174
12274
  const result = [];
12175
12275
  const dayStart = (0, import_date_fns5.startOfDay)(currentDate);
12176
12276
  const sortedEvents = [...timeEvents].sort((a, b) => {
@@ -12267,7 +12367,7 @@ function DayView({
12267
12367
  "div",
12268
12368
  {
12269
12369
  className: "relative h-[var(--week-cells-height)] border-border/70 border-b last:border-b-0",
12270
- children: index > 0 && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "-top-3 absolute left-0 flex h-6 w-16 max-w-full items-center justify-end bg-background pe-2 text-[10px] text-muted-foreground/70 sm:pe-4 sm:text-xs", children: (0, import_date_fns5.format)(hour, "h a") })
12370
+ children: index > 0 && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "-top-3 absolute left-0 flex h-6 w-16 max-w-full items-center justify-end bg-background pe-2 text-[10px] text-muted-foreground/70 sm:pe-4 sm:text-xs", children: (0, import_date_fns5.format)(hour, "HH:mm") })
12271
12371
  },
12272
12372
  hour.toString()
12273
12373
  )) }),
@@ -12351,7 +12451,7 @@ function DayView({
12351
12451
  var import_core2 = require("@dnd-kit/core");
12352
12452
  var import_utilities = require("@dnd-kit/utilities");
12353
12453
  var import_date_fns6 = require("date-fns");
12354
- var import_react56 = require("react");
12454
+ var import_react57 = require("react");
12355
12455
  var import_jsx_runtime75 = require("react/jsx-runtime");
12356
12456
  function DraggableEvent({
12357
12457
  event,
@@ -12366,8 +12466,8 @@ function DraggableEvent({
12366
12466
  "aria-hidden": ariaHidden
12367
12467
  }) {
12368
12468
  const { activeId } = useCalendarDnd();
12369
- const elementRef = (0, import_react56.useRef)(null);
12370
- const [dragHandlePosition, setDragHandlePosition] = (0, import_react56.useState)(null);
12469
+ const elementRef = (0, import_react57.useRef)(null);
12470
+ const [dragHandlePosition, setDragHandlePosition] = (0, import_react57.useState)(null);
12371
12471
  const eventStart = new Date(event.start);
12372
12472
  const eventEnd = new Date(event.end);
12373
12473
  const isMultiDayEvent2 = isMultiDay || event.allDay || (0, import_date_fns6.differenceInDays)(eventEnd, eventStart) >= 1;
@@ -12492,9 +12592,9 @@ function DroppableCell({
12492
12592
  // src/components/event-calendar/EventCalendar.tsx
12493
12593
  var import_date_fns7 = require("date-fns");
12494
12594
  var import_locale3 = require("date-fns/locale");
12495
- var import_react57 = require("react");
12595
+ var import_react58 = require("react");
12496
12596
  var import_sonner3 = require("sonner");
12497
- var import_react58 = require("@phosphor-icons/react");
12597
+ var import_react59 = require("@phosphor-icons/react");
12498
12598
  var import_jsx_runtime77 = require("react/jsx-runtime");
12499
12599
  function EventCalendar({
12500
12600
  events = [],
@@ -12504,11 +12604,11 @@ function EventCalendar({
12504
12604
  className,
12505
12605
  initialView = "month"
12506
12606
  }) {
12507
- const [currentDate, setCurrentDate] = (0, import_react57.useState)(/* @__PURE__ */ new Date());
12508
- const [view, setView] = (0, import_react57.useState)(initialView);
12509
- const [isFading, setIsFading] = (0, import_react57.useState)(false);
12607
+ const [currentDate, setCurrentDate] = (0, import_react58.useState)(/* @__PURE__ */ new Date());
12608
+ const [view, setView] = (0, import_react58.useState)(initialView);
12609
+ const [isFading, setIsFading] = (0, import_react58.useState)(false);
12510
12610
  const FADE_DURATION = 220;
12511
- const changeView = (0, import_react57.useCallback)(
12611
+ const changeView = (0, import_react58.useCallback)(
12512
12612
  (next) => {
12513
12613
  if (next === view) return;
12514
12614
  setIsFading(true);
@@ -12519,12 +12619,12 @@ function EventCalendar({
12519
12619
  },
12520
12620
  [view]
12521
12621
  );
12522
- const [isPaging, setIsPaging] = (0, import_react57.useState)(false);
12523
- const [pageDirection, setPageDirection] = (0, import_react57.useState)(
12622
+ const [isPaging, setIsPaging] = (0, import_react58.useState)(false);
12623
+ const [pageDirection, setPageDirection] = (0, import_react58.useState)(
12524
12624
  null
12525
12625
  );
12526
12626
  const PAGE_DURATION = 200;
12527
- const pageTransition = (0, import_react57.useCallback)(
12627
+ const pageTransition = (0, import_react58.useCallback)(
12528
12628
  (applyDateChange, direction) => {
12529
12629
  setIsPaging(true);
12530
12630
  setPageDirection(direction);
@@ -12538,11 +12638,11 @@ function EventCalendar({
12538
12638
  },
12539
12639
  []
12540
12640
  );
12541
- const [isEventDialogOpen, setIsEventDialogOpen] = (0, import_react57.useState)(false);
12542
- const [selectedEvent, setSelectedEvent] = (0, import_react57.useState)(
12641
+ const [isEventDialogOpen, setIsEventDialogOpen] = (0, import_react58.useState)(false);
12642
+ const [selectedEvent, setSelectedEvent] = (0, import_react58.useState)(
12543
12643
  null
12544
12644
  );
12545
- (0, import_react57.useEffect)(() => {
12645
+ (0, import_react58.useEffect)(() => {
12546
12646
  const handleKeyDown = (e) => {
12547
12647
  if (isEventDialogOpen || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLElement && e.target.isContentEditable) {
12548
12648
  return;
@@ -12677,7 +12777,7 @@ function EventCalendar({
12677
12777
  position: "bottom-left"
12678
12778
  });
12679
12779
  };
12680
- const viewTitle = (0, import_react57.useMemo)(() => {
12780
+ const viewTitle = (0, import_react58.useMemo)(() => {
12681
12781
  const capitalize = (s) => s && s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
12682
12782
  if (view === "month") {
12683
12783
  return capitalize((0, import_date_fns7.format)(currentDate, "MMMM yyyy", { locale: import_locale3.ptBR }));
@@ -12743,7 +12843,7 @@ function EventCalendar({
12743
12843
  variant: "outline",
12744
12844
  children: [
12745
12845
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
12746
- import_react58.CalendarIcon,
12846
+ import_react59.CalendarIcon,
12747
12847
  {
12748
12848
  "aria-hidden": "true",
12749
12849
  className: "min-[480px]:hidden",
@@ -12762,7 +12862,7 @@ function EventCalendar({
12762
12862
  onClick: handlePrevious,
12763
12863
  size: "icon",
12764
12864
  variant: "ghost",
12765
- children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react58.CaretLeft, { "aria-hidden": "true", size: 16 })
12865
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react59.CaretLeft, { "aria-hidden": "true", size: 16 })
12766
12866
  }
12767
12867
  ),
12768
12868
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
@@ -12772,7 +12872,7 @@ function EventCalendar({
12772
12872
  onClick: handleNext,
12773
12873
  size: "icon",
12774
12874
  variant: "ghost",
12775
- children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react58.CaretRight, { "aria-hidden": "true", size: 16 })
12875
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react59.CaretRight, { "aria-hidden": "true", size: 16 })
12776
12876
  }
12777
12877
  )
12778
12878
  ] }),
@@ -12807,7 +12907,7 @@ function EventCalendar({
12807
12907
  })() })
12808
12908
  ] }),
12809
12909
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
12810
- import_react58.ArrowDownIcon,
12910
+ import_react59.ArrowDownIcon,
12811
12911
  {
12812
12912
  "aria-hidden": "true",
12813
12913
  className: "-me-1 opacity-60",
@@ -12847,7 +12947,7 @@ function EventCalendar({
12847
12947
  size: "sm",
12848
12948
  children: [
12849
12949
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
12850
- import_react58.PlusIcon,
12950
+ import_react59.PlusIcon,
12851
12951
  {
12852
12952
  "aria-hidden": "true",
12853
12953
  className: "sm:-ms-1 opacity-60",
@@ -12929,11 +13029,11 @@ function EventCalendar({
12929
13029
 
12930
13030
  // src/components/event-calendar/EventDialog.tsx
12931
13031
  var import_date_fns8 = require("date-fns");
12932
- var import_react59 = require("react");
13032
+ var import_react60 = require("react");
12933
13033
  var import_react_radio_group = require("@radix-ui/react-radio-group");
12934
13034
  var import_framer_motion17 = require("framer-motion");
12935
13035
  var import_locale4 = require("date-fns/locale");
12936
- var import_react60 = require("@phosphor-icons/react");
13036
+ var import_react61 = require("@phosphor-icons/react");
12937
13037
  var import_jsx_runtime78 = require("react/jsx-runtime");
12938
13038
  function EventDialog({
12939
13039
  event,
@@ -12942,21 +13042,21 @@ function EventDialog({
12942
13042
  onSave,
12943
13043
  onDelete
12944
13044
  }) {
12945
- const [title, setTitle] = (0, import_react59.useState)("");
12946
- const [description, setDescription] = (0, import_react59.useState)("");
12947
- const [startDate, setStartDate] = (0, import_react59.useState)(/* @__PURE__ */ new Date());
12948
- const [endDate, setEndDate] = (0, import_react59.useState)(/* @__PURE__ */ new Date());
12949
- const [startTime, setStartTime] = (0, import_react59.useState)(`${DefaultStartHour}:00`);
12950
- const [endTime, setEndTime] = (0, import_react59.useState)(`${DefaultEndHour}:00`);
12951
- const [allDay, setAllDay] = (0, import_react59.useState)(false);
12952
- const [location, setLocation] = (0, import_react59.useState)("");
12953
- const [color, setColor] = (0, import_react59.useState)("sky");
12954
- const [error, setError] = (0, import_react59.useState)(null);
12955
- const [startDateOpen, setStartDateOpen] = (0, import_react59.useState)(false);
12956
- const [endDateOpen, setEndDateOpen] = (0, import_react59.useState)(false);
12957
- (0, import_react59.useEffect)(() => {
13045
+ const [title, setTitle] = (0, import_react60.useState)("");
13046
+ const [description, setDescription] = (0, import_react60.useState)("");
13047
+ const [startDate, setStartDate] = (0, import_react60.useState)(/* @__PURE__ */ new Date());
13048
+ const [endDate, setEndDate] = (0, import_react60.useState)(/* @__PURE__ */ new Date());
13049
+ const [startTime, setStartTime] = (0, import_react60.useState)(`${DefaultStartHour}:00`);
13050
+ const [endTime, setEndTime] = (0, import_react60.useState)(`${DefaultEndHour}:00`);
13051
+ const [allDay, setAllDay] = (0, import_react60.useState)(false);
13052
+ const [location, setLocation] = (0, import_react60.useState)("");
13053
+ const [color, setColor] = (0, import_react60.useState)("sky");
13054
+ const [error, setError] = (0, import_react60.useState)(null);
13055
+ const [startDateOpen, setStartDateOpen] = (0, import_react60.useState)(false);
13056
+ const [endDateOpen, setEndDateOpen] = (0, import_react60.useState)(false);
13057
+ (0, import_react60.useEffect)(() => {
12958
13058
  }, [event]);
12959
- const resetForm = (0, import_react59.useCallback)(() => {
13059
+ const resetForm = (0, import_react60.useCallback)(() => {
12960
13060
  setTitle("");
12961
13061
  setDescription("");
12962
13062
  setStartDate(/* @__PURE__ */ new Date());
@@ -12968,12 +13068,12 @@ function EventDialog({
12968
13068
  setColor("sky");
12969
13069
  setError(null);
12970
13070
  }, []);
12971
- const formatTimeForInput = (0, import_react59.useCallback)((date) => {
13071
+ const formatTimeForInput = (0, import_react60.useCallback)((date) => {
12972
13072
  const hours = date.getHours().toString().padStart(2, "0");
12973
13073
  const minutes = Math.floor(date.getMinutes() / 15) * 15;
12974
13074
  return `${hours}:${minutes.toString().padStart(2, "0")}`;
12975
13075
  }, []);
12976
- (0, import_react59.useEffect)(() => {
13076
+ (0, import_react60.useEffect)(() => {
12977
13077
  if (event) {
12978
13078
  setTitle(event.title || "");
12979
13079
  setDescription(event.description || "");
@@ -12991,7 +13091,7 @@ function EventDialog({
12991
13091
  resetForm();
12992
13092
  }
12993
13093
  }, [event, formatTimeForInput, resetForm]);
12994
- const timeOptions = (0, import_react59.useMemo)(() => {
13094
+ const timeOptions = (0, import_react60.useMemo)(() => {
12995
13095
  const options = [];
12996
13096
  for (let hour = StartHour; hour <= EndHour; hour++) {
12997
13097
  for (let minute = 0; minute < 60; minute += 15) {
@@ -13180,7 +13280,7 @@ function EventDialog({
13180
13280
  }
13181
13281
  ),
13182
13282
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
13183
- import_react60.CalendarIcon,
13283
+ import_react61.CalendarIcon,
13184
13284
  {
13185
13285
  "aria-hidden": "true",
13186
13286
  className: "shrink-0 text-muted-foreground/80",
@@ -13259,7 +13359,7 @@ function EventDialog({
13259
13359
  }
13260
13360
  ),
13261
13361
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
13262
- import_react60.CalendarIcon,
13362
+ import_react61.CalendarIcon,
13263
13363
  {
13264
13364
  "aria-hidden": "true",
13265
13365
  className: "shrink-0 text-muted-foreground/80",
@@ -13317,7 +13417,7 @@ function EventDialog({
13317
13417
  allDay ? "bg-primary border-transparent text-white" : " border border-input"
13318
13418
  ),
13319
13419
  children: [
13320
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react60.CalendarIcon, { size: 14, "aria-hidden": "true" }),
13420
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react61.CalendarIcon, { size: 14, "aria-hidden": "true" }),
13321
13421
  "Dia inteiro"
13322
13422
  ]
13323
13423
  }
@@ -13376,7 +13476,7 @@ function EventDialog({
13376
13476
  onClick: handleDelete,
13377
13477
  size: "icon",
13378
13478
  variant: "outline",
13379
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react60.TrashIcon, { "aria-hidden": "true", size: 16 })
13479
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react61.TrashIcon, { "aria-hidden": "true", size: 16 })
13380
13480
  }
13381
13481
  ),
13382
13482
  /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-1 justify-end gap-2", children: [
@@ -13391,10 +13491,10 @@ function EventDialog({
13391
13491
 
13392
13492
  // src/components/event-calendar/EventItem.tsx
13393
13493
  var import_date_fns9 = require("date-fns");
13394
- var import_react61 = require("react");
13494
+ var import_react62 = require("react");
13395
13495
  var import_jsx_runtime79 = require("react/jsx-runtime");
13396
13496
  var formatTimeWithOptionalMinutes = (date) => {
13397
- return (0, import_date_fns9.format)(date, (0, import_date_fns9.getMinutes)(date) === 0 ? "ha" : "h:mma").toLowerCase();
13497
+ return (0, import_date_fns9.format)(date, "HH:mm");
13398
13498
  };
13399
13499
  function EventWrapper({
13400
13500
  event,
@@ -13454,15 +13554,15 @@ function EventItem({
13454
13554
  onTouchStart
13455
13555
  }) {
13456
13556
  const eventColor = event.color;
13457
- const displayStart = (0, import_react61.useMemo)(() => {
13557
+ const displayStart = (0, import_react62.useMemo)(() => {
13458
13558
  return currentTime || new Date(event.start);
13459
13559
  }, [currentTime, event.start]);
13460
- const displayEnd = (0, import_react61.useMemo)(() => {
13560
+ const displayEnd = (0, import_react62.useMemo)(() => {
13461
13561
  return currentTime ? new Date(
13462
13562
  new Date(currentTime).getTime() + (new Date(event.end).getTime() - new Date(event.start).getTime())
13463
13563
  ) : new Date(event.end);
13464
13564
  }, [currentTime, event.start, event.end]);
13465
- const durationMinutes = (0, import_react61.useMemo)(() => {
13565
+ const durationMinutes = (0, import_react62.useMemo)(() => {
13466
13566
  return (0, import_date_fns9.differenceInMinutes)(displayEnd, displayStart);
13467
13567
  }, [displayStart, displayEnd]);
13468
13568
  const getEventTime = () => {
@@ -13585,9 +13685,9 @@ function EventItem({
13585
13685
  // src/components/event-calendar/EventsPopUp.tsx
13586
13686
  var import_date_fns10 = require("date-fns");
13587
13687
  var import_locale5 = require("date-fns/locale");
13588
- var import_react62 = require("react");
13688
+ var import_react63 = require("react");
13589
13689
  var import_framer_motion18 = require("framer-motion");
13590
- var import_react63 = require("@phosphor-icons/react");
13690
+ var import_react64 = require("@phosphor-icons/react");
13591
13691
  var import_jsx_runtime80 = require("react/jsx-runtime");
13592
13692
  function EventsPopup({
13593
13693
  date,
@@ -13596,8 +13696,8 @@ function EventsPopup({
13596
13696
  onClose,
13597
13697
  onEventSelect
13598
13698
  }) {
13599
- const popupRef = (0, import_react62.useRef)(null);
13600
- (0, import_react62.useEffect)(() => {
13699
+ const popupRef = (0, import_react63.useRef)(null);
13700
+ (0, import_react63.useEffect)(() => {
13601
13701
  const handleClickOutside = (event) => {
13602
13702
  if (popupRef.current && !popupRef.current.contains(event.target)) {
13603
13703
  onClose();
@@ -13608,7 +13708,7 @@ function EventsPopup({
13608
13708
  document.removeEventListener("mousedown", handleClickOutside);
13609
13709
  };
13610
13710
  }, [onClose]);
13611
- (0, import_react62.useEffect)(() => {
13711
+ (0, import_react63.useEffect)(() => {
13612
13712
  const handleEscKey = (event) => {
13613
13713
  if (event.key === "Escape") {
13614
13714
  onClose();
@@ -13623,7 +13723,7 @@ function EventsPopup({
13623
13723
  onEventSelect(event);
13624
13724
  onClose();
13625
13725
  };
13626
- const adjustedPosition = (0, import_react62.useMemo)(() => {
13726
+ const adjustedPosition = (0, import_react63.useMemo)(() => {
13627
13727
  const positionCopy = { ...position };
13628
13728
  if (popupRef.current) {
13629
13729
  const rect = popupRef.current.getBoundingClientRect();
@@ -13663,15 +13763,15 @@ function EventsPopup({
13663
13763
  /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
13664
13764
  "button",
13665
13765
  {
13666
- "aria-label": "Close",
13766
+ "aria-label": "Fechar",
13667
13767
  className: "rounded-full p-1 hover:bg-muted",
13668
13768
  onClick: onClose,
13669
13769
  type: "button",
13670
- children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_react63.XIcon, { className: "h-4 w-4" })
13770
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_react64.XIcon, { className: "h-4 w-4" })
13671
13771
  }
13672
13772
  )
13673
13773
  ] }),
13674
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-2 p-3", children: events.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "py-2 text-muted-foreground text-sm", children: "No events" }) : events.map((event) => {
13774
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "space-y-2 p-3", children: events.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "py-2 text-muted-foreground text-sm", children: "Nenhum evento" }) : events.map((event) => {
13675
13775
  const eventStart = new Date(event.start);
13676
13776
  const eventEnd = new Date(event.end);
13677
13777
  const isFirstDay = (0, import_date_fns10.isSameDay)(date, eventStart);
@@ -13701,11 +13801,12 @@ function EventsPopup({
13701
13801
 
13702
13802
  // src/components/event-calendar/hooks/use-current-time-indicator.ts
13703
13803
  var import_date_fns11 = require("date-fns");
13704
- var import_react64 = require("react");
13804
+ var import_locale6 = require("date-fns/locale");
13805
+ var import_react65 = require("react");
13705
13806
  function useCurrentTimeIndicator(currentDate, view) {
13706
- const [currentTimePosition, setCurrentTimePosition] = (0, import_react64.useState)(0);
13707
- const [currentTimeVisible, setCurrentTimeVisible] = (0, import_react64.useState)(false);
13708
- (0, import_react64.useEffect)(() => {
13807
+ const [currentTimePosition, setCurrentTimePosition] = (0, import_react65.useState)(0);
13808
+ const [currentTimeVisible, setCurrentTimeVisible] = (0, import_react65.useState)(false);
13809
+ (0, import_react65.useEffect)(() => {
13709
13810
  const calculateTimePosition = () => {
13710
13811
  const now = /* @__PURE__ */ new Date();
13711
13812
  const hours = now.getHours();
@@ -13718,8 +13819,8 @@ function useCurrentTimeIndicator(currentDate, view) {
13718
13819
  if (view === "day") {
13719
13820
  isCurrentTimeVisible = (0, import_date_fns11.isSameDay)(now, currentDate);
13720
13821
  } else if (view === "week") {
13721
- const startOfWeekDate = (0, import_date_fns11.startOfWeek)(currentDate, { weekStartsOn: 0 });
13722
- const endOfWeekDate = (0, import_date_fns11.endOfWeek)(currentDate, { weekStartsOn: 0 });
13822
+ const startOfWeekDate = (0, import_date_fns11.startOfWeek)(currentDate, { locale: import_locale6.ptBR });
13823
+ const endOfWeekDate = (0, import_date_fns11.endOfWeek)(currentDate, { locale: import_locale6.ptBR });
13723
13824
  isCurrentTimeVisible = (0, import_date_fns11.isWithinInterval)(now, {
13724
13825
  end: endOfWeekDate,
13725
13826
  start: startOfWeekDate
@@ -13736,15 +13837,15 @@ function useCurrentTimeIndicator(currentDate, view) {
13736
13837
  }
13737
13838
 
13738
13839
  // src/components/event-calendar/hooks/use-event-visibility.ts
13739
- var import_react65 = require("react");
13840
+ var import_react66 = require("react");
13740
13841
  function useEventVisibility({
13741
13842
  eventHeight,
13742
13843
  eventGap
13743
13844
  }) {
13744
- const contentRef = (0, import_react65.useRef)(null);
13745
- const observerRef = (0, import_react65.useRef)(null);
13746
- const [contentHeight, setContentHeight] = (0, import_react65.useState)(null);
13747
- (0, import_react65.useLayoutEffect)(() => {
13845
+ const contentRef = (0, import_react66.useRef)(null);
13846
+ const observerRef = (0, import_react66.useRef)(null);
13847
+ const [contentHeight, setContentHeight] = (0, import_react66.useState)(null);
13848
+ (0, import_react66.useLayoutEffect)(() => {
13748
13849
  if (!contentRef.current) return;
13749
13850
  const updateHeight = () => {
13750
13851
  if (contentRef.current) {
@@ -13764,7 +13865,7 @@ function useEventVisibility({
13764
13865
  }
13765
13866
  };
13766
13867
  }, []);
13767
- const getVisibleEventCount = (0, import_react65.useMemo)(() => {
13868
+ const getVisibleEventCount = (0, import_react66.useMemo)(() => {
13768
13869
  return (totalEvents) => {
13769
13870
  if (!contentHeight) return totalEvents;
13770
13871
  const maxEvents = Math.floor(contentHeight / (eventHeight + eventGap));
@@ -13783,8 +13884,8 @@ function useEventVisibility({
13783
13884
 
13784
13885
  // src/components/event-calendar/MonthView.tsx
13785
13886
  var import_date_fns12 = require("date-fns");
13786
- var import_locale6 = require("date-fns/locale");
13787
- var import_react66 = require("react");
13887
+ var import_locale7 = require("date-fns/locale");
13888
+ var import_react67 = require("react");
13788
13889
  var import_jsx_runtime81 = require("react/jsx-runtime");
13789
13890
  function MonthView({
13790
13891
  currentDate,
@@ -13792,21 +13893,21 @@ function MonthView({
13792
13893
  onEventSelect,
13793
13894
  onEventCreate
13794
13895
  }) {
13795
- const days = (0, import_react66.useMemo)(() => {
13896
+ const days = (0, import_react67.useMemo)(() => {
13796
13897
  const monthStart = (0, import_date_fns12.startOfMonth)(currentDate);
13797
13898
  const monthEnd = (0, import_date_fns12.endOfMonth)(monthStart);
13798
13899
  const calendarStart = (0, import_date_fns12.startOfWeek)(monthStart, { weekStartsOn: 0 });
13799
13900
  const calendarEnd = (0, import_date_fns12.endOfWeek)(monthEnd, { weekStartsOn: 0 });
13800
13901
  return (0, import_date_fns12.eachDayOfInterval)({ end: calendarEnd, start: calendarStart });
13801
13902
  }, [currentDate]);
13802
- const weekdays = (0, import_react66.useMemo)(() => {
13903
+ const weekdays = (0, import_react67.useMemo)(() => {
13803
13904
  return Array.from({ length: 7 }).map((_, i) => {
13804
13905
  const date = (0, import_date_fns12.addDays)((0, import_date_fns12.startOfWeek)(/* @__PURE__ */ new Date(), { weekStartsOn: 0 }), i);
13805
- const short = (0, import_date_fns12.format)(date, "EEE", { locale: import_locale6.ptBR });
13906
+ const short = (0, import_date_fns12.format)(date, "EEE", { locale: import_locale7.ptBR });
13806
13907
  return short.charAt(0).toUpperCase() + short.slice(1);
13807
13908
  });
13808
13909
  }, []);
13809
- const weeks = (0, import_react66.useMemo)(() => {
13910
+ const weeks = (0, import_react67.useMemo)(() => {
13810
13911
  const result = [];
13811
13912
  let week = [];
13812
13913
  for (let i = 0; i < days.length; i++) {
@@ -13822,12 +13923,12 @@ function MonthView({
13822
13923
  e.stopPropagation();
13823
13924
  onEventSelect(event);
13824
13925
  };
13825
- const [isMounted, setIsMounted] = (0, import_react66.useState)(false);
13926
+ const [isMounted, setIsMounted] = (0, import_react67.useState)(false);
13826
13927
  const { contentRef, getVisibleEventCount } = useEventVisibility({
13827
13928
  eventGap: EventGap,
13828
13929
  eventHeight: EventHeight
13829
13930
  });
13830
- (0, import_react66.useEffect)(() => {
13931
+ (0, import_react67.useEffect)(() => {
13831
13932
  setIsMounted(true);
13832
13933
  }, []);
13833
13934
  return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "contents", "data-slot": "month-view", children: [
@@ -13902,7 +14003,7 @@ function MonthView({
13902
14003
  view: "month",
13903
14004
  children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { "aria-hidden": true, className: "invisible", children: [
13904
14005
  !event.allDay && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { children: [
13905
- (0, import_date_fns12.format)(new Date(event.start), "h:mm"),
14006
+ (0, import_date_fns12.format)(new Date(event.start), "HH:mm"),
13906
14007
  " "
13907
14008
  ] }),
13908
14009
  event.title
@@ -13942,7 +14043,7 @@ function MonthView({
13942
14043
  "aria-label": `Show ${remainingCount} more events on ${(0, import_date_fns12.format)(
13943
14044
  day,
13944
14045
  "PPP",
13945
- { locale: import_locale6.ptBR }
14046
+ { locale: import_locale7.ptBR }
13946
14047
  )}`,
13947
14048
  children: [
13948
14049
  /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { className: "font-medium", children: [
@@ -13962,7 +14063,7 @@ function MonthView({
13962
14063
  "--event-height": `${EventHeight}px`
13963
14064
  },
13964
14065
  children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "space-y-2", children: [
13965
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "font-medium text-sm", children: (0, import_date_fns12.format)(day, "EEE d", { locale: import_locale6.ptBR }) }),
14066
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "font-medium text-sm", children: (0, import_date_fns12.format)(day, "EEE d", { locale: import_locale7.ptBR }) }),
13966
14067
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "space-y-1", children: sortEvents(allEvents).map((event) => {
13967
14068
  const eventStart = new Date(event.start);
13968
14069
  const eventEnd = new Date(event.end);
@@ -14083,8 +14184,8 @@ function addHoursToDate(date, hours) {
14083
14184
 
14084
14185
  // src/components/event-calendar/WeekView.tsx
14085
14186
  var import_date_fns14 = require("date-fns");
14086
- var import_locale7 = require("date-fns/locale");
14087
- var import_react67 = require("react");
14187
+ var import_locale8 = require("date-fns/locale");
14188
+ var import_react68 = require("react");
14088
14189
  var import_jsx_runtime82 = require("react/jsx-runtime");
14089
14190
  function WeekView({
14090
14191
  currentDate,
@@ -14092,23 +14193,23 @@ function WeekView({
14092
14193
  onEventSelect,
14093
14194
  onEventCreate
14094
14195
  }) {
14095
- const days = (0, import_react67.useMemo)(() => {
14196
+ const days = (0, import_react68.useMemo)(() => {
14096
14197
  const weekStart2 = (0, import_date_fns14.startOfWeek)(currentDate, { weekStartsOn: 0 });
14097
14198
  const weekEnd = (0, import_date_fns14.endOfWeek)(currentDate, { weekStartsOn: 0 });
14098
14199
  return (0, import_date_fns14.eachDayOfInterval)({ end: weekEnd, start: weekStart2 });
14099
14200
  }, [currentDate]);
14100
- const weekStart = (0, import_react67.useMemo)(
14201
+ const weekStart = (0, import_react68.useMemo)(
14101
14202
  () => (0, import_date_fns14.startOfWeek)(currentDate, { weekStartsOn: 0 }),
14102
14203
  [currentDate]
14103
14204
  );
14104
- const hours = (0, import_react67.useMemo)(() => {
14205
+ const hours = (0, import_react68.useMemo)(() => {
14105
14206
  const dayStart = (0, import_date_fns14.startOfDay)(currentDate);
14106
14207
  return (0, import_date_fns14.eachHourOfInterval)({
14107
14208
  end: (0, import_date_fns14.addHours)(dayStart, EndHour - 1),
14108
14209
  start: (0, import_date_fns14.addHours)(dayStart, StartHour)
14109
14210
  });
14110
14211
  }, [currentDate]);
14111
- const allDayEvents = (0, import_react67.useMemo)(() => {
14212
+ const allDayEvents = (0, import_react68.useMemo)(() => {
14112
14213
  return events.filter((event) => {
14113
14214
  return event.allDay || isMultiDayEvent(event);
14114
14215
  }).filter((event) => {
@@ -14119,7 +14220,7 @@ function WeekView({
14119
14220
  );
14120
14221
  });
14121
14222
  }, [events, days]);
14122
- const processedDayEvents = (0, import_react67.useMemo)(() => {
14223
+ const processedDayEvents = (0, import_react68.useMemo)(() => {
14123
14224
  const result = days.map((day) => {
14124
14225
  const dayEvents = events.filter((event) => {
14125
14226
  if (event.allDay || isMultiDayEvent(event)) return false;
@@ -14212,11 +14313,11 @@ function WeekView({
14212
14313
  "data-today": (0, import_date_fns14.isToday)(day) || void 0,
14213
14314
  children: [
14214
14315
  /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { "aria-hidden": "true", className: "sm:hidden", children: [
14215
- (0, import_date_fns14.format)(day, "EEE", { locale: import_locale7.ptBR })[0],
14316
+ (0, import_date_fns14.format)(day, "EEE", { locale: import_locale8.ptBR })[0],
14216
14317
  " ",
14217
- (0, import_date_fns14.format)(day, "d", { locale: import_locale7.ptBR })
14318
+ (0, import_date_fns14.format)(day, "d", { locale: import_locale8.ptBR })
14218
14319
  ] }),
14219
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "max-sm:hidden", children: (0, import_date_fns14.format)(day, "EEE dd", { locale: import_locale7.ptBR }) })
14320
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "max-sm:hidden", children: (0, import_date_fns14.format)(day, "EEE dd", { locale: import_locale8.ptBR }) })
14220
14321
  ]
14221
14322
  },
14222
14323
  day.toString()
@@ -14275,7 +14376,7 @@ function WeekView({
14275
14376
  "div",
14276
14377
  {
14277
14378
  className: "relative min-h-[var(--week-cells-height)] border-border/70 border-b last:border-b-0",
14278
- children: index > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "-top-3 absolute left-0 flex h-6 w-16 max-w-full items-center justify-end bg-background pe-2 text-[10px] text-muted-foreground/70 sm:pe-4 sm:text-xs", children: (0, import_date_fns14.format)(hour, "h a") })
14379
+ children: index > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "-top-3 absolute left-0 flex h-6 w-16 max-w-full items-center justify-end bg-background pe-2 text-[10px] text-muted-foreground/70 sm:pe-4 sm:text-xs", children: (0, import_date_fns14.format)(hour, "HH:mm") })
14279
14380
  },
14280
14381
  hour.toString()
14281
14382
  )) }),
@@ -14365,13 +14466,13 @@ function WeekView({
14365
14466
  }
14366
14467
 
14367
14468
  // src/hooks/use-drag.tsx
14368
- var import_react68 = require("react");
14469
+ var import_react69 = require("react");
14369
14470
  var useDrag = (options = {}) => {
14370
- const [isDragging, setIsDragging] = (0, import_react68.useState)(null);
14371
- const [positions, setPositions] = (0, import_react68.useState)({});
14372
- const dragStartPos = (0, import_react68.useRef)(null);
14373
- const dragId = (0, import_react68.useRef)(null);
14374
- const handleMouseDown = (0, import_react68.useCallback)((id, e) => {
14471
+ const [isDragging, setIsDragging] = (0, import_react69.useState)(null);
14472
+ const [positions, setPositions] = (0, import_react69.useState)({});
14473
+ const dragStartPos = (0, import_react69.useRef)(null);
14474
+ const dragId = (0, import_react69.useRef)(null);
14475
+ const handleMouseDown = (0, import_react69.useCallback)((id, e) => {
14375
14476
  e.preventDefault();
14376
14477
  const currentPosition = positions[id] || { top: 0, left: 0 };
14377
14478
  dragStartPos.current = {
@@ -14384,7 +14485,7 @@ var useDrag = (options = {}) => {
14384
14485
  setIsDragging(id);
14385
14486
  options.onDragStart?.(id);
14386
14487
  }, [positions, options]);
14387
- const handleMouseMove = (0, import_react68.useCallback)((e) => {
14488
+ const handleMouseMove = (0, import_react69.useCallback)((e) => {
14388
14489
  if (!isDragging || !dragStartPos.current || !dragId.current) return;
14389
14490
  const deltaX = e.clientX - dragStartPos.current.x;
14390
14491
  const deltaY = e.clientY - dragStartPos.current.y;
@@ -14400,7 +14501,7 @@ var useDrag = (options = {}) => {
14400
14501
  }));
14401
14502
  options.onDrag?.(dragId.current, newPosition);
14402
14503
  }, [isDragging, options]);
14403
- const handleMouseUp = (0, import_react68.useCallback)(() => {
14504
+ const handleMouseUp = (0, import_react69.useCallback)(() => {
14404
14505
  if (dragId.current) {
14405
14506
  options.onDragEnd?.(dragId.current);
14406
14507
  }
@@ -14408,7 +14509,7 @@ var useDrag = (options = {}) => {
14408
14509
  dragStartPos.current = null;
14409
14510
  dragId.current = null;
14410
14511
  }, [options]);
14411
- (0, import_react68.useEffect)(() => {
14512
+ (0, import_react69.useEffect)(() => {
14412
14513
  if (isDragging) {
14413
14514
  document.addEventListener("mousemove", handleMouseMove);
14414
14515
  document.addEventListener("mouseup", handleMouseUp);
@@ -14420,16 +14521,16 @@ var useDrag = (options = {}) => {
14420
14521
  };
14421
14522
  }
14422
14523
  }, [isDragging, handleMouseMove, handleMouseUp]);
14423
- const setPosition = (0, import_react68.useCallback)((id, position) => {
14524
+ const setPosition = (0, import_react69.useCallback)((id, position) => {
14424
14525
  setPositions((prev) => ({
14425
14526
  ...prev,
14426
14527
  [id]: position
14427
14528
  }));
14428
14529
  }, []);
14429
- const getPosition = (0, import_react68.useCallback)((id) => {
14530
+ const getPosition = (0, import_react69.useCallback)((id) => {
14430
14531
  return positions[id] || { top: 0, left: 0 };
14431
14532
  }, [positions]);
14432
- const isElementDragging = (0, import_react68.useCallback)((id) => {
14533
+ const isElementDragging = (0, import_react69.useCallback)((id) => {
14433
14534
  return isDragging === id;
14434
14535
  }, [isDragging]);
14435
14536
  return {