@misael703/ui 1.57.0 → 1.58.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 (134) hide show
  1. package/dist/{chunk-SZPUIQHI.js → chunk-2PNXLTEM.js} +4 -4
  2. package/dist/{chunk-SZPUIQHI.js.map → chunk-2PNXLTEM.js.map} +1 -1
  3. package/dist/chunk-2RBVHLG4.mjs +305 -0
  4. package/dist/chunk-2RBVHLG4.mjs.map +1 -0
  5. package/dist/{chunk-4WGXCRNN.js → chunk-3JRP3DGM.js} +3 -3
  6. package/dist/{chunk-4WGXCRNN.js.map → chunk-3JRP3DGM.js.map} +1 -1
  7. package/dist/{chunk-DYMX4R2B.js → chunk-3PYU6OHQ.js} +5 -5
  8. package/dist/{chunk-DYMX4R2B.js.map → chunk-3PYU6OHQ.js.map} +1 -1
  9. package/dist/{chunk-6E7VZNYQ.js → chunk-4G6NENVM.js} +4 -4
  10. package/dist/{chunk-6E7VZNYQ.js.map → chunk-4G6NENVM.js.map} +1 -1
  11. package/dist/{chunk-CZ6ODGWB.mjs → chunk-6JXGCU7F.mjs} +3 -3
  12. package/dist/{chunk-CZ6ODGWB.mjs.map → chunk-6JXGCU7F.mjs.map} +1 -1
  13. package/dist/{chunk-Z4SBVGSY.mjs → chunk-6OBFBETV.mjs} +3 -3
  14. package/dist/{chunk-Z4SBVGSY.mjs.map → chunk-6OBFBETV.mjs.map} +1 -1
  15. package/dist/{chunk-MURFESTG.js → chunk-AGMDYCGG.js} +4 -4
  16. package/dist/{chunk-MURFESTG.js.map → chunk-AGMDYCGG.js.map} +1 -1
  17. package/dist/chunk-BULIPFOG.js +313 -0
  18. package/dist/chunk-BULIPFOG.js.map +1 -0
  19. package/dist/{chunk-Z5RTA2MB.mjs → chunk-DH3IXJRJ.mjs} +4 -4
  20. package/dist/{chunk-Z5RTA2MB.mjs.map → chunk-DH3IXJRJ.mjs.map} +1 -1
  21. package/dist/{chunk-XA57BOHJ.mjs → chunk-ESU5UMEK.mjs} +5 -5
  22. package/dist/{chunk-XA57BOHJ.mjs.map → chunk-ESU5UMEK.mjs.map} +1 -1
  23. package/dist/{chunk-SE5E4GXH.js → chunk-F237OMT6.js} +4 -4
  24. package/dist/{chunk-SE5E4GXH.js.map → chunk-F237OMT6.js.map} +1 -1
  25. package/dist/{chunk-UINN3O5C.mjs → chunk-FR4JV3JA.mjs} +4 -4
  26. package/dist/{chunk-UINN3O5C.mjs.map → chunk-FR4JV3JA.mjs.map} +1 -1
  27. package/dist/{chunk-H4RFV2RM.mjs → chunk-G4OOD6AR.mjs} +5 -5
  28. package/dist/{chunk-H4RFV2RM.mjs.map → chunk-G4OOD6AR.mjs.map} +1 -1
  29. package/dist/{chunk-QMXU5WXD.js → chunk-HCTY5QYL.js} +4 -4
  30. package/dist/{chunk-QMXU5WXD.js.map → chunk-HCTY5QYL.js.map} +1 -1
  31. package/dist/{chunk-XSJSZL64.js → chunk-HKHGODQE.js} +4 -4
  32. package/dist/{chunk-XSJSZL64.js.map → chunk-HKHGODQE.js.map} +1 -1
  33. package/dist/{chunk-YFVY5X2Q.mjs → chunk-J2HHAZHV.mjs} +4 -4
  34. package/dist/{chunk-YFVY5X2Q.mjs.map → chunk-J2HHAZHV.mjs.map} +1 -1
  35. package/dist/{chunk-M4NNJ6HG.js → chunk-J2PQFMR5.js} +5 -5
  36. package/dist/{chunk-M4NNJ6HG.js.map → chunk-J2PQFMR5.js.map} +1 -1
  37. package/dist/{chunk-QR6X2UOT.mjs → chunk-JMFDIN5R.mjs} +3 -3
  38. package/dist/{chunk-QR6X2UOT.mjs.map → chunk-JMFDIN5R.mjs.map} +1 -1
  39. package/dist/{chunk-HZUB2LJI.js → chunk-MSDFMVIF.js} +5 -5
  40. package/dist/{chunk-HZUB2LJI.js.map → chunk-MSDFMVIF.js.map} +1 -1
  41. package/dist/{chunk-XJFGP7MK.js → chunk-MW7HQCFC.js} +4 -4
  42. package/dist/{chunk-XJFGP7MK.js.map → chunk-MW7HQCFC.js.map} +1 -1
  43. package/dist/{chunk-TYUTEYAK.mjs → chunk-NS6CI6RP.mjs} +4 -4
  44. package/dist/{chunk-TYUTEYAK.mjs.map → chunk-NS6CI6RP.mjs.map} +1 -1
  45. package/dist/{chunk-JZNUYA42.js → chunk-NU4GAGUV.js} +3 -3
  46. package/dist/{chunk-JZNUYA42.js.map → chunk-NU4GAGUV.js.map} +1 -1
  47. package/dist/{chunk-MD55OD7G.mjs → chunk-O3KM5SQB.mjs} +4 -4
  48. package/dist/{chunk-MD55OD7G.mjs.map → chunk-O3KM5SQB.mjs.map} +1 -1
  49. package/dist/{chunk-3WSB2R2K.mjs → chunk-OIYIWG53.mjs} +4 -4
  50. package/dist/{chunk-3WSB2R2K.mjs.map → chunk-OIYIWG53.mjs.map} +1 -1
  51. package/dist/{chunk-XNAYL6YM.mjs → chunk-Q4WPZJUS.mjs} +4 -4
  52. package/dist/{chunk-XNAYL6YM.mjs.map → chunk-Q4WPZJUS.mjs.map} +1 -1
  53. package/dist/{chunk-WBFVVOQW.mjs → chunk-RZQIZZKH.mjs} +3 -3
  54. package/dist/{chunk-WBFVVOQW.mjs.map → chunk-RZQIZZKH.mjs.map} +1 -1
  55. package/dist/{chunk-HCFIPNUU.js → chunk-S3DEFKS5.js} +5 -5
  56. package/dist/{chunk-HCFIPNUU.js.map → chunk-S3DEFKS5.js.map} +1 -1
  57. package/dist/{chunk-KROEMZNQ.js → chunk-S3MMU3LW.js} +5 -4
  58. package/dist/chunk-S3MMU3LW.js.map +1 -0
  59. package/dist/{chunk-WMRGTHJB.mjs → chunk-SCUHLOET.mjs} +5 -4
  60. package/dist/chunk-SCUHLOET.mjs.map +1 -0
  61. package/dist/{chunk-XP7P4Z6X.js → chunk-SHIQMHQP.js} +4 -4
  62. package/dist/{chunk-XP7P4Z6X.js.map → chunk-SHIQMHQP.js.map} +1 -1
  63. package/dist/{chunk-KPWOWFMT.js → chunk-SQJVGL7Y.js} +3 -3
  64. package/dist/{chunk-KPWOWFMT.js.map → chunk-SQJVGL7Y.js.map} +1 -1
  65. package/dist/{chunk-JZYPFPEA.mjs → chunk-T2DNEJR3.mjs} +3 -3
  66. package/dist/{chunk-JZYPFPEA.mjs.map → chunk-T2DNEJR3.mjs.map} +1 -1
  67. package/dist/{chunk-OSL35VGG.js → chunk-T46LLZHX.js} +5 -5
  68. package/dist/{chunk-OSL35VGG.js.map → chunk-T46LLZHX.js.map} +1 -1
  69. package/dist/{chunk-H7SJBODY.mjs → chunk-TGAAJCUZ.mjs} +3 -3
  70. package/dist/{chunk-H7SJBODY.mjs.map → chunk-TGAAJCUZ.mjs.map} +1 -1
  71. package/dist/{chunk-SDJHC7QY.js → chunk-TX4BUYX4.js} +4 -4
  72. package/dist/{chunk-SDJHC7QY.js.map → chunk-TX4BUYX4.js.map} +1 -1
  73. package/dist/{chunk-HFRMDYNW.mjs → chunk-X36H75RR.mjs} +3 -3
  74. package/dist/{chunk-HFRMDYNW.mjs.map → chunk-X36H75RR.mjs.map} +1 -1
  75. package/dist/{chunk-VTWO7TPC.js → chunk-XF445GS6.js} +5 -5
  76. package/dist/{chunk-VTWO7TPC.js.map → chunk-XF445GS6.js.map} +1 -1
  77. package/dist/{chunk-FAENPPKD.mjs → chunk-XJHK3RH5.mjs} +5 -5
  78. package/dist/{chunk-FAENPPKD.mjs.map → chunk-XJHK3RH5.mjs.map} +1 -1
  79. package/dist/{chunk-7RAQNHGB.mjs → chunk-YXUYWO2W.mjs} +4 -4
  80. package/dist/{chunk-7RAQNHGB.mjs.map → chunk-YXUYWO2W.mjs.map} +1 -1
  81. package/dist/components/AdvancedPickers.js +8 -8
  82. package/dist/components/AdvancedPickers.mjs +4 -4
  83. package/dist/components/AppShell.js +9 -9
  84. package/dist/components/AppShell.mjs +7 -7
  85. package/dist/components/Comments.js +7 -7
  86. package/dist/components/Comments.mjs +4 -4
  87. package/dist/components/Commerce.js +19 -19
  88. package/dist/components/Commerce.mjs +8 -8
  89. package/dist/components/ContextMenu.js +4 -4
  90. package/dist/components/ContextMenu.mjs +3 -3
  91. package/dist/components/DataTable.js +12 -12
  92. package/dist/components/DataTable.mjs +5 -5
  93. package/dist/components/Display2.js +7 -7
  94. package/dist/components/Display2.mjs +3 -3
  95. package/dist/components/Display3.js +11 -11
  96. package/dist/components/Display3.mjs +5 -5
  97. package/dist/components/Editing.js +14 -14
  98. package/dist/components/Editing.mjs +8 -8
  99. package/dist/components/HoverCard.js +3 -3
  100. package/dist/components/HoverCard.mjs +2 -2
  101. package/dist/components/InputsExtra.js +13 -13
  102. package/dist/components/InputsExtra.mjs +4 -4
  103. package/dist/components/Layout.js +21 -21
  104. package/dist/components/Layout.mjs +2 -2
  105. package/dist/components/Logo.js +3 -3
  106. package/dist/components/Logo.mjs +2 -2
  107. package/dist/components/Menubar.js +4 -4
  108. package/dist/components/Menubar.mjs +3 -3
  109. package/dist/components/Metrics.d.mts +130 -0
  110. package/dist/components/Metrics.d.ts +130 -0
  111. package/dist/components/Metrics.js +41 -0
  112. package/dist/components/Metrics.js.map +1 -0
  113. package/dist/components/Metrics.mjs +8 -0
  114. package/dist/components/Metrics.mjs.map +1 -0
  115. package/dist/components/NavigationMenu.js +4 -4
  116. package/dist/components/NavigationMenu.mjs +3 -3
  117. package/dist/components/Overlay.js +9 -9
  118. package/dist/components/Overlay.mjs +7 -7
  119. package/dist/components/Pickers.js +9 -9
  120. package/dist/components/Pickers.mjs +4 -4
  121. package/dist/components/Popover.js +4 -4
  122. package/dist/components/Popover.mjs +3 -3
  123. package/dist/components/TimeAgo.js +5 -5
  124. package/dist/components/TimeAgo.mjs +3 -3
  125. package/dist/hooks/index.js +15 -15
  126. package/dist/hooks/index.mjs +3 -3
  127. package/dist/index.d.mts +1 -0
  128. package/dist/index.d.ts +1 -0
  129. package/dist/index.js +207 -178
  130. package/dist/index.mjs +34 -33
  131. package/dist/styles.css +1 -1
  132. package/package.json +1 -1
  133. package/dist/chunk-KROEMZNQ.js.map +0 -1
  134. package/dist/chunk-WMRGTHJB.mjs.map +0 -1
@@ -1,90 +1,90 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkKPWOWFMT_js = require('../chunk-KPWOWFMT.js');
4
+ var chunkSQJVGL7Y_js = require('../chunk-SQJVGL7Y.js');
5
5
  require('../chunk-WAGWB35Q.js');
6
+ require('../chunk-CRKYET66.js');
6
7
  require('../chunk-EUB4PHPI.js');
7
8
  require('../chunk-C4AKMVDZ.js');
8
9
  require('../chunk-PASF6T4H.js');
9
- require('../chunk-CRKYET66.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "Cluster", {
14
14
  enumerable: true,
15
- get: function () { return chunkKPWOWFMT_js.Cluster; }
15
+ get: function () { return chunkSQJVGL7Y_js.Cluster; }
16
16
  });
17
17
  Object.defineProperty(exports, "Container", {
18
18
  enumerable: true,
19
- get: function () { return chunkKPWOWFMT_js.Container; }
19
+ get: function () { return chunkSQJVGL7Y_js.Container; }
20
20
  });
21
21
  Object.defineProperty(exports, "Divider", {
22
22
  enumerable: true,
23
- get: function () { return chunkKPWOWFMT_js.Divider; }
23
+ get: function () { return chunkSQJVGL7Y_js.Divider; }
24
24
  });
25
25
  Object.defineProperty(exports, "Grid", {
26
26
  enumerable: true,
27
- get: function () { return chunkKPWOWFMT_js.Grid; }
27
+ get: function () { return chunkSQJVGL7Y_js.Grid; }
28
28
  });
29
29
  Object.defineProperty(exports, "HStack", {
30
30
  enumerable: true,
31
- get: function () { return chunkKPWOWFMT_js.HStack; }
31
+ get: function () { return chunkSQJVGL7Y_js.HStack; }
32
32
  });
33
33
  Object.defineProperty(exports, "KeyValue", {
34
34
  enumerable: true,
35
- get: function () { return chunkKPWOWFMT_js.KeyValue; }
35
+ get: function () { return chunkSQJVGL7Y_js.KeyValue; }
36
36
  });
37
37
  Object.defineProperty(exports, "KeyValueRow", {
38
38
  enumerable: true,
39
- get: function () { return chunkKPWOWFMT_js.KeyValueRow; }
39
+ get: function () { return chunkSQJVGL7Y_js.KeyValueRow; }
40
40
  });
41
41
  Object.defineProperty(exports, "ListGroup", {
42
42
  enumerable: true,
43
- get: function () { return chunkKPWOWFMT_js.ListGroup; }
43
+ get: function () { return chunkSQJVGL7Y_js.ListGroup; }
44
44
  });
45
45
  Object.defineProperty(exports, "ListGroupItem", {
46
46
  enumerable: true,
47
- get: function () { return chunkKPWOWFMT_js.ListGroupItem; }
47
+ get: function () { return chunkSQJVGL7Y_js.ListGroupItem; }
48
48
  });
49
49
  Object.defineProperty(exports, "Spacer", {
50
50
  enumerable: true,
51
- get: function () { return chunkKPWOWFMT_js.Spacer; }
51
+ get: function () { return chunkSQJVGL7Y_js.Spacer; }
52
52
  });
53
53
  Object.defineProperty(exports, "Stack", {
54
54
  enumerable: true,
55
- get: function () { return chunkKPWOWFMT_js.Stack; }
55
+ get: function () { return chunkSQJVGL7Y_js.Stack; }
56
56
  });
57
57
  Object.defineProperty(exports, "Stepper", {
58
58
  enumerable: true,
59
- get: function () { return chunkKPWOWFMT_js.Stepper; }
59
+ get: function () { return chunkSQJVGL7Y_js.Stepper; }
60
60
  });
61
61
  Object.defineProperty(exports, "Tab", {
62
62
  enumerable: true,
63
- get: function () { return chunkKPWOWFMT_js.Tab; }
63
+ get: function () { return chunkSQJVGL7Y_js.Tab; }
64
64
  });
65
65
  Object.defineProperty(exports, "TabList", {
66
66
  enumerable: true,
67
- get: function () { return chunkKPWOWFMT_js.TabList; }
67
+ get: function () { return chunkSQJVGL7Y_js.TabList; }
68
68
  });
69
69
  Object.defineProperty(exports, "TabPanel", {
70
70
  enumerable: true,
71
- get: function () { return chunkKPWOWFMT_js.TabPanel; }
71
+ get: function () { return chunkSQJVGL7Y_js.TabPanel; }
72
72
  });
73
73
  Object.defineProperty(exports, "Table", {
74
74
  enumerable: true,
75
- get: function () { return chunkKPWOWFMT_js.Table; }
75
+ get: function () { return chunkSQJVGL7Y_js.Table; }
76
76
  });
77
77
  Object.defineProperty(exports, "Tabs", {
78
78
  enumerable: true,
79
- get: function () { return chunkKPWOWFMT_js.Tabs; }
79
+ get: function () { return chunkSQJVGL7Y_js.Tabs; }
80
80
  });
81
81
  Object.defineProperty(exports, "Tooltip", {
82
82
  enumerable: true,
83
- get: function () { return chunkKPWOWFMT_js.Tooltip; }
83
+ get: function () { return chunkSQJVGL7Y_js.Tooltip; }
84
84
  });
85
85
  Object.defineProperty(exports, "VStack", {
86
86
  enumerable: true,
87
- get: function () { return chunkKPWOWFMT_js.VStack; }
87
+ get: function () { return chunkSQJVGL7Y_js.VStack; }
88
88
  });
89
89
  //# sourceMappingURL=Layout.js.map
90
90
  //# sourceMappingURL=Layout.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { Cluster, Container, Divider, Grid, HStack, KeyValue, KeyValueRow, ListGroup, ListGroupItem, Spacer, Stack, Stepper, Tab, TabList, TabPanel, Table, Tabs, Tooltip, VStack } from '../chunk-H7SJBODY.mjs';
2
+ export { Cluster, Container, Divider, Grid, HStack, KeyValue, KeyValueRow, ListGroup, ListGroupItem, Spacer, Stack, Stepper, Tab, TabList, TabPanel, Table, Tabs, Tooltip, VStack } from '../chunk-TGAAJCUZ.mjs';
3
3
  import '../chunk-FKBQYQQD.mjs';
4
+ import '../chunk-5XT2LX3I.mjs';
4
5
  import '../chunk-IEPKSPBX.mjs';
5
6
  import '../chunk-BJGMROKL.mjs';
6
7
  import '../chunk-IEPCH3JB.mjs';
7
- import '../chunk-5XT2LX3I.mjs';
8
8
  //# sourceMappingURL=Layout.mjs.map
9
9
  //# sourceMappingURL=Layout.mjs.map
@@ -1,15 +1,15 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkJZNUYA42_js = require('../chunk-JZNUYA42.js');
5
- require('../chunk-PASF6T4H.js');
4
+ var chunkNU4GAGUV_js = require('../chunk-NU4GAGUV.js');
6
5
  require('../chunk-3PXYCXDW.js');
6
+ require('../chunk-PASF6T4H.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "Logo", {
11
11
  enumerable: true,
12
- get: function () { return chunkJZNUYA42_js.Logo; }
12
+ get: function () { return chunkNU4GAGUV_js.Logo; }
13
13
  });
14
14
  //# sourceMappingURL=Logo.js.map
15
15
  //# sourceMappingURL=Logo.js.map
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { Logo } from '../chunk-QR6X2UOT.mjs';
3
- import '../chunk-IEPCH3JB.mjs';
2
+ export { Logo } from '../chunk-JMFDIN5R.mjs';
4
3
  import '../chunk-5GEWIK4T.mjs';
4
+ import '../chunk-IEPCH3JB.mjs';
5
5
  //# sourceMappingURL=Logo.mjs.map
6
6
  //# sourceMappingURL=Logo.mjs.map
@@ -1,17 +1,17 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkQMXU5WXD_js = require('../chunk-QMXU5WXD.js');
4
+ var chunkHCTY5QYL_js = require('../chunk-HCTY5QYL.js');
5
5
  require('../chunk-WAGWB35Q.js');
6
- require('../chunk-PASF6T4H.js');
7
- require('../chunk-CRKYET66.js');
8
6
  require('../chunk-XMLBKK7X.js');
7
+ require('../chunk-CRKYET66.js');
8
+ require('../chunk-PASF6T4H.js');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "Menubar", {
13
13
  enumerable: true,
14
- get: function () { return chunkQMXU5WXD_js.Menubar; }
14
+ get: function () { return chunkHCTY5QYL_js.Menubar; }
15
15
  });
16
16
  //# sourceMappingURL=Menubar.js.map
17
17
  //# sourceMappingURL=Menubar.js.map
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- export { Menubar } from '../chunk-7RAQNHGB.mjs';
2
+ export { Menubar } from '../chunk-YXUYWO2W.mjs';
3
3
  import '../chunk-FKBQYQQD.mjs';
4
- import '../chunk-IEPCH3JB.mjs';
5
- import '../chunk-5XT2LX3I.mjs';
6
4
  import '../chunk-6P2TKRTL.mjs';
5
+ import '../chunk-5XT2LX3I.mjs';
6
+ import '../chunk-IEPCH3JB.mjs';
7
7
  //# sourceMappingURL=Menubar.mjs.map
8
8
  //# sourceMappingURL=Menubar.mjs.map
@@ -0,0 +1,130 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { CategoryAccent } from './Display.mjs';
4
+ import '../utils/types.mjs';
5
+
6
+ /**
7
+ * Dashboard data-communication primitives. Everything here is CSS-only — no
8
+ * recharts dependency — so consumers can drop dense micro-viz into cards and
9
+ * table cells without paying for a chart library. The heavyweight charts
10
+ * (Line/Area/Bar/Donut) still live in Charts.tsx behind the BYO-recharts seam.
11
+ */
12
+ type DeltaTone = 'pos' | 'neg' | 'flat';
13
+ interface DeltaBadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
14
+ /** The variation. Sign drives direction + tone; magnitude is formatted. */
15
+ value: number;
16
+ /** Full-label formatter (incl. sign). Default: signed percent, e.g. `+12,4%`. */
17
+ format?: (value: number) => string;
18
+ /** Higher-is-worse: an increase shows ▲ but in red (cost, error rate, churn). */
19
+ invert?: boolean;
20
+ /** |value| ≤ this renders flat/neutral. Default 0. */
21
+ neutralThreshold?: number;
22
+ /** Hide the directional arrow, keep the colored number. */
23
+ showIcon?: boolean;
24
+ size?: 'sm' | 'md';
25
+ }
26
+ declare function DeltaBadge({ value, format, invert, neutralThreshold, showIcon, size, className, ...rest }: DeltaBadgeProps): react_jsx_runtime.JSX.Element;
27
+ interface StatCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
28
+ label: React.ReactNode;
29
+ value: React.ReactNode;
30
+ /** Convenience: renders a DeltaBadge. Omit and pass `deltaNode` for full control. */
31
+ delta?: number;
32
+ deltaFormat?: (value: number) => string;
33
+ deltaInvert?: boolean;
34
+ /** Escape hatch when `delta` isn't enough (custom node in the delta slot). */
35
+ deltaNode?: React.ReactNode;
36
+ /** Caption next to the delta, e.g. "vs. mes anterior". */
37
+ caption?: React.ReactNode;
38
+ /** Small leading glyph rendered in a tinted chip. */
39
+ icon?: React.ReactNode;
40
+ /** Left-edge accent hue. */
41
+ accent?: CategoryAccent;
42
+ /** Micro-viz slot (Sparkline / Sparkbar / ProportionBar). */
43
+ chart?: React.ReactNode;
44
+ }
45
+ declare function StatCard({ label, value, delta, deltaFormat, deltaInvert, deltaNode, caption, icon, accent, chart, className, ...rest }: StatCardProps): react_jsx_runtime.JSX.Element;
46
+ type MeterOptimum = 'low' | 'high' | 'middle';
47
+ interface MeterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
48
+ value: number;
49
+ min?: number;
50
+ max?: number;
51
+ /** Lower threshold boundary (for tone zones). */
52
+ low?: number;
53
+ /** Upper threshold boundary (for tone zones). */
54
+ high?: number;
55
+ /** Where "good" lives. Default `high` (more is better). */
56
+ optimum?: MeterOptimum;
57
+ label?: React.ReactNode;
58
+ /** Value caption. String or formatter; default shows `value/max`. */
59
+ valueLabel?: React.ReactNode | ((value: number, max: number) => React.ReactNode);
60
+ showValue?: boolean;
61
+ size?: 'sm' | 'md';
62
+ }
63
+ declare function Meter({ value, min, max, low, high, optimum, label, valueLabel, showValue, size, className, ...rest }: MeterProps): react_jsx_runtime.JSX.Element;
64
+ interface SparkbarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
65
+ data: number[];
66
+ height?: number;
67
+ /** Scale ceiling. Default: max of `data`. */
68
+ max?: number;
69
+ color?: string;
70
+ /** Emphasize the most recent bar (full opacity + secondary hue). */
71
+ highlightLast?: boolean;
72
+ /** Gap between bars in px. Default 2. */
73
+ gap?: number;
74
+ ariaLabel?: string;
75
+ }
76
+ declare function Sparkbar({ data, height, max, color, highlightLast, gap, ariaLabel, className, style, ...rest }: SparkbarProps): react_jsx_runtime.JSX.Element;
77
+ interface ProportionSegment {
78
+ label: string;
79
+ value: number;
80
+ color?: string;
81
+ }
82
+ interface ProportionBarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
83
+ segments: ProportionSegment[];
84
+ /** Denominator override (e.g. show partial fill against a known total). */
85
+ total?: number;
86
+ showLegend?: boolean;
87
+ showPercent?: boolean;
88
+ height?: number;
89
+ ariaLabel?: string;
90
+ }
91
+ declare function ProportionBar({ segments, total, showLegend, showPercent, height, ariaLabel, className, ...rest }: ProportionBarProps): react_jsx_runtime.JSX.Element;
92
+ type BulletTone = 'primary' | 'success' | 'warning' | 'danger';
93
+ interface BulletChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
94
+ value: number;
95
+ /** Comparative marker (the vertical tick). */
96
+ target?: number;
97
+ min?: number;
98
+ /** Scale end. Default: max of value/target/ranges. */
99
+ max?: number;
100
+ /** Qualitative range boundaries (ascending). Shaded light→dark behind the bar. */
101
+ ranges?: number[];
102
+ label?: React.ReactNode;
103
+ valueLabel?: React.ReactNode;
104
+ tone?: BulletTone;
105
+ height?: number;
106
+ ariaLabel?: string;
107
+ }
108
+ declare function BulletChart({ value, target, min, max, ranges, label, valueLabel, tone, height, ariaLabel, className, ...rest }: BulletChartProps): react_jsx_runtime.JSX.Element;
109
+ interface HeatmapCell {
110
+ /** Optional key/date for accessibility + keys. */
111
+ date?: string;
112
+ label?: React.ReactNode;
113
+ value: number;
114
+ }
115
+ interface CalendarHeatmapProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
116
+ data: HeatmapCell[];
117
+ /** Rows in the grid (column-major flow). Default 7 (weekdays). */
118
+ rows?: number;
119
+ /** Intensity ceiling. Default: max of `data`. */
120
+ max?: number;
121
+ /** Base hue tinted by intensity. Default primary. */
122
+ color?: string;
123
+ cellSize?: number;
124
+ gap?: number;
125
+ legend?: boolean;
126
+ ariaLabel?: string;
127
+ }
128
+ declare function CalendarHeatmap({ data, rows, max, color, cellSize, gap, legend, ariaLabel, className, style, ...rest }: CalendarHeatmapProps): react_jsx_runtime.JSX.Element;
129
+
130
+ export { BulletChart, type BulletChartProps, type BulletTone, CalendarHeatmap, type CalendarHeatmapProps, DeltaBadge, type DeltaBadgeProps, type DeltaTone, type HeatmapCell, Meter, type MeterOptimum, type MeterProps, ProportionBar, type ProportionBarProps, type ProportionSegment, Sparkbar, type SparkbarProps, StatCard, type StatCardProps };
@@ -0,0 +1,130 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { CategoryAccent } from './Display.js';
4
+ import '../utils/types.js';
5
+
6
+ /**
7
+ * Dashboard data-communication primitives. Everything here is CSS-only — no
8
+ * recharts dependency — so consumers can drop dense micro-viz into cards and
9
+ * table cells without paying for a chart library. The heavyweight charts
10
+ * (Line/Area/Bar/Donut) still live in Charts.tsx behind the BYO-recharts seam.
11
+ */
12
+ type DeltaTone = 'pos' | 'neg' | 'flat';
13
+ interface DeltaBadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
14
+ /** The variation. Sign drives direction + tone; magnitude is formatted. */
15
+ value: number;
16
+ /** Full-label formatter (incl. sign). Default: signed percent, e.g. `+12,4%`. */
17
+ format?: (value: number) => string;
18
+ /** Higher-is-worse: an increase shows ▲ but in red (cost, error rate, churn). */
19
+ invert?: boolean;
20
+ /** |value| ≤ this renders flat/neutral. Default 0. */
21
+ neutralThreshold?: number;
22
+ /** Hide the directional arrow, keep the colored number. */
23
+ showIcon?: boolean;
24
+ size?: 'sm' | 'md';
25
+ }
26
+ declare function DeltaBadge({ value, format, invert, neutralThreshold, showIcon, size, className, ...rest }: DeltaBadgeProps): react_jsx_runtime.JSX.Element;
27
+ interface StatCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
28
+ label: React.ReactNode;
29
+ value: React.ReactNode;
30
+ /** Convenience: renders a DeltaBadge. Omit and pass `deltaNode` for full control. */
31
+ delta?: number;
32
+ deltaFormat?: (value: number) => string;
33
+ deltaInvert?: boolean;
34
+ /** Escape hatch when `delta` isn't enough (custom node in the delta slot). */
35
+ deltaNode?: React.ReactNode;
36
+ /** Caption next to the delta, e.g. "vs. mes anterior". */
37
+ caption?: React.ReactNode;
38
+ /** Small leading glyph rendered in a tinted chip. */
39
+ icon?: React.ReactNode;
40
+ /** Left-edge accent hue. */
41
+ accent?: CategoryAccent;
42
+ /** Micro-viz slot (Sparkline / Sparkbar / ProportionBar). */
43
+ chart?: React.ReactNode;
44
+ }
45
+ declare function StatCard({ label, value, delta, deltaFormat, deltaInvert, deltaNode, caption, icon, accent, chart, className, ...rest }: StatCardProps): react_jsx_runtime.JSX.Element;
46
+ type MeterOptimum = 'low' | 'high' | 'middle';
47
+ interface MeterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
48
+ value: number;
49
+ min?: number;
50
+ max?: number;
51
+ /** Lower threshold boundary (for tone zones). */
52
+ low?: number;
53
+ /** Upper threshold boundary (for tone zones). */
54
+ high?: number;
55
+ /** Where "good" lives. Default `high` (more is better). */
56
+ optimum?: MeterOptimum;
57
+ label?: React.ReactNode;
58
+ /** Value caption. String or formatter; default shows `value/max`. */
59
+ valueLabel?: React.ReactNode | ((value: number, max: number) => React.ReactNode);
60
+ showValue?: boolean;
61
+ size?: 'sm' | 'md';
62
+ }
63
+ declare function Meter({ value, min, max, low, high, optimum, label, valueLabel, showValue, size, className, ...rest }: MeterProps): react_jsx_runtime.JSX.Element;
64
+ interface SparkbarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
65
+ data: number[];
66
+ height?: number;
67
+ /** Scale ceiling. Default: max of `data`. */
68
+ max?: number;
69
+ color?: string;
70
+ /** Emphasize the most recent bar (full opacity + secondary hue). */
71
+ highlightLast?: boolean;
72
+ /** Gap between bars in px. Default 2. */
73
+ gap?: number;
74
+ ariaLabel?: string;
75
+ }
76
+ declare function Sparkbar({ data, height, max, color, highlightLast, gap, ariaLabel, className, style, ...rest }: SparkbarProps): react_jsx_runtime.JSX.Element;
77
+ interface ProportionSegment {
78
+ label: string;
79
+ value: number;
80
+ color?: string;
81
+ }
82
+ interface ProportionBarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
83
+ segments: ProportionSegment[];
84
+ /** Denominator override (e.g. show partial fill against a known total). */
85
+ total?: number;
86
+ showLegend?: boolean;
87
+ showPercent?: boolean;
88
+ height?: number;
89
+ ariaLabel?: string;
90
+ }
91
+ declare function ProportionBar({ segments, total, showLegend, showPercent, height, ariaLabel, className, ...rest }: ProportionBarProps): react_jsx_runtime.JSX.Element;
92
+ type BulletTone = 'primary' | 'success' | 'warning' | 'danger';
93
+ interface BulletChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
94
+ value: number;
95
+ /** Comparative marker (the vertical tick). */
96
+ target?: number;
97
+ min?: number;
98
+ /** Scale end. Default: max of value/target/ranges. */
99
+ max?: number;
100
+ /** Qualitative range boundaries (ascending). Shaded light→dark behind the bar. */
101
+ ranges?: number[];
102
+ label?: React.ReactNode;
103
+ valueLabel?: React.ReactNode;
104
+ tone?: BulletTone;
105
+ height?: number;
106
+ ariaLabel?: string;
107
+ }
108
+ declare function BulletChart({ value, target, min, max, ranges, label, valueLabel, tone, height, ariaLabel, className, ...rest }: BulletChartProps): react_jsx_runtime.JSX.Element;
109
+ interface HeatmapCell {
110
+ /** Optional key/date for accessibility + keys. */
111
+ date?: string;
112
+ label?: React.ReactNode;
113
+ value: number;
114
+ }
115
+ interface CalendarHeatmapProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
116
+ data: HeatmapCell[];
117
+ /** Rows in the grid (column-major flow). Default 7 (weekdays). */
118
+ rows?: number;
119
+ /** Intensity ceiling. Default: max of `data`. */
120
+ max?: number;
121
+ /** Base hue tinted by intensity. Default primary. */
122
+ color?: string;
123
+ cellSize?: number;
124
+ gap?: number;
125
+ legend?: boolean;
126
+ ariaLabel?: string;
127
+ }
128
+ declare function CalendarHeatmap({ data, rows, max, color, cellSize, gap, legend, ariaLabel, className, style, ...rest }: CalendarHeatmapProps): react_jsx_runtime.JSX.Element;
129
+
130
+ export { BulletChart, type BulletChartProps, type BulletTone, CalendarHeatmap, type CalendarHeatmapProps, DeltaBadge, type DeltaBadgeProps, type DeltaTone, type HeatmapCell, Meter, type MeterOptimum, type MeterProps, ProportionBar, type ProportionBarProps, type ProportionSegment, Sparkbar, type SparkbarProps, StatCard, type StatCardProps };
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var chunkBULIPFOG_js = require('../chunk-BULIPFOG.js');
5
+ require('../chunk-CTOPKHEE.js');
6
+ require('../chunk-3PXYCXDW.js');
7
+ require('../chunk-C4AKMVDZ.js');
8
+ require('../chunk-PASF6T4H.js');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "BulletChart", {
13
+ enumerable: true,
14
+ get: function () { return chunkBULIPFOG_js.BulletChart; }
15
+ });
16
+ Object.defineProperty(exports, "CalendarHeatmap", {
17
+ enumerable: true,
18
+ get: function () { return chunkBULIPFOG_js.CalendarHeatmap; }
19
+ });
20
+ Object.defineProperty(exports, "DeltaBadge", {
21
+ enumerable: true,
22
+ get: function () { return chunkBULIPFOG_js.DeltaBadge; }
23
+ });
24
+ Object.defineProperty(exports, "Meter", {
25
+ enumerable: true,
26
+ get: function () { return chunkBULIPFOG_js.Meter; }
27
+ });
28
+ Object.defineProperty(exports, "ProportionBar", {
29
+ enumerable: true,
30
+ get: function () { return chunkBULIPFOG_js.ProportionBar; }
31
+ });
32
+ Object.defineProperty(exports, "Sparkbar", {
33
+ enumerable: true,
34
+ get: function () { return chunkBULIPFOG_js.Sparkbar; }
35
+ });
36
+ Object.defineProperty(exports, "StatCard", {
37
+ enumerable: true,
38
+ get: function () { return chunkBULIPFOG_js.StatCard; }
39
+ });
40
+ //# sourceMappingURL=Metrics.js.map
41
+ //# sourceMappingURL=Metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"Metrics.js"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ export { BulletChart, CalendarHeatmap, DeltaBadge, Meter, ProportionBar, Sparkbar, StatCard } from '../chunk-2RBVHLG4.mjs';
3
+ import '../chunk-WYOJ7YRQ.mjs';
4
+ import '../chunk-5GEWIK4T.mjs';
5
+ import '../chunk-BJGMROKL.mjs';
6
+ import '../chunk-IEPCH3JB.mjs';
7
+ //# sourceMappingURL=Metrics.mjs.map
8
+ //# sourceMappingURL=Metrics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"Metrics.mjs"}
@@ -1,18 +1,18 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkSDJHC7QY_js = require('../chunk-SDJHC7QY.js');
4
+ var chunkTX4BUYX4_js = require('../chunk-TX4BUYX4.js');
5
5
  require('../chunk-WAGWB35Q.js');
6
+ require('../chunk-XMLBKK7X.js');
7
+ require('../chunk-CRKYET66.js');
6
8
  require('../chunk-C4AKMVDZ.js');
7
9
  require('../chunk-PASF6T4H.js');
8
- require('../chunk-CRKYET66.js');
9
- require('../chunk-XMLBKK7X.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "NavigationMenu", {
14
14
  enumerable: true,
15
- get: function () { return chunkSDJHC7QY_js.NavigationMenu; }
15
+ get: function () { return chunkTX4BUYX4_js.NavigationMenu; }
16
16
  });
17
17
  //# sourceMappingURL=NavigationMenu.js.map
18
18
  //# sourceMappingURL=NavigationMenu.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { NavigationMenu } from '../chunk-3WSB2R2K.mjs';
2
+ export { NavigationMenu } from '../chunk-OIYIWG53.mjs';
3
3
  import '../chunk-FKBQYQQD.mjs';
4
+ import '../chunk-6P2TKRTL.mjs';
5
+ import '../chunk-5XT2LX3I.mjs';
4
6
  import '../chunk-BJGMROKL.mjs';
5
7
  import '../chunk-IEPCH3JB.mjs';
6
- import '../chunk-5XT2LX3I.mjs';
7
- import '../chunk-6P2TKRTL.mjs';
8
8
  //# sourceMappingURL=NavigationMenu.mjs.map
9
9
  //# sourceMappingURL=NavigationMenu.mjs.map
@@ -1,28 +1,28 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkHCFIPNUU_js = require('../chunk-HCFIPNUU.js');
5
- require('../chunk-A42WMR4M.js');
6
- require('../chunk-C4AKMVDZ.js');
7
- require('../chunk-PASF6T4H.js');
4
+ var chunkS3DEFKS5_js = require('../chunk-S3DEFKS5.js');
8
5
  require('../chunk-HT43MPKW.js');
9
6
  require('../chunk-D2H4VZVL.js');
10
- require('../chunk-6D5UP23V.js');
11
- require('../chunk-CRKYET66.js');
12
7
  require('../chunk-FL4ZCWUF.js');
13
- require('../chunk-XMLBKK7X.js');
14
8
  require('../chunk-NPXEZCTA.js');
15
9
  require('../chunk-55P5FA5Q.js');
10
+ require('../chunk-6D5UP23V.js');
11
+ require('../chunk-A42WMR4M.js');
12
+ require('../chunk-XMLBKK7X.js');
13
+ require('../chunk-CRKYET66.js');
14
+ require('../chunk-C4AKMVDZ.js');
15
+ require('../chunk-PASF6T4H.js');
16
16
 
17
17
 
18
18
 
19
19
  Object.defineProperty(exports, "Drawer", {
20
20
  enumerable: true,
21
- get: function () { return chunkHCFIPNUU_js.Drawer; }
21
+ get: function () { return chunkS3DEFKS5_js.Drawer; }
22
22
  });
23
23
  Object.defineProperty(exports, "Modal", {
24
24
  enumerable: true,
25
- get: function () { return chunkHCFIPNUU_js.Modal; }
25
+ get: function () { return chunkS3DEFKS5_js.Modal; }
26
26
  });
27
27
  //# sourceMappingURL=Overlay.js.map
28
28
  //# sourceMappingURL=Overlay.js.map
@@ -1,15 +1,15 @@
1
1
  'use client';
2
- export { Drawer, Modal } from '../chunk-FAENPPKD.mjs';
3
- import '../chunk-KYYRQNY7.mjs';
4
- import '../chunk-BJGMROKL.mjs';
5
- import '../chunk-IEPCH3JB.mjs';
2
+ export { Drawer, Modal } from '../chunk-XJHK3RH5.mjs';
6
3
  import '../chunk-JT6OOSI2.mjs';
7
4
  import '../chunk-R5DCDEB5.mjs';
8
- import '../chunk-YTKPENNW.mjs';
9
- import '../chunk-5XT2LX3I.mjs';
10
5
  import '../chunk-U3JH4T3A.mjs';
11
- import '../chunk-6P2TKRTL.mjs';
12
6
  import '../chunk-6W7ZGWNA.mjs';
13
7
  import '../chunk-XOV4D6J3.mjs';
8
+ import '../chunk-YTKPENNW.mjs';
9
+ import '../chunk-KYYRQNY7.mjs';
10
+ import '../chunk-6P2TKRTL.mjs';
11
+ import '../chunk-5XT2LX3I.mjs';
12
+ import '../chunk-BJGMROKL.mjs';
13
+ import '../chunk-IEPCH3JB.mjs';
14
14
  //# sourceMappingURL=Overlay.mjs.map
15
15
  //# sourceMappingURL=Overlay.mjs.map
@@ -1,39 +1,39 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkKROEMZNQ_js = require('../chunk-KROEMZNQ.js');
4
+ var chunkS3MMU3LW_js = require('../chunk-S3MMU3LW.js');
5
5
  require('../chunk-RFWSMP7Q.js');
6
6
  require('../chunk-MVJITG75.js');
7
7
  require('../chunk-WAGWB35Q.js');
8
+ require('../chunk-3PXYCXDW.js');
8
9
  require('../chunk-A42WMR4M.js');
10
+ require('../chunk-XMLBKK7X.js');
11
+ require('../chunk-CRKYET66.js');
9
12
  require('../chunk-EUB4PHPI.js');
10
13
  require('../chunk-C4AKMVDZ.js');
11
14
  require('../chunk-PASF6T4H.js');
12
- require('../chunk-3PXYCXDW.js');
13
- require('../chunk-CRKYET66.js');
14
- require('../chunk-XMLBKK7X.js');
15
15
 
16
16
 
17
17
 
18
18
  Object.defineProperty(exports, "Combobox", {
19
19
  enumerable: true,
20
- get: function () { return chunkKROEMZNQ_js.Combobox; }
20
+ get: function () { return chunkS3MMU3LW_js.Combobox; }
21
21
  });
22
22
  Object.defineProperty(exports, "DatePicker", {
23
23
  enumerable: true,
24
- get: function () { return chunkKROEMZNQ_js.DatePicker; }
24
+ get: function () { return chunkS3MMU3LW_js.DatePicker; }
25
25
  });
26
26
  Object.defineProperty(exports, "FileUpload", {
27
27
  enumerable: true,
28
- get: function () { return chunkKROEMZNQ_js.FileUpload; }
28
+ get: function () { return chunkS3MMU3LW_js.FileUpload; }
29
29
  });
30
30
  Object.defineProperty(exports, "MonthPicker", {
31
31
  enumerable: true,
32
- get: function () { return chunkKROEMZNQ_js.MonthPicker; }
32
+ get: function () { return chunkS3MMU3LW_js.MonthPicker; }
33
33
  });
34
34
  Object.defineProperty(exports, "YearPicker", {
35
35
  enumerable: true,
36
- get: function () { return chunkKROEMZNQ_js.YearPicker; }
36
+ get: function () { return chunkS3MMU3LW_js.YearPicker; }
37
37
  });
38
38
  //# sourceMappingURL=Pickers.js.map
39
39
  //# sourceMappingURL=Pickers.js.map