@mlw-packages/react-components 1.9.6 → 1.9.7

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.mjs CHANGED
@@ -42,7 +42,7 @@ import ptBR3 from 'date-fns/locale/pt-BR';
42
42
  import { useSensors, useSensor, MouseSensor, TouchSensor, PointerSensor, DndContext, DragOverlay, useDroppable, useDraggable } from '@dnd-kit/core';
43
43
  import { CSS } from '@dnd-kit/utilities';
44
44
  import { RadioGroup, RadioGroupItem } from '@radix-ui/react-radio-group';
45
- import { ResponsiveContainer, ComposedChart, XAxis, YAxis, Bar, Line, Area, CartesianGrid, Tooltip, Legend, LabelList, Rectangle, PieChart, Pie, Cell } from 'recharts';
45
+ import { ResponsiveContainer, ComposedChart, XAxis, YAxis, Bar, Line, Area, CartesianGrid, Tooltip, Legend, LabelList, Rectangle } from 'recharts';
46
46
 
47
47
  var __create = Object.create;
48
48
  var __defProp = Object.defineProperty;
@@ -2515,8 +2515,8 @@ function MultiSelectTriggerBase({
2515
2515
  "aria-disabled": disabled || void 0,
2516
2516
  disabled,
2517
2517
  className: cn(
2518
- "flex h-auto max-h-9 min-h-9 w-full items-center justify-between gap-2 overflow-hidden rounded-md border border-input bg-background px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
2519
- error ? "border-destructive focus:ring-1 focus:ring-destructive" : "border-input focus:ring-1 focus:ring-ring",
2518
+ "flex h-auto max-h-9 min-h-9 w-full items-center justify-between gap-2 overflow-hidden rounded-md border border-input bg-background px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground hover:text-primary",
2519
+ error ? "border-destructive focus:ring-1 focus:ring-destructive dark:border-red-500" : "border-border focus:ring-1 focus:ring-ring",
2520
2520
  className
2521
2521
  ),
2522
2522
  children: [
@@ -7843,7 +7843,7 @@ function ScrollColumn({
7843
7843
  {
7844
7844
  className: cn(
7845
7845
  "snap-center flex items-center justify-center select-none font-bold tabular-nums transition-all duration-200",
7846
- isCentered ? "text-2xl sm:text-xl text-foreground scale-110" : "text-base sm:text-sm text-muted-foreground/60"
7846
+ isCentered ? "text-foreground scale-110" : "text-base sm:text-sm text-muted-foreground/60"
7847
7847
  ),
7848
7848
  style: { height: `${itemHeight}px` },
7849
7849
  children: item.toString().padStart(2, "0")
@@ -13974,8 +13974,7 @@ function MultiSelect({
13974
13974
  )
13975
13975
  ]
13976
13976
  }
13977
- ),
13978
- /* @__PURE__ */ jsx(ErrorMessage_default, { error })
13977
+ )
13979
13978
  ] });
13980
13979
  }
13981
13980
 
@@ -15375,7 +15374,7 @@ var RechartTooltipWithTotal = ({
15375
15374
  {
15376
15375
  role: "dialog",
15377
15376
  "aria-label": `Tooltip ${label ?? ""}`,
15378
- className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-xs",
15377
+ className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-xs z-9999",
15379
15378
  style: { minWidth: 220 },
15380
15379
  children: [
15381
15380
  /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between mb-2", children: [
@@ -15488,7 +15487,7 @@ var TooltipSimple = ({
15488
15487
  {
15489
15488
  role: "dialog",
15490
15489
  "aria-label": `Tooltip ${label ?? ""}`,
15491
- className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-[280px]",
15490
+ className: "bg-card border border-border rounded-lg p-3 shadow-2xl max-w-[280px] z-9999",
15492
15491
  style: { minWidth: 220 },
15493
15492
  children: [
15494
15493
  /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
@@ -16166,6 +16165,119 @@ var HorizontalLegend = ({
16166
16165
  ] }) });
16167
16166
  };
16168
16167
  var HorizontalLegend_default = HorizontalLegend;
16168
+ function ChartControls({
16169
+ allKeys,
16170
+ mapperConfig,
16171
+ finalColors,
16172
+ highlightedSeries,
16173
+ toggleHighlight,
16174
+ showOnlyHighlighted,
16175
+ setShowOnlyHighlighted,
16176
+ highlightedSeriesSize,
16177
+ clearHighlights,
16178
+ enableHighlights,
16179
+ enableShowOnly,
16180
+ enablePeriodsDropdown,
16181
+ enableDraggableTooltips,
16182
+ processedData,
16183
+ onOpenPeriod,
16184
+ rightOffset,
16185
+ activePeriods,
16186
+ containerClass,
16187
+ containerWidth
16188
+ }) {
16189
+ return /* @__PURE__ */ jsxs("div", { className: containerClass, children: [
16190
+ enableHighlights && /* @__PURE__ */ jsx(
16191
+ Highlights_default,
16192
+ {
16193
+ allKeys,
16194
+ mapperConfig,
16195
+ finalColors,
16196
+ highlightedSeries,
16197
+ toggleHighlight,
16198
+ containerWidth
16199
+ }
16200
+ ),
16201
+ enableShowOnly && /* @__PURE__ */ jsx(
16202
+ ShowOnly_default,
16203
+ {
16204
+ showOnlyHighlighted,
16205
+ setShowOnlyHighlighted,
16206
+ highlightedSeriesSize,
16207
+ clearHighlights
16208
+ }
16209
+ ),
16210
+ enablePeriodsDropdown && enableDraggableTooltips && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx(
16211
+ PeriodsDropdown_default,
16212
+ {
16213
+ processedData: processedData ?? [],
16214
+ onOpenPeriod: onOpenPeriod ?? (() => {
16215
+ }),
16216
+ rightOffset,
16217
+ activePeriods
16218
+ }
16219
+ ) })
16220
+ ] });
16221
+ }
16222
+ function ChartHeader({
16223
+ title,
16224
+ titlePosition = "left",
16225
+ HORIZONTAL_PADDING_CLASS = "px-24",
16226
+ customLegend,
16227
+ data,
16228
+ allKeys,
16229
+ processedData,
16230
+ finalColors,
16231
+ mapperConfig,
16232
+ finalValueFormatter,
16233
+ formatBR
16234
+ }) {
16235
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16236
+ title && /* @__PURE__ */ jsx(
16237
+ "div",
16238
+ {
16239
+ className: cn(
16240
+ "w-full flex items-center mt-3 mb-2",
16241
+ HORIZONTAL_PADDING_CLASS,
16242
+ titlePosition === "center" && "justify-center",
16243
+ titlePosition === "right" && "justify-end",
16244
+ titlePosition === "left" && "justify-start"
16245
+ ),
16246
+ children: /* @__PURE__ */ jsx("div", { className: "text-[1.4rem] font-semibold text-foreground", children: title })
16247
+ }
16248
+ ),
16249
+ customLegend && !!data.length && /* @__PURE__ */ jsx("div", { className: cn("px-6 mb-2", HORIZONTAL_PADDING_CLASS), children: /* @__PURE__ */ jsx(
16250
+ ChartTotalLegend_default,
16251
+ {
16252
+ items: allKeys.map((key) => {
16253
+ const values = processedData.map(
16254
+ (d) => Number(d[key] || 0)
16255
+ );
16256
+ const total = values.reduce((a, b) => a + b, 0);
16257
+ const first = values[0] || 0;
16258
+ const last = values[values.length - 1] || 0;
16259
+ const trendValue = first !== 0 ? Math.round((last - first) / first * 100) : 0;
16260
+ const formattedTotal = finalValueFormatter ? finalValueFormatter({
16261
+ value: total,
16262
+ formattedValue: String(total)
16263
+ }) : new Intl.NumberFormat(formatBR ? "pt-BR" : "en-US").format(
16264
+ total
16265
+ );
16266
+ return {
16267
+ label: mapperConfig[key]?.label || key,
16268
+ value: formattedTotal,
16269
+ color: finalColors[key],
16270
+ trend: {
16271
+ value: Math.abs(trendValue),
16272
+ positive: trendValue >= 0,
16273
+ neutral: trendValue === 0
16274
+ }
16275
+ };
16276
+ })
16277
+ }
16278
+ ) })
16279
+ ] });
16280
+ }
16169
16281
  var formatCompactNumber = (value) => {
16170
16282
  const isNegative = value < 0;
16171
16283
  const absValue = Math.abs(value);
@@ -16360,6 +16472,19 @@ var renderInsideBarLabel = (color, valueFormatter) => {
16360
16472
  );
16361
16473
  };
16362
16474
  };
16475
+
16476
+ // src/utils/calcDivision.ts
16477
+ var calcDivision = (dividend, divisor) => {
16478
+ return dividend / divisor;
16479
+ };
16480
+
16481
+ // src/components/ui/charts/utils/formatters.ts
16482
+ function formatLinePercentage(value) {
16483
+ const numValue = typeof value === "number" ? value : typeof value === "string" ? parseFloat(value) : 0;
16484
+ const percentage = calcDivision(numValue, 100);
16485
+ const formattedPercentage = typeof percentage === "number" ? percentage.toFixed(1).replace(".", ",") : String(percentage).replace(".", ",");
16486
+ return `${formattedPercentage}%`;
16487
+ }
16363
16488
  var ChartBar = ({ x, y, w, h, i, loading }) => {
16364
16489
  const baseY = y - h;
16365
16490
  const d = i * 0.08;
@@ -16941,6 +17066,94 @@ var useChartMinMax = ({
16941
17066
  };
16942
17067
  }, [processedData, orderBy, xAxisDataKey, categoryFormatter]);
16943
17068
  };
17069
+ function useProcessedData({
17070
+ data,
17071
+ xAxisKey,
17072
+ timeSeriesConfig,
17073
+ startIndex,
17074
+ endIndex
17075
+ }) {
17076
+ return useMemo(() => {
17077
+ const mapped = data.map((item) => ({
17078
+ ...item,
17079
+ name: String(item[xAxisKey] || "N/A")
17080
+ }));
17081
+ if (timeSeriesConfig) {
17082
+ return mapped.slice(startIndex, endIndex + 1);
17083
+ }
17084
+ return mapped;
17085
+ }, [data, xAxisKey, timeSeriesConfig, startIndex, endIndex]);
17086
+ }
17087
+ function useBiaxial(biaxial, yAxisLabel) {
17088
+ return useMemo(() => {
17089
+ if (!biaxial) return null;
17090
+ if (typeof biaxial === "string") return { key: [biaxial] };
17091
+ if (Array.isArray(biaxial)) return { key: biaxial };
17092
+ const normalized = biaxial;
17093
+ const leftLabelMissing = !yAxisLabel || String(yAxisLabel).trim() === "";
17094
+ const rightLabelMissing = !normalized.label || String(normalized.label).trim() === "";
17095
+ if (leftLabelMissing || rightLabelMissing) {
17096
+ throw new Error(
17097
+ "When using `biaxial`, you must provide both `yAxisLabel` (left axis) and `biaxial.label` (right axis)."
17098
+ );
17099
+ }
17100
+ return normalized;
17101
+ }, [biaxial, yAxisLabel]);
17102
+ }
17103
+ function useChartLayout({
17104
+ chartMargin,
17105
+ yAxisLabel,
17106
+ AXIS_LABEL_MARGIN,
17107
+ yTickFormatter,
17108
+ minLeftDataValue,
17109
+ niceMaxLeft,
17110
+ rightKeysLength,
17111
+ measuredWidth,
17112
+ width,
17113
+ computedWidth
17114
+ }) {
17115
+ const finalChartRightMargin = chartMargin?.right ?? (rightKeysLength > 0 ? AXIS_LABEL_MARGIN : 30);
17116
+ const finalChartLeftMargin = chartMargin?.left ?? (yAxisLabel ? AXIS_LABEL_MARGIN : 0);
17117
+ const yAxisTickWidth = useMemo(() => {
17118
+ const yAxisLabelStr = yAxisLabel === null || yAxisLabel === void 0 ? void 0 : String(yAxisLabel);
17119
+ return computeYAxisTickWidth(
17120
+ chartMargin?.left,
17121
+ yAxisLabelStr,
17122
+ AXIS_LABEL_MARGIN,
17123
+ yTickFormatter,
17124
+ minLeftDataValue,
17125
+ niceMaxLeft
17126
+ );
17127
+ }, [
17128
+ chartMargin?.left,
17129
+ yAxisLabel,
17130
+ AXIS_LABEL_MARGIN,
17131
+ yTickFormatter,
17132
+ minLeftDataValue,
17133
+ niceMaxLeft
17134
+ ]);
17135
+ const effectiveChartWidth = typeof width === "number" ? width : measuredWidth ? Math.max(0, measuredWidth - 32) : computedWidth;
17136
+ const chartInnerWidth = effectiveChartWidth - finalChartLeftMargin - finalChartRightMargin;
17137
+ const leftYAxisLabelDx = -Math.max(12, Math.round(yAxisTickWidth / 2));
17138
+ const rightYAxisLabelDx = Math.max(12, Math.round(finalChartRightMargin / 2));
17139
+ return {
17140
+ finalChartRightMargin,
17141
+ finalChartLeftMargin,
17142
+ yAxisTickWidth,
17143
+ effectiveChartWidth,
17144
+ chartInnerWidth,
17145
+ leftYAxisLabelDx,
17146
+ rightYAxisLabelDx
17147
+ };
17148
+ }
17149
+ function useSeriesOpacity(highlightedSeries) {
17150
+ return useCallback(
17151
+ (key) => {
17152
+ return highlightedSeries.size > 0 ? highlightedSeries.has(key) ? 1 : 0.25 : 1;
17153
+ },
17154
+ [highlightedSeries]
17155
+ );
17156
+ }
16944
17157
  var filtersOrder = (mapperConfig, series) => {
16945
17158
  const seriesOrder = [];
16946
17159
  if (series) {
@@ -17064,10 +17277,37 @@ var fnContentLabelList = (p) => {
17064
17277
  return needsOutside ? null : true;
17065
17278
  };
17066
17279
 
17067
- // src/utils/calcDivision.ts
17068
- var calcDivision = (dividend, divisor) => {
17069
- return dividend / divisor;
17070
- };
17280
+ // src/components/ui/charts/hooks/useOpenTooltipForPeriod.ts
17281
+ function useOpenTooltipForPeriod({
17282
+ enableDraggableTooltips,
17283
+ processedData,
17284
+ activeTooltips,
17285
+ setActiveTooltips,
17286
+ maxTooltips,
17287
+ effectiveChartWidth
17288
+ }) {
17289
+ return useCallback(
17290
+ (periodName) => {
17291
+ fnOpenTooltipForPeriod(
17292
+ enableDraggableTooltips,
17293
+ processedData,
17294
+ periodName,
17295
+ activeTooltips,
17296
+ setActiveTooltips,
17297
+ maxTooltips,
17298
+ effectiveChartWidth
17299
+ );
17300
+ },
17301
+ [
17302
+ enableDraggableTooltips,
17303
+ processedData,
17304
+ activeTooltips,
17305
+ effectiveChartWidth,
17306
+ maxTooltips,
17307
+ setActiveTooltips
17308
+ ]
17309
+ );
17310
+ }
17071
17311
  var DEFAULT_COLORS2 = ["#55af7d", "#8e68ff", "#2273e1"];
17072
17312
  var Chart = ({
17073
17313
  data,
@@ -17142,39 +17382,20 @@ var Chart = ({
17142
17382
  defaultEndIndex: timeSeriesConfig?.end,
17143
17383
  onRangeChange: timeSeriesConfig?.onRangeChange
17144
17384
  });
17145
- const processedData = useMemo(() => {
17146
- const mapped = data.map((item) => ({
17147
- ...item,
17148
- name: String(item[xAxisConfig.dataKey] || "N/A")
17149
- }));
17150
- let result = mapped;
17151
- if (timeSeriesConfig) {
17152
- result = mapped.slice(startIndex, endIndex + 1);
17153
- }
17154
- return result;
17155
- }, [data, xAxisConfig.dataKey, timeSeriesConfig, startIndex, endIndex]);
17385
+ const processedData = useProcessedData({
17386
+ data,
17387
+ xAxisKey: xAxisConfig.dataKey,
17388
+ timeSeriesConfig,
17389
+ startIndex,
17390
+ endIndex
17391
+ });
17156
17392
  const seriesOrder = filtersOrder(mapperConfig, series);
17157
17393
  const allKeys = seriesOrder.map((s) => s.key).filter(Boolean);
17158
17394
  const finalColors = useMemo(
17159
17395
  () => generateColorMap(allKeys, colors2, mapperConfig),
17160
17396
  [allKeys, colors2, mapperConfig]
17161
17397
  );
17162
- const biaxialConfigNormalized = useMemo(() => {
17163
- if (!biaxial) return null;
17164
- if (typeof biaxial === "string") return { key: [biaxial] };
17165
- if (Array.isArray(biaxial)) return { key: biaxial };
17166
- return biaxial;
17167
- }, [biaxial]);
17168
- useMemo(() => {
17169
- if (!biaxialConfigNormalized) return;
17170
- const leftLabelMissing = !yAxisLabel || String(yAxisLabel).trim() === "";
17171
- const rightLabelMissing = !biaxialConfigNormalized.label || String(biaxialConfigNormalized.label).trim() === "";
17172
- if (leftLabelMissing || rightLabelMissing) {
17173
- throw new Error(
17174
- "When using `biaxial`, you must provide both `yAxisLabel` (left axis) and `biaxial.label` (right axis)."
17175
- );
17176
- }
17177
- }, [biaxialConfigNormalized, yAxisLabel]);
17398
+ const biaxialConfigNormalized = useBiaxial(biaxial, yAxisLabel);
17178
17399
  const rightKeys = useMemo(
17179
17400
  () => biaxialConfigNormalized?.key ?? [],
17180
17401
  [biaxialConfigNormalized]
@@ -17229,12 +17450,7 @@ var Chart = ({
17229
17450
  setActiveTooltips
17230
17451
  }
17231
17452
  );
17232
- const getSeriesOpacity = useCallback(
17233
- (key) => {
17234
- return highlightedSeries.size > 0 ? highlightedSeries.has(key) ? 1 : 0.25 : 1;
17235
- },
17236
- [highlightedSeries]
17237
- );
17453
+ const getSeriesOpacity = useSeriesOpacity(highlightedSeries);
17238
17454
  const finalValueFormatter = useMemo(
17239
17455
  () => createValueFormatter(valueFormatter, formatBR),
17240
17456
  [valueFormatter, formatBR]
@@ -17245,51 +17461,36 @@ var Chart = ({
17245
17461
  );
17246
17462
  const AXIS_LABEL_MARGIN = 56;
17247
17463
  const CONTAINER_PADDING_LEFT = -6;
17248
- const finalChartRightMargin = chartMargin?.right ?? (rightKeys.length > 0 ? AXIS_LABEL_MARGIN : 30);
17249
- const finalChartLeftMargin = chartMargin?.left ?? (yAxisLabel ? AXIS_LABEL_MARGIN : 0);
17250
- const yAxisTickWidth = useMemo(() => {
17251
- return computeYAxisTickWidth(
17252
- chartMargin?.left,
17253
- yAxisLabel,
17254
- AXIS_LABEL_MARGIN,
17255
- yTickFormatter,
17256
- minLeftDataValue,
17257
- niceMaxLeft
17258
- );
17259
- }, [
17260
- chartMargin?.left,
17464
+ const HORIZONTAL_PADDING_CLASS = "px-24";
17465
+ const teste = "pl-24 pr-4";
17466
+ const {
17467
+ finalChartRightMargin,
17468
+ finalChartLeftMargin,
17469
+ yAxisTickWidth,
17470
+ effectiveChartWidth,
17471
+ chartInnerWidth,
17472
+ leftYAxisLabelDx,
17473
+ rightYAxisLabelDx
17474
+ } = useChartLayout({
17475
+ chartMargin,
17261
17476
  yAxisLabel,
17477
+ AXIS_LABEL_MARGIN,
17262
17478
  yTickFormatter,
17263
17479
  minLeftDataValue,
17264
- niceMaxLeft
17265
- ]);
17266
- const HORIZONTAL_PADDING_CLASS = "px-24";
17267
- const teste = "pl-24 pr-4";
17268
- const effectiveChartWidth = typeof width === "number" ? width : measuredWidth ? Math.max(0, measuredWidth - 32) : computedWidth;
17269
- const chartInnerWidth = effectiveChartWidth - finalChartLeftMargin - finalChartRightMargin;
17270
- const leftYAxisLabelDx = -Math.max(12, Math.round(yAxisTickWidth / 2));
17271
- const rightYAxisLabelDx = Math.max(12, Math.round(finalChartRightMargin / 2));
17272
- const openTooltipForPeriod = useCallback(
17273
- (periodName) => {
17274
- fnOpenTooltipForPeriod(
17275
- enableDraggableTooltips,
17276
- processedData,
17277
- periodName,
17278
- activeTooltips,
17279
- setActiveTooltips,
17280
- maxTooltips,
17281
- effectiveChartWidth
17282
- );
17283
- },
17284
- [
17285
- enableDraggableTooltips,
17286
- processedData,
17287
- activeTooltips,
17288
- effectiveChartWidth,
17289
- maxTooltips,
17290
- setActiveTooltips
17291
- ]
17292
- );
17480
+ niceMaxLeft,
17481
+ rightKeysLength: rightKeys.length,
17482
+ measuredWidth,
17483
+ width,
17484
+ computedWidth
17485
+ });
17486
+ const openTooltipForPeriod = useOpenTooltipForPeriod({
17487
+ enableDraggableTooltips,
17488
+ processedData,
17489
+ activeTooltips,
17490
+ setActiveTooltips,
17491
+ maxTooltips,
17492
+ effectiveChartWidth
17493
+ });
17293
17494
  if (!data && !isLoading) return null;
17294
17495
  if (isLoading) {
17295
17496
  return /* @__PURE__ */ jsx(
@@ -17304,128 +17505,65 @@ var Chart = ({
17304
17505
  );
17305
17506
  }
17306
17507
  if (Array.isArray(data) && data.length === 0) {
17307
- return /* @__PURE__ */ jsxs("div", { children: [
17308
- /* @__PURE__ */ jsx(
17309
- NoData_default,
17310
- {
17311
- title,
17312
- paddingLeft: CONTAINER_PADDING_LEFT + finalChartLeftMargin,
17313
- height
17314
- }
17315
- ),
17316
- /* @__PURE__ */ jsx("div", { style: { height: 0 }, children: /* @__PURE__ */ jsxs("svg", { width: effectiveChartWidth, height, children: [
17317
- xAxisLabel && /* @__PURE__ */ jsx(
17318
- "text",
17319
- {
17320
- x: effectiveChartWidth - 40,
17321
- y: height - 10,
17322
- fontSize: 12,
17323
- fill: "hsl(var(--muted-foreground))",
17324
- fontWeight: 500,
17325
- textAnchor: "end",
17326
- children: xAxisLabel
17327
- }
17328
- ),
17329
- yAxisLabel && /* @__PURE__ */ jsx(
17330
- "text",
17331
- {
17332
- x: 20,
17333
- y: 40,
17334
- fontSize: 12,
17335
- fill: "hsl(var(--muted-foreground))",
17336
- fontWeight: 500,
17337
- textAnchor: "start",
17338
- transform: `rotate(-90 20 40)`,
17339
- children: yAxisLabel
17340
- }
17341
- )
17342
- ] }) })
17343
- ] });
17508
+ return /* @__PURE__ */ jsx(
17509
+ NoData_default,
17510
+ {
17511
+ title,
17512
+ paddingLeft: CONTAINER_PADDING_LEFT + finalChartLeftMargin,
17513
+ height
17514
+ }
17515
+ );
17344
17516
  }
17345
17517
  return /* @__PURE__ */ jsxs(
17346
17518
  "div",
17347
17519
  {
17348
17520
  ref: wrapperRef,
17349
17521
  className: cn(
17350
- "w-full overflow-hidden min-w-0 rounded-lg border-border",
17522
+ "w-full overflow-hidden min-w-0 rounded-lg border-border h-full",
17351
17523
  className
17352
17524
  ),
17353
17525
  children: [
17354
17526
  /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-card relative w-full max-w-full min-w-0 py-1", children: [
17355
- title && /* @__PURE__ */ jsx(
17356
- "div",
17527
+ /* @__PURE__ */ jsx(
17528
+ ChartHeader,
17357
17529
  {
17358
- className: cn(
17359
- "w-full flex items-center mt-3 mb-2",
17360
- HORIZONTAL_PADDING_CLASS,
17361
- titlePosition === "center" && "justify-center",
17362
- titlePosition === "right" && "justify-end",
17363
- titlePosition === "left" && "justify-start"
17364
- ),
17365
- children: /* @__PURE__ */ jsx("div", { className: "text-[1.4rem] font-semibold text-foreground", children: title })
17530
+ title,
17531
+ titlePosition,
17532
+ HORIZONTAL_PADDING_CLASS,
17533
+ customLegend,
17534
+ data,
17535
+ allKeys,
17536
+ processedData,
17537
+ finalColors,
17538
+ mapperConfig,
17539
+ finalValueFormatter,
17540
+ formatBR
17366
17541
  }
17367
17542
  ),
17368
- customLegend && !!data.length && /* @__PURE__ */ jsx("div", { className: cn("px-6 mb-2", HORIZONTAL_PADDING_CLASS), children: /* @__PURE__ */ jsx(
17369
- ChartTotalLegend_default,
17543
+ allKeys.length > 0 && (enableHighlights || enableShowOnly) && /* @__PURE__ */ jsx(
17544
+ ChartControls,
17370
17545
  {
17371
- items: allKeys.map((key) => {
17372
- const values = processedData.map(
17373
- (d) => Number(d[key] || 0)
17374
- );
17375
- const total = values.reduce((a, b) => a + b, 0);
17376
- const first = values[0] || 0;
17377
- const last = values[values.length - 1] || 0;
17378
- const trendValue = first !== 0 ? Math.round((last - first) / first * 100) : 0;
17379
- const formattedTotal = finalValueFormatter ? finalValueFormatter({
17380
- value: total,
17381
- formattedValue: String(total)
17382
- }) : new Intl.NumberFormat(formatBR ? "pt-BR" : "en-US").format(
17383
- total
17384
- );
17385
- return {
17386
- label: mapperConfig[key]?.label || key,
17387
- value: formattedTotal,
17388
- color: finalColors[key],
17389
- trend: {
17390
- value: Math.abs(trendValue),
17391
- positive: trendValue >= 0,
17392
- neutral: trendValue === 0
17393
- }
17394
- };
17395
- })
17546
+ allKeys,
17547
+ mapperConfig,
17548
+ finalColors,
17549
+ highlightedSeries,
17550
+ toggleHighlight,
17551
+ showOnlyHighlighted,
17552
+ setShowOnlyHighlighted,
17553
+ highlightedSeriesSize: highlightedSeries.size,
17554
+ clearHighlights,
17555
+ enableHighlights,
17556
+ enableShowOnly,
17557
+ enablePeriodsDropdown,
17558
+ enableDraggableTooltips,
17559
+ processedData,
17560
+ onOpenPeriod: openTooltipForPeriod,
17561
+ rightOffset: finalChartRightMargin,
17562
+ activePeriods,
17563
+ containerClass: cn("flex items-center gap-2", teste),
17564
+ containerWidth: chartInnerWidth
17396
17565
  }
17397
- ) }),
17398
- allKeys.length > 0 && (enableHighlights || enableShowOnly) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", teste), children: [
17399
- enableHighlights && /* @__PURE__ */ jsx(
17400
- Highlights_default,
17401
- {
17402
- allKeys,
17403
- mapperConfig,
17404
- finalColors,
17405
- highlightedSeries,
17406
- toggleHighlight,
17407
- containerWidth: chartInnerWidth
17408
- }
17409
- ),
17410
- enableShowOnly && /* @__PURE__ */ jsx(
17411
- ShowOnly_default,
17412
- {
17413
- showOnlyHighlighted,
17414
- setShowOnlyHighlighted,
17415
- highlightedSeriesSize: highlightedSeries.size,
17416
- clearHighlights
17417
- }
17418
- ),
17419
- enablePeriodsDropdown && enableDraggableTooltips && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: /* @__PURE__ */ jsx(
17420
- PeriodsDropdown_default,
17421
- {
17422
- processedData,
17423
- onOpenPeriod: openTooltipForPeriod,
17424
- rightOffset: finalChartRightMargin,
17425
- activePeriods
17426
- }
17427
- ) })
17428
- ] }),
17566
+ ),
17429
17567
  !(allKeys.length > 0 && (enableHighlights || enableShowOnly)) && enablePeriodsDropdown && enableDraggableTooltips && /* @__PURE__ */ jsx(
17430
17568
  "div",
17431
17569
  {
@@ -17447,7 +17585,7 @@ var Chart = ({
17447
17585
  )
17448
17586
  }
17449
17587
  ),
17450
- /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(
17588
+ /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, className: "h-full", children: /* @__PURE__ */ jsxs(
17451
17589
  ComposedChart,
17452
17590
  {
17453
17591
  data: processedData,
@@ -17664,12 +17802,6 @@ var Chart = ({
17664
17802
  );
17665
17803
  }
17666
17804
  if (s.type === "line") {
17667
- const lineFormatter = (props) => {
17668
- const numValue = typeof props.value === "number" ? props.value : typeof props.value === "string" ? parseFloat(props.value) : 0;
17669
- const percentage = calcDivision(numValue, 100);
17670
- const formattedPercentage = typeof percentage === "number" ? percentage.toFixed(1).replace(".", ",") : String(percentage).replace(".", ",");
17671
- return `${formattedPercentage}%`;
17672
- };
17673
17805
  return /* @__PURE__ */ jsx(
17674
17806
  Line,
17675
17807
  {
@@ -17691,7 +17823,7 @@ var Chart = ({
17691
17823
  content: pillLabelRenderer_default(
17692
17824
  color,
17693
17825
  "filled",
17694
- lineFormatter
17826
+ (props) => formatLinePercentage(props.value)
17695
17827
  ),
17696
17828
  offset: 14
17697
17829
  }
@@ -18106,7 +18238,7 @@ var HorizontalChart = ({
18106
18238
  margin: {
18107
18239
  top: 10,
18108
18240
  right: finalChartRightMargin,
18109
- left: finalChartLeftMargin,
18241
+ left: 55 + finalChartLeftMargin,
18110
18242
  bottom: 10
18111
18243
  },
18112
18244
  onClick: handleChartClick,
@@ -18149,9 +18281,9 @@ var HorizontalChart = ({
18149
18281
  dataKey: xAxisConfig.dataKey,
18150
18282
  stroke: "hsl(var(--muted-foreground))",
18151
18283
  fontSize: 12,
18152
- tickLine: false,
18153
- axisLine: false,
18154
- width: 125,
18284
+ tickLine: true,
18285
+ minTickGap: 24,
18286
+ axisLine: true,
18155
18287
  tickFormatter: (value) => {
18156
18288
  if (categoryFormatter)
18157
18289
  return categoryFormatter(value);
@@ -18293,109 +18425,6 @@ var HorizontalChart = ({
18293
18425
  );
18294
18426
  };
18295
18427
  var HorizontalChart_default = HorizontalChart;
18296
- var defaultData = [
18297
- { name: "Vendas", value: 4e3 },
18298
- { name: "Marketing", value: 3e3 },
18299
- { name: "Desenvolvimento", value: 2e3 },
18300
- { name: "Suporte", value: 1e3 },
18301
- { name: "Outros", value: 800 }
18302
- ];
18303
- var DEFAULT_COLORS4 = [
18304
- "#55af7d",
18305
- // verde do projeto
18306
- "#8e68ff",
18307
- // roxo do projeto
18308
- "#2273e1",
18309
- // azul do projeto
18310
- "#f59e0b",
18311
- // amarelo complementar
18312
- "#ef4444",
18313
- // vermelho complementar
18314
- "#8b5cf6",
18315
- // roxo claro
18316
- "#06b6d4",
18317
- // ciano
18318
- "#84cc16"
18319
- // verde lima
18320
- ];
18321
- var RADIAN = Math.PI / 180;
18322
- var renderCustomizedLabel = ({
18323
- cx = 0,
18324
- cy = 0,
18325
- midAngle = 0,
18326
- innerRadius = 0,
18327
- outerRadius = 0,
18328
- percent = 0
18329
- }) => {
18330
- const radius = innerRadius + (outerRadius - innerRadius) * 0.5;
18331
- const x = cx + radius * Math.cos(-midAngle * RADIAN);
18332
- const y = cy + radius * Math.sin(-midAngle * RADIAN);
18333
- return /* @__PURE__ */ jsx(
18334
- "text",
18335
- {
18336
- x,
18337
- y,
18338
- fill: "white",
18339
- textAnchor: x > cx ? "start" : "end",
18340
- dominantBaseline: "central",
18341
- fontSize: 12,
18342
- fontWeight: "600",
18343
- children: `${(percent * 100).toFixed(0)}%`
18344
- }
18345
- );
18346
- };
18347
- var CustomPieChart = ({
18348
- data = defaultData,
18349
- className,
18350
- height = 400,
18351
- width = "100%",
18352
- colors: colors2,
18353
- showTooltip = true,
18354
- showLegend = true,
18355
- showLabels = true,
18356
- innerRadius = 0,
18357
- outerRadius = 120,
18358
- centerX = "50%",
18359
- centerY = "50%"
18360
- }) => {
18361
- const finalColors = colors2 || DEFAULT_COLORS4;
18362
- return /* @__PURE__ */ jsx("div", { className: cn("w-full rounded-lg bg-card p-4", className), children: /* @__PURE__ */ jsx(ResponsiveContainer, { width, height, children: /* @__PURE__ */ jsxs(PieChart, { children: [
18363
- /* @__PURE__ */ jsx(
18364
- Pie,
18365
- {
18366
- data,
18367
- cx: centerX,
18368
- cy: centerY,
18369
- labelLine: false,
18370
- label: showLabels ? renderCustomizedLabel : false,
18371
- outerRadius,
18372
- innerRadius,
18373
- fill: "#8884d8",
18374
- dataKey: "value",
18375
- children: data.map((entry, index) => /* @__PURE__ */ jsx(
18376
- Cell,
18377
- {
18378
- fill: finalColors[index % finalColors.length]
18379
- },
18380
- `cell-${entry.name}-${index}`
18381
- ))
18382
- }
18383
- ),
18384
- showTooltip && /* @__PURE__ */ jsx(
18385
- Tooltip,
18386
- {
18387
- contentStyle: {
18388
- backgroundColor: "hsl(var(--popover))",
18389
- border: "1px solid hsl(var(--border))",
18390
- borderRadius: "6px",
18391
- color: "hsl(var(--popover-foreground))"
18392
- }
18393
- }
18394
- ),
18395
- showLegend && /* @__PURE__ */ jsx(Legend, {})
18396
- ] }) }) });
18397
- };
18398
- var PieChart_default = CustomPieChart;
18399
18428
  var TimeSeries = ({
18400
18429
  data,
18401
18430
  xAxis,
@@ -18655,4 +18684,4 @@ function Leaderboard({
18655
18684
  );
18656
18685
  }
18657
18686
 
18658
- export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, CarouselContentBase, CarouselItemBase, CarouselNextBase, CarouselPreviousBase, ChangeButton, Chart_default as Chart, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, CopyButton, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PieChart_default as PieChart, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemTooltip_default as SystemTooltip, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatFieldName, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useTheme, useTimeSeriesRange, visualForItem };
18687
+ export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, CarouselContentBase, CarouselItemBase, CarouselNextBase, CarouselPreviousBase, ChangeButton, Chart_default as Chart, ChartControls, ChartHeader, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, CopyButton, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemTooltip_default as SystemTooltip, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatFieldName, formatLinePercentage, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useBiaxial, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartLayout, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useOpenTooltipForPeriod, useProcessedData, useSeriesOpacity, useTheme, useTimeSeriesRange, visualForItem };