erp-pro-ui 0.1.2 → 0.1.4

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 (198) hide show
  1. package/dist/animations.css +40 -0
  2. package/dist/calendar.cjs +1 -1
  3. package/dist/calendar.mjs +1 -1
  4. package/dist/card.cjs +1 -1
  5. package/dist/card.mjs +1 -1
  6. package/dist/carousel.cjs +1 -1
  7. package/dist/carousel.mjs +1 -1
  8. package/dist/catalog.cjs +6 -0
  9. package/dist/catalog.cjs.map +1 -1
  10. package/dist/catalog.d.ts +11 -1
  11. package/dist/catalog.d.ts.map +1 -1
  12. package/dist/catalog.mjs +6 -0
  13. package/dist/catalog.mjs.map +1 -1
  14. package/dist/charts.cjs +2 -1
  15. package/dist/charts.mjs +2 -2
  16. package/dist/checkbox.cjs +1 -1
  17. package/dist/checkbox.mjs +1 -1
  18. package/dist/chip.cjs +1 -1
  19. package/dist/chip.mjs +1 -1
  20. package/dist/chroma-grid.cjs +1 -1
  21. package/dist/chroma-grid.mjs +1 -1
  22. package/dist/chunks/{calendar-xrGmvukr.cjs → calendar-Cpp_Rc7T.cjs} +58 -17
  23. package/dist/chunks/calendar-Cpp_Rc7T.cjs.map +1 -0
  24. package/dist/chunks/{calendar-BarcG6x_.mjs → calendar-DrCgT_pj.mjs} +58 -17
  25. package/dist/chunks/calendar-DrCgT_pj.mjs.map +1 -0
  26. package/dist/chunks/{card-gt-HZh0h.cjs → card-C5_tFK6Q.cjs} +1 -1
  27. package/dist/chunks/{card-gt-HZh0h.cjs.map → card-C5_tFK6Q.cjs.map} +1 -1
  28. package/dist/chunks/{card-CcIF6z2H.mjs → card-Dh8wNv8N.mjs} +1 -1
  29. package/dist/chunks/{card-CcIF6z2H.mjs.map → card-Dh8wNv8N.mjs.map} +1 -1
  30. package/dist/chunks/{carousel-DJdqBVRK.mjs → carousel-BYwqI4cA.mjs} +1 -1
  31. package/dist/chunks/{carousel-DJdqBVRK.mjs.map → carousel-BYwqI4cA.mjs.map} +1 -1
  32. package/dist/chunks/{carousel-Cq5uwqQt.cjs → carousel-C1338X8h.cjs} +1 -1
  33. package/dist/chunks/{carousel-Cq5uwqQt.cjs.map → carousel-C1338X8h.cjs.map} +1 -1
  34. package/dist/chunks/{charts-DugYWvEf.mjs → charts-BYvM4TMG.mjs} +371 -117
  35. package/dist/chunks/charts-BYvM4TMG.mjs.map +1 -0
  36. package/dist/chunks/{charts-BpElnsoR.cjs → charts-DbxyHtlX.cjs} +375 -115
  37. package/dist/chunks/charts-DbxyHtlX.cjs.map +1 -0
  38. package/dist/chunks/{checkbox-yHuSw-hV.cjs → checkbox-CxOcjoGP.cjs} +1 -1
  39. package/dist/chunks/{checkbox-yHuSw-hV.cjs.map → checkbox-CxOcjoGP.cjs.map} +1 -1
  40. package/dist/chunks/{checkbox-DvwlGwWe.mjs → checkbox-Pr49U9F1.mjs} +1 -1
  41. package/dist/chunks/{checkbox-DvwlGwWe.mjs.map → checkbox-Pr49U9F1.mjs.map} +1 -1
  42. package/dist/chunks/{chip-DcBji__g.cjs → chip-B4ol1yPk.cjs} +1 -1
  43. package/dist/chunks/{chip-DcBji__g.cjs.map → chip-B4ol1yPk.cjs.map} +1 -1
  44. package/dist/chunks/{chip-BGSUmnlO.mjs → chip-DdnBLdpl.mjs} +1 -1
  45. package/dist/chunks/{chip-BGSUmnlO.mjs.map → chip-DdnBLdpl.mjs.map} +1 -1
  46. package/dist/chunks/{chroma-grid-Cdeql_2C.mjs → chroma-grid-BAo6V5A7.mjs} +1 -1
  47. package/dist/chunks/{chroma-grid-Cdeql_2C.mjs.map → chroma-grid-BAo6V5A7.mjs.map} +1 -1
  48. package/dist/chunks/{chroma-grid-9E9j1s9I.cjs → chroma-grid-CIk0dsNS.cjs} +1 -1
  49. package/dist/chunks/{chroma-grid-9E9j1s9I.cjs.map → chroma-grid-CIk0dsNS.cjs.map} +1 -1
  50. package/dist/chunks/{color-palette-BLvDnCOD.cjs → color-palette-2TuEMkAn.cjs} +1 -1
  51. package/dist/chunks/{color-palette-BLvDnCOD.cjs.map → color-palette-2TuEMkAn.cjs.map} +1 -1
  52. package/dist/chunks/{color-palette-CXlCDiZz.mjs → color-palette-euKQMWlV.mjs} +1 -1
  53. package/dist/chunks/{color-palette-CXlCDiZz.mjs.map → color-palette-euKQMWlV.mjs.map} +1 -1
  54. package/dist/chunks/{combobox-BXu3s0dt.cjs → combobox-CwGubKTt.cjs} +2 -2
  55. package/dist/chunks/combobox-CwGubKTt.cjs.map +1 -0
  56. package/dist/chunks/{combobox-CjK-qG4k.mjs → combobox-DrFmkI0F.mjs} +2 -2
  57. package/dist/chunks/combobox-DrFmkI0F.mjs.map +1 -0
  58. package/dist/chunks/{data-table-DyEQn9Yj.mjs → data-table-Bo80m7qV.mjs} +8 -8
  59. package/dist/chunks/{data-table-DyEQn9Yj.mjs.map → data-table-Bo80m7qV.mjs.map} +1 -1
  60. package/dist/chunks/{data-table-9HELVsYR.cjs → data-table-W1sK5tkL.cjs} +8 -8
  61. package/dist/chunks/{data-table-9HELVsYR.cjs.map → data-table-W1sK5tkL.cjs.map} +1 -1
  62. package/dist/chunks/{date-picker-D8gaaMlJ.mjs → date-picker-CNPORxhv.mjs} +87 -17
  63. package/dist/chunks/date-picker-CNPORxhv.mjs.map +1 -0
  64. package/dist/chunks/{date-picker-W9om1j7A.cjs → date-picker-CZo68Fkl.cjs} +87 -17
  65. package/dist/chunks/date-picker-CZo68Fkl.cjs.map +1 -0
  66. package/dist/chunks/input-BWM6G7jq.cjs +117 -0
  67. package/dist/chunks/input-BWM6G7jq.cjs.map +1 -0
  68. package/dist/chunks/input-Bt_r_B_c.mjs +105 -0
  69. package/dist/chunks/input-Bt_r_B_c.mjs.map +1 -0
  70. package/dist/chunks/{multi-select-combobox-ELSH_Xr4.mjs → multi-select-combobox-D46M-AN9.mjs} +2 -2
  71. package/dist/chunks/multi-select-combobox-D46M-AN9.mjs.map +1 -0
  72. package/dist/chunks/{multi-select-combobox-UW0X15W7.cjs → multi-select-combobox-dS6bJE_e.cjs} +2 -2
  73. package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs.map +1 -0
  74. package/dist/chunks/{otp-input-B6zzOEqw.cjs → otp-input-DSW9Ca_D.cjs} +2 -2
  75. package/dist/chunks/otp-input-DSW9Ca_D.cjs.map +1 -0
  76. package/dist/chunks/{otp-input-Bg4nQG6x.mjs → otp-input-DeAi4nJ_.mjs} +2 -2
  77. package/dist/chunks/otp-input-DeAi4nJ_.mjs.map +1 -0
  78. package/dist/chunks/{progress-bar-C9FZDrju.mjs → progress-bar-B9sy7WBT.mjs} +1 -1
  79. package/dist/chunks/{progress-bar-C9FZDrju.mjs.map → progress-bar-B9sy7WBT.mjs.map} +1 -1
  80. package/dist/chunks/{progress-bar-C1OvQ-NI.cjs → progress-bar-BdvQtpm3.cjs} +1 -1
  81. package/dist/chunks/{progress-bar-C1OvQ-NI.cjs.map → progress-bar-BdvQtpm3.cjs.map} +1 -1
  82. package/dist/chunks/select-B8UQ6Uq5.mjs +170 -0
  83. package/dist/chunks/select-B8UQ6Uq5.mjs.map +1 -0
  84. package/dist/chunks/select-CCUSMvfS.cjs +176 -0
  85. package/dist/chunks/select-CCUSMvfS.cjs.map +1 -0
  86. package/dist/chunks/skeleton-BNea1Rcp.cjs +422 -0
  87. package/dist/chunks/skeleton-BNea1Rcp.cjs.map +1 -0
  88. package/dist/chunks/skeleton-CtLumdRw.mjs +368 -0
  89. package/dist/chunks/skeleton-CtLumdRw.mjs.map +1 -0
  90. package/dist/chunks/stepper-D6qQbZdg.cjs +642 -0
  91. package/dist/chunks/stepper-D6qQbZdg.cjs.map +1 -0
  92. package/dist/chunks/stepper-DUknuW2E.mjs +618 -0
  93. package/dist/chunks/stepper-DUknuW2E.mjs.map +1 -0
  94. package/dist/chunks/{textarea-CU5C-Zw9.mjs → textarea-Blky_fLK.mjs} +2 -2
  95. package/dist/chunks/{textarea-CU5C-Zw9.mjs.map → textarea-Blky_fLK.mjs.map} +1 -1
  96. package/dist/chunks/{textarea-CAUsyu4-.cjs → textarea-ok_NlE2p.cjs} +2 -2
  97. package/dist/chunks/textarea-ok_NlE2p.cjs.map +1 -0
  98. package/dist/color-palette.cjs +1 -1
  99. package/dist/color-palette.mjs +1 -1
  100. package/dist/colors.css +3 -0
  101. package/dist/combobox.cjs +1 -1
  102. package/dist/combobox.mjs +1 -1
  103. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -1
  104. package/dist/components/data-display/charts/BarChart.d.ts +1 -0
  105. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
  106. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -1
  107. package/dist/components/data-display/charts/PieChart.d.ts +18 -2
  108. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -1
  109. package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts +21 -0
  110. package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts.map +1 -0
  111. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -1
  112. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts +3 -0
  113. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
  114. package/dist/components/data-display/charts/chartStyles.d.ts +24 -0
  115. package/dist/components/data-display/charts/chartStyles.d.ts.map +1 -0
  116. package/dist/components/data-display/charts/index.d.ts +2 -0
  117. package/dist/components/data-display/charts/index.d.ts.map +1 -1
  118. package/dist/components/data-display/skeleton/Skeleton.d.ts +32 -5
  119. package/dist/components/data-display/skeleton/Skeleton.d.ts.map +1 -1
  120. package/dist/components/data-display/skeleton/index.d.ts +2 -2
  121. package/dist/components/data-display/skeleton/index.d.ts.map +1 -1
  122. package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
  123. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  124. package/dist/components/forms/input/Input.d.ts.map +1 -1
  125. package/dist/components/forms/input/types.d.ts +5 -0
  126. package/dist/components/forms/input/types.d.ts.map +1 -1
  127. package/dist/components/forms/select/Select.d.ts.map +1 -1
  128. package/dist/components/forms/select/types.d.ts +7 -1
  129. package/dist/components/forms/select/types.d.ts.map +1 -1
  130. package/dist/components/navigation/stepper/Stepper1.d.ts +4 -0
  131. package/dist/components/navigation/stepper/Stepper1.d.ts.map +1 -0
  132. package/dist/components/navigation/stepper/Stepper2.d.ts +5 -0
  133. package/dist/components/navigation/stepper/Stepper2.d.ts.map +1 -0
  134. package/dist/components/navigation/stepper/index.d.ts +4 -1
  135. package/dist/components/navigation/stepper/index.d.ts.map +1 -1
  136. package/dist/components/navigation/stepper/types.d.ts +85 -0
  137. package/dist/components/navigation/stepper/types.d.ts.map +1 -1
  138. package/dist/data-table.cjs +1 -1
  139. package/dist/data-table.mjs +1 -1
  140. package/dist/date-picker.cjs +1 -1
  141. package/dist/date-picker.mjs +1 -1
  142. package/dist/docs.cjs +12 -2
  143. package/dist/docs.cjs.map +1 -1
  144. package/dist/docs.d.ts.map +1 -1
  145. package/dist/docs.mjs +12 -2
  146. package/dist/docs.mjs.map +1 -1
  147. package/dist/foundation.css +7 -0
  148. package/dist/index.cjs +32 -19
  149. package/dist/index.d.ts +7 -4
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.mjs +20 -20
  152. package/dist/input.cjs +1 -1
  153. package/dist/input.mjs +1 -1
  154. package/dist/multi-select-combobox.cjs +1 -1
  155. package/dist/multi-select-combobox.mjs +1 -1
  156. package/dist/otp-input.cjs +1 -1
  157. package/dist/otp-input.mjs +1 -1
  158. package/dist/progress-bar.cjs +1 -1
  159. package/dist/progress-bar.mjs +1 -1
  160. package/dist/select.cjs +1 -1
  161. package/dist/select.mjs +1 -1
  162. package/dist/skeleton.cjs +9 -1
  163. package/dist/skeleton.mjs +2 -2
  164. package/dist/stepper.cjs +5 -1
  165. package/dist/stepper.mjs +2 -2
  166. package/dist/textarea.cjs +1 -1
  167. package/dist/textarea.mjs +1 -1
  168. package/dist/tokens.css +11 -2
  169. package/package.json +9 -9
  170. package/dist/chunks/calendar-BarcG6x_.mjs.map +0 -1
  171. package/dist/chunks/calendar-xrGmvukr.cjs.map +0 -1
  172. package/dist/chunks/charts-BpElnsoR.cjs.map +0 -1
  173. package/dist/chunks/charts-DugYWvEf.mjs.map +0 -1
  174. package/dist/chunks/combobox-BXu3s0dt.cjs.map +0 -1
  175. package/dist/chunks/combobox-CjK-qG4k.mjs.map +0 -1
  176. package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +0 -1
  177. package/dist/chunks/date-picker-W9om1j7A.cjs.map +0 -1
  178. package/dist/chunks/input-D9qZNqXV.cjs +0 -99
  179. package/dist/chunks/input-D9qZNqXV.cjs.map +0 -1
  180. package/dist/chunks/input-wNqevfQ4.mjs +0 -87
  181. package/dist/chunks/input-wNqevfQ4.mjs.map +0 -1
  182. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +0 -1
  183. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +0 -1
  184. package/dist/chunks/otp-input-B6zzOEqw.cjs.map +0 -1
  185. package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +0 -1
  186. package/dist/chunks/select-D71tk6-I.mjs +0 -152
  187. package/dist/chunks/select-D71tk6-I.mjs.map +0 -1
  188. package/dist/chunks/select-WC_kPqUP.cjs +0 -158
  189. package/dist/chunks/select-WC_kPqUP.cjs.map +0 -1
  190. package/dist/chunks/skeleton-BhYWOp0Q.mjs +0 -215
  191. package/dist/chunks/skeleton-BhYWOp0Q.mjs.map +0 -1
  192. package/dist/chunks/skeleton-DTXpHYYB.cjs +0 -221
  193. package/dist/chunks/skeleton-DTXpHYYB.cjs.map +0 -1
  194. package/dist/chunks/stepper-D4yQsQB0.mjs +0 -261
  195. package/dist/chunks/stepper-D4yQsQB0.mjs.map +0 -1
  196. package/dist/chunks/stepper-fY-Sx72k.cjs +0 -267
  197. package/dist/chunks/stepper-fY-Sx72k.cjs.map +0 -1
  198. package/dist/chunks/textarea-CAUsyu4-.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { Area, AreaChart, Bar, BarChart, CartesianGrid, Cell, Legend, Line, LineChart, Pie, PieChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
3
+ import { Area, AreaChart, Bar, BarChart, CartesianGrid, Cell, Legend, Line, LineChart, Pie, PieChart, Rectangle, ReferenceLine, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
4
4
  //#region src/components/data-display/charts/chartPalette.ts
5
5
  var chartColorSlots = [
6
6
  1,
@@ -105,6 +105,58 @@ var normalizeChartColors = (requestedColors) => {
105
105
  });
106
106
  };
107
107
  //#endregion
108
+ //#region src/components/data-display/charts/chartStyles.ts
109
+ var chartTooltipContentStyle = {
110
+ background: "linear-gradient(135deg, color-mix(in srgb, var(--ds-color-bg-surface) 88%, transparent), color-mix(in srgb, var(--ds-color-bg-elevated) 74%, transparent))",
111
+ border: "1px solid color-mix(in srgb, var(--ds-color-border-strong) 72%, transparent)",
112
+ borderRadius: "12px",
113
+ backdropFilter: "blur(18px) saturate(180%)",
114
+ WebkitBackdropFilter: "blur(18px) saturate(180%)",
115
+ boxShadow: "0 18px 40px color-mix(in srgb, var(--ds-color-fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--ds-color-bg-surface) 36%, transparent)",
116
+ color: "var(--ds-color-fg)",
117
+ padding: "0.75rem 0.875rem"
118
+ };
119
+ var chartTooltipLabelStyle = {
120
+ color: "var(--ds-color-fg)",
121
+ fontSize: "0.8125rem",
122
+ fontWeight: 600,
123
+ marginBottom: "0.375rem"
124
+ };
125
+ var chartTooltipItemStyle = {
126
+ color: "var(--ds-color-fg)",
127
+ fontSize: "0.8125rem",
128
+ fontWeight: 500,
129
+ padding: 0
130
+ };
131
+ var chartTooltipWrapperStyle = { outline: "none" };
132
+ var chartLegendTextStyle = {
133
+ fontSize: "12px",
134
+ color: "var(--ds-color-fg-muted)"
135
+ };
136
+ var chartBandHoverCursorStyle = {
137
+ fill: "color-mix(in srgb, var(--ds-color-accent) 12%, transparent)",
138
+ stroke: "color-mix(in srgb, var(--ds-color-accent) 34%, var(--ds-color-border-strong))",
139
+ strokeWidth: 1
140
+ };
141
+ var chartLineHoverCursorStyle = {
142
+ stroke: "color-mix(in srgb, var(--ds-color-accent) 42%, var(--ds-color-border-strong))",
143
+ strokeWidth: 1.25,
144
+ strokeDasharray: "4 4"
145
+ };
146
+ var getChartActiveDotStyle = (strokeColor) => ({
147
+ r: 6,
148
+ fill: "color-mix(in srgb, var(--ds-color-bg-surface) 90%, transparent)",
149
+ stroke: strokeColor,
150
+ strokeWidth: 2.5
151
+ });
152
+ var chartPillTooltipStyle = {
153
+ background: "linear-gradient(135deg, color-mix(in srgb, var(--ds-color-bg-surface) 90%, transparent), color-mix(in srgb, var(--ds-color-bg-elevated) 76%, transparent))",
154
+ border: "1px solid color-mix(in srgb, var(--ds-color-border-strong) 70%, transparent)",
155
+ boxShadow: "0 14px 32px color-mix(in srgb, var(--ds-color-fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--ds-color-bg-surface) 34%, transparent)",
156
+ backdropFilter: "blur(16px) saturate(170%)",
157
+ WebkitBackdropFilter: "blur(16px) saturate(170%)"
158
+ };
159
+ //#endregion
108
160
  //#region src/components/data-display/charts/NeonLineChart.tsx
109
161
  var NeonLineChart = ({ data, height = 300, lineColorStop1 = getChartColorVar(2), lineColorStop2 = getChartColorVar(1), glowColor = getChartColorVar(1), className = "" }) => {
110
162
  const [normalizedStop1, normalizedStop2] = React.useMemo(() => normalizeChartColors([lineColorStop1, lineColorStop2]), [lineColorStop1, lineColorStop2]);
@@ -183,14 +235,11 @@ var NeonLineChart = ({ data, height = 300, lineColorStop1 = getChartColorVar(2),
183
235
  dx: -10
184
236
  }),
185
237
  /* @__PURE__ */ jsx(Tooltip, {
186
- contentStyle: {
187
- backgroundColor: "color-mix(in srgb, var(--ds-color-surface) 92%, transparent)",
188
- border: "1px solid var(--ds-color-border)",
189
- borderRadius: "8px",
190
- backdropFilter: "blur(8px)",
191
- color: "var(--ds-color-fg)"
192
- },
193
- itemStyle: { color: "var(--ds-color-fg)" }
238
+ contentStyle: chartTooltipContentStyle,
239
+ cursor: chartLineHoverCursorStyle,
240
+ itemStyle: chartTooltipItemStyle,
241
+ labelStyle: chartTooltipLabelStyle,
242
+ wrapperStyle: chartTooltipWrapperStyle
194
243
  }),
195
244
  /* @__PURE__ */ jsx(Line, {
196
245
  type: "monotone",
@@ -198,12 +247,7 @@ var NeonLineChart = ({ data, height = 300, lineColorStop1 = getChartColorVar(2),
198
247
  stroke: "url(#neonGradient)",
199
248
  strokeWidth: 3,
200
249
  dot: false,
201
- activeDot: {
202
- r: 6,
203
- fill: "var(--ds-color-surface)",
204
- stroke: normalizedStop2,
205
- strokeWidth: 2
206
- },
250
+ activeDot: getChartActiveDotStyle(normalizedStop2),
207
251
  filter: "url(#neonGlow)"
208
252
  })
209
253
  ]
@@ -263,21 +307,17 @@ var StackedBarChart = ({ data, categories, height = 300, yAxisDomain, className
263
307
  domain: yAxisDomain
264
308
  }),
265
309
  /* @__PURE__ */ jsx(Tooltip, {
266
- cursor: { fill: "color-mix(in srgb, var(--ds-color-accent) 10%, transparent)" },
267
- contentStyle: {
268
- backgroundColor: "color-mix(in srgb, var(--ds-color-surface) 92%, transparent)",
269
- border: "1px solid var(--ds-color-border)",
270
- borderRadius: "8px",
271
- backdropFilter: "blur(8px)",
272
- color: "var(--ds-color-fg)"
273
- }
310
+ contentStyle: chartTooltipContentStyle,
311
+ cursor: chartBandHoverCursorStyle,
312
+ itemStyle: chartTooltipItemStyle,
313
+ labelStyle: chartTooltipLabelStyle,
314
+ wrapperStyle: chartTooltipWrapperStyle
274
315
  }),
275
316
  /* @__PURE__ */ jsx(Legend, {
276
317
  iconType: "circle",
277
318
  wrapperStyle: {
278
- paddingTop: "20px",
279
- fontSize: "12px",
280
- color: "var(--color-neutral-300)"
319
+ ...chartLegendTextStyle,
320
+ paddingTop: "20px"
281
321
  }
282
322
  }),
283
323
  normalizedCategories.map((cat, index) => {
@@ -308,7 +348,8 @@ var StackedBarChart = ({ data, categories, height = 300, yAxisDomain, className
308
348
  };
309
349
  //#endregion
310
350
  //#region src/components/data-display/charts/ThinBreakdownBar.tsx
311
- var ThinBreakdownBar = ({ data: segments, className = "", showLabels = true }) => {
351
+ var defaultValueFormatter$2 = (value) => new Intl.NumberFormat().format(value);
352
+ var ThinBreakdownBar = ({ data: segments, className = "", showLabels = true, showSummary = false, summaryLabel = "Total", valueFormatter = defaultValueFormatter$2 }) => {
312
353
  const [activeSegmentKey, setActiveSegmentKey] = React.useState(null);
313
354
  const normalizedSegments = React.useMemo(() => {
314
355
  const normalizedColors = normalizeChartColors(segments.map((segment) => segment.color));
@@ -332,65 +373,93 @@ var ThinBreakdownBar = ({ data: segments, className = "", showLabels = true }) =
332
373
  });
333
374
  }, [normalizedSegments]);
334
375
  const activeSegment = React.useMemo(() => segmentsWithMetrics.find((segment) => segment.key === activeSegmentKey) ?? null, [activeSegmentKey, segmentsWithMetrics]);
376
+ const totalValue = React.useMemo(() => segments.reduce((sum, item) => sum + item.value, 0), [segments]);
377
+ const summaryTitle = activeSegment?.label ?? summaryLabel;
378
+ const summaryValue = activeSegment?.value ?? totalValue;
379
+ const summaryMeta = activeSegment ? `${Math.round(activeSegment.widthPercent)}% of total` : `${segments.length} segments`;
335
380
  return /* @__PURE__ */ jsxs("div", {
336
381
  className: `w-full flex flex-col gap-3 ${className}`,
337
- children: [/* @__PURE__ */ jsxs("div", {
338
- className: "relative",
339
- children: [activeSegment && /* @__PURE__ */ jsxs("div", {
340
- className: "pointer-events-none absolute -top-10 z-10 -translate-x-1/2 rounded-full border border-border/70 bg-background/95 px-2.5 py-1 text-[11px] font-medium text-foreground shadow-lg backdrop-blur-md",
341
- style: { left: `${activeSegment.centerPercent}%` },
342
- children: [
343
- /* @__PURE__ */ jsx("span", { children: activeSegment.label }),
344
- /* @__PURE__ */ jsx("span", {
345
- className: "mx-1 text-muted-foreground",
346
- children: ""
347
- }),
348
- /* @__PURE__ */ jsx("span", {
349
- style: { color: activeSegment.color },
350
- children: activeSegment.value
351
- })
352
- ]
353
- }), /* @__PURE__ */ jsx("div", {
354
- className: "rounded-full bg-background-tertiary/80 p-0.5",
355
- children: /* @__PURE__ */ jsx("div", {
356
- className: "flex w-full gap-1",
357
- onMouseLeave: () => setActiveSegmentKey(null),
358
- children: segmentsWithMetrics.map((segment) => {
359
- const isActive = activeSegmentKey === segment.key;
360
- return /* @__PURE__ */ jsx("div", {
361
- className: "relative flex h-2.5 min-w-0 items-center",
362
- style: { width: `${segment.widthPercent}%` },
363
- onMouseEnter: () => setActiveSegmentKey(segment.key),
364
- children: /* @__PURE__ */ jsx("div", {
365
- className: "h-full w-full rounded-full transition-[transform,filter,box-shadow,opacity] duration-200 ease-out",
366
- style: {
367
- backgroundColor: segment.color,
368
- opacity: activeSegmentKey && !isActive ? .72 : 1,
369
- transform: isActive ? "scaleY(1.3)" : "scaleY(1)",
370
- filter: isActive ? "saturate(1.1) brightness(1.05)" : "none",
371
- boxShadow: isActive ? `inset 0 1px 1px rgba(255,255,255,0.28), 0 0 0 1px color-mix(in srgb, ${segment.color} 35%, transparent), 0 0 14px color-mix(in srgb, ${segment.color} 45%, transparent)` : `inset 0 1px 1px rgba(255,255,255,0.2), 0 0 8px color-mix(in srgb, ${segment.color} 30%, transparent)`
372
- },
373
- title: `${segment.label}: ${segment.value}`
374
- })
375
- }, segment.key);
382
+ children: [
383
+ showSummary && (activeSegment || totalValue > 0) ? /* @__PURE__ */ jsxs("div", {
384
+ className: "flex items-start justify-between gap-4 rounded-xl border border-border/70 bg-background/70 px-4 py-3 backdrop-blur-md",
385
+ children: [/* @__PURE__ */ jsxs("div", {
386
+ className: "min-w-0",
387
+ children: [/* @__PURE__ */ jsx("p", {
388
+ className: "truncate text-[11px] font-medium tracking-[0.16em] text-muted-foreground uppercase transition-colors duration-200",
389
+ style: activeSegment ? { color: activeSegment.color } : void 0,
390
+ children: summaryTitle
391
+ }), /* @__PURE__ */ jsx("p", {
392
+ className: "mt-1 text-xs text-muted-foreground",
393
+ children: summaryMeta
394
+ })]
395
+ }), /* @__PURE__ */ jsx("p", {
396
+ className: "text-right text-lg font-semibold leading-none text-foreground transition-colors duration-200",
397
+ style: activeSegment ? { color: activeSegment.color } : void 0,
398
+ children: valueFormatter(summaryValue)
399
+ })]
400
+ }) : null,
401
+ /* @__PURE__ */ jsxs("div", {
402
+ className: "relative",
403
+ children: [activeSegment && !showSummary && /* @__PURE__ */ jsxs("div", {
404
+ className: "pointer-events-none absolute -top-10 z-10 -translate-x-1/2 rounded-full px-2.5 py-1 text-[11px] font-medium text-foreground",
405
+ style: {
406
+ ...chartPillTooltipStyle,
407
+ left: `${activeSegment.centerPercent}%`
408
+ },
409
+ children: [
410
+ /* @__PURE__ */ jsx("span", { children: activeSegment.label }),
411
+ /* @__PURE__ */ jsx("span", {
412
+ className: "mx-1 text-muted-foreground",
413
+ children: "•"
414
+ }),
415
+ /* @__PURE__ */ jsx("span", {
416
+ style: { color: activeSegment.color },
417
+ children: activeSegment.value
418
+ })
419
+ ]
420
+ }), /* @__PURE__ */ jsx("div", {
421
+ className: "rounded-full bg-background-tertiary/80 p-0.5",
422
+ children: /* @__PURE__ */ jsx("div", {
423
+ className: "flex w-full gap-1",
424
+ onMouseLeave: () => setActiveSegmentKey(null),
425
+ children: segmentsWithMetrics.map((segment) => {
426
+ const isActive = activeSegmentKey === segment.key;
427
+ return /* @__PURE__ */ jsx("div", {
428
+ className: "relative flex h-2.5 min-w-0 items-center",
429
+ style: { width: `${segment.widthPercent}%` },
430
+ onMouseEnter: () => setActiveSegmentKey(segment.key),
431
+ children: /* @__PURE__ */ jsx("div", {
432
+ className: "h-full w-full rounded-full transition-[transform,filter,box-shadow,opacity] duration-200 ease-out",
433
+ style: {
434
+ backgroundColor: segment.color,
435
+ opacity: activeSegmentKey && !isActive ? .72 : 1,
436
+ transform: isActive ? "scaleY(1.3)" : "scaleY(1)",
437
+ filter: isActive ? "saturate(1.1) brightness(1.05)" : "none",
438
+ boxShadow: isActive ? `inset 0 1px 1px rgba(255,255,255,0.28), 0 0 0 1px color-mix(in srgb, ${segment.color} 35%, transparent), 0 0 14px color-mix(in srgb, ${segment.color} 45%, transparent)` : `inset 0 1px 1px rgba(255,255,255,0.2), 0 0 8px color-mix(in srgb, ${segment.color} 30%, transparent)`
439
+ },
440
+ title: `${segment.label}: ${segment.value}`
441
+ })
442
+ }, segment.key);
443
+ })
376
444
  })
445
+ })]
446
+ }),
447
+ showLabels && /* @__PURE__ */ jsx("div", {
448
+ className: "flex w-full items-start gap-1 px-0.5",
449
+ children: segmentsWithMetrics.map((segment) => {
450
+ const isActive = activeSegmentKey === segment.key;
451
+ return /* @__PURE__ */ jsx("div", {
452
+ className: "flex min-w-0 justify-center",
453
+ style: { width: `${segment.widthPercent}%` },
454
+ children: /* @__PURE__ */ jsx("span", {
455
+ className: "whitespace-nowrap px-1 text-center text-[11px] font-medium tracking-wide text-muted-foreground transition-colors duration-200",
456
+ style: isActive ? { color: segment.color } : void 0,
457
+ children: segment.label
458
+ })
459
+ }, `label-${segment.key}`);
377
460
  })
378
- })]
379
- }), showLabels && /* @__PURE__ */ jsx("div", {
380
- className: "flex w-full items-start gap-1 px-0.5",
381
- children: segmentsWithMetrics.map((segment) => {
382
- const isActive = activeSegmentKey === segment.key;
383
- return /* @__PURE__ */ jsx("div", {
384
- className: "flex min-w-0 justify-center",
385
- style: { width: `${segment.widthPercent}%` },
386
- children: /* @__PURE__ */ jsx("span", {
387
- className: "whitespace-nowrap px-1 text-center text-[11px] font-medium tracking-wide text-muted-foreground transition-colors duration-200",
388
- style: isActive ? { color: segment.color } : void 0,
389
- children: segment.label
390
- })
391
- }, `label-${segment.key}`);
392
461
  })
393
- })]
462
+ ]
394
463
  });
395
464
  };
396
465
  //#endregion
@@ -460,16 +529,14 @@ var AreaChart$1 = ({ data, categories, height = 300, className = "", showGrid =
460
529
  dx: -10
461
530
  }),
462
531
  /* @__PURE__ */ jsx(Tooltip, {
463
- contentStyle: {
464
- backgroundColor: "color-mix(in srgb, var(--ds-color-surface) 92%, transparent)",
465
- border: "1px solid var(--ds-color-border)",
466
- borderRadius: "8px",
467
- backdropFilter: "blur(8px)",
468
- color: "var(--ds-color-fg)"
469
- },
470
- itemStyle: { color: "var(--ds-color-fg)" }
532
+ contentStyle: chartTooltipContentStyle,
533
+ cursor: chartLineHoverCursorStyle,
534
+ itemStyle: chartTooltipItemStyle,
535
+ labelStyle: chartTooltipLabelStyle,
536
+ wrapperStyle: chartTooltipWrapperStyle
471
537
  }),
472
538
  normalizedCategories.map((cat) => /* @__PURE__ */ jsx(Area, {
539
+ activeDot: getChartActiveDotStyle(cat.color),
473
540
  type: "monotone",
474
541
  dataKey: cat.key,
475
542
  stroke: cat.color,
@@ -484,7 +551,8 @@ var AreaChart$1 = ({ data, categories, height = 300, className = "", showGrid =
484
551
  };
485
552
  //#endregion
486
553
  //#region src/components/data-display/charts/BarChart.tsx
487
- var BarChart$1 = ({ data, categories, height = 300, className = "", layout = "horizontal" }) => {
554
+ var BarChart$1 = ({ data, categories, height = 300, className = "", layout = "horizontal", maxBarSize }) => {
555
+ const resolvedMaxBarSize = maxBarSize ?? (layout === "horizontal" ? 40 : 22);
488
556
  const normalizedCategories = React.useMemo(() => {
489
557
  const normalizedColors = normalizeChartColors(categories.map((category) => category.color));
490
558
  return categories.map((category, index) => ({
@@ -501,6 +569,7 @@ var BarChart$1 = ({ data, categories, height = 300, className = "", layout = "ho
501
569
  children: /* @__PURE__ */ jsxs(BarChart, {
502
570
  data,
503
571
  layout,
572
+ barCategoryGap: data.length <= 4 ? "28%" : "18%",
504
573
  margin: {
505
574
  top: 20,
506
575
  right: 30,
@@ -553,18 +622,16 @@ var BarChart$1 = ({ data, categories, height = 300, className = "", layout = "ho
553
622
  dx: -10
554
623
  })] }),
555
624
  /* @__PURE__ */ jsx(Tooltip, {
556
- cursor: { fill: "color-mix(in srgb, var(--ds-color-accent) 10%, transparent)" },
557
- contentStyle: {
558
- backgroundColor: "color-mix(in srgb, var(--ds-color-surface) 92%, transparent)",
559
- border: "1px solid var(--ds-color-border)",
560
- borderRadius: "8px",
561
- backdropFilter: "blur(8px)",
562
- color: "var(--ds-color-fg)"
563
- }
625
+ contentStyle: chartTooltipContentStyle,
626
+ cursor: chartBandHoverCursorStyle,
627
+ itemStyle: chartTooltipItemStyle,
628
+ labelStyle: chartTooltipLabelStyle,
629
+ wrapperStyle: chartTooltipWrapperStyle
564
630
  }),
565
631
  normalizedCategories.map((cat) => /* @__PURE__ */ jsx(Bar, {
566
632
  dataKey: cat.key,
567
633
  fill: cat.color,
634
+ maxBarSize: resolvedMaxBarSize,
568
635
  radius: layout === "horizontal" ? [
569
636
  4,
570
637
  4,
@@ -583,14 +650,187 @@ var BarChart$1 = ({ data, categories, height = 300, className = "", layout = "ho
583
650
  });
584
651
  };
585
652
  //#endregion
586
- //#region src/components/data-display/charts/PieChart.tsx
587
- var PieChart$1 = ({ data, colors, height = 300, className = "", variant = "donut" }) => {
588
- const innerRadius = variant === "donut" ? "60%" : 0;
589
- const normalizedColors = React.useMemo(() => normalizeChartColors(colors), [colors]);
653
+ //#region src/components/data-display/charts/PositiveNegativeBarChart.tsx
654
+ var defaultValueFormatter$1 = (value) => new Intl.NumberFormat().format(value);
655
+ var getBarRadius = (value, layout) => {
656
+ if (value === 0) return [
657
+ 6,
658
+ 6,
659
+ 6,
660
+ 6
661
+ ];
662
+ if (layout === "horizontal") return value > 0 ? [
663
+ 6,
664
+ 6,
665
+ 0,
666
+ 0
667
+ ] : [
668
+ 0,
669
+ 0,
670
+ 6,
671
+ 6
672
+ ];
673
+ return value > 0 ? [
674
+ 0,
675
+ 6,
676
+ 6,
677
+ 0
678
+ ] : [
679
+ 6,
680
+ 0,
681
+ 0,
682
+ 6
683
+ ];
684
+ };
685
+ var PositiveNegativeBarChart = ({ data, height = 320, className = "", layout = "horizontal", positiveColor = getChartColorVar(3), negativeColor = getChartColorVar(5), neutralColor = getChartColorVar(15), showGrid = true, seriesLabel = "Variance", valueFormatter = defaultValueFormatter$1, tickFormatter }) => {
686
+ const resolvedPositiveColor = React.useMemo(() => normalizeChartColorValue(positiveColor) ?? getChartColorVar(3), [positiveColor]);
687
+ const resolvedNegativeColor = React.useMemo(() => normalizeChartColorValue(negativeColor) ?? getChartColorVar(5), [negativeColor]);
688
+ const resolvedNeutralColor = React.useMemo(() => normalizeChartColorValue(neutralColor) ?? getChartColorVar(15), [neutralColor]);
689
+ const resolvedTickFormatter = React.useCallback((value) => tickFormatter?.(value) ?? valueFormatter(value), [tickFormatter, valueFormatter]);
690
+ const getBarFill = React.useCallback((value) => {
691
+ if (value > 0) return resolvedPositiveColor;
692
+ if (value < 0) return resolvedNegativeColor;
693
+ return resolvedNeutralColor;
694
+ }, [
695
+ resolvedNegativeColor,
696
+ resolvedNeutralColor,
697
+ resolvedPositiveColor
698
+ ]);
590
699
  return /* @__PURE__ */ jsx("div", {
591
700
  className: `w-full ${className}`,
592
701
  style: { height },
593
702
  children: /* @__PURE__ */ jsx(ResponsiveContainer, {
703
+ width: "100%",
704
+ height: "100%",
705
+ children: /* @__PURE__ */ jsxs(BarChart, {
706
+ data,
707
+ layout,
708
+ margin: {
709
+ top: 20,
710
+ right: 30,
711
+ left: 20,
712
+ bottom: 5
713
+ },
714
+ children: [
715
+ showGrid ? /* @__PURE__ */ jsx(CartesianGrid, {
716
+ strokeDasharray: "3 3",
717
+ horizontal: layout === "horizontal",
718
+ vertical: layout === "vertical",
719
+ stroke: "var(--ds-color-border)",
720
+ opacity: .35
721
+ }) : null,
722
+ layout === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [
723
+ /* @__PURE__ */ jsx(XAxis, {
724
+ dataKey: "name",
725
+ axisLine: false,
726
+ tickLine: false,
727
+ tick: {
728
+ fill: "var(--ds-color-fg-muted)",
729
+ fontSize: 12
730
+ },
731
+ dy: 10
732
+ }),
733
+ /* @__PURE__ */ jsx(YAxis, {
734
+ axisLine: false,
735
+ tickLine: false,
736
+ tick: {
737
+ fill: "var(--ds-color-fg-muted)",
738
+ fontSize: 12
739
+ },
740
+ tickFormatter: resolvedTickFormatter,
741
+ dx: -10
742
+ }),
743
+ /* @__PURE__ */ jsx(ReferenceLine, {
744
+ y: 0,
745
+ stroke: "var(--ds-color-border-strong)",
746
+ strokeOpacity: .95
747
+ })
748
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
749
+ /* @__PURE__ */ jsx(XAxis, {
750
+ type: "number",
751
+ axisLine: false,
752
+ tickLine: false,
753
+ tick: {
754
+ fill: "var(--ds-color-fg-muted)",
755
+ fontSize: 12
756
+ },
757
+ tickFormatter: resolvedTickFormatter,
758
+ dy: 10
759
+ }),
760
+ /* @__PURE__ */ jsx(YAxis, {
761
+ dataKey: "name",
762
+ type: "category",
763
+ axisLine: false,
764
+ tickLine: false,
765
+ tick: {
766
+ fill: "var(--ds-color-fg-muted)",
767
+ fontSize: 12
768
+ },
769
+ width: 96,
770
+ dx: -6
771
+ }),
772
+ /* @__PURE__ */ jsx(ReferenceLine, {
773
+ x: 0,
774
+ stroke: "var(--ds-color-border-strong)",
775
+ strokeOpacity: .95
776
+ })
777
+ ] }),
778
+ /* @__PURE__ */ jsx(Tooltip, {
779
+ contentStyle: chartTooltipContentStyle,
780
+ cursor: chartBandHoverCursorStyle,
781
+ itemStyle: chartTooltipItemStyle,
782
+ labelStyle: chartTooltipLabelStyle,
783
+ wrapperStyle: chartTooltipWrapperStyle,
784
+ formatter: (value) => [valueFormatter(Number(value ?? 0)), seriesLabel]
785
+ }),
786
+ /* @__PURE__ */ jsx(Bar, {
787
+ dataKey: "value",
788
+ radius: 6,
789
+ barSize: layout === "horizontal" ? 30 : 22,
790
+ shape: (props) => {
791
+ const barValue = Array.isArray(props.value) ? props.value[1] - props.value[0] : props.value;
792
+ return /* @__PURE__ */ jsx(Rectangle, {
793
+ ...props,
794
+ radius: getBarRadius(barValue, layout)
795
+ });
796
+ },
797
+ children: data.map((entry) => /* @__PURE__ */ jsx(Cell, { fill: getBarFill(entry.value) }, `${entry.name}-${entry.value}`))
798
+ })
799
+ ]
800
+ })
801
+ })
802
+ });
803
+ };
804
+ //#endregion
805
+ //#region src/components/data-display/charts/PieChart.tsx
806
+ var defaultValueFormatter = (value) => new Intl.NumberFormat().format(value);
807
+ var PieChart$1 = ({ data, colors, height = 300, className = "", variant = "donut", showCenterSummary = variant === "donut", centerLabel = "Total", valueFormatter = defaultValueFormatter, renderCenterContent }) => {
808
+ const [activeIndex, setActiveIndex] = React.useState(null);
809
+ const innerRadius = variant === "donut" ? "60%" : 0;
810
+ const normalizedColors = React.useMemo(() => normalizeChartColors(colors), [colors]);
811
+ const totalValue = React.useMemo(() => data.reduce((sum, item) => sum + item.value, 0), [data]);
812
+ const activeSlice = activeIndex !== null && activeIndex >= 0 && activeIndex < data.length ? data[activeIndex] : null;
813
+ const activePercentage = activeSlice && totalValue > 0 ? `${Math.round(activeSlice.value / totalValue * 100)}% of total` : `${data.length} categories`;
814
+ const displayLabel = activeSlice?.name ?? centerLabel;
815
+ const displayValue = activeSlice?.value ?? totalValue;
816
+ const centerContentContext = {
817
+ activeColor: activeIndex !== null ? normalizedColors[activeIndex % normalizedColors.length] : void 0,
818
+ activeIndex,
819
+ activeSlice,
820
+ data,
821
+ displayLabel,
822
+ displayPercentageLabel: activePercentage,
823
+ displayValue,
824
+ normalizedColors,
825
+ totalValue,
826
+ valueFormatter,
827
+ variant
828
+ };
829
+ const shouldRenderCenterContent = variant === "donut" && (showCenterSummary || Boolean(renderCenterContent));
830
+ return /* @__PURE__ */ jsxs("div", {
831
+ className: `relative w-full ${className}`,
832
+ style: { height },
833
+ children: [/* @__PURE__ */ jsx(ResponsiveContainer, {
594
834
  width: "100%",
595
835
  height: "100%",
596
836
  children: /* @__PURE__ */ jsxs(PieChart, { children: [
@@ -603,30 +843,44 @@ var PieChart$1 = ({ data, colors, height = 300, className = "", variant = "donut
603
843
  paddingAngle: variant === "donut" ? 2 : 0,
604
844
  dataKey: "value",
605
845
  stroke: "none",
846
+ onMouseEnter: (_data, index) => setActiveIndex(index),
847
+ onMouseLeave: () => setActiveIndex(null),
606
848
  children: data.map((entry, index) => /* @__PURE__ */ jsx(Cell, { fill: normalizedColors[index % normalizedColors.length] }, `cell-${index}`))
607
849
  }),
608
850
  /* @__PURE__ */ jsx(Tooltip, {
609
- contentStyle: {
610
- backgroundColor: "color-mix(in srgb, var(--ds-color-surface) 92%, transparent)",
611
- border: "1px solid var(--ds-color-border)",
612
- borderRadius: "8px",
613
- backdropFilter: "blur(8px)",
614
- color: "var(--ds-color-fg)"
615
- },
616
- itemStyle: { color: "var(--ds-color-fg)" }
851
+ contentStyle: chartTooltipContentStyle,
852
+ itemStyle: chartTooltipItemStyle,
853
+ labelStyle: chartTooltipLabelStyle,
854
+ wrapperStyle: chartTooltipWrapperStyle
617
855
  }),
618
856
  /* @__PURE__ */ jsx(Legend, {
619
857
  iconType: "circle",
620
- wrapperStyle: {
621
- fontSize: "12px",
622
- color: "var(--color-neutral-300)"
623
- }
858
+ wrapperStyle: chartLegendTextStyle
624
859
  })
625
860
  ] })
626
- })
861
+ }), shouldRenderCenterContent ? /* @__PURE__ */ jsx("div", {
862
+ className: "pointer-events-none absolute inset-0 flex items-center justify-center",
863
+ children: renderCenterContent ? renderCenterContent(centerContentContext) : /* @__PURE__ */ jsxs("div", {
864
+ className: "flex max-w-[42%] flex-col items-center text-center",
865
+ children: [
866
+ /* @__PURE__ */ jsx("p", {
867
+ className: "text-[11px] font-medium tracking-[0.16em] text-muted-foreground uppercase",
868
+ children: displayLabel
869
+ }),
870
+ /* @__PURE__ */ jsx("p", {
871
+ className: "mt-1 text-2xl font-semibold leading-none text-foreground sm:text-3xl",
872
+ children: valueFormatter(displayValue)
873
+ }),
874
+ /* @__PURE__ */ jsx("p", {
875
+ className: "mt-2 text-xs leading-tight text-muted-foreground",
876
+ children: activePercentage
877
+ })
878
+ ]
879
+ })
880
+ }) : null]
627
881
  });
628
882
  };
629
883
  //#endregion
630
- export { StackedBarChart as a, getChartColorVar as c, ThinBreakdownBar as i, getChartPalette as l, BarChart$1 as n, NeonLineChart as o, AreaChart$1 as r, chartColorTokens as s, PieChart$1 as t };
884
+ export { ThinBreakdownBar as a, chartColorTokens as c, AreaChart$1 as i, getChartColorVar as l, PositiveNegativeBarChart as n, StackedBarChart as o, BarChart$1 as r, NeonLineChart as s, PieChart$1 as t, getChartPalette as u };
631
885
 
632
- //# sourceMappingURL=charts-DugYWvEf.mjs.map
886
+ //# sourceMappingURL=charts-BYvM4TMG.mjs.map