@etus/ui 0.4.0-beta.21 → 0.4.0-beta.22
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/{chunk-KBU4KJKC.js → chunk-2DFFIU44.js} +4 -4
- package/dist/{chunk-KBU4KJKC.js.map → chunk-2DFFIU44.js.map} +1 -1
- package/dist/{chunk-MR6RUPVT.js → chunk-2JDLQ4VR.js} +3 -3
- package/dist/{chunk-MR6RUPVT.js.map → chunk-2JDLQ4VR.js.map} +1 -1
- package/dist/{chunk-JE46MFMN.js → chunk-2LVRSLWI.js} +4 -4
- package/dist/{chunk-JE46MFMN.js.map → chunk-2LVRSLWI.js.map} +1 -1
- package/dist/{chunk-GRODCJS4.js → chunk-2VOKY2TU.js} +4 -4
- package/dist/{chunk-GRODCJS4.js.map → chunk-2VOKY2TU.js.map} +1 -1
- package/dist/{chunk-UC5J6GWG.js → chunk-3TRT6TKW.js} +6 -6
- package/dist/chunk-3TRT6TKW.js.map +1 -0
- package/dist/{chunk-UZZCEQH4.js → chunk-3XVOI4HK.js} +3 -3
- package/dist/{chunk-UZZCEQH4.js.map → chunk-3XVOI4HK.js.map} +1 -1
- package/dist/{chunk-WGKOYZRI.js → chunk-4S6CPTSO.js} +5 -5
- package/dist/chunk-4S6CPTSO.js.map +1 -0
- package/dist/{chunk-GVNG5ME6.js → chunk-6CO3FRGG.js} +201 -17
- package/dist/chunk-6CO3FRGG.js.map +1 -0
- package/dist/chunk-7MJS37Q4.js +135 -0
- package/dist/chunk-7MJS37Q4.js.map +1 -0
- package/dist/{chunk-QXET2TML.js → chunk-A33MLHXO.js} +3 -3
- package/dist/{chunk-QXET2TML.js.map → chunk-A33MLHXO.js.map} +1 -1
- package/dist/{chunk-STADVFL2.js → chunk-A6BDDZ27.js} +3 -3
- package/dist/{chunk-STADVFL2.js.map → chunk-A6BDDZ27.js.map} +1 -1
- package/dist/{chunk-WSDWJX4Y.js → chunk-AGXEGVSY.js} +3 -3
- package/dist/{chunk-WSDWJX4Y.js.map → chunk-AGXEGVSY.js.map} +1 -1
- package/dist/{chunk-R42LSLJL.js → chunk-AOLVER6U.js} +3 -3
- package/dist/{chunk-R42LSLJL.js.map → chunk-AOLVER6U.js.map} +1 -1
- package/dist/{chunk-YMQDTTO7.js → chunk-CEUARW3D.js} +3 -3
- package/dist/{chunk-YMQDTTO7.js.map → chunk-CEUARW3D.js.map} +1 -1
- package/dist/{chunk-LDK6ADKM.js → chunk-DZV32N5V.js} +4 -4
- package/dist/{chunk-LDK6ADKM.js.map → chunk-DZV32N5V.js.map} +1 -1
- package/dist/{chunk-2SUZS6GZ.js → chunk-E5UFATRY.js} +11 -3
- package/dist/chunk-E5UFATRY.js.map +1 -0
- package/dist/{chunk-RQBYBBMP.js → chunk-EINYBB7T.js} +5 -5
- package/dist/{chunk-RQBYBBMP.js.map → chunk-EINYBB7T.js.map} +1 -1
- package/dist/{chunk-4LZ53BAG.js → chunk-EKKJXJX7.js} +4 -2
- package/dist/chunk-EKKJXJX7.js.map +1 -0
- package/dist/{chunk-4OWRNWHW.js → chunk-FCVFYUCL.js} +14 -5
- package/dist/chunk-FCVFYUCL.js.map +1 -0
- package/dist/{chunk-6QVXMYKH.js → chunk-FGTYI4ZG.js} +3 -3
- package/dist/{chunk-6QVXMYKH.js.map → chunk-FGTYI4ZG.js.map} +1 -1
- package/dist/{chunk-6G5QK3SU.js → chunk-FLXU5LWR.js} +44 -4
- package/dist/chunk-FLXU5LWR.js.map +1 -0
- package/dist/{chunk-P4WMDGAQ.js → chunk-G5JO3Q3K.js} +3 -3
- package/dist/{chunk-P4WMDGAQ.js.map → chunk-G5JO3Q3K.js.map} +1 -1
- package/dist/{chunk-RMJVCJ6U.js → chunk-GKG2LRGY.js} +6 -6
- package/dist/chunk-GKG2LRGY.js.map +1 -0
- package/dist/{chunk-N7VMQWM3.js → chunk-GN6B4W3G.js} +4 -4
- package/dist/{chunk-N7VMQWM3.js.map → chunk-GN6B4W3G.js.map} +1 -1
- package/dist/chunk-GX2VJT7D.js +136 -0
- package/dist/chunk-GX2VJT7D.js.map +1 -0
- package/dist/{chunk-MNYU5MHO.js → chunk-H4KC2YSL.js} +5 -5
- package/dist/{chunk-MNYU5MHO.js.map → chunk-H4KC2YSL.js.map} +1 -1
- package/dist/{chunk-GLHKHYJY.js → chunk-IARO2PPN.js} +55 -15
- package/dist/chunk-IARO2PPN.js.map +1 -0
- package/dist/{chunk-ELRIFGMN.js → chunk-JWXZFGNT.js} +30 -6
- package/dist/chunk-JWXZFGNT.js.map +1 -0
- package/dist/{chunk-Y4FEW7SR.js → chunk-K5RHYIFF.js} +16 -6
- package/dist/chunk-K5RHYIFF.js.map +1 -0
- package/dist/{chunk-T3LWBCVR.js → chunk-LKCOHB3C.js} +36 -3
- package/dist/chunk-LKCOHB3C.js.map +1 -0
- package/dist/{chunk-7PX3WBR3.js → chunk-LWIIO75I.js} +5 -3
- package/dist/chunk-LWIIO75I.js.map +1 -0
- package/dist/{chunk-U7TPJMGY.js → chunk-MR3IPJAO.js} +6 -2
- package/dist/chunk-MR3IPJAO.js.map +1 -0
- package/dist/chunk-MVL4DVRW.js +177 -0
- package/dist/chunk-MVL4DVRW.js.map +1 -0
- package/dist/{chunk-L4OQ6BJ5.js → chunk-N3DBRKUS.js} +3 -3
- package/dist/{chunk-L4OQ6BJ5.js.map → chunk-N3DBRKUS.js.map} +1 -1
- package/dist/{chunk-TIPKU427.js → chunk-N7DAU4LE.js} +3 -3
- package/dist/{chunk-TIPKU427.js.map → chunk-N7DAU4LE.js.map} +1 -1
- package/dist/{chunk-ZVSMLMMS.js → chunk-NORI6ECA.js} +44 -4
- package/dist/chunk-NORI6ECA.js.map +1 -0
- package/dist/{chunk-7MLRRVOX.js → chunk-NT4GLWNR.js} +3 -3
- package/dist/{chunk-7MLRRVOX.js.map → chunk-NT4GLWNR.js.map} +1 -1
- package/dist/{chunk-7AR5QRRX.js → chunk-NZNAR4HJ.js} +27 -11
- package/dist/chunk-NZNAR4HJ.js.map +1 -0
- package/dist/{chunk-TNSMTINE.js → chunk-OJIFG4LW.js} +3 -3
- package/dist/{chunk-TNSMTINE.js.map → chunk-OJIFG4LW.js.map} +1 -1
- package/dist/{chunk-PTXC4KPQ.js → chunk-OSHGYI2O.js} +4 -4
- package/dist/{chunk-PTXC4KPQ.js.map → chunk-OSHGYI2O.js.map} +1 -1
- package/dist/chunk-OW5R4KST.js +108 -0
- package/dist/chunk-OW5R4KST.js.map +1 -0
- package/dist/{chunk-QJOWG2D4.js → chunk-PVF23ZX2.js} +3 -3
- package/dist/{chunk-QJOWG2D4.js.map → chunk-PVF23ZX2.js.map} +1 -1
- package/dist/{chunk-KHCHATTD.js → chunk-PYCQBP4O.js} +4 -4
- package/dist/{chunk-KHCHATTD.js.map → chunk-PYCQBP4O.js.map} +1 -1
- package/dist/{chunk-KDNTSZF5.js → chunk-Q4E7OG7J.js} +3 -3
- package/dist/{chunk-KDNTSZF5.js.map → chunk-Q4E7OG7J.js.map} +1 -1
- package/dist/{chunk-KLFYTLF3.js → chunk-Q7MAQ7MO.js} +3 -3
- package/dist/{chunk-KLFYTLF3.js.map → chunk-Q7MAQ7MO.js.map} +1 -1
- package/dist/{chunk-S6BREP2G.js → chunk-QMCQIOCP.js} +21 -7
- package/dist/chunk-QMCQIOCP.js.map +1 -0
- package/dist/{chunk-SSKSWSVO.js → chunk-R2Z64IC3.js} +4 -4
- package/dist/{chunk-SSKSWSVO.js.map → chunk-R2Z64IC3.js.map} +1 -1
- package/dist/{chunk-UNHPLKMR.js → chunk-RK27HS7W.js} +3 -3
- package/dist/{chunk-UNHPLKMR.js.map → chunk-RK27HS7W.js.map} +1 -1
- package/dist/{chunk-IKLFWGFS.js → chunk-RTSAERFS.js} +7 -7
- package/dist/{chunk-IKLFWGFS.js.map → chunk-RTSAERFS.js.map} +1 -1
- package/dist/{chunk-EO4NGM5W.js → chunk-S7HXZ5T3.js} +65 -16
- package/dist/chunk-S7HXZ5T3.js.map +1 -0
- package/dist/{chunk-I5RDX6O3.js → chunk-TBPPBA3S.js} +31 -25
- package/dist/chunk-TBPPBA3S.js.map +1 -0
- package/dist/{chunk-TDANAN5A.js → chunk-TD2EFGHO.js} +7 -3
- package/dist/chunk-TD2EFGHO.js.map +1 -0
- package/dist/{chunk-3R6MY3YJ.js → chunk-TVAIT3F5.js} +3 -3
- package/dist/{chunk-3R6MY3YJ.js.map → chunk-TVAIT3F5.js.map} +1 -1
- package/dist/{chunk-VHJ6ALIE.js → chunk-TX4GUAZ6.js} +11 -3
- package/dist/chunk-TX4GUAZ6.js.map +1 -0
- package/dist/{chunk-7XJQYAGY.js → chunk-U55YU7DB.js} +22 -6
- package/dist/chunk-U55YU7DB.js.map +1 -0
- package/dist/{chunk-5GV4LDX7.js → chunk-VI3QWOII.js} +4 -2
- package/dist/chunk-VI3QWOII.js.map +1 -0
- package/dist/{chunk-PXR6CZIL.js → chunk-VYCXCOUH.js} +3 -3
- package/dist/{chunk-PXR6CZIL.js.map → chunk-VYCXCOUH.js.map} +1 -1
- package/dist/{chunk-SKI25Q7O.js → chunk-W72PXQDH.js} +4 -4
- package/dist/{chunk-SKI25Q7O.js.map → chunk-W72PXQDH.js.map} +1 -1
- package/dist/{chunk-4SFBDK4E.js → chunk-WTKHA2NF.js} +3 -3
- package/dist/{chunk-4SFBDK4E.js.map → chunk-WTKHA2NF.js.map} +1 -1
- package/dist/{chunk-KXJ3SEW7.js → chunk-YNZ6T4IU.js} +13 -5
- package/dist/chunk-YNZ6T4IU.js.map +1 -0
- package/dist/{chunk-7QEFKWUR.js → chunk-YZBCJDYO.js} +4 -4
- package/dist/{chunk-7QEFKWUR.js.map → chunk-YZBCJDYO.js.map} +1 -1
- package/dist/{chunk-PVIIIQJI.js → chunk-ZTD3QXLY.js} +4 -4
- package/dist/{chunk-PVIIIQJI.js.map → chunk-ZTD3QXLY.js.map} +1 -1
- package/dist/{chunk-HHWUROMA.js → chunk-ZZFCKHE2.js} +4 -4
- package/dist/{chunk-HHWUROMA.js.map → chunk-ZZFCKHE2.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +3 -3
- package/dist/components/advanced/Command/index.js +2 -2
- package/dist/components/advanced/EventCalendar/index.js +3 -3
- package/dist/components/advanced/FilterBuilder/index.js +5 -5
- package/dist/components/advanced/MarkdownEditor/index.js +2 -2
- package/dist/components/advanced/ReportBuilder/index.js +4 -4
- package/dist/components/advanced/index.js +12 -12
- package/dist/components/data-display/Banner/index.js +1 -1
- package/dist/components/data-display/BarChart/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +3 -3
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +5 -5
- package/dist/components/data-display/DataTable/index.js +9 -9
- package/dist/components/data-display/ImageGallery/index.js +4 -4
- package/dist/components/data-display/Item/index.js +1 -1
- package/dist/components/data-display/KPICard/index.js +1 -1
- package/dist/components/data-display/List/index.js +2 -2
- package/dist/components/data-display/RadarChart/index.js +1 -1
- package/dist/components/data-display/RadialChart/index.js +1 -1
- package/dist/components/data-display/index.js +35 -35
- package/dist/components/feedback/AlertDialog/index.js +3 -3
- package/dist/components/feedback/ConfirmModal/index.js +4 -4
- package/dist/components/feedback/Dialog/index.js +1 -1
- package/dist/components/feedback/ErrorPage/index.js +1 -1
- package/dist/components/feedback/Notification/index.js +2 -2
- package/dist/components/feedback/index.js +9 -9
- package/dist/components/forms/DatePicker/index.js +4 -4
- package/dist/components/forms/DateRangePicker/index.js +5 -5
- package/dist/components/forms/EmailInput/index.js +3 -3
- package/dist/components/forms/InputGroup/index.js +5 -5
- package/dist/components/forms/NumberInput/index.js +2 -2
- package/dist/components/forms/PasswordInput/index.js +3 -3
- package/dist/components/forms/PaymentInput/index.js +1 -1
- package/dist/components/forms/PhoneInput/index.js +1 -1
- package/dist/components/forms/RadioGroup/index.js +1 -1
- package/dist/components/forms/Rating/index.js +1 -1
- package/dist/components/forms/SearchInput/index.js +3 -3
- package/dist/components/forms/Switch/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +1 -1
- package/dist/components/forms/TextInput/index.js +2 -2
- package/dist/components/forms/URLInput/index.js +3 -3
- package/dist/components/forms/index.js +25 -25
- package/dist/components/index.js +137 -137
- package/dist/components/layout/Collapsible/index.js +1 -1
- package/dist/components/layout/index.js +4 -4
- package/dist/components/navigation/AccountSwitch/index.js +3 -3
- package/dist/components/navigation/Breadcrumb/index.js +1 -1
- package/dist/components/navigation/ContextMenu/index.js +1 -1
- package/dist/components/navigation/DropdownMenu/index.js +1 -1
- package/dist/components/navigation/Pagination/index.js +3 -3
- package/dist/components/navigation/Sidebar/index.js +8 -7
- package/dist/components/navigation/index.js +17 -16
- package/dist/components/primitives/Avatar/index.js +1 -1
- package/dist/components/primitives/Button/index.js +2 -2
- package/dist/components/primitives/ButtonGroup/index.js +1 -1
- package/dist/components/primitives/ConfirmButton/index.js +4 -4
- package/dist/components/primitives/Icon/index.js +1 -1
- package/dist/components/primitives/Kbd/index.js +1 -1
- package/dist/components/primitives/Link/index.js +1 -1
- package/dist/components/primitives/ProgressCircle/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +2 -2
- package/dist/components/primitives/Text/index.js +1 -1
- package/dist/components/primitives/index.js +16 -16
- package/dist/components/workflow/ApprovalFlow/index.js +4 -4
- package/dist/components/workflow/CommentSystem/index.js +4 -4
- package/dist/components/workflow/Dashboard/index.js +3 -3
- package/dist/components/workflow/DashboardBuilder/index.js +5 -5
- package/dist/components/workflow/KanbanBoard/index.js +4 -4
- package/dist/components/workflow/ReportGenerator/index.js +3 -3
- package/dist/components/workflow/TaskStatus/index.js +2 -2
- package/dist/components/workflow/Wizard/index.js +3 -3
- package/dist/components/workflow/index.js +16 -16
- package/dist/hooks/index.js +1 -1
- package/dist/index.d.ts +303 -42
- package/dist/index.js +137 -137
- package/dist/styles.css +27 -8
- package/package.json +2 -2
- package/dist/chunk-2SUZS6GZ.js.map +0 -1
- package/dist/chunk-4LZ53BAG.js.map +0 -1
- package/dist/chunk-4OWRNWHW.js.map +0 -1
- package/dist/chunk-5GV4LDX7.js.map +0 -1
- package/dist/chunk-6G5QK3SU.js.map +0 -1
- package/dist/chunk-6VEQLD2P.js +0 -75
- package/dist/chunk-6VEQLD2P.js.map +0 -1
- package/dist/chunk-7AR5QRRX.js.map +0 -1
- package/dist/chunk-7PX3WBR3.js.map +0 -1
- package/dist/chunk-7XJQYAGY.js.map +0 -1
- package/dist/chunk-ELRIFGMN.js.map +0 -1
- package/dist/chunk-EO4NGM5W.js.map +0 -1
- package/dist/chunk-GLHKHYJY.js.map +0 -1
- package/dist/chunk-GVNG5ME6.js.map +0 -1
- package/dist/chunk-I5RDX6O3.js.map +0 -1
- package/dist/chunk-JUZ4JQWH.js +0 -69
- package/dist/chunk-JUZ4JQWH.js.map +0 -1
- package/dist/chunk-K4UCALQQ.js +0 -67
- package/dist/chunk-K4UCALQQ.js.map +0 -1
- package/dist/chunk-KXJ3SEW7.js.map +0 -1
- package/dist/chunk-RMJVCJ6U.js.map +0 -1
- package/dist/chunk-S6BREP2G.js.map +0 -1
- package/dist/chunk-T3LWBCVR.js.map +0 -1
- package/dist/chunk-TDANAN5A.js.map +0 -1
- package/dist/chunk-U7TPJMGY.js.map +0 -1
- package/dist/chunk-UC5J6GWG.js.map +0 -1
- package/dist/chunk-VHJ6ALIE.js.map +0 -1
- package/dist/chunk-WGKOYZRI.js.map +0 -1
- package/dist/chunk-WUS45IZW.js +0 -36
- package/dist/chunk-WUS45IZW.js.map +0 -1
- package/dist/chunk-Y4FEW7SR.js.map +0 -1
- package/dist/chunk-ZVSMLMMS.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-XXWCMY2G.js';
|
|
2
2
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { BarChart as BarChart$1, CartesianGrid, XAxis, Label, YAxis, Bar, LabelList } from 'recharts';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { BarChart as BarChart$1, CartesianGrid, XAxis, Label, YAxis, Bar, LabelList, Rectangle } from 'recharts';
|
|
5
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
function normalizeSeriesConfig(series) {
|
|
8
8
|
return series.map(
|
|
@@ -50,8 +50,11 @@ function BarChart({
|
|
|
50
50
|
allowDecimals = true,
|
|
51
51
|
ariaLabel,
|
|
52
52
|
autoMinValue = false,
|
|
53
|
+
activeIndex,
|
|
53
54
|
barCategoryGap,
|
|
54
55
|
barGap = 4,
|
|
56
|
+
colorByCategory = false,
|
|
57
|
+
insideLabelKey,
|
|
55
58
|
className,
|
|
56
59
|
config,
|
|
57
60
|
customTooltip,
|
|
@@ -243,25 +246,54 @@ function BarChart({
|
|
|
243
246
|
const { dataKey, radius: seriesRadius, stackId } = seriesConfig;
|
|
244
247
|
const fill = `var(--color-${dataKey})`;
|
|
245
248
|
const barRadius = seriesRadius ?? radius;
|
|
246
|
-
return /* @__PURE__ */
|
|
249
|
+
return /* @__PURE__ */ jsxs(
|
|
247
250
|
Bar,
|
|
248
251
|
{
|
|
252
|
+
shape: activeIndex === void 0 ? void 0 : makeActiveBarShape(activeIndex),
|
|
249
253
|
dataKey,
|
|
250
|
-
fill,
|
|
254
|
+
fill: colorByCategory ? void 0 : fill,
|
|
251
255
|
radius: barRadius,
|
|
252
256
|
stackId: isStacked ? "bar-stack" : stackId,
|
|
253
257
|
style: onValueChange ? { cursor: "pointer" } : void 0,
|
|
254
258
|
onClick: onValueChange ? handleBarClick(dataKey) : void 0,
|
|
255
|
-
children:
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
259
|
+
children: [
|
|
260
|
+
insideLabelKey ? (
|
|
261
|
+
// Figma Type=Custom Label (1147:3135): nome dentro da
|
|
262
|
+
// barra + valor na ponta
|
|
263
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
264
|
+
/* @__PURE__ */ jsx(
|
|
265
|
+
LabelList,
|
|
266
|
+
{
|
|
267
|
+
className: "fill-white",
|
|
268
|
+
dataKey: insideLabelKey,
|
|
269
|
+
fontSize: 12,
|
|
270
|
+
offset: 8,
|
|
271
|
+
position: isHorizontal ? "insideLeft" : "insideBottom"
|
|
272
|
+
}
|
|
273
|
+
),
|
|
274
|
+
/* @__PURE__ */ jsx(
|
|
275
|
+
LabelList,
|
|
276
|
+
{
|
|
277
|
+
className: "fill-foreground",
|
|
278
|
+
dataKey,
|
|
279
|
+
fontSize: 12,
|
|
280
|
+
offset: 8,
|
|
281
|
+
position: isHorizontal ? "right" : "top"
|
|
282
|
+
}
|
|
283
|
+
)
|
|
284
|
+
] })
|
|
285
|
+
) : null,
|
|
286
|
+
showValueLabels && !insideLabelKey ? /* @__PURE__ */ jsx(
|
|
287
|
+
LabelList,
|
|
288
|
+
{
|
|
289
|
+
content: renderBarValueLabel(
|
|
290
|
+
isHorizontal,
|
|
291
|
+
typeof showValueLabels === "object" ? showValueLabels.formatter : void 0
|
|
292
|
+
),
|
|
293
|
+
dataKey
|
|
294
|
+
}
|
|
295
|
+
) : null
|
|
296
|
+
]
|
|
265
297
|
},
|
|
266
298
|
dataKey
|
|
267
299
|
);
|
|
@@ -274,8 +306,25 @@ function BarChart({
|
|
|
274
306
|
}
|
|
275
307
|
);
|
|
276
308
|
}
|
|
309
|
+
function makeActiveBarShape(activeIndex) {
|
|
310
|
+
return function ActiveBarShape(props) {
|
|
311
|
+
const { fill, index, ...barProps } = props;
|
|
312
|
+
const isActive = index === activeIndex;
|
|
313
|
+
return /* @__PURE__ */ jsx(
|
|
314
|
+
Rectangle,
|
|
315
|
+
{
|
|
316
|
+
...barProps,
|
|
317
|
+
fill,
|
|
318
|
+
fillOpacity: isActive ? 1 : 0.4,
|
|
319
|
+
stroke: isActive ? fill ?? "currentColor" : void 0,
|
|
320
|
+
strokeDasharray: isActive ? 4 : void 0,
|
|
321
|
+
strokeDashoffset: isActive ? 4 : void 0
|
|
322
|
+
}
|
|
323
|
+
);
|
|
324
|
+
};
|
|
325
|
+
}
|
|
277
326
|
BarChart.displayName = "BarChart";
|
|
278
327
|
|
|
279
328
|
export { BarChart };
|
|
280
|
-
//# sourceMappingURL=chunk-
|
|
281
|
-
//# sourceMappingURL=chunk-
|
|
329
|
+
//# sourceMappingURL=chunk-S7HXZ5T3.js.map
|
|
330
|
+
//# sourceMappingURL=chunk-S7HXZ5T3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/BarChart/BarChart.tsx"],"names":["data","props","RechartsBarChart"],"mappings":"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","file":"chunk-S7HXZ5T3.js","sourcesContent":["\"use client\"\n\nimport type {\n BarChartProps,\n BarChartSeriesConfig,\n} from \"./BarChart.types\"\n\nimport * as React from \"react\"\nimport {\n Bar,\n CartesianGrid,\n Label,\n LabelList,\n BarChart as RechartsBarChart,\n Rectangle,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * Normalize series to BarChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (BarChartSeriesConfig | string)[]\n): BarChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * BarChart - Data visualization component for categorical comparisons\n *\n * Displays quantitative values as rectangular bars. The height or width\n * of bars is proportional to the values they represent. Ideal for\n * comparing values between categories.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <BarChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\ninterface BarValueLabelProps {\n height?: number | string\n value?: number | string\n width?: number | string\n x?: number | string\n y?: number | string\n}\n\nfunction renderBarValueLabel(\n isHorizontal: boolean,\n formatter?: (value: number) => string\n) {\n return function BarValueLabel(labelProps: unknown) {\n const props = labelProps as BarValueLabelProps\n if (props.value == null) return null\n const value = Number(props.value)\n const height = Number(props.height ?? 0)\n const width = Number(props.width ?? 0)\n const x = Number(props.x ?? 0)\n const y = Number(props.y ?? 0)\n const text = formatter ? formatter(value) : String(props.value)\n const negative = value < 0\n // barra de tamanho zero não ganha rótulo (diverging: cada mês zera um lado)\n if ((isHorizontal ? width : height) === 0) return null\n if (isHorizontal) {\n return (\n <text\n className=\"fill-foreground text-xs\"\n dominantBaseline=\"central\"\n textAnchor={negative ? \"end\" : \"start\"}\n x={negative ? x - 6 : x + width + 6}\n y={y + height / 2}\n >\n {text}\n </text>\n )\n }\n return (\n <text\n className=\"fill-foreground text-xs\"\n textAnchor=\"middle\"\n x={x + width / 2}\n y={negative ? y + height + 14 : Math.max(y - 6, 12)}\n >\n {text}\n </text>\n )\n }\n}\n\nexport function BarChart({\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n activeIndex,\n barCategoryGap,\n barGap = 4,\n colorByCategory = false,\n insideLabelKey,\n className,\n config,\n customTooltip,\n data,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n layout = \"vertical\",\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n radius = 4,\n series,\n showGrid = true,\n showLegend = false,\n showValueLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisKey,\n xAxisLabel,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: BarChartProps) {\n const normalizedSeries = normalizeSeriesConfig(series)\n const isStacked = variant === \"stacked\" || variant === \"stacked100\"\n const isHorizontal = layout === \"horizontal\"\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle bar click for onValueChange\n const handleBarClick = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (dataKey: string) => (data: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!onValueChange || !data?.payload) return\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const payload = data.payload as Record<string, unknown>\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate value axis domain\n const valueDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate category axis ticks for startEndOnly\n const categoryTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"bar-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsBarChart\n accessibilityLayer\n margin={{\n left: yAxisLabel ? 20 : 12,\n right: 12,\n bottom: xAxisLabel ? 20 : 0,\n }}\n barCategoryGap={barCategoryGap}\n barGap={barGap}\n data={data}\n layout={isHorizontal ? \"vertical\" : \"horizontal\"}\n >\n {showGrid && (\n <CartesianGrid\n horizontal={!isHorizontal}\n strokeDasharray={gridDashArray}\n vertical={isHorizontal}\n />\n )}\n\n {showXAxis && (\n isHorizontal ? (\n <XAxis\n axisLine={false}\n domain={valueDomain}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n type=\"number\"\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n ) : (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )\n )}\n\n {showYAxis && (\n isHorizontal ? (\n <YAxis\n axisLine={false}\n dataKey={xAxisKey}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n type=\"category\"\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n ) : (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={valueDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const { dataKey, radius: seriesRadius, stackId } = seriesConfig\n\n const fill = `var(--color-${dataKey})`\n const barRadius = seriesRadius ?? radius\n\n return (\n <Bar\n key={dataKey}\n // Figma Type=Active (1147:3145): barra do activeIndex ganha\n // contorno tracejado; as demais esmaecem\n shape={\n activeIndex === undefined\n ? undefined\n : makeActiveBarShape(activeIndex)\n }\n dataKey={dataKey}\n // Figma Type=Mixed (1147:3126): cor por categoria — o fill\n // vem de cada row do data (ex.: fill: \"var(--color-x)\")\n fill={colorByCategory ? undefined : fill}\n radius={barRadius}\n stackId={isStacked ? \"bar-stack\" : stackId}\n style={onValueChange ? { cursor: \"pointer\" } : undefined}\n onClick={onValueChange ? handleBarClick(dataKey) : undefined}\n >\n {insideLabelKey ? (\n // Figma Type=Custom Label (1147:3135): nome dentro da\n // barra + valor na ponta\n <>\n <LabelList\n className=\"fill-white\"\n dataKey={insideLabelKey}\n fontSize={12}\n offset={8}\n position={isHorizontal ? \"insideLeft\" : \"insideBottom\"}\n />\n <LabelList\n className=\"fill-foreground\"\n dataKey={dataKey}\n fontSize={12}\n offset={8}\n position={isHorizontal ? \"right\" : \"top\"}\n />\n </>\n ) : null}\n {showValueLabels && !insideLabelKey ? (\n <LabelList\n content={renderBarValueLabel(\n isHorizontal,\n typeof showValueLabels === \"object\" ? showValueLabels.formatter : undefined\n )}\n dataKey={dataKey}\n />\n ) : null}\n </Bar>\n )\n })}\n </RechartsBarChart>\n </ChartContainer>\n </div>\n )\n}\n\n// Figma Type=Active: shape que destaca a barra do activeIndex com contorno\n// tracejado da própria cor e esmaece as demais (Recharts 3 removeu o\n// activeIndex nativo do Bar)\nfunction makeActiveBarShape(activeIndex: number) {\n return function ActiveBarShape(props: unknown) {\n const { fill, index, ...barProps } = props as {\n fill?: string\n index?: number\n }\n const isActive = index === activeIndex\n return (\n <Rectangle\n {...barProps}\n fill={fill}\n fillOpacity={isActive ? 1 : 0.4}\n stroke={isActive ? (fill ?? \"currentColor\") : undefined}\n strokeDasharray={isActive ? 4 : undefined}\n strokeDashoffset={isActive ? 4 : undefined}\n />\n )\n }\n}\n\nBarChart.displayName = \"BarChart\"\n"]}
|
|
@@ -2,7 +2,7 @@ import { cn } from './chunk-RVAYDRMA.js';
|
|
|
2
2
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
var switchVariants = cva(
|
|
8
8
|
[
|
|
@@ -51,6 +51,7 @@ function Switch({
|
|
|
51
51
|
className,
|
|
52
52
|
size = "md",
|
|
53
53
|
type = "default",
|
|
54
|
+
side = "left",
|
|
54
55
|
switchText,
|
|
55
56
|
descriptionText,
|
|
56
57
|
showText,
|
|
@@ -82,41 +83,46 @@ function Switch({
|
|
|
82
83
|
if (!hasComposition) {
|
|
83
84
|
return switchEl;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
const textContent = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", "data-slot": "switch-text-content", children: [
|
|
87
|
+
shouldShowText && /* @__PURE__ */ jsx(
|
|
88
|
+
"label",
|
|
89
|
+
{
|
|
90
|
+
className: "text-sm font-medium leading-none",
|
|
91
|
+
"data-slot": "switch-text",
|
|
92
|
+
htmlFor: switchId,
|
|
93
|
+
children: switchText
|
|
94
|
+
}
|
|
95
|
+
),
|
|
96
|
+
shouldShowDescription && /* @__PURE__ */ jsx(
|
|
97
|
+
"p",
|
|
98
|
+
{
|
|
99
|
+
className: "text-xs text-muted-foreground leading-normal",
|
|
100
|
+
"data-slot": "switch-description",
|
|
101
|
+
children: descriptionText
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
] });
|
|
105
|
+
return /* @__PURE__ */ jsx(
|
|
86
106
|
"div",
|
|
87
107
|
{
|
|
88
108
|
className: cn(
|
|
89
109
|
"flex items-start gap-3",
|
|
90
110
|
type === "box" && "rounded-md border border-input p-4"
|
|
91
111
|
),
|
|
112
|
+
"data-side": side,
|
|
92
113
|
"data-slot": "switch-composition",
|
|
93
114
|
"data-type": type,
|
|
94
|
-
children: [
|
|
115
|
+
children: side === "right" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
116
|
+
textContent,
|
|
117
|
+
switchEl
|
|
118
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
95
119
|
switchEl,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"label",
|
|
99
|
-
{
|
|
100
|
-
className: "text-sm font-medium leading-none",
|
|
101
|
-
"data-slot": "switch-text",
|
|
102
|
-
htmlFor: switchId,
|
|
103
|
-
children: switchText
|
|
104
|
-
}
|
|
105
|
-
),
|
|
106
|
-
shouldShowDescription && /* @__PURE__ */ jsx(
|
|
107
|
-
"p",
|
|
108
|
-
{
|
|
109
|
-
className: "text-xs text-muted-foreground leading-normal",
|
|
110
|
-
"data-slot": "switch-description",
|
|
111
|
-
children: descriptionText
|
|
112
|
-
}
|
|
113
|
-
)
|
|
114
|
-
] })
|
|
115
|
-
]
|
|
120
|
+
textContent
|
|
121
|
+
] })
|
|
116
122
|
}
|
|
117
123
|
);
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
export { Switch, switchThumbVariants, switchVariants };
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-TBPPBA3S.js.map
|
|
128
|
+
//# sourceMappingURL=chunk-TBPPBA3S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/Switch/Switch.variants.ts","../src/components/forms/Switch/Switch.tsx"],"names":[],"mappings":"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","file":"chunk-TBPPBA3S.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const switchVariants = cva(\n [\n \"peer inline-flex shrink-0 items-center border border-transparent transition-all outline-none\",\n \"rounded-[var(--switch-track-radius)] shadow-[var(--switch-track-shadow)]\",\n \"bg-[color:var(--switch-track-bg-off)] data-[state=checked]:bg-[color:var(--switch-track-bg-on)]\",\n \"dark:bg-input dark:data-[state=checked]:bg-primary\",\n \"focus-visible:border-[color:var(--switch-track-ring-primary)] focus-visible:ring-[color:var(--switch-track-ring-primary)]/50 focus-visible:ring-[length:var(--switch-track-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"disabled:cursor-not-allowed disabled:bg-[color:var(--switch-track-bg-disabled)] disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--switch-size-sm-h)] w-[var(--switch-size-sm-w)]\",\n md: \"h-[var(--switch-size-md-h)] w-[var(--switch-size-md-w)]\",\n lg: \"h-[var(--switch-size-lg-h)] w-[var(--switch-size-lg-w)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const switchThumbVariants = cva(\n [\n \"pointer-events-none block ring-0 transition-transform\",\n \"rounded-[var(--switch-thumb-radius)] bg-[color:var(--switch-thumb-bg)]\",\n \"dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground\",\n \"data-[state=unchecked]:translate-x-0\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--switch-thumb-size-sm)] data-[state=checked]:translate-x-3\",\n md: \"size-[var(--switch-thumb-size-md)] data-[state=checked]:translate-x-4\",\n lg: \"size-[var(--switch-thumb-size-lg)] data-[state=checked]:translate-x-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type SwitchVariantProps = VariantProps<typeof switchVariants>\nexport type SwitchThumbVariantProps = VariantProps<typeof switchThumbVariants>\n","import type { SwitchProps } from \"./Switch.types\"\n\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { switchThumbVariants, switchVariants } from \"./Switch.variants\"\n\nfunction Switch({\n className,\n size = \"md\",\n type = \"default\",\n side = \"left\",\n switchText,\n descriptionText,\n showText,\n showDescription,\n id,\n ...props\n}: SwitchProps) {\n const generatedId = React.useId()\n const switchId = id ?? generatedId\n\n const shouldShowText =\n (showText ?? Boolean(switchText)) && Boolean(switchText)\n const shouldShowDescription =\n (showDescription ?? Boolean(descriptionText)) && Boolean(descriptionText)\n const hasComposition = shouldShowText || shouldShowDescription\n\n const switchEl = (\n <SwitchPrimitive.Root\n className={cn(switchVariants({ size }), className)}\n data-slot=\"switch\"\n id={switchId}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={switchThumbVariants({ size })}\n data-slot=\"switch-thumb\"\n />\n </SwitchPrimitive.Root>\n )\n\n if (!hasComposition) {\n return switchEl\n }\n\n const textContent = (\n <div className=\"flex flex-col gap-1\" data-slot=\"switch-text-content\">\n {shouldShowText && (\n <label\n className=\"text-sm font-medium leading-none\"\n data-slot=\"switch-text\"\n htmlFor={switchId}\n >\n {switchText}\n </label>\n )}\n {shouldShowDescription && (\n <p\n className=\"text-xs text-muted-foreground leading-normal\"\n data-slot=\"switch-description\"\n >\n {descriptionText}\n </p>\n )}\n </div>\n )\n\n return (\n <div\n className={cn(\n \"flex items-start gap-3\",\n type === \"box\" && \"rounded-md border border-input p-4\"\n )}\n data-side={side}\n data-slot=\"switch-composition\"\n data-type={type}\n >\n {/* Figma Side=Left/Right (1186:2045): lado em que o CONTROLE fica —\n Right põe o texto primeiro no DOM, igual ao frame */}\n {side === \"right\" ? (\n <>\n {textContent}\n {switchEl}\n </>\n ) : (\n <>\n {switchEl}\n {textContent}\n </>\n )}\n </div>\n )\n}\n\nexport { Switch }\n"]}
|
|
@@ -10,9 +10,13 @@ var iconVariants = cva(
|
|
|
10
10
|
default: "text-[color:var(--icon-color-default)]",
|
|
11
11
|
muted: "text-[color:var(--icon-color-muted)]",
|
|
12
12
|
primary: "text-[color:var(--icon-color-primary)]",
|
|
13
|
+
secondary: "text-[color:var(--icon-color-secondary)]",
|
|
13
14
|
destructive: "text-[color:var(--icon-color-destructive)]",
|
|
14
15
|
success: "text-[color:var(--icon-color-success)]",
|
|
15
|
-
warning: "text-[color:var(--icon-color-warning)]"
|
|
16
|
+
warning: "text-[color:var(--icon-color-warning)]",
|
|
17
|
+
info: "text-[color:var(--icon-color-info)]",
|
|
18
|
+
disabled: "text-[color:var(--icon-color-disabled)]",
|
|
19
|
+
inverse: "text-[color:var(--icon-color-inverse)]"
|
|
16
20
|
},
|
|
17
21
|
size: {
|
|
18
22
|
xs: "size-[var(--icon-size-xs)]",
|
|
@@ -66,5 +70,5 @@ function Icon({
|
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
export { Icon, iconVariants };
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
73
|
+
//# sourceMappingURL=chunk-TD2EFGHO.js.map
|
|
74
|
+
//# sourceMappingURL=chunk-TD2EFGHO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/Icon/Icon.tsx"],"names":[],"mappings":";;;;AAMA,IAAM,YAAA,GAAe,GAAA;AAAA,EACnB,uDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wCAAA;AAAA,QACT,KAAA,EAAO,sCAAA;AAAA,QACP,OAAA,EAAS,wCAAA;AAAA,QACT,SAAA,EAAW,0CAAA;AAAA,QACX,WAAA,EAAa,4CAAA;AAAA,QACb,OAAA,EAAS,wCAAA;AAAA,QACT,OAAA,EAAS,wCAAA;AAAA,QACT,IAAA,EAAM,qCAAA;AAAA,QACN,QAAA,EAAU,yCAAA;AAAA,QACV,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,SAAS,IAAA,CAAK;AAAA,EACZ,IAAA,EAAM,aAAA;AAAA,EACN,OAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,KAAA,GAAQ,KAAA;AAAA,EACR,UAAA,GAAa,IAAA;AAAA,EACb,SAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AAIZ,EAAA,MAAM,kBAAA,GAAqB,UAAA,KAAe,UAAA,GAAa,IAAA,GAAO,MAAA,CAAA;AAC9D,EAAA,MAAM,YAAA,GAAe,IAAA,KAAS,CAAC,UAAA,IAAc,YAAY,KAAA,GAAQ,MAAA,CAAA;AAEjE,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,YAAA,CAAa,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QAC9B,IAAA,IAAQ,cAAA;AAAA,QACR,KAAA,IAAS,eAAA;AAAA,QACT;AAAA,OACF;AAAA,MACA,aAAA,EAAa,kBAAA;AAAA,MACb,YAAA,EAAY,SAAA;AAAA,MACZ,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAU,OAAA;AAAA,MACV,IAAA,EAAM,YAAA;AAAA,MACL,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-TD2EFGHO.js","sourcesContent":["import type { IconProps } from \"./Icon.types\"\n\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst iconVariants = cva(\n \"shrink-0 transition-colors motion-reduce:animate-none\",\n {\n variants: {\n variant: {\n default: \"text-[color:var(--icon-color-default)]\",\n muted: \"text-[color:var(--icon-color-muted)]\",\n primary: \"text-[color:var(--icon-color-primary)]\",\n secondary: \"text-[color:var(--icon-color-secondary)]\",\n destructive: \"text-[color:var(--icon-color-destructive)]\",\n success: \"text-[color:var(--icon-color-success)]\",\n warning: \"text-[color:var(--icon-color-warning)]\",\n info: \"text-[color:var(--icon-color-info)]\",\n disabled: \"text-[color:var(--icon-color-disabled)]\",\n inverse: \"text-[color:var(--icon-color-inverse)]\",\n },\n size: {\n xs: \"size-[var(--icon-size-xs)]\",\n sm: \"size-[var(--icon-size-sm)]\",\n md: \"size-[var(--icon-size-md)]\",\n lg: \"size-[var(--icon-size-lg)]\",\n xl: \"size-[var(--icon-size-xl)]\",\n \"2xl\": \"size-[var(--icon-size-2xl)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nfunction Icon({\n name: IconComponent,\n variant,\n size,\n spin = false,\n pulse = false,\n decorative = true,\n className,\n \"aria-label\": ariaLabel,\n \"aria-hidden\": ariaHidden,\n role,\n ref,\n ...props\n}: IconProps) {\n // Determine accessibility attributes\n // If decorative is explicitly true, always hide from screen readers\n // If decorative is false and has aria-label, make it accessible\n const computedAriaHidden = ariaHidden ?? (decorative ? true : undefined)\n const computedRole = role ?? (!decorative && ariaLabel ? \"img\" : undefined)\n\n return (\n <IconComponent\n ref={ref}\n className={cn(\n iconVariants({ variant, size }),\n spin && \"animate-spin\",\n pulse && \"animate-pulse\",\n className\n )}\n aria-hidden={computedAriaHidden}\n aria-label={ariaLabel}\n data-slot=\"icon\"\n focusable=\"false\"\n role={computedRole}\n {...props}\n />\n )\n}\n\nexport { Icon, iconVariants }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-
|
|
1
|
+
import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-OSHGYI2O.js';
|
|
2
2
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -86,5 +86,5 @@ function ConfirmModal({
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
export { ConfirmModal };
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-TVAIT3F5.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-TVAIT3F5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/feedback/ConfirmModal/ConfirmModal.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/feedback/ConfirmModal/ConfirmModal.tsx"],"names":[],"mappings":"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","file":"chunk-TVAIT3F5.js","sourcesContent":["\"use client\"\n\nimport type {\n ConfirmModalProps,\n ConfirmModalSize,\n ConfirmModalVariant,\n} from \"./ConfirmModal.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../AlertDialog\"\n\nconst sizeClasses: Record<ConfirmModalSize, string> = {\n sm: \"sm:max-w-sm\",\n md: \"sm:max-w-md\",\n lg: \"sm:max-w-lg\",\n}\n\nconst confirmButtonVariants: Record<ConfirmModalVariant, string> = {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n warning: \"bg-warning text-warning-fg hover:bg-warning/90\",\n}\n\nconst fallbackDescription = \"Confirme esta ação para continuar.\"\n\n/**\n * ConfirmModal - Simplified confirmation dialog\n *\n * A wrapper over AlertDialog that provides a declarative API for confirmation dialogs.\n * Abstracts the complexity of AlertDialog subcomponents into a simple props interface.\n *\n * @example\n * ```tsx\n * // Basic usage with trigger\n * <ConfirmModal\n * trigger={<Button>Delete</Button>}\n * title=\"Delete item\"\n * description=\"This action cannot be undone.\"\n * variant=\"destructive\"\n * onConfirm={() => deleteItem()}\n * />\n *\n * // Controlled usage\n * <ConfirmModal\n * open={open}\n * onOpenChange={setOpen}\n * title=\"Confirm action\"\n * onConfirm={handleConfirm}\n * />\n * ```\n */\nfunction ConfirmModal({\n open,\n onOpenChange,\n defaultOpen = false,\n title = \"Confirmar\",\n description,\n icon,\n children,\n confirmLabel = \"Confirmar\",\n cancelLabel = \"Cancelar\",\n variant = \"default\",\n onConfirm,\n onCancel,\n loading = false,\n disabled = false,\n trigger,\n className,\n size = \"md\",\n}: ConfirmModalProps) {\n const isDisabled = loading || disabled\n const accessibleDescription = description ?? fallbackDescription\n\n const handleConfirm = (\n event: React.MouseEvent<HTMLButtonElement>\n ): void => {\n event.preventDefault()\n if (onConfirm) {\n void onConfirm()\n }\n }\n\n const handleCancel = (): void => {\n onCancel?.()\n onOpenChange?.(false)\n }\n\n return (\n <AlertDialog\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={onOpenChange}\n >\n {trigger && <AlertDialogTrigger asChild>{trigger}</AlertDialogTrigger>}\n <AlertDialogContent\n className={cn(sizeClasses[size], className)}\n data-slot=\"confirm-modal\"\n >\n <AlertDialogHeader>\n {icon && (\n <div className=\"mb-2\" data-slot=\"confirm-modal-icon\">\n {icon}\n </div>\n )}\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription className={description ? undefined : \"sr-only\"}>\n {accessibleDescription}\n </AlertDialogDescription>\n </AlertDialogHeader>\n {children && (\n <div data-slot=\"confirm-modal-content\">{children}</div>\n )}\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isDisabled} onClick={handleCancel}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n className={cn(confirmButtonVariants[variant])}\n disabled={isDisabled}\n onClick={handleConfirm}\n >\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n\nexport { ConfirmModal }\n"]}
|
|
@@ -38,7 +38,10 @@ var itemVariants = cva(
|
|
|
38
38
|
default: "bg-transparent",
|
|
39
39
|
outline: "border-border",
|
|
40
40
|
muted: "bg-muted/50",
|
|
41
|
-
active: "bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium"
|
|
41
|
+
active: "bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium",
|
|
42
|
+
// Figma Style=Metric (1583:19541): linha label+valor justificada,
|
|
43
|
+
// sem padding/altura de card
|
|
44
|
+
metric: "bg-transparent justify-between flex-nowrap"
|
|
42
45
|
},
|
|
43
46
|
size: {
|
|
44
47
|
sm: "py-3 px-4 gap-2.5 min-h-7",
|
|
@@ -50,6 +53,11 @@ var itemVariants = cva(
|
|
|
50
53
|
false: ""
|
|
51
54
|
}
|
|
52
55
|
},
|
|
56
|
+
compoundVariants: [
|
|
57
|
+
{ variant: "metric", size: "sm", className: "p-0 min-h-0" },
|
|
58
|
+
{ variant: "metric", size: "default", className: "p-0 min-h-0" },
|
|
59
|
+
{ variant: "metric", size: "lg", className: "p-0 min-h-0" }
|
|
60
|
+
],
|
|
53
61
|
defaultVariants: {
|
|
54
62
|
variant: "default",
|
|
55
63
|
size: "default",
|
|
@@ -226,5 +234,5 @@ function ItemFooter({ className, ...props }) {
|
|
|
226
234
|
}
|
|
227
235
|
|
|
228
236
|
export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, itemMediaVariants, itemVariants };
|
|
229
|
-
//# sourceMappingURL=chunk-
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
237
|
+
//# sourceMappingURL=chunk-TX4GUAZ6.js.map
|
|
238
|
+
//# sourceMappingURL=chunk-TX4GUAZ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Item/Item.tsx"],"names":[],"mappings":"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","file":"chunk-TX4GUAZ6.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"group/item-group flex flex-col\", className)}\n data-slot=\"item-group\"\n role=\"list\"\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Divider>) {\n return (\n <Divider\n className={cn(\"my-0\", className)}\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-[colors,transform,box-shadow] [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n active: \"bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium\",\n // Figma Style=Metric (1583:19541): linha label+valor justificada,\n // sem padding/altura de card\n metric: \"bg-transparent justify-between flex-nowrap\",\n },\n size: {\n sm: \"py-3 px-4 gap-2.5 min-h-7\",\n default: \"p-4 gap-4 min-h-8\",\n lg: \"py-3.5 px-4 gap-3.5 min-h-14\",\n },\n interactive: {\n true: \"cursor-pointer hover:translate-y-px active:translate-y-0.5 motion-reduce:transform-none\",\n false: \"\",\n },\n },\n compoundVariants: [\n { variant: \"metric\", size: \"sm\", className: \"p-0 min-h-0\" },\n { variant: \"metric\", size: \"default\", className: \"p-0 min-h-0\" },\n { variant: \"metric\", size: \"lg\", className: \"p-0 min-h-0\" },\n ],\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n interactive: false,\n },\n }\n)\n\nexport interface ItemEventPayload {\n /** Whether the item is currently in active state */\n active: boolean\n /** Reflects the `data-id` prop */\n id?: string\n /** Event timestamp (Date.now()) */\n timestamp: number\n}\n\ninterface ItemProps\n extends Omit<React.ComponentProps<\"div\">, \"onClick\" | \"onFocus\" | \"onKeyDown\">,\n VariantProps<typeof itemVariants> {\n /** Shorthand for `variant=\"active\"`. When both passed, `variant` wins. */\n active?: boolean\n asChild?: boolean\n /** Reflected to `data-id` and to the event payload. */\n \"data-id\"?: string\n /** Click handler — receives the event + an ItemEventPayload. */\n onClick?: (\n event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onFocus?: (\n event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n}\n\nfunction Item({\n className,\n variant,\n active = false,\n interactive = false,\n size = \"default\",\n asChild = false,\n \"data-id\": dataId,\n onClick,\n onFocus,\n onKeyDown,\n ...props\n}: ItemProps) {\n // active prop is shorthand for variant=\"active\"; explicit variant wins\n const resolvedVariant = variant ?? (active ? \"active\" : \"default\")\n const isActive = resolvedVariant === \"active\"\n\n // Root element selection: asChild > interactive=button > default div\n // (when asChild, Radix Slot proxies to the child)\n // Cast to ElementType so the spread of generic props works against any root\n const Comp = (asChild ? Slot : interactive ? \"button\" : \"div\") as React.ElementType\n\n const createPayload = React.useCallback(\n (): ItemEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n active: isActive,\n timestamp: Date.now(),\n }),\n [dataId, isActive],\n )\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload],\n )\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>) => {\n onFocus?.(event, createPayload())\n },\n [onFocus, createPayload],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n onKeyDown?.(event, createPayload())\n },\n [onKeyDown, createPayload],\n )\n\n return (\n <Comp\n aria-current={isActive && interactive ? \"page\" : undefined}\n className={cn(itemVariants({ variant: resolvedVariant, size, interactive, className }))}\n data-active={isActive || undefined}\n data-id={dataId}\n data-interactive={interactive ?? undefined}\n data-size={size}\n data-slot=\"item\"\n data-variant={resolvedVariant}\n type={interactive && !asChild ? \"button\" : undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n className={cn(itemMediaVariants({ variant, className }))}\n data-slot=\"item-media\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n data-slot=\"item-content\"\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n data-slot=\"item-title\"\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n data-slot=\"item-description\"\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"item-actions\"\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-header\"\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-footer\"\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n itemMediaVariants,\n ItemSeparator,\n ItemTitle,\n itemVariants,\n}\n"]}
|
|
@@ -12,10 +12,25 @@ function RadarChart({
|
|
|
12
12
|
showGrid = true,
|
|
13
13
|
showDots = true,
|
|
14
14
|
fillOpacity = 0.3,
|
|
15
|
+
gridType = "polygon",
|
|
16
|
+
gridFilled = false,
|
|
17
|
+
gridRadialLines = true,
|
|
18
|
+
gridPolarRadius,
|
|
19
|
+
linesOnly = false,
|
|
15
20
|
...props
|
|
16
21
|
}) {
|
|
22
|
+
const firstKey = dataKeys[0];
|
|
17
23
|
return /* @__PURE__ */ jsx(ChartContainer, { className: cn("aspect-square", className), config, ...props, children: /* @__PURE__ */ jsxs(RadarChart$1, { data, children: [
|
|
18
|
-
showGrid && /* @__PURE__ */ jsx(
|
|
24
|
+
showGrid && /* @__PURE__ */ jsx(
|
|
25
|
+
PolarGrid,
|
|
26
|
+
{
|
|
27
|
+
style: gridFilled && firstKey ? { fill: `var(--color-${firstKey})` } : void 0,
|
|
28
|
+
className: cn(gridFilled && "opacity-20"),
|
|
29
|
+
gridType,
|
|
30
|
+
polarRadius: gridPolarRadius,
|
|
31
|
+
radialLines: gridRadialLines
|
|
32
|
+
}
|
|
33
|
+
),
|
|
19
34
|
/* @__PURE__ */ jsx(PolarAngleAxis, { dataKey: angleKey }),
|
|
20
35
|
/* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
21
36
|
dataKeys.map((key) => /* @__PURE__ */ jsx(
|
|
@@ -23,9 +38,10 @@ function RadarChart({
|
|
|
23
38
|
{
|
|
24
39
|
dataKey: key,
|
|
25
40
|
dot: showDots ? { r: 3 } : false,
|
|
26
|
-
fill: `var(--color-${key})`,
|
|
27
|
-
fillOpacity,
|
|
28
|
-
stroke: `var(--color-${key})
|
|
41
|
+
fill: linesOnly ? "none" : `var(--color-${key})`,
|
|
42
|
+
fillOpacity: linesOnly ? 0 : fillOpacity,
|
|
43
|
+
stroke: `var(--color-${key})`,
|
|
44
|
+
strokeWidth: linesOnly ? 2 : 1
|
|
29
45
|
},
|
|
30
46
|
key
|
|
31
47
|
))
|
|
@@ -33,5 +49,5 @@ function RadarChart({
|
|
|
33
49
|
}
|
|
34
50
|
|
|
35
51
|
export { RadarChart };
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-U55YU7DB.js.map
|
|
53
|
+
//# sourceMappingURL=chunk-U55YU7DB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/RadarChart/RadarChart.tsx"],"names":["RechartsRadarChart"],"mappings":";;;;;AAsBA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,SAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,WAAA,GAAc,GAAA;AAAA,EACd,QAAA,GAAW,SAAA;AAAA,EACX,UAAA,GAAa,KAAA;AAAA,EACb,eAAA,GAAkB,IAAA;AAAA,EAClB,eAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,QAAA,GAAW,SAAS,CAAC,CAAA;AAE3B,EAAA,uBACE,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EAAG,MAAA,EAAiB,GAAG,KAAA,EAC7E,QAAA,kBAAA,IAAA,CAACA,YAAA,EAAA,EAAmB,IAAA,EACjB,QAAA,EAAA;AAAA,IAAA,QAAA,oBACC,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEC,KAAA,EACE,cAAc,QAAA,GACV,EAAE,MAAM,CAAA,YAAA,EAAe,QAAQ,KAAI,GACnC,MAAA;AAAA,QAEN,SAAA,EAAW,EAAA,CAAG,UAAA,IAAc,YAAY,CAAA;AAAA,QACxC,QAAA;AAAA,QACA,WAAA,EAAa,eAAA;AAAA,QACb,WAAA,EAAa;AAAA;AAAA,KACf;AAAA,oBAEF,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,oBACnC,GAAA,CAAC,YAAA,EAAA,EAAa,OAAA,kBAAS,GAAA,CAAC,uBAAoB,CAAA,EAAI,CAAA;AAAA,IAC/C,QAAA,CAAS,GAAA,CAAI,CAAC,GAAA,qBACb,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,OAAA,EAAS,GAAA;AAAA,QACT,GAAA,EAAK,QAAA,GAAW,EAAE,CAAA,EAAG,GAAE,GAAI,KAAA;AAAA,QAC3B,IAAA,EAAM,SAAA,GAAY,MAAA,GAAS,CAAA,YAAA,EAAe,GAAG,CAAA,CAAA,CAAA;AAAA,QAC7C,WAAA,EAAa,YAAY,CAAA,GAAI,WAAA;AAAA,QAC7B,MAAA,EAAQ,eAAe,GAAG,CAAA,CAAA,CAAA;AAAA,QAC1B,WAAA,EAAa,YAAY,CAAA,GAAI;AAAA,OAAA;AAAA,MANxB;AAAA,KAQR;AAAA,GAAA,EACH,CAAA,EACF,CAAA;AAEJ","file":"chunk-U55YU7DB.js","sourcesContent":["\"use client\"\n\nimport type { RadarChartProps } from \"./RadarChart.types\"\n\nimport {\n PolarAngleAxis,\n PolarGrid,\n Radar,\n RadarChart as RechartsRadarChart,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from \"../Chart\"\n\n/**\n * Os 9 Types do Figma (1147:3565) são presets destas props ortogonais\n * (receitas shadcn charts): Basic (defaults) · Dots (showDots) · Multiple\n * (2+ dataKeys) · Lines Only (linesOnly) · Grid Custom (gridRadialLines\n * false + gridPolarRadius) · Grid Filled (gridFilled) · Grid Circle\n * (gridType circle) · No lines (gridRadialLines false) · Grid Circle\n * Filled (circle + filled).\n */\nfunction RadarChart({\n className,\n config,\n data,\n dataKeys,\n angleKey = \"subject\",\n showGrid = true,\n showDots = true,\n fillOpacity = 0.3,\n gridType = \"polygon\",\n gridFilled = false,\n gridRadialLines = true,\n gridPolarRadius,\n linesOnly = false,\n ...props\n}: RadarChartProps) {\n const firstKey = dataKeys[0]\n\n return (\n <ChartContainer className={cn(\"aspect-square\", className)} config={config} {...props}>\n <RechartsRadarChart data={data}>\n {showGrid && (\n <PolarGrid\n // fill herda pros níveis da grade (receita shadcn Grid Filled)\n style={\n gridFilled && firstKey\n ? { fill: `var(--color-${firstKey})` }\n : undefined\n }\n className={cn(gridFilled && \"opacity-20\")}\n gridType={gridType}\n polarRadius={gridPolarRadius}\n radialLines={gridRadialLines}\n />\n )}\n <PolarAngleAxis dataKey={angleKey} />\n <ChartTooltip content={<ChartTooltipContent />} />\n {dataKeys.map((key) => (\n <Radar\n key={key}\n dataKey={key}\n dot={showDots ? { r: 3 } : false}\n fill={linesOnly ? \"none\" : `var(--color-${key})`}\n fillOpacity={linesOnly ? 0 : fillOpacity}\n stroke={`var(--color-${key})`}\n strokeWidth={linesOnly ? 2 : 1}\n />\n ))}\n </RechartsRadarChart>\n </ChartContainer>\n )\n}\n\nexport { RadarChart }\n"]}
|
|
@@ -40,6 +40,7 @@ var progressCircleTrackVariants = cva(
|
|
|
40
40
|
color: {
|
|
41
41
|
default: "stroke-[color:var(--progress-circle-track-color-default)]",
|
|
42
42
|
primary: "stroke-[color:var(--progress-circle-track-color-primary)]",
|
|
43
|
+
secondary: "stroke-[color:var(--progress-circle-track-color-secondary)]",
|
|
43
44
|
success: "stroke-[color:var(--progress-circle-track-color-success)]",
|
|
44
45
|
warning: "stroke-[color:var(--progress-circle-track-color-warning)]",
|
|
45
46
|
error: "stroke-[color:var(--progress-circle-track-color-error)]"
|
|
@@ -57,6 +58,7 @@ var progressCircleIndicatorVariants = cva(
|
|
|
57
58
|
color: {
|
|
58
59
|
default: "stroke-[color:var(--progress-circle-indicator-color-default)]",
|
|
59
60
|
primary: "stroke-[color:var(--progress-circle-indicator-color-primary)]",
|
|
61
|
+
secondary: "stroke-[color:var(--progress-circle-indicator-color-secondary)]",
|
|
60
62
|
success: "stroke-[color:var(--progress-circle-indicator-color-success)]",
|
|
61
63
|
warning: "stroke-[color:var(--progress-circle-indicator-color-warning)]",
|
|
62
64
|
error: "stroke-[color:var(--progress-circle-indicator-color-error)]"
|
|
@@ -301,5 +303,5 @@ function ProgressCircle({
|
|
|
301
303
|
}
|
|
302
304
|
|
|
303
305
|
export { PROGRESS_CIRCLE_SIZES, ProgressCircle, progressCircleContainerVariants, progressCircleIndicatorVariants, progressCircleLabelVariants, progressCircleTrackVariants, progressCircleValueVariants };
|
|
304
|
-
//# sourceMappingURL=chunk-
|
|
305
|
-
//# sourceMappingURL=chunk-
|
|
306
|
+
//# sourceMappingURL=chunk-VI3QWOII.js.map
|
|
307
|
+
//# sourceMappingURL=chunk-VI3QWOII.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/ProgressCircle/ProgressCircle.variants.ts","../src/components/primitives/ProgressCircle/ProgressCircle.tsx"],"names":[],"mappings":"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","file":"chunk-VI3QWOII.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Size configuration for ProgressCircle\n * Maps size variant to actual pixel dimensions and stroke widths.\n *\n * Values are synced with CSS variables from @etus/tokens:\n * - --progress-circle-size-{size}-diameter\n * - --progress-circle-size-{size}-stroke-width\n *\n * Numeric values are required here for SVG attribute calculations\n * (radius, circumference, path coordinates).\n */\nexport const PROGRESS_CIRCLE_SIZES = {\n xxs: { diameter: 64, strokeWidth: 4, fontSize: \"text-sm\", labelSize: \"text-xs\" },\n xs: { diameter: 160, strokeWidth: 8, fontSize: \"text-2xl\", labelSize: \"text-sm\" },\n sm: { diameter: 200, strokeWidth: 10, fontSize: \"text-3xl\", labelSize: \"text-sm\" },\n md: { diameter: 240, strokeWidth: 12, fontSize: \"text-4xl\", labelSize: \"text-base\" },\n lg: { diameter: 280, strokeWidth: 14, fontSize: \"text-5xl\", labelSize: \"text-base\" },\n} as const\n\n/**\n * Container variants for the progress circle\n * Uses CSS custom properties from @etus/tokens for sizing\n */\nexport const progressCircleContainerVariants = cva(\n \"relative inline-flex items-center justify-center\",\n {\n variants: {\n size: {\n xxs: \"w-[var(--progress-circle-size-xxs-diameter)] h-[var(--progress-circle-size-xxs-diameter)]\",\n xs: \"w-[var(--progress-circle-size-xs-diameter)] h-[var(--progress-circle-size-xs-diameter)]\",\n sm: \"w-[var(--progress-circle-size-sm-diameter)] h-[var(--progress-circle-size-sm-diameter)]\",\n md: \"w-[var(--progress-circle-size-md-diameter)] h-[var(--progress-circle-size-md-diameter)]\",\n lg: \"w-[var(--progress-circle-size-lg-diameter)] h-[var(--progress-circle-size-lg-diameter)]\",\n },\n shape: {\n circle: \"\",\n \"half-circle\": \"!h-auto\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"circle\",\n },\n }\n)\n\n/**\n * Track (background circle) color variants\n */\nexport const progressCircleTrackVariants = cva(\n \"transition-colors\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-track-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-track-color-primary)]\",\n secondary: \"stroke-[color:var(--progress-circle-track-color-secondary)]\",\n success: \"stroke-[color:var(--progress-circle-track-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-track-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-track-color-error)]\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n }\n)\n\n/**\n * Indicator (progress arc) color variants\n */\nexport const progressCircleIndicatorVariants = cva(\n \"transition-all duration-700 ease-out motion-reduce:transition-none\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-indicator-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-indicator-color-primary)]\",\n secondary: \"stroke-[color:var(--progress-circle-indicator-color-secondary)]\",\n success: \"stroke-[color:var(--progress-circle-indicator-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-indicator-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-indicator-color-error)]\",\n },\n indeterminate: {\n true: \"animate-spin origin-center\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"default\",\n indeterminate: false,\n },\n }\n)\n\n/**\n * Value text variants (percentage in center)\n */\nexport const progressCircleValueVariants = cva(\n \"font-[var(--progress-circle-value-font-weight)] tabular-nums text-[color:var(--progress-circle-value-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-sm\",\n xs: \"text-2xl\",\n sm: \"text-3xl\",\n md: \"text-4xl\",\n lg: \"text-5xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Label text variants (below percentage)\n */\nexport const progressCircleLabelVariants = cva(\n \"text-[color:var(--progress-circle-label-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-xs\",\n xs: \"text-sm\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ProgressCircleContainerVariants = VariantProps<typeof progressCircleContainerVariants>\nexport type ProgressCircleTrackVariants = VariantProps<typeof progressCircleTrackVariants>\nexport type ProgressCircleIndicatorVariants = VariantProps<typeof progressCircleIndicatorVariants>\n","\"use client\"\n\nimport type { ProgressCircleProps } from \"./ProgressCircle.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n PROGRESS_CIRCLE_SIZES,\n progressCircleContainerVariants,\n progressCircleIndicatorVariants,\n progressCircleLabelVariants,\n progressCircleTrackVariants,\n progressCircleValueVariants,\n} from \"./ProgressCircle.variants\"\n\n/**\n * Default format function for progress value\n */\nconst defaultFormatValue = (value: number): string => `${String(value)}%`\n\n/**\n * ProgressCircle component for displaying circular progress indicators.\n *\n * Built with SVG for smooth rendering and full accessibility support.\n * Supports multiple sizes, shapes (full circle and half-circle),\n * color variants, and optional labels.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <ProgressCircle value={75} />\n *\n * // With label\n * <ProgressCircle value={60} label=\"Active users\" />\n *\n * // Half-circle variant\n * <ProgressCircle value={80} shape=\"half-circle\" />\n *\n * // Different sizes and colors\n * <ProgressCircle value={50} size=\"lg\" color=\"warning\" />\n * ```\n */\nfunction ProgressCircle({\n value = 0,\n max = 100,\n indeterminate = false,\n size = \"md\",\n shape = \"circle\",\n color = \"default\",\n label,\n formatValue = defaultFormatValue,\n showValue = true,\n radius: customRadius,\n strokeWidth: customStrokeWidth,\n className,\n animate = true,\n tooltip,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n}: ProgressCircleProps) {\n // Clamp the raw value between 0 and max first\n const clampedRawValue = Math.min(max, Math.max(0, value))\n\n // Calculate percentage based on clamped value and max\n const clampedValue = (clampedRawValue / max) * 100\n\n // Animation state - initialize based on animate and indeterminate props\n const [isVisible, setIsVisible] = React.useState(!animate || indeterminate)\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // Use IntersectionObserver to trigger animation only when in viewport\n React.useEffect(() => {\n // Skip if not animating, indeterminate, or already visible\n if (!animate || indeterminate || isVisible) {\n return\n }\n\n const element = containerRef.current\n if (!element) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0]\n if (entry?.isIntersecting) {\n requestAnimationFrame(() => {\n setIsVisible(true)\n })\n observer.disconnect()\n }\n },\n { threshold: 0.1 }\n )\n\n observer.observe(element)\n\n return () => { observer.disconnect(); }\n }, [animate, indeterminate, isVisible])\n\n // Get size configuration\n const sizeConfig = PROGRESS_CIRCLE_SIZES[size]\n const strokeWidth = customStrokeWidth ?? sizeConfig.strokeWidth\n // Use custom radius if provided, otherwise use size preset\n const diameter = customRadius ? (customRadius * 2 + strokeWidth) : sizeConfig.diameter\n\n // Calculate SVG dimensions\n const radius = (diameter - strokeWidth) / 2\n const center = diameter / 2\n\n // Calculate circumference and progress\n const isHalfCircle = shape === \"half-circle\"\n const circumference = isHalfCircle ? Math.PI * radius : 2 * Math.PI * radius\n\n // For indeterminate, show ~25% of the arc; otherwise use the actual value\n // For animation, start at 0 and animate to the target value when visible\n const displayValue = indeterminate ? 25 : (isVisible ? clampedValue : 0)\n const progressOffset = circumference - (displayValue / 100) * circumference\n\n // SVG viewBox and path calculations\n const viewBoxHeight = isHalfCircle ? diameter / 2 + strokeWidth : diameter\n\n // For half-circle, we use an arc path instead of a circle\n const getPath = () => {\n if (isHalfCircle) {\n // Arc from left to right (180 degrees at top)\n const startX = strokeWidth / 2\n const startY = center\n const endX = diameter - strokeWidth / 2\n const endY = center\n return `M ${String(startX)} ${String(startY)} A ${String(radius)} ${String(radius)} 0 0 1 ${String(endX)} ${String(endY)}`\n }\n return\n }\n\n // Format the clamped value for display\n const formattedValue = formatValue(clampedRawValue)\n\n const progressCircleElement = (\n <div\n ref={containerRef}\n className={cn(\n progressCircleContainerVariants({ size, shape }),\n className\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedRawValue}\n data-indeterminate={indeterminate || undefined}\n data-slot=\"progress-circle\"\n role=\"progressbar\"\n >\n <svg\n className={isHalfCircle ? \"rotate-0\" : \"\"}\n data-slot=\"progress-circle-svg\"\n height={viewBoxHeight}\n viewBox={`0 0 ${String(diameter)} ${String(viewBoxHeight)}`}\n width={diameter}\n >\n {isHalfCircle ? (\n <>\n {/* Half-circle track */}\n <path\n className={cn(progressCircleTrackVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n {/* Half-circle indicator */}\n <path\n className={cn(progressCircleIndicatorVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n ) : (\n <>\n {/* Full circle track */}\n <circle\n className={cn(progressCircleTrackVariants({ color }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n r={radius}\n strokeWidth={strokeWidth}\n />\n {/* Full circle indicator */}\n <circle\n style={{\n transform: indeterminate ? undefined : \"rotate(-90deg)\",\n transformOrigin: \"center\",\n }}\n className={cn(progressCircleIndicatorVariants({ color, indeterminate }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n r={radius}\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n )}\n </svg>\n\n {/* Center content (value and label) */}\n <div\n className={cn(\n \"absolute flex flex-col items-center justify-center\",\n isHalfCircle && \"bottom-0\"\n )}\n data-slot=\"progress-circle-content\"\n >\n {showValue && !indeterminate && (\n <span\n className={cn(progressCircleValueVariants({ size }))}\n data-slot=\"progress-circle-value\"\n >\n {formattedValue}\n </span>\n )}\n {label && (\n <span\n className={cn(progressCircleLabelVariants({ size }))}\n data-slot=\"progress-circle-label\"\n >\n {label}\n </span>\n )}\n </div>\n </div>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {progressCircleElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return progressCircleElement\n}\n\nexport { ProgressCircle }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-
|
|
1
|
+
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-FLXU5LWR.js';
|
|
2
2
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import { EyeIcon, ClockIcon, CheckIcon, AlertCircleIcon, ArchiveIcon, ChevronDownIcon } from 'lucide-react';
|
|
4
4
|
import { useId, useState, useMemo } from 'react';
|
|
@@ -282,5 +282,5 @@ function TaskStatus({
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
export { ALL_STATUSES, DEFAULT_STATUS_CONFIGS, TaskStatus, taskStatusColorVariants, taskStatusIconVariants, taskStatusLabelVariants, taskStatusMenuItemVariants, taskStatusTriggerVariants, taskStatusVariants };
|
|
285
|
-
//# sourceMappingURL=chunk-
|
|
286
|
-
//# sourceMappingURL=chunk-
|
|
285
|
+
//# sourceMappingURL=chunk-VYCXCOUH.js.map
|
|
286
|
+
//# sourceMappingURL=chunk-VYCXCOUH.js.map
|