@misael703/ui 1.58.0 → 1.59.0

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.
Files changed (41) hide show
  1. package/dist/{chunk-CPMQ2DFS.js → chunk-2ET7IM4U.js} +77 -33
  2. package/dist/chunk-2ET7IM4U.js.map +1 -0
  3. package/dist/{chunk-HKHGODQE.js → chunk-4HHP3WT7.js} +4 -4
  4. package/dist/{chunk-HKHGODQE.js.map → chunk-4HHP3WT7.js.map} +1 -1
  5. package/dist/{chunk-S3DEFKS5.js → chunk-DLDTUVHR.js} +3 -3
  6. package/dist/{chunk-S3DEFKS5.js.map → chunk-DLDTUVHR.js.map} +1 -1
  7. package/dist/{chunk-O6FCBNWN.mjs → chunk-EJY4QWHT.mjs} +77 -33
  8. package/dist/chunk-EJY4QWHT.mjs.map +1 -0
  9. package/dist/{chunk-G4OOD6AR.mjs → chunk-F5EK5PIR.mjs} +3 -3
  10. package/dist/{chunk-G4OOD6AR.mjs.map → chunk-F5EK5PIR.mjs.map} +1 -1
  11. package/dist/{chunk-6OBFBETV.mjs → chunk-I7JH3OEO.mjs} +3 -3
  12. package/dist/{chunk-6OBFBETV.mjs.map → chunk-I7JH3OEO.mjs.map} +1 -1
  13. package/dist/{chunk-T46LLZHX.js → chunk-KNQOG43N.js} +4 -4
  14. package/dist/{chunk-T46LLZHX.js.map → chunk-KNQOG43N.js.map} +1 -1
  15. package/dist/{chunk-MSDFMVIF.js → chunk-NPUNAVWM.js} +3 -3
  16. package/dist/{chunk-MSDFMVIF.js.map → chunk-NPUNAVWM.js.map} +1 -1
  17. package/dist/{chunk-J2HHAZHV.mjs → chunk-X7BV2JFX.mjs} +3 -3
  18. package/dist/{chunk-J2HHAZHV.mjs.map → chunk-X7BV2JFX.mjs.map} +1 -1
  19. package/dist/{chunk-XJHK3RH5.mjs → chunk-ZAKJKBUX.mjs} +3 -3
  20. package/dist/{chunk-XJHK3RH5.mjs.map → chunk-ZAKJKBUX.mjs.map} +1 -1
  21. package/dist/components/AppShell.js +4 -4
  22. package/dist/components/AppShell.mjs +2 -2
  23. package/dist/components/Charts.d.mts +25 -15
  24. package/dist/components/Charts.d.ts +25 -15
  25. package/dist/components/Charts.js +6 -6
  26. package/dist/components/Charts.mjs +1 -1
  27. package/dist/components/Commerce.js +14 -14
  28. package/dist/components/Commerce.mjs +3 -3
  29. package/dist/components/Editing.js +9 -9
  30. package/dist/components/Editing.mjs +3 -3
  31. package/dist/components/Overlay.js +4 -4
  32. package/dist/components/Overlay.mjs +2 -2
  33. package/dist/hooks/index.js +5 -5
  34. package/dist/hooks/index.mjs +1 -1
  35. package/dist/index.d.mts +1 -1
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.js +33 -33
  38. package/dist/index.mjs +7 -7
  39. package/package.json +1 -1
  40. package/dist/chunk-CPMQ2DFS.js.map +0 -1
  41. package/dist/chunk-O6FCBNWN.mjs.map +0 -1
package/dist/index.js CHANGED
@@ -2,11 +2,11 @@
2
2
  'use strict';
3
3
 
4
4
  require('./chunk-2LTV7VB5.js');
5
- require('./chunk-4REALDR3.js');
6
5
  var chunk3PYU6OHQ_js = require('./chunk-3PYU6OHQ.js');
7
6
  var chunkKY6OH2IK_js = require('./chunk-KY6OH2IK.js');
8
7
  var chunkYHB3BPZR_js = require('./chunk-YHB3BPZR.js');
9
8
  var chunkNBWCHPRN_js = require('./chunk-NBWCHPRN.js');
9
+ require('./chunk-4REALDR3.js');
10
10
  var chunkZXHOBEQM_js = require('./chunk-ZXHOBEQM.js');
11
11
  var chunkLYT27EIM_js = require('./chunk-LYT27EIM.js');
12
12
  var chunkS3MMU3LW_js = require('./chunk-S3MMU3LW.js');
@@ -20,7 +20,7 @@ var chunkBULIPFOG_js = require('./chunk-BULIPFOG.js');
20
20
  var chunkCTOPKHEE_js = require('./chunk-CTOPKHEE.js');
21
21
  var chunkTX4BUYX4_js = require('./chunk-TX4BUYX4.js');
22
22
  var chunkF237OMT6_js = require('./chunk-F237OMT6.js');
23
- var chunkHKHGODQE_js = require('./chunk-HKHGODQE.js');
23
+ var chunk4HHP3WT7_js = require('./chunk-4HHP3WT7.js');
24
24
  var chunk3IZYL42M_js = require('./chunk-3IZYL42M.js');
25
25
  var chunkDOAGIAIQ_js = require('./chunk-DOAGIAIQ.js');
26
26
  var chunk3JRP3DGM_js = require('./chunk-3JRP3DGM.js');
@@ -28,8 +28,8 @@ var chunk6II4NJQM_js = require('./chunk-6II4NJQM.js');
28
28
  var chunkJKBJ2AKX_js = require('./chunk-JKBJ2AKX.js');
29
29
  var chunkZKDKPBUN_js = require('./chunk-ZKDKPBUN.js');
30
30
  var chunkSHIQMHQP_js = require('./chunk-SHIQMHQP.js');
31
- var chunkT46LLZHX_js = require('./chunk-T46LLZHX.js');
32
- var chunkS3DEFKS5_js = require('./chunk-S3DEFKS5.js');
31
+ var chunkKNQOG43N_js = require('./chunk-KNQOG43N.js');
32
+ var chunkDLDTUVHR_js = require('./chunk-DLDTUVHR.js');
33
33
  var chunk2PNXLTEM_js = require('./chunk-2PNXLTEM.js');
34
34
  var chunkXF445GS6_js = require('./chunk-XF445GS6.js');
35
35
  var chunkMW7HQCFC_js = require('./chunk-MW7HQCFC.js');
@@ -42,12 +42,12 @@ var chunkMVJITG75_js = require('./chunk-MVJITG75.js');
42
42
  var chunkG3V4UOZW_js = require('./chunk-G3V4UOZW.js');
43
43
  var chunkWAGWB35Q_js = require('./chunk-WAGWB35Q.js');
44
44
  var chunk3PXYCXDW_js = require('./chunk-3PXYCXDW.js');
45
- var chunkMSDFMVIF_js = require('./chunk-MSDFMVIF.js');
45
+ var chunkNPUNAVWM_js = require('./chunk-NPUNAVWM.js');
46
46
  require('./chunk-HT43MPKW.js');
47
+ require('./chunk-55P5FA5Q.js');
47
48
  require('./chunk-D2H4VZVL.js');
48
49
  require('./chunk-FL4ZCWUF.js');
49
50
  require('./chunk-NPXEZCTA.js');
50
- require('./chunk-55P5FA5Q.js');
51
51
  var chunk6D5UP23V_js = require('./chunk-6D5UP23V.js');
52
52
  var chunkA42WMR4M_js = require('./chunk-A42WMR4M.js');
53
53
  var chunkXMLBKK7X_js = require('./chunk-XMLBKK7X.js');
@@ -56,7 +56,7 @@ var chunkAJ22SXI2_js = require('./chunk-AJ22SXI2.js');
56
56
  var chunkEUB4PHPI_js = require('./chunk-EUB4PHPI.js');
57
57
  var chunkGGILBESE_js = require('./chunk-GGILBESE.js');
58
58
  var chunkC4AKMVDZ_js = require('./chunk-C4AKMVDZ.js');
59
- var chunkCPMQ2DFS_js = require('./chunk-CPMQ2DFS.js');
59
+ var chunk2ET7IM4U_js = require('./chunk-2ET7IM4U.js');
60
60
  var chunkPASF6T4H_js = require('./chunk-PASF6T4H.js');
61
61
 
62
62
 
@@ -351,27 +351,27 @@ Object.defineProperty(exports, "UserCell", {
351
351
  });
352
352
  Object.defineProperty(exports, "ConfirmDialog", {
353
353
  enumerable: true,
354
- get: function () { return chunkHKHGODQE_js.ConfirmDialog; }
354
+ get: function () { return chunk4HHP3WT7_js.ConfirmDialog; }
355
355
  });
356
356
  Object.defineProperty(exports, "DescriptionList", {
357
357
  enumerable: true,
358
- get: function () { return chunkHKHGODQE_js.DescriptionList; }
358
+ get: function () { return chunk4HHP3WT7_js.DescriptionList; }
359
359
  });
360
360
  Object.defineProperty(exports, "DescriptionListItem", {
361
361
  enumerable: true,
362
- get: function () { return chunkHKHGODQE_js.DescriptionListItem; }
362
+ get: function () { return chunk4HHP3WT7_js.DescriptionListItem; }
363
363
  });
364
364
  Object.defineProperty(exports, "DiffViewer", {
365
365
  enumerable: true,
366
- get: function () { return chunkHKHGODQE_js.DiffViewer; }
366
+ get: function () { return chunk4HHP3WT7_js.DiffViewer; }
367
367
  });
368
368
  Object.defineProperty(exports, "EditableCell", {
369
369
  enumerable: true,
370
- get: function () { return chunkHKHGODQE_js.EditableCell; }
370
+ get: function () { return chunk4HHP3WT7_js.EditableCell; }
371
371
  });
372
372
  Object.defineProperty(exports, "TransferList", {
373
373
  enumerable: true,
374
- get: function () { return chunkHKHGODQE_js.TransferList; }
374
+ get: function () { return chunk4HHP3WT7_js.TransferList; }
375
375
  });
376
376
  Object.defineProperty(exports, "BulkActionBar", {
377
377
  enumerable: true,
@@ -447,55 +447,55 @@ Object.defineProperty(exports, "_internal", {
447
447
  });
448
448
  Object.defineProperty(exports, "AddressForm", {
449
449
  enumerable: true,
450
- get: function () { return chunkT46LLZHX_js.AddressForm; }
450
+ get: function () { return chunkKNQOG43N_js.AddressForm; }
451
451
  });
452
452
  Object.defineProperty(exports, "CartDrawer", {
453
453
  enumerable: true,
454
- get: function () { return chunkT46LLZHX_js.CartDrawer; }
454
+ get: function () { return chunkKNQOG43N_js.CartDrawer; }
455
455
  });
456
456
  Object.defineProperty(exports, "CompareTable", {
457
457
  enumerable: true,
458
- get: function () { return chunkT46LLZHX_js.CompareTable; }
458
+ get: function () { return chunkKNQOG43N_js.CompareTable; }
459
459
  });
460
460
  Object.defineProperty(exports, "FreeShippingProgress", {
461
461
  enumerable: true,
462
- get: function () { return chunkT46LLZHX_js.FreeShippingProgress; }
462
+ get: function () { return chunkKNQOG43N_js.FreeShippingProgress; }
463
463
  });
464
464
  Object.defineProperty(exports, "OrderSummary", {
465
465
  enumerable: true,
466
- get: function () { return chunkT46LLZHX_js.OrderSummary; }
466
+ get: function () { return chunkKNQOG43N_js.OrderSummary; }
467
467
  });
468
468
  Object.defineProperty(exports, "PriceDisplay", {
469
469
  enumerable: true,
470
- get: function () { return chunkT46LLZHX_js.PriceDisplay; }
470
+ get: function () { return chunkKNQOG43N_js.PriceDisplay; }
471
471
  });
472
472
  Object.defineProperty(exports, "PromoCodeInput", {
473
473
  enumerable: true,
474
- get: function () { return chunkT46LLZHX_js.PromoCodeInput; }
474
+ get: function () { return chunkKNQOG43N_js.PromoCodeInput; }
475
475
  });
476
476
  Object.defineProperty(exports, "QuantitySelector", {
477
477
  enumerable: true,
478
- get: function () { return chunkT46LLZHX_js.QuantitySelector; }
478
+ get: function () { return chunkKNQOG43N_js.QuantitySelector; }
479
479
  });
480
480
  Object.defineProperty(exports, "Rating", {
481
481
  enumerable: true,
482
- get: function () { return chunkT46LLZHX_js.Rating; }
482
+ get: function () { return chunkKNQOG43N_js.Rating; }
483
483
  });
484
484
  Object.defineProperty(exports, "VariantSelector", {
485
485
  enumerable: true,
486
- get: function () { return chunkT46LLZHX_js.VariantSelector; }
486
+ get: function () { return chunkKNQOG43N_js.VariantSelector; }
487
487
  });
488
488
  Object.defineProperty(exports, "WishlistButton", {
489
489
  enumerable: true,
490
- get: function () { return chunkT46LLZHX_js.WishlistButton; }
490
+ get: function () { return chunkKNQOG43N_js.WishlistButton; }
491
491
  });
492
492
  Object.defineProperty(exports, "Drawer", {
493
493
  enumerable: true,
494
- get: function () { return chunkS3DEFKS5_js.Drawer; }
494
+ get: function () { return chunkDLDTUVHR_js.Drawer; }
495
495
  });
496
496
  Object.defineProperty(exports, "Modal", {
497
497
  enumerable: true,
498
- get: function () { return chunkS3DEFKS5_js.Modal; }
498
+ get: function () { return chunkDLDTUVHR_js.Modal; }
499
499
  });
500
500
  Object.defineProperty(exports, "ContextMenu", {
501
501
  enumerable: true,
@@ -743,11 +743,11 @@ Object.defineProperty(exports, "resetBrand", {
743
743
  });
744
744
  Object.defineProperty(exports, "AppShell", {
745
745
  enumerable: true,
746
- get: function () { return chunkMSDFMVIF_js.AppShell; }
746
+ get: function () { return chunkNPUNAVWM_js.AppShell; }
747
747
  });
748
748
  Object.defineProperty(exports, "PageHeader", {
749
749
  enumerable: true,
750
- get: function () { return chunkMSDFMVIF_js.PageHeader; }
750
+ get: function () { return chunkNPUNAVWM_js.PageHeader; }
751
751
  });
752
752
  Object.defineProperty(exports, "useVirtualRows", {
753
753
  enumerable: true,
@@ -1103,23 +1103,23 @@ Object.defineProperty(exports, "X", {
1103
1103
  });
1104
1104
  Object.defineProperty(exports, "AreaChart", {
1105
1105
  enumerable: true,
1106
- get: function () { return chunkCPMQ2DFS_js.AreaChart; }
1106
+ get: function () { return chunk2ET7IM4U_js.AreaChart; }
1107
1107
  });
1108
1108
  Object.defineProperty(exports, "BarChart", {
1109
1109
  enumerable: true,
1110
- get: function () { return chunkCPMQ2DFS_js.BarChart; }
1110
+ get: function () { return chunk2ET7IM4U_js.BarChart; }
1111
1111
  });
1112
1112
  Object.defineProperty(exports, "DonutChart", {
1113
1113
  enumerable: true,
1114
- get: function () { return chunkCPMQ2DFS_js.DonutChart; }
1114
+ get: function () { return chunk2ET7IM4U_js.DonutChart; }
1115
1115
  });
1116
1116
  Object.defineProperty(exports, "LineChart", {
1117
1117
  enumerable: true,
1118
- get: function () { return chunkCPMQ2DFS_js.LineChart; }
1118
+ get: function () { return chunk2ET7IM4U_js.LineChart; }
1119
1119
  });
1120
1120
  Object.defineProperty(exports, "Sparkline", {
1121
1121
  enumerable: true,
1122
- get: function () { return chunkCPMQ2DFS_js.Sparkline; }
1122
+ get: function () { return chunk2ET7IM4U_js.Sparkline; }
1123
1123
  });
1124
1124
  Object.defineProperty(exports, "cx", {
1125
1125
  enumerable: true,
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import './chunk-XTHC46M2.mjs';
3
- import './chunk-CHVTPN3K.mjs';
4
3
  export { TimeAgo, TimeAgoDate } from './chunk-6JXGCU7F.mjs';
5
4
  export { formatIsoDate, formatIsoDateTime, smartDate, smartDateTime } from './chunk-5OZ6QIFC.mjs';
6
5
  export { ToastProvider, useToast } from './chunk-AECVFYGP.mjs';
7
6
  export { SegmentedControl, SegmentedControlItem, Toggle, ToggleGroup, ToggleGroupItem } from './chunk-CNV2E2M5.mjs';
7
+ import './chunk-CHVTPN3K.mjs';
8
8
  export { NotificationCenter } from './chunk-VMTN5C6F.mjs';
9
9
  export { PermissionMatrix } from './chunk-QHI4S5PM.mjs';
10
10
  export { Combobox, DatePicker, FileUpload, MonthPicker, YearPicker } from './chunk-SCUHLOET.mjs';
@@ -18,7 +18,7 @@ export { BulletChart, CalendarHeatmap, DeltaBadge, Meter, ProportionBar, Sparkba
18
18
  export { formatCurrency, formatNumber } from './chunk-WYOJ7YRQ.mjs';
19
19
  export { NavigationMenu } from './chunk-OIYIWG53.mjs';
20
20
  export { Calendar, StatusIndicator, Timeline, TimelineItem, Tree, UserCell } from './chunk-T2DNEJR3.mjs';
21
- export { ConfirmDialog, DescriptionList, DescriptionListItem, DiffViewer, EditableCell, TransferList } from './chunk-6OBFBETV.mjs';
21
+ export { ConfirmDialog, DescriptionList, DescriptionListItem, DiffViewer, EditableCell, TransferList } from './chunk-I7JH3OEO.mjs';
22
22
  export { BulkActionBar, FilterBar, FilterField, FilterPanel, FilterSection, SortDropdown } from './chunk-2TKTMFVC.mjs';
23
23
  export { ImageGallery, Lightbox } from './chunk-VLTIVWKF.mjs';
24
24
  export { HoverCard } from './chunk-X36H75RR.mjs';
@@ -26,8 +26,8 @@ export { InputOTP } from './chunk-IVL7P3MF.mjs';
26
26
  export { CodeBlock, JsonViewer } from './chunk-DBV6FV4V.mjs';
27
27
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-PHQUFC3I.mjs';
28
28
  export { AttachmentList, CommentThread, _internal } from './chunk-RZQIZZKH.mjs';
29
- export { AddressForm, CartDrawer, CompareTable, FreeShippingProgress, OrderSummary, PriceDisplay, PromoCodeInput, QuantitySelector, Rating, VariantSelector, WishlistButton } from './chunk-J2HHAZHV.mjs';
30
- export { Drawer, Modal } from './chunk-XJHK3RH5.mjs';
29
+ export { AddressForm, CartDrawer, CompareTable, FreeShippingProgress, OrderSummary, PriceDisplay, PromoCodeInput, QuantitySelector, Rating, VariantSelector, WishlistButton } from './chunk-X7BV2JFX.mjs';
30
+ export { Drawer, Modal } from './chunk-ZAKJKBUX.mjs';
31
31
  export { ContextMenu } from './chunk-NS6CI6RP.mjs';
32
32
  export { Accordion, AccordionItem, Breadcrumbs, ColumnToggle, DataTable, TablePagination, TableToolbar } from './chunk-O3KM5SQB.mjs';
33
33
  export { Popover } from './chunk-FR4JV3JA.mjs';
@@ -40,12 +40,12 @@ export { addMonths, buildMonthGrid, dateFormatPlaceholder, detectFormatFromLocal
40
40
  export { format } from './chunk-VGA7UT6T.mjs';
41
41
  export { Portal } from './chunk-FKBQYQQD.mjs';
42
42
  export { BRAND_DEFAULTS, configureBrand, getBrand, resetBrand } from './chunk-5GEWIK4T.mjs';
43
- export { AppShell, PageHeader } from './chunk-G4OOD6AR.mjs';
43
+ export { AppShell, PageHeader } from './chunk-F5EK5PIR.mjs';
44
44
  import './chunk-JT6OOSI2.mjs';
45
+ import './chunk-XOV4D6J3.mjs';
45
46
  import './chunk-R5DCDEB5.mjs';
46
47
  import './chunk-U3JH4T3A.mjs';
47
48
  import './chunk-6W7ZGWNA.mjs';
48
- import './chunk-XOV4D6J3.mjs';
49
49
  export { useVirtualRows } from './chunk-YTKPENNW.mjs';
50
50
  export { LocaleProvider, esMessages, useLocale } from './chunk-KYYRQNY7.mjs';
51
51
  export { useDismiss } from './chunk-6P2TKRTL.mjs';
@@ -54,7 +54,7 @@ export { Button, ButtonGroup } from './chunk-NAL457NQ.mjs';
54
54
  export { AspectRatio, ScrollArea, Separator, Slot, Slottable } from './chunk-IEPKSPBX.mjs';
55
55
  export { Carousel } from './chunk-VXJTDBSM.mjs';
56
56
  export { AlertCircle, AlertTriangle, AlignCenter, AlignLeft, AlignRight, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bell, Bold, Building, CalendarDays, CalendarIcon, Check, CheckCircle, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Clock, Columns3, Copy, CreditCard, Download, Edit, ExternalLink, Eye, EyeOff, FileText, Filter, Folder, Globe, Heart, History, Home, Info, Italic, LayoutGrid, Link, List, Loader, Lock, LogOut, Mail, Map, MapPin, MenuIcon, Minus, Moon, MoreHorizontal, MoreVertical, Package, Phone, Plus, RefreshCw, Rows3, Search, Settings, ShoppingCart, Star, Sun, Tag, Tool, Trash, Truck, Underline, Unlock, Upload, User, Users, Wallet, Wrench, X } from './chunk-BJGMROKL.mjs';
57
- export { AreaChart, BarChart, DonutChart, LineChart, Sparkline } from './chunk-O6FCBNWN.mjs';
57
+ export { AreaChart, BarChart, DonutChart, LineChart, Sparkline } from './chunk-EJY4QWHT.mjs';
58
58
  export { cx } from './chunk-IEPCH3JB.mjs';
59
59
  //# sourceMappingURL=index.mjs.map
60
60
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@misael703/ui",
3
- "version": "1.58.0",
3
+ "version": "1.59.0",
4
4
  "description": "Generic React + TypeScript UI kit, optimized for Next.js. Tokens, accessible components, runtime-configurable theming via presets.",
5
5
  "author": "Misael Ocas <misael.ocas@gmail.com>",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Charts.tsx"],"names":["jsx","cx","jsxs","Fragment"],"mappings":"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","file":"chunk-CPMQ2DFS.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\n\n/**\n * Lightweight chart wrappers. We do NOT bundle Recharts — the host app provides it\n * and passes the modules in via the `recharts` prop so consumers only pay for what they use.\n *\n * Recharts is treated as an implicit peer dependency: install it in the host\n * app if you use any chart component.\n *\n * Usage in a Next.js client component:\n *\n * import * as Recharts from 'recharts';\n * import { LineChart } from '@misael703/elalba-ui';\n * <LineChart recharts={Recharts} data={...} dataKey=\"value\" categoryKey=\"month\" />\n */\n\n// Structural mirror of the Recharts public API. `any` is intentional here:\n// each Recharts component has a different prop shape, and typing them\n// exhaustively would mean depending on `recharts` types — which would force\n// consumers to install recharts even when they don't use any chart.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype RechartsComp = React.ComponentType<any>;\n\nexport type RechartsLike = {\n ResponsiveContainer: RechartsComp;\n LineChart: RechartsComp;\n AreaChart: RechartsComp;\n BarChart: RechartsComp;\n PieChart: RechartsComp;\n Line: RechartsComp;\n Area: RechartsComp;\n Bar: RechartsComp;\n Pie: RechartsComp;\n Cell: RechartsComp;\n CartesianGrid: RechartsComp;\n XAxis: RechartsComp;\n YAxis: RechartsComp;\n Tooltip: RechartsComp;\n Legend: RechartsComp;\n};\n\nconst PALETTE = [\n 'var(--color-primary)',\n 'var(--color-secondary)',\n 'var(--color-primary-900)',\n 'var(--color-success)',\n 'var(--color-warning)',\n 'var(--color-danger)',\n '#6b7e95',\n '#d4a574',\n];\n\nexport interface BaseChartProps<D = any> {\n recharts: RechartsLike;\n data: D[];\n height?: number;\n className?: string;\n ariaLabel?: string;\n}\n\n// ---------- LineChart ---------------------------------------------------\nexport interface LineChartProps<D = any> extends BaseChartProps<D> {\n categoryKey: keyof D & string;\n series: Array<{ key: keyof D & string; label?: string; color?: string }>;\n showGrid?: boolean;\n showLegend?: boolean;\n smooth?: boolean;\n}\n\nexport function LineChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n showGrid = true, showLegend = true, smooth = true,\n}: LineChartProps<D>) {\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.LineChart data={data} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={false} />}\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Line\n key={s.key}\n type={smooth ? 'monotone' : 'linear'}\n dataKey={s.key}\n name={s.label ?? s.key}\n stroke={s.color ?? PALETTE[i % PALETTE.length]}\n strokeWidth={2}\n dot={false}\n activeDot={{ r: 4 }}\n />\n ))}\n </R.LineChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- AreaChart ---------------------------------------------------\nexport interface AreaChartProps<D = any> extends LineChartProps<D> {\n stacked?: boolean;\n}\n\nexport function AreaChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n showGrid = true, showLegend = true, smooth = true, stacked,\n}: AreaChartProps<D>) {\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.AreaChart data={data} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={false} />}\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Area\n key={s.key}\n type={smooth ? 'monotone' : 'linear'}\n dataKey={s.key}\n name={s.label ?? s.key}\n stackId={stacked ? '1' : undefined}\n stroke={s.color ?? PALETTE[i % PALETTE.length]}\n fill={s.color ?? PALETTE[i % PALETTE.length]}\n fillOpacity={0.18}\n strokeWidth={2}\n />\n ))}\n </R.AreaChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- BarChart ----------------------------------------------------\nexport interface BarChartProps<D = any> extends BaseChartProps<D> {\n categoryKey: keyof D & string;\n series: Array<{ key: keyof D & string; label?: string; color?: string }>;\n layout?: 'vertical' | 'horizontal';\n stacked?: boolean;\n showGrid?: boolean;\n showLegend?: boolean;\n}\n\nexport function BarChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n layout = 'vertical', stacked, showGrid = true, showLegend = true,\n}: BarChartProps<D>) {\n const isHorizontal = layout === 'horizontal';\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.BarChart data={data} layout={isHorizontal ? 'vertical' : 'horizontal'} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={isHorizontal} horizontal={!isHorizontal} />}\n {isHorizontal ? (\n <>\n <R.XAxis type=\"number\" stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis dataKey={categoryKey} type=\"category\" stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} width={96} />\n </>\n ) : (\n <>\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n </>\n )}\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} cursor={{ fill: 'var(--bg-subtle)' }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Bar\n key={s.key}\n dataKey={s.key}\n name={s.label ?? s.key}\n stackId={stacked ? '1' : undefined}\n fill={s.color ?? PALETTE[i % PALETTE.length]}\n radius={[4, 4, 0, 0]}\n maxBarSize={48}\n />\n ))}\n </R.BarChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- DonutChart --------------------------------------------------\nexport interface DonutChartProps extends Omit<BaseChartProps, 'data'> {\n data: Array<{ name: string; value: number; color?: string }>;\n centerLabel?: React.ReactNode;\n showLegend?: boolean;\n innerRadius?: number;\n outerRadius?: number;\n}\n\nexport function DonutChart({\n recharts: R, data, height = 240, className, ariaLabel,\n centerLabel, showLegend = true, innerRadius = 60, outerRadius = 88,\n}: DonutChartProps) {\n return (\n <div className={cx('chart chart--donut', className)} role=\"img\" aria-label={ariaLabel}>\n <div className=\"chart__donut-area\" style={{ height }}>\n <R.ResponsiveContainer width=\"100%\" height=\"100%\">\n <R.PieChart>\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n <R.Pie\n data={data}\n dataKey=\"value\"\n nameKey=\"name\"\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={2}\n stroke=\"var(--bg-surface)\"\n >\n {data.map((d, i) => <R.Cell key={i} fill={d.color ?? PALETTE[i % PALETTE.length]} />)}\n </R.Pie>\n </R.PieChart>\n </R.ResponsiveContainer>\n {centerLabel && <div className=\"chart__center\">{centerLabel}</div>}\n </div>\n {showLegend && (\n <ul className=\"chart__legend\" aria-hidden=\"true\">\n {data.map((d, i) => (\n <li key={d.name} className=\"chart__legend-item\">\n <span\n className=\"chart__legend-swatch\"\n style={{ background: d.color ?? PALETTE[i % PALETTE.length] }}\n />\n <span className=\"chart__legend-label\">{d.name}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\n// ---------- Sparkline ---------------------------------------------------\nexport interface SparklineProps<D = any> {\n recharts: RechartsLike;\n data: D[];\n dataKey: keyof D & string;\n width?: number;\n height?: number;\n color?: string;\n fill?: boolean;\n className?: string;\n ariaLabel?: string;\n}\n\nexport function Sparkline<D = any>({\n recharts: R, data, dataKey,\n width = 120, height = 32, color = 'var(--color-primary)',\n fill = true, className, ariaLabel,\n}: SparklineProps<D>) {\n return (\n <div className={cx('sparkline', className)} role=\"img\" aria-label={ariaLabel} style={{ width, height }}>\n <R.ResponsiveContainer width=\"100%\" height=\"100%\">\n <R.AreaChart data={data} margin={{ top: 2, right: 0, bottom: 2, left: 0 }}>\n <R.Area\n type=\"monotone\"\n dataKey={dataKey}\n stroke={color}\n strokeWidth={1.5}\n fill={fill ? color : 'none'}\n fillOpacity={fill ? 0.18 : 0}\n isAnimationActive={false}\n />\n </R.AreaChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Charts.tsx"],"names":[],"mappings":";;;AA2CA,IAAM,OAAA,GAAU;AAAA,EACd,sBAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAmBO,SAAS,SAAA,CAAmB;AAAA,EACjC,QAAA,EAAU,CAAA;AAAA,EAAG,IAAA;AAAA,EAAM,WAAA;AAAA,EAAa,MAAA;AAAA,EAChC,MAAA,GAAS,GAAA;AAAA,EAAK,SAAA;AAAA,EAAW,SAAA;AAAA,EACzB,QAAA,GAAW,IAAA;AAAA,EAAM,UAAA,GAAa,IAAA;AAAA,EAAM,MAAA,GAAS;AAC/C,CAAA,EAAsB;AACpB,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,SAAS,SAAS,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,YAAA,EAAY,SAAA,EAC7D,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,qBAAF,EAAsB,KAAA,EAAM,MAAA,EAAO,MAAA,EAClC,QAAA,kBAAA,IAAA,CAAC,CAAA,CAAE,SAAA,EAAF,EAAY,MAAY,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,OAAO,EAAA,EAAI,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,GAAE,EACtE,QAAA,EAAA;AAAA,IAAA,QAAA,oBAAY,GAAA,CAAC,EAAE,aAAA,EAAF,EAAgB,QAAO,uBAAA,EAAwB,eAAA,EAAgB,KAAA,EAAM,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,oBACpG,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,OAAA,EAAS,WAAA,EAAa,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,UAAU,KAAA,EAAO,CAAA;AAAA,oBACzG,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,oBACnF,GAAA,CAAC,CAAA,CAAE,OAAA,EAAF,EAAU,cAAc,EAAE,UAAA,EAAY,mBAAA,EAAqB,MAAA,EAAQ,iCAAA,EAAmC,YAAA,EAAc,CAAA,EAAG,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,IACvI,UAAA,wBAAe,CAAA,CAAE,MAAA,EAAF,EAAS,YAAA,EAAc,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,IACxD,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACd,GAAA;AAAA,MAAC,CAAA,CAAE,IAAA;AAAA,MAAF;AAAA,QAEC,IAAA,EAAM,SAAS,UAAA,GAAa,QAAA;AAAA,QAC5B,SAAS,CAAA,CAAE,GAAA;AAAA,QACX,IAAA,EAAM,CAAA,CAAE,KAAA,IAAS,CAAA,CAAE,GAAA;AAAA,QACnB,QAAQ,CAAA,CAAE,KAAA,IAAS,OAAA,CAAQ,CAAA,GAAI,QAAQ,MAAM,CAAA;AAAA,QAC7C,WAAA,EAAa,CAAA;AAAA,QACb,GAAA,EAAK,KAAA;AAAA,QACL,SAAA,EAAW,EAAE,CAAA,EAAG,CAAA;AAAE,OAAA;AAAA,MAPb,CAAA,CAAE;AAAA,KASV;AAAA,GAAA,EACH,GACF,CAAA,EACF,CAAA;AAEJ;AAOO,SAAS,SAAA,CAAmB;AAAA,EACjC,QAAA,EAAU,CAAA;AAAA,EAAG,IAAA;AAAA,EAAM,WAAA;AAAA,EAAa,MAAA;AAAA,EAChC,MAAA,GAAS,GAAA;AAAA,EAAK,SAAA;AAAA,EAAW,SAAA;AAAA,EACzB,QAAA,GAAW,IAAA;AAAA,EAAM,UAAA,GAAa,IAAA;AAAA,EAAM,MAAA,GAAS,IAAA;AAAA,EAAM;AACrD,CAAA,EAAsB;AACpB,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,SAAS,SAAS,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,YAAA,EAAY,SAAA,EAC7D,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,qBAAF,EAAsB,KAAA,EAAM,MAAA,EAAO,MAAA,EAClC,QAAA,kBAAA,IAAA,CAAC,CAAA,CAAE,SAAA,EAAF,EAAY,MAAY,MAAA,EAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,OAAO,EAAA,EAAI,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,GAAE,EACtE,QAAA,EAAA;AAAA,IAAA,QAAA,oBAAY,GAAA,CAAC,EAAE,aAAA,EAAF,EAAgB,QAAO,uBAAA,EAAwB,eAAA,EAAgB,KAAA,EAAM,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,oBACpG,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,OAAA,EAAS,WAAA,EAAa,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,UAAU,KAAA,EAAO,CAAA;AAAA,oBACzG,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,oBACnF,GAAA,CAAC,CAAA,CAAE,OAAA,EAAF,EAAU,cAAc,EAAE,UAAA,EAAY,mBAAA,EAAqB,MAAA,EAAQ,iCAAA,EAAmC,YAAA,EAAc,CAAA,EAAG,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,IACvI,UAAA,wBAAe,CAAA,CAAE,MAAA,EAAF,EAAS,YAAA,EAAc,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,IACxD,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACd,GAAA;AAAA,MAAC,CAAA,CAAE,IAAA;AAAA,MAAF;AAAA,QAEC,IAAA,EAAM,SAAS,UAAA,GAAa,QAAA;AAAA,QAC5B,SAAS,CAAA,CAAE,GAAA;AAAA,QACX,IAAA,EAAM,CAAA,CAAE,KAAA,IAAS,CAAA,CAAE,GAAA;AAAA,QACnB,OAAA,EAAS,UAAU,GAAA,GAAM,MAAA;AAAA,QACzB,QAAQ,CAAA,CAAE,KAAA,IAAS,OAAA,CAAQ,CAAA,GAAI,QAAQ,MAAM,CAAA;AAAA,QAC7C,MAAM,CAAA,CAAE,KAAA,IAAS,OAAA,CAAQ,CAAA,GAAI,QAAQ,MAAM,CAAA;AAAA,QAC3C,WAAA,EAAa,IAAA;AAAA,QACb,WAAA,EAAa;AAAA,OAAA;AAAA,MARR,CAAA,CAAE;AAAA,KAUV;AAAA,GAAA,EACH,GACF,CAAA,EACF,CAAA;AAEJ;AAYO,SAAS,QAAA,CAAkB;AAAA,EAChC,QAAA,EAAU,CAAA;AAAA,EAAG,IAAA;AAAA,EAAM,WAAA;AAAA,EAAa,MAAA;AAAA,EAChC,MAAA,GAAS,GAAA;AAAA,EAAK,SAAA;AAAA,EAAW,SAAA;AAAA,EACzB,MAAA,GAAS,UAAA;AAAA,EAAY,OAAA;AAAA,EAAS,QAAA,GAAW,IAAA;AAAA,EAAM,UAAA,GAAa;AAC9D,CAAA,EAAqB;AACnB,EAAA,MAAM,eAAe,MAAA,KAAW,YAAA;AAChC,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,OAAA,EAAS,SAAS,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,YAAA,EAAY,WAC7D,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,mBAAA,EAAF,EAAsB,OAAM,MAAA,EAAO,MAAA,EAClC,QAAA,kBAAA,IAAA,CAAC,CAAA,CAAE,UAAF,EAAW,IAAA,EAAY,MAAA,EAAQ,YAAA,GAAe,aAAa,YAAA,EAAc,MAAA,EAAQ,EAAE,GAAA,EAAK,GAAG,KAAA,EAAO,EAAA,EAAI,QAAQ,CAAA,EAAG,IAAA,EAAM,GAAE,EACvH,QAAA,EAAA;AAAA,IAAA,QAAA,oBAAY,GAAA,CAAC,CAAA,CAAE,aAAA,EAAF,EAAgB,MAAA,EAAO,uBAAA,EAAwB,eAAA,EAAgB,KAAA,EAAM,QAAA,EAAU,YAAA,EAAc,UAAA,EAAY,CAAC,YAAA,EAAc,CAAA;AAAA,IACrI,+BACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,IAAA,EAAK,QAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,0BAChG,CAAA,CAAE,KAAA,EAAF,EAAQ,OAAA,EAAS,aAAa,IAAA,EAAK,UAAA,EAAW,MAAA,EAAO,kBAAA,EAAmB,UAAU,EAAA,EAAI,QAAA,EAAU,OAAO,QAAA,EAAU,KAAA,EAAO,OAAO,EAAA,EAAI;AAAA,KAAA,EACtI,oBAEA,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,OAAA,EAAS,WAAA,EAAa,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,CAAA;AAAA,sBACzG,GAAA,CAAC,CAAA,CAAE,KAAA,EAAF,EAAQ,MAAA,EAAO,kBAAA,EAAmB,QAAA,EAAU,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO;AAAA,KAAA,EACrF,CAAA;AAAA,wBAED,CAAA,CAAE,OAAA,EAAF,EAAU,YAAA,EAAc,EAAE,YAAY,mBAAA,EAAqB,MAAA,EAAQ,mCAAmC,YAAA,EAAc,CAAA,EAAG,UAAU,EAAA,EAAG,EAAG,QAAQ,EAAE,IAAA,EAAM,oBAAmB,EAAG,CAAA;AAAA,IAC7K,UAAA,wBAAe,CAAA,CAAE,MAAA,EAAF,EAAS,YAAA,EAAc,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,IACxD,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACd,GAAA;AAAA,MAAC,CAAA,CAAE,GAAA;AAAA,MAAF;AAAA,QAEC,SAAS,CAAA,CAAE,GAAA;AAAA,QACX,IAAA,EAAM,CAAA,CAAE,KAAA,IAAS,CAAA,CAAE,GAAA;AAAA,QACnB,OAAA,EAAS,UAAU,GAAA,GAAM,MAAA;AAAA,QACzB,MAAM,CAAA,CAAE,KAAA,IAAS,OAAA,CAAQ,CAAA,GAAI,QAAQ,MAAM,CAAA;AAAA,QAC3C,MAAA,EAAQ,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,QACnB,UAAA,EAAY;AAAA,OAAA;AAAA,MANP,CAAA,CAAE;AAAA,KAQV;AAAA,GAAA,EACH,GACF,CAAA,EACF,CAAA;AAEJ;AAWO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA,EAAU,CAAA;AAAA,EAAG,IAAA;AAAA,EAAM,MAAA,GAAS,GAAA;AAAA,EAAK,SAAA;AAAA,EAAW,SAAA;AAAA,EAC5C,WAAA;AAAA,EAAa,UAAA,GAAa,IAAA;AAAA,EAAM,WAAA,GAAc,EAAA;AAAA,EAAI,WAAA,GAAc;AAClE,CAAA,EAAoB;AAClB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,YAAA,EAAY,SAAA,EAC1E,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,SAAI,SAAA,EAAU,mBAAA,EAAoB,KAAA,EAAO,EAAE,QAAO,EACjD,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,CAAA,CAAE,mBAAA,EAAF,EAAsB,KAAA,EAAM,MAAA,EAAO,QAAO,MAAA,EACzC,QAAA,kBAAA,IAAA,CAAC,CAAA,CAAE,QAAA,EAAF,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,CAAA,CAAE,OAAA,EAAF,EAAU,YAAA,EAAc,EAAE,UAAA,EAAY,mBAAA,EAAqB,MAAA,EAAQ,iCAAA,EAAmC,YAAA,EAAc,CAAA,EAAG,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,wBACxI,GAAA;AAAA,UAAC,CAAA,CAAE,GAAA;AAAA,UAAF;AAAA,YACC,IAAA;AAAA,YACA,OAAA,EAAQ,OAAA;AAAA,YACR,OAAA,EAAQ,MAAA;AAAA,YACR,WAAA;AAAA,YACA,WAAA;AAAA,YACA,YAAA,EAAc,CAAA;AAAA,YACd,MAAA,EAAO,mBAAA;AAAA,YAEN,eAAK,GAAA,CAAI,CAAC,GAAG,CAAA,qBAAM,GAAA,CAAC,EAAE,IAAA,EAAF,EAAe,IAAA,EAAM,CAAA,CAAE,SAAS,OAAA,CAAQ,CAAA,GAAI,QAAQ,MAAM,CAAA,EAAA,EAA9C,CAAiD,CAAE;AAAA;AAAA;AACtF,OAAA,EACF,CAAA,EACF,CAAA;AAAA,MACC,WAAA,oBAAe,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAiB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAC9D,CAAA;AAAA,IACC,UAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,iBAAgB,aAAA,EAAY,MAAA,EACvC,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACZ,IAAA,CAAC,IAAA,EAAA,EAAgB,WAAU,oBAAA,EACzB,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,sBAAA;AAAA,UACV,KAAA,EAAO,EAAE,UAAA,EAAY,CAAA,CAAE,SAAS,OAAA,CAAQ,CAAA,GAAI,OAAA,CAAQ,MAAM,CAAA;AAAE;AAAA,OAC9D;AAAA,sBACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAuB,YAAE,IAAA,EAAK;AAAA,KAAA,EAAA,EALvC,CAAA,CAAE,IAMX,CACD,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAeO,SAAS,SAAA,CAAmB;AAAA,EACjC,QAAA,EAAU,CAAA;AAAA,EAAG,IAAA;AAAA,EAAM,OAAA;AAAA,EACnB,KAAA,GAAQ,GAAA;AAAA,EAAK,MAAA,GAAS,EAAA;AAAA,EAAI,KAAA,GAAQ,sBAAA;AAAA,EAClC,IAAA,GAAO,IAAA;AAAA,EAAM,SAAA;AAAA,EAAW;AAC1B,CAAA,EAAsB;AACpB,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,YAAA,EAAY,WAAW,KAAA,EAAO,EAAE,OAAO,MAAA,EAAO,EACnG,8BAAC,CAAA,CAAE,mBAAA,EAAF,EAAsB,KAAA,EAAM,QAAO,MAAA,EAAO,MAAA,EACzC,8BAAC,CAAA,CAAE,SAAA,EAAF,EAAY,IAAA,EAAY,MAAA,EAAQ,EAAE,GAAA,EAAK,GAAG,KAAA,EAAO,CAAA,EAAG,QAAQ,CAAA,EAAG,IAAA,EAAM,GAAE,EACtE,QAAA,kBAAA,GAAA;AAAA,IAAC,CAAA,CAAE,IAAA;AAAA,IAAF;AAAA,MACC,IAAA,EAAK,UAAA;AAAA,MACL,OAAA;AAAA,MACA,MAAA,EAAQ,KAAA;AAAA,MACR,WAAA,EAAa,GAAA;AAAA,MACb,IAAA,EAAM,OAAO,KAAA,GAAQ,MAAA;AAAA,MACrB,WAAA,EAAa,OAAO,IAAA,GAAO,CAAA;AAAA,MAC3B,iBAAA,EAAmB;AAAA;AAAA,GACrB,EACF,GACF,CAAA,EACF,CAAA;AAEJ","file":"chunk-O6FCBNWN.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\n\n/**\n * Lightweight chart wrappers. We do NOT bundle Recharts — the host app provides it\n * and passes the modules in via the `recharts` prop so consumers only pay for what they use.\n *\n * Recharts is treated as an implicit peer dependency: install it in the host\n * app if you use any chart component.\n *\n * Usage in a Next.js client component:\n *\n * import * as Recharts from 'recharts';\n * import { LineChart } from '@misael703/elalba-ui';\n * <LineChart recharts={Recharts} data={...} dataKey=\"value\" categoryKey=\"month\" />\n */\n\n// Structural mirror of the Recharts public API. `any` is intentional here:\n// each Recharts component has a different prop shape, and typing them\n// exhaustively would mean depending on `recharts` types — which would force\n// consumers to install recharts even when they don't use any chart.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype RechartsComp = React.ComponentType<any>;\n\nexport type RechartsLike = {\n ResponsiveContainer: RechartsComp;\n LineChart: RechartsComp;\n AreaChart: RechartsComp;\n BarChart: RechartsComp;\n PieChart: RechartsComp;\n Line: RechartsComp;\n Area: RechartsComp;\n Bar: RechartsComp;\n Pie: RechartsComp;\n Cell: RechartsComp;\n CartesianGrid: RechartsComp;\n XAxis: RechartsComp;\n YAxis: RechartsComp;\n Tooltip: RechartsComp;\n Legend: RechartsComp;\n};\n\nconst PALETTE = [\n 'var(--color-primary)',\n 'var(--color-secondary)',\n 'var(--color-primary-900)',\n 'var(--color-success)',\n 'var(--color-warning)',\n 'var(--color-danger)',\n '#6b7e95',\n '#d4a574',\n];\n\nexport interface BaseChartProps<D = any> {\n recharts: RechartsLike;\n data: D[];\n height?: number;\n className?: string;\n ariaLabel?: string;\n}\n\n// ---------- LineChart ---------------------------------------------------\nexport interface LineChartProps<D = any> extends BaseChartProps<D> {\n categoryKey: keyof D & string;\n series: Array<{ key: keyof D & string; label?: string; color?: string }>;\n showGrid?: boolean;\n showLegend?: boolean;\n smooth?: boolean;\n}\n\nexport function LineChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n showGrid = true, showLegend = true, smooth = true,\n}: LineChartProps<D>) {\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.LineChart data={data} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={false} />}\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Line\n key={s.key}\n type={smooth ? 'monotone' : 'linear'}\n dataKey={s.key}\n name={s.label ?? s.key}\n stroke={s.color ?? PALETTE[i % PALETTE.length]}\n strokeWidth={2}\n dot={false}\n activeDot={{ r: 4 }}\n />\n ))}\n </R.LineChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- AreaChart ---------------------------------------------------\nexport interface AreaChartProps<D = any> extends LineChartProps<D> {\n stacked?: boolean;\n}\n\nexport function AreaChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n showGrid = true, showLegend = true, smooth = true, stacked,\n}: AreaChartProps<D>) {\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.AreaChart data={data} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={false} />}\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Area\n key={s.key}\n type={smooth ? 'monotone' : 'linear'}\n dataKey={s.key}\n name={s.label ?? s.key}\n stackId={stacked ? '1' : undefined}\n stroke={s.color ?? PALETTE[i % PALETTE.length]}\n fill={s.color ?? PALETTE[i % PALETTE.length]}\n fillOpacity={0.18}\n strokeWidth={2}\n />\n ))}\n </R.AreaChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- BarChart ----------------------------------------------------\nexport interface BarChartProps<D = any> extends BaseChartProps<D> {\n categoryKey: keyof D & string;\n series: Array<{ key: keyof D & string; label?: string; color?: string }>;\n layout?: 'vertical' | 'horizontal';\n stacked?: boolean;\n showGrid?: boolean;\n showLegend?: boolean;\n}\n\nexport function BarChart<D = any>({\n recharts: R, data, categoryKey, series,\n height = 280, className, ariaLabel,\n layout = 'vertical', stacked, showGrid = true, showLegend = true,\n}: BarChartProps<D>) {\n const isHorizontal = layout === 'horizontal';\n return (\n <div className={cx('chart', className)} role=\"img\" aria-label={ariaLabel}>\n <R.ResponsiveContainer width=\"100%\" height={height}>\n <R.BarChart data={data} layout={isHorizontal ? 'vertical' : 'horizontal'} margin={{ top: 8, right: 16, bottom: 0, left: 0 }}>\n {showGrid && <R.CartesianGrid stroke=\"var(--border-default)\" strokeDasharray=\"3 3\" vertical={isHorizontal} horizontal={!isHorizontal} />}\n {isHorizontal ? (\n <>\n <R.XAxis type=\"number\" stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis dataKey={categoryKey} type=\"category\" stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} width={96} />\n </>\n ) : (\n <>\n <R.XAxis dataKey={categoryKey} stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n <R.YAxis stroke=\"var(--fg-subtle)\" fontSize={12} tickLine={false} axisLine={false} />\n </>\n )}\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} cursor={{ fill: 'var(--bg-subtle)' }} />\n {showLegend && <R.Legend wrapperStyle={{ fontSize: 12 }} />}\n {series.map((s, i) => (\n <R.Bar\n key={s.key}\n dataKey={s.key}\n name={s.label ?? s.key}\n stackId={stacked ? '1' : undefined}\n fill={s.color ?? PALETTE[i % PALETTE.length]}\n radius={[4, 4, 0, 0]}\n maxBarSize={48}\n />\n ))}\n </R.BarChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n\n// ---------- DonutChart --------------------------------------------------\nexport interface DonutChartProps extends Omit<BaseChartProps, 'data'> {\n data: Array<{ name: string; value: number; color?: string }>;\n centerLabel?: React.ReactNode;\n showLegend?: boolean;\n innerRadius?: number;\n outerRadius?: number;\n}\n\nexport function DonutChart({\n recharts: R, data, height = 240, className, ariaLabel,\n centerLabel, showLegend = true, innerRadius = 60, outerRadius = 88,\n}: DonutChartProps) {\n return (\n <div className={cx('chart chart--donut', className)} role=\"img\" aria-label={ariaLabel}>\n <div className=\"chart__donut-area\" style={{ height }}>\n <R.ResponsiveContainer width=\"100%\" height=\"100%\">\n <R.PieChart>\n <R.Tooltip contentStyle={{ background: 'var(--bg-surface)', border: '1px solid var(--border-default)', borderRadius: 8, fontSize: 12 }} />\n <R.Pie\n data={data}\n dataKey=\"value\"\n nameKey=\"name\"\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={2}\n stroke=\"var(--bg-surface)\"\n >\n {data.map((d, i) => <R.Cell key={i} fill={d.color ?? PALETTE[i % PALETTE.length]} />)}\n </R.Pie>\n </R.PieChart>\n </R.ResponsiveContainer>\n {centerLabel && <div className=\"chart__center\">{centerLabel}</div>}\n </div>\n {showLegend && (\n <ul className=\"chart__legend\" aria-hidden=\"true\">\n {data.map((d, i) => (\n <li key={d.name} className=\"chart__legend-item\">\n <span\n className=\"chart__legend-swatch\"\n style={{ background: d.color ?? PALETTE[i % PALETTE.length] }}\n />\n <span className=\"chart__legend-label\">{d.name}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\n// ---------- Sparkline ---------------------------------------------------\nexport interface SparklineProps<D = any> {\n recharts: RechartsLike;\n data: D[];\n dataKey: keyof D & string;\n width?: number;\n height?: number;\n color?: string;\n fill?: boolean;\n className?: string;\n ariaLabel?: string;\n}\n\nexport function Sparkline<D = any>({\n recharts: R, data, dataKey,\n width = 120, height = 32, color = 'var(--color-primary)',\n fill = true, className, ariaLabel,\n}: SparklineProps<D>) {\n return (\n <div className={cx('sparkline', className)} role=\"img\" aria-label={ariaLabel} style={{ width, height }}>\n <R.ResponsiveContainer width=\"100%\" height=\"100%\">\n <R.AreaChart data={data} margin={{ top: 2, right: 0, bottom: 2, left: 0 }}>\n <R.Area\n type=\"monotone\"\n dataKey={dataKey}\n stroke={color}\n strokeWidth={1.5}\n fill={fill ? color : 'none'}\n fillOpacity={fill ? 0.18 : 0}\n isAnimationActive={false}\n />\n </R.AreaChart>\n </R.ResponsiveContainer>\n </div>\n );\n}\n"]}