@giddaa-housing/ui 0.1.0 → 1.1.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 (315) hide show
  1. package/README.md +18 -6
  2. package/css/base.css +37 -0
  3. package/css/components.css +135 -0
  4. package/css/generated/shared.css +1 -0
  5. package/css/giddaa.css +402 -0
  6. package/css/preset.css +77 -0
  7. package/css/styles.css +2 -0
  8. package/css/theme.css +255 -0
  9. package/dist/accordion.d.ts +9 -10
  10. package/dist/accordion.js +41 -117
  11. package/dist/activity-timeline.d.ts +29 -0
  12. package/dist/activity-timeline.js +97 -0
  13. package/dist/alert.d.ts +8 -9
  14. package/dist/alert.js +53 -141
  15. package/dist/auth-layout.d.ts +23 -0
  16. package/dist/auth-layout.js +153 -0
  17. package/dist/avatar.d.ts +6 -6
  18. package/dist/avatar.js +40 -142
  19. package/dist/badge.d.ts +12 -13
  20. package/dist/badge.js +66 -114
  21. package/dist/bar-chart.d.ts +136 -114
  22. package/dist/bar-chart.js +244 -297
  23. package/dist/breadcrumb.d.ts +5 -5
  24. package/dist/breadcrumb.js +56 -148
  25. package/dist/bullet-chart.d.ts +33 -33
  26. package/dist/bullet-chart.js +123 -183
  27. package/dist/button-BZIeyUw6.d.ts +17 -0
  28. package/dist/button-group.d.ts +13 -16
  29. package/dist/button-group.js +38 -163
  30. package/dist/button.d.ts +2 -19
  31. package/dist/button.js +90 -142
  32. package/dist/calendar.d.ts +6 -6
  33. package/dist/calendar.js +134 -288
  34. package/dist/card.d.ts +14 -16
  35. package/dist/card.js +58 -174
  36. package/dist/carousel.d.ts +34 -35
  37. package/dist/carousel.js +319 -378
  38. package/dist/chart.d.ts +58 -59
  39. package/dist/chart.js +350 -466
  40. package/dist/checkbox.d.ts +10 -12
  41. package/dist/checkbox.js +84 -84
  42. package/dist/cn-BI_4DMBf.js +23 -0
  43. package/dist/collapsible.d.ts +7 -8
  44. package/dist/collapsible.js +23 -77
  45. package/dist/combobox.d.ts +10 -10
  46. package/dist/combobox.js +220 -696
  47. package/dist/cta.d.ts +64 -0
  48. package/dist/cta.js +192 -0
  49. package/dist/currency-selector.d.ts +41 -0
  50. package/dist/currency-selector.js +114 -0
  51. package/dist/data-table.d.ts +164 -0
  52. package/dist/data-table.js +673 -0
  53. package/dist/date-picker.d.ts +27 -20
  54. package/dist/date-picker.js +122 -520
  55. package/dist/details-card.d.ts +19 -0
  56. package/dist/details-card.js +118 -0
  57. package/dist/dialog.d.ts +13 -14
  58. package/dist/dialog.js +117 -320
  59. package/dist/dropdown-menu.d.ts +14 -14
  60. package/dist/dropdown-menu.js +170 -365
  61. package/dist/dropzone.d.ts +55 -55
  62. package/dist/dropzone.js +328 -467
  63. package/dist/editorial-card.d.ts +27 -0
  64. package/dist/editorial-card.js +144 -0
  65. package/dist/empty-state.d.ts +8 -9
  66. package/dist/empty-state.js +48 -135
  67. package/dist/field.d.ts +23 -25
  68. package/dist/field.js +111 -327
  69. package/dist/filter.d.ts +118 -0
  70. package/dist/filter.js +775 -0
  71. package/dist/footer.d.ts +40 -0
  72. package/dist/footer.js +227 -0
  73. package/dist/funnel-chart.d.ts +38 -41
  74. package/dist/funnel-chart.js +168 -563
  75. package/dist/gallery-indicator.d.ts +17 -0
  76. package/dist/gallery-indicator.js +75 -0
  77. package/dist/heatmap-chart.d.ts +95 -0
  78. package/dist/heatmap-chart.js +197 -0
  79. package/dist/infotip.d.ts +10 -0
  80. package/dist/infotip.js +40 -0
  81. package/dist/input-CfoEJ8A6.d.ts +12 -0
  82. package/dist/input-group.d.ts +16 -19
  83. package/dist/input-group.js +92 -372
  84. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  85. package/dist/input-size-context.d.ts +2 -11
  86. package/dist/input-size-context.js +14 -20
  87. package/dist/input.d.ts +2 -13
  88. package/dist/input.js +23 -79
  89. package/dist/item.d.ts +7 -8
  90. package/dist/item.js +22 -89
  91. package/dist/kpi-card.d.ts +18 -20
  92. package/dist/kpi-card.js +84 -232
  93. package/dist/label.d.ts +6 -6
  94. package/dist/label.js +39 -66
  95. package/dist/line-chart.d.ts +88 -89
  96. package/dist/line-chart.js +143 -262
  97. package/dist/logo.d.ts +4 -4
  98. package/dist/logo.js +87 -141
  99. package/dist/map-indicator.d.ts +13 -0
  100. package/dist/map-indicator.js +83 -0
  101. package/dist/match.d.ts +15 -0
  102. package/dist/match.js +68 -0
  103. package/dist/media-gallery-hero.d.ts +58 -0
  104. package/dist/media-gallery-hero.js +201 -0
  105. package/dist/media-player.d.ts +60 -0
  106. package/dist/media-player.js +919 -0
  107. package/dist/multi-step-form.d.ts +56 -0
  108. package/dist/multi-step-form.js +342 -0
  109. package/dist/number-input.d.ts +34 -34
  110. package/dist/number-input.js +62 -413
  111. package/dist/page-header.d.ts +10 -11
  112. package/dist/page-header.js +34 -107
  113. package/dist/pagination.d.ts +17 -20
  114. package/dist/pagination.js +132 -341
  115. package/dist/password-input.d.ts +5 -12
  116. package/dist/password-input.js +32 -354
  117. package/dist/phone-input.d.ts +19 -19
  118. package/dist/phone-input.js +232 -561
  119. package/dist/photo-gallery.d.ts +20 -20
  120. package/dist/photo-gallery.js +314 -746
  121. package/dist/picker-lzgmsNfG.js +32 -0
  122. package/dist/pie-chart.d.ts +60 -60
  123. package/dist/pie-chart.js +141 -184
  124. package/dist/popover.d.ts +9 -9
  125. package/dist/popover.js +60 -156
  126. package/dist/price-tag.d.ts +34 -0
  127. package/dist/price-tag.js +118 -0
  128. package/dist/progress.d.ts +18 -16
  129. package/dist/progress.js +156 -300
  130. package/dist/property-listing-card.d.ts +29 -0
  131. package/dist/property-listing-card.js +117 -0
  132. package/dist/radar-chart.d.ts +108 -0
  133. package/dist/radar-chart.js +172 -0
  134. package/dist/radio-group.d.ts +11 -13
  135. package/dist/radio-group.js +47 -96
  136. package/dist/review-block.d.ts +18 -0
  137. package/dist/review-block.js +154 -0
  138. package/dist/rich-text-editor.d.ts +30 -14
  139. package/dist/rich-text-editor.js +594 -979
  140. package/dist/scatter-chart.d.ts +140 -0
  141. package/dist/scatter-chart.js +248 -0
  142. package/dist/search-input.d.ts +8 -15
  143. package/dist/search-input.js +58 -408
  144. package/dist/select.d.ts +8 -8
  145. package/dist/select.js +131 -291
  146. package/dist/separator.d.ts +8 -9
  147. package/dist/separator.js +31 -70
  148. package/dist/sheet.d.ts +11 -11
  149. package/dist/sheet.js +84 -262
  150. package/dist/sidebar.d.ts +32 -37
  151. package/dist/sidebar.js +380 -1055
  152. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  153. package/dist/size-context.d.ts +2 -11
  154. package/dist/size-context.js +14 -18
  155. package/dist/skeleton.d.ts +4 -5
  156. package/dist/skeleton.js +9 -45
  157. package/dist/slider.d.ts +27 -0
  158. package/dist/slider.js +81 -0
  159. package/dist/sparkline.d.ts +43 -46
  160. package/dist/sparkline.js +223 -561
  161. package/dist/stepper.d.ts +23 -24
  162. package/dist/stepper.js +149 -276
  163. package/dist/styles.css +9995 -2
  164. package/dist/switch.d.ts +10 -12
  165. package/dist/switch.js +49 -106
  166. package/dist/table-card.d.ts +35 -0
  167. package/dist/table-card.js +125 -0
  168. package/dist/table.d.ts +18 -14
  169. package/dist/table.js +114 -182
  170. package/dist/tabs.d.ts +23 -15
  171. package/dist/tabs.js +62 -149
  172. package/dist/tag.d.ts +22 -23
  173. package/dist/tag.js +104 -156
  174. package/dist/testimonial-block.d.ts +33 -0
  175. package/dist/testimonial-block.js +208 -0
  176. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  177. package/dist/textarea.d.ts +2 -12
  178. package/dist/textarea.js +20 -74
  179. package/dist/time-picker.d.ts +11 -11
  180. package/dist/time-picker.js +247 -464
  181. package/dist/toast.d.ts +16 -18
  182. package/dist/toast.js +154 -310
  183. package/dist/tooltip.d.ts +9 -10
  184. package/dist/tooltip.js +33 -91
  185. package/dist/tree-map.d.ts +54 -57
  186. package/dist/tree-map.js +231 -646
  187. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  188. package/dist/waterfall-chart.d.ts +126 -0
  189. package/dist/waterfall-chart.js +480 -0
  190. package/package.json +123 -34
  191. package/dist/accordion.js.map +0 -1
  192. package/dist/alert.js.map +0 -1
  193. package/dist/avatar.js.map +0 -1
  194. package/dist/badge.js.map +0 -1
  195. package/dist/bar-chart.js.map +0 -1
  196. package/dist/base.css +0 -32
  197. package/dist/breadcrumb.js.map +0 -1
  198. package/dist/bullet-chart.js.map +0 -1
  199. package/dist/button-group.js.map +0 -1
  200. package/dist/button.js.map +0 -1
  201. package/dist/calendar.js.map +0 -1
  202. package/dist/card.js.map +0 -1
  203. package/dist/carousel.js.map +0 -1
  204. package/dist/chart.js.map +0 -1
  205. package/dist/checkbox.js.map +0 -1
  206. package/dist/collapsible.js.map +0 -1
  207. package/dist/combobox.js.map +0 -1
  208. package/dist/date-picker.js.map +0 -1
  209. package/dist/dialog.js.map +0 -1
  210. package/dist/dropdown-menu.js.map +0 -1
  211. package/dist/dropzone.js.map +0 -1
  212. package/dist/empty-state.js.map +0 -1
  213. package/dist/field.js.map +0 -1
  214. package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
  215. package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
  216. package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
  217. package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
  218. package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
  219. package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
  220. package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
  221. package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
  222. package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
  223. package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
  224. package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
  225. package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
  226. package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
  227. package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
  228. package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
  229. package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
  230. package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
  231. package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
  232. package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
  233. package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
  234. package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
  235. package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
  236. package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
  237. package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
  238. package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
  239. package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
  240. package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
  241. package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
  242. package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
  243. package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
  244. package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
  245. package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
  246. package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
  247. package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
  248. package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
  249. package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
  250. package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
  251. package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
  252. package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
  253. package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
  254. package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
  255. package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
  256. package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
  257. package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
  258. package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
  259. package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
  260. package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
  261. package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
  262. package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
  263. package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
  264. package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
  265. package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
  266. package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
  267. package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
  268. package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
  269. package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
  270. package/dist/funnel-chart.js.map +0 -1
  271. package/dist/index.d.ts +0 -87
  272. package/dist/index.js +0 -10448
  273. package/dist/index.js.map +0 -1
  274. package/dist/input-group.js.map +0 -1
  275. package/dist/input-size-context.js.map +0 -1
  276. package/dist/input.js.map +0 -1
  277. package/dist/item.js.map +0 -1
  278. package/dist/kpi-card.js.map +0 -1
  279. package/dist/label.js.map +0 -1
  280. package/dist/line-chart.js.map +0 -1
  281. package/dist/logo.js.map +0 -1
  282. package/dist/number-input.js.map +0 -1
  283. package/dist/page-header.js.map +0 -1
  284. package/dist/pagination.js.map +0 -1
  285. package/dist/password-input.js.map +0 -1
  286. package/dist/phone-input.js.map +0 -1
  287. package/dist/photo-gallery.js.map +0 -1
  288. package/dist/pie-chart.js.map +0 -1
  289. package/dist/popover.js.map +0 -1
  290. package/dist/progress.js.map +0 -1
  291. package/dist/radio-group.js.map +0 -1
  292. package/dist/red-hat-display.css +0 -2
  293. package/dist/rich-text-editor.js.map +0 -1
  294. package/dist/search-input.js.map +0 -1
  295. package/dist/select.js.map +0 -1
  296. package/dist/separator.js.map +0 -1
  297. package/dist/sheet.js.map +0 -1
  298. package/dist/sidebar.js.map +0 -1
  299. package/dist/size-context.js.map +0 -1
  300. package/dist/skeleton.js.map +0 -1
  301. package/dist/sparkline.js.map +0 -1
  302. package/dist/stepper.js.map +0 -1
  303. package/dist/switch.js.map +0 -1
  304. package/dist/tab-list.d.ts +0 -38
  305. package/dist/tab-list.js +0 -394
  306. package/dist/tab-list.js.map +0 -1
  307. package/dist/table.js.map +0 -1
  308. package/dist/tabs.js.map +0 -1
  309. package/dist/tag.js.map +0 -1
  310. package/dist/textarea.js.map +0 -1
  311. package/dist/theme/giddaa.css +0 -2
  312. package/dist/time-picker.js.map +0 -1
  313. package/dist/toast.js.map +0 -1
  314. package/dist/tooltip.js.map +0 -1
  315. package/dist/tree-map.js.map +0 -1
package/dist/bar-chart.js CHANGED
@@ -1,302 +1,249 @@
1
- // src/lib/cn.ts
2
- import { clsx } from "clsx";
3
- import { extendTailwindMerge } from "tailwind-merge";
4
- var twMerge = extendTailwindMerge({
5
- extend: {
6
- classGroups: {
7
- "font-size": [
8
- {
9
- text: [
10
- "gdt-display",
11
- "gdt-h1",
12
- "gdt-h2",
13
- "gdt-h3",
14
- "gdt-h4",
15
- "gdt-h5",
16
- "gdt-xl",
17
- "gdt-lg",
18
- "gdt-md",
19
- "gdt-sm",
20
- "gdt-xs",
21
- "gdt-subtext",
22
- "gdt-capitalized"
23
- ]
24
- }
25
- ]
26
- }
27
- }
28
- });
29
- function cn(...inputs) {
30
- return twMerge(clsx(inputs));
31
- }
32
-
33
- // src/components/ui/chart.tsx
34
- import { cva } from "class-variance-authority";
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { SizeProvider, useComponentSize } from "./size-context.js";
4
+ import { ChartContainer, cartesianAxisProps } from "./chart.js";
5
+ import { jsx } from "react/jsx-runtime";
35
6
  import * as React from "react";
36
- import * as RechartsPrimitive from "recharts";
37
-
38
- // src/components/ui/size-context.tsx
39
- import { createContext, useContext } from "react";
40
- import { Fragment, jsx } from "react/jsx-runtime";
41
- var SizeContext = createContext(void 0);
42
- function useComponentSize(size, fallback = "md") {
43
- const inheritedSize = useContext(SizeContext);
44
- return size ?? inheritedSize ?? fallback;
7
+ import { Bar, BarChart as BarChart$1, CartesianGrid, XAxis, YAxis } from "recharts";
8
+ //#region src/bar-chart.tsx
9
+ /**
10
+ * Bar charts are composable wrappers over the recharts cartesian primitives.
11
+ * recharts 3 registers graphical items through context when they render, so the
12
+ * primitives CAN be wrapped in our own components. Each wrapper bakes in the
13
+ * giddaa defaults (tokens, size-scaled type, mark specs) and forwards every
14
+ * recharts prop, so anything can be overridden in place or replaced with the
15
+ * raw recharts element.
16
+ *
17
+ * Anatomy: `BarChart` is the plot root (frame + responsive box + recharts
18
+ * chart); compose the grid, axes, series, and the shared overlays from
19
+ * `./chart` as children:
20
+ *
21
+ * @example
22
+ * <ChartCard size="md">
23
+ * <ChartHeader>
24
+ * <ChartTitle>Revenue Overview</ChartTitle>
25
+ * <ChartDescription>Monthly revenue - Jan-Jul</ChartDescription>
26
+ * </ChartHeader>
27
+ * <BarChart config={config} data={data}>
28
+ * <BarChartGrid />
29
+ * <BarChartXAxis dataKey="month" />
30
+ * <BarChartYAxis domain={[0, 120]} />
31
+ * <ChartTooltip content={<ChartTooltipContent />} />
32
+ * <BarChartSeries dataKey="revenue" name="Revenue">
33
+ * <LabelList dataKey="revenue" content={<BarValueLabel />} />
34
+ * </BarChartSeries>
35
+ * </BarChart>
36
+ * </ChartCard>
37
+ */
38
+ /**
39
+ * Categorical series palette - the theme-aware `chart-1`...`chart-3` tokens.
40
+ * Assign colours in this fixed order, never cycled: a fourth series folds into
41
+ * "Other" or becomes a second chart.
42
+ */
43
+ const BAR_CHART_PALETTE = [
44
+ "var(--color-chart-1)",
45
+ "var(--color-chart-2)",
46
+ "var(--color-chart-3)"
47
+ ];
48
+ const DEFAULT_SERIES_COLOR = BAR_CHART_PALETTE[0];
49
+ const BAR_CHART_LAYOUT = {
50
+ sm: {
51
+ height: 180,
52
+ margin: {
53
+ top: 20,
54
+ right: 8,
55
+ bottom: 0,
56
+ left: 0
57
+ },
58
+ maxBarSize: 22,
59
+ barCategoryGap: "8%",
60
+ barGap: 4,
61
+ barRadius: 4,
62
+ tickFontSize: 10,
63
+ valueFontSize: 10,
64
+ yAxisWidth: 28,
65
+ tickMargin: 6
66
+ },
67
+ md: {
68
+ height: 220,
69
+ margin: {
70
+ top: 24,
71
+ right: 12,
72
+ bottom: 0,
73
+ left: 0
74
+ },
75
+ maxBarSize: 28,
76
+ barCategoryGap: "8%",
77
+ barGap: 6,
78
+ barRadius: 6,
79
+ tickFontSize: 11,
80
+ valueFontSize: 11,
81
+ yAxisWidth: 32,
82
+ tickMargin: 8
83
+ },
84
+ lg: {
85
+ height: 280,
86
+ margin: {
87
+ top: 28,
88
+ right: 16,
89
+ bottom: 0,
90
+ left: 0
91
+ },
92
+ maxBarSize: 36,
93
+ barCategoryGap: "8%",
94
+ barGap: 8,
95
+ barRadius: 8,
96
+ tickFontSize: 12,
97
+ valueFontSize: 12,
98
+ yAxisWidth: 36,
99
+ tickMargin: 10
100
+ }
101
+ };
102
+ const BarChartContext = React.createContext(null);
103
+ function useBarChartOrientation(orientation) {
104
+ const context = React.useContext(BarChartContext);
105
+ return orientation ?? context?.orientation ?? "vertical";
45
106
  }
46
-
47
- // src/components/ui/chart.tsx
48
- import { Fragment as Fragment2, jsx as jsx2, jsxs } from "react/jsx-runtime";
49
- var ChartContext = React.createContext(null);
50
- var chartCardVariants = cva(
51
- "flex w-full min-w-0 flex-col rounded-2xl border border-line-subtle bg-surface-raised text-fg-primary shadow-1",
52
- {
53
- variants: {
54
- size: {
55
- sm: "gap-3 p-4",
56
- md: "gap-4 p-5",
57
- lg: "gap-5 p-6"
58
- }
59
- },
60
- defaultVariants: { size: "md" }
61
- }
62
- );
63
- var chartTitleVariants = cva("min-w-0 font-bold text-fg-primary", {
64
- variants: {
65
- size: {
66
- sm: "text-gdt-md",
67
- md: "text-gdt-lg",
68
- lg: "text-gdt-h5"
69
- }
70
- },
71
- defaultVariants: { size: "md" }
72
- });
73
- var chartDescriptionVariants = cva("min-w-0 font-normal text-fg-secondary", {
74
- variants: {
75
- size: {
76
- sm: "text-gdt-xs",
77
- md: "text-gdt-sm",
78
- lg: "text-gdt-sm"
79
- }
80
- },
81
- defaultVariants: { size: "md" }
82
- });
83
- var chartTooltipVariants = cva(
84
- "flex flex-col bg-surface-overlay border border-line-subtle shadow-2",
85
- {
86
- variants: {
87
- size: {
88
- xs: "gap-0.5 rounded-md p-2",
89
- sm: "gap-0.5 rounded-md p-2.5",
90
- md: "gap-1 rounded-lg p-3",
91
- lg: "gap-1 rounded-xl p-3.5"
92
- }
93
- },
94
- defaultVariants: {
95
- size: "md"
96
- }
97
- }
98
- );
99
- var chartTooltipDotVariants = cva("shrink-0 rounded-full", {
100
- variants: {
101
- size: {
102
- xs: "size-1.5",
103
- sm: "size-2",
104
- md: "size-2.5",
105
- lg: "size-2.5"
106
- }
107
- },
108
- defaultVariants: {
109
- size: "md"
110
- }
111
- });
112
- var chartTooltipLabelVariants = cva("font-medium text-fg-secondary", {
113
- variants: {
114
- size: {
115
- xs: "text-gdt-xs",
116
- sm: "text-gdt-xs",
117
- md: "text-gdt-sm",
118
- lg: "text-gdt-sm"
119
- }
120
- },
121
- defaultVariants: { size: "md" }
122
- });
123
- var chartTooltipValueVariants = cva(
124
- "font-extrabold text-fg-primary tabular-nums",
125
- {
126
- variants: {
127
- size: {
128
- xs: "text-gdt-sm",
129
- sm: "text-gdt-md",
130
- md: "text-gdt-lg",
131
- lg: "text-gdt-xl"
132
- }
133
- },
134
- defaultVariants: { size: "md" }
135
- }
136
- );
137
- var chartLegendItemVariants = cva(
138
- "group/legend-item flex items-center rounded-md leading-none text-fg-primary transition-colors [&>svg]:shrink-0",
139
- {
140
- variants: {
141
- size: {
142
- sm: "gap-1.5 px-2 py-1 text-gdt-xs [&>svg]:size-3",
143
- md: "gap-2 px-2.5 py-1.5 text-gdt-sm [&>svg]:size-3.5"
144
- },
145
- interactive: {
146
- true: "cursor-pointer outline-none hover:bg-surface-raised focus-visible:bg-surface-raised",
147
- false: ""
148
- },
149
- inactive: {
150
- true: "text-fg-caption-placeholder line-through",
151
- false: ""
152
- }
153
- },
154
- defaultVariants: {
155
- size: "md",
156
- interactive: false,
157
- inactive: false
158
- }
159
- }
160
- );
161
- var chartLegendMarkerSizeVariants = cva("shrink-0", {
162
- variants: {
163
- marker: {
164
- dot: "rounded-full",
165
- square: "rounded-[2px]",
166
- line: "rounded-full"
167
- },
168
- size: {
169
- sm: "",
170
- md: ""
171
- }
172
- },
173
- compoundVariants: [
174
- { marker: ["dot", "square"], size: "sm", className: "size-2" },
175
- { marker: ["dot", "square"], size: "md", className: "size-2.5" },
176
- { marker: "line", size: "sm", className: "h-[3px] w-3" },
177
- { marker: "line", size: "md", className: "h-[3px] w-3.5" }
178
- ],
179
- defaultVariants: { marker: "dot", size: "md" }
180
- });
181
- function cartesianAxisProps(layout) {
182
- const tick = { fontSize: layout.tickFontSize };
183
- return {
184
- xAxis: {
185
- tickLine: false,
186
- axisLine: false,
187
- tickMargin: layout.tickMargin,
188
- tick
189
- },
190
- yAxis: {
191
- tickLine: false,
192
- axisLine: false,
193
- width: layout.yAxisWidth,
194
- tick
195
- }
196
- };
107
+ function barChartAxisProps(layout) {
108
+ const axes = cartesianAxisProps(layout);
109
+ const tick = {
110
+ ...axes.xAxis.tick,
111
+ fill: "var(--color-fg-caption-placeholder)"
112
+ };
113
+ return {
114
+ xAxis: {
115
+ ...axes.xAxis,
116
+ tick
117
+ },
118
+ yAxis: {
119
+ ...axes.yAxis,
120
+ tick
121
+ }
122
+ };
197
123
  }
198
-
199
- // src/components/ui/bar-chart.tsx
200
- import { jsx as jsx3 } from "react/jsx-runtime";
201
- var BAR_CHART_LAYOUT = {
202
- sm: {
203
- height: 180,
204
- margin: { top: 20, right: 8, bottom: 0, left: 0 },
205
- maxBarSize: 22,
206
- barCategoryGap: "8%",
207
- barGap: 4,
208
- barRadius: 4,
209
- tickFontSize: 10,
210
- valueFontSize: 10,
211
- yAxisWidth: 28,
212
- tickMargin: 6
213
- },
214
- md: {
215
- height: 220,
216
- margin: { top: 24, right: 12, bottom: 0, left: 0 },
217
- maxBarSize: 28,
218
- barCategoryGap: "8%",
219
- barGap: 6,
220
- barRadius: 6,
221
- tickFontSize: 11,
222
- valueFontSize: 11,
223
- yAxisWidth: 32,
224
- tickMargin: 8
225
- },
226
- lg: {
227
- height: 280,
228
- margin: { top: 28, right: 16, bottom: 0, left: 0 },
229
- maxBarSize: 36,
230
- barCategoryGap: "8%",
231
- barGap: 8,
232
- barRadius: 8,
233
- tickFontSize: 12,
234
- valueFontSize: 12,
235
- yAxisWidth: 36,
236
- tickMargin: 10
237
- }
238
- };
239
- function useBarChartLayout(size) {
240
- const layout = BAR_CHART_LAYOUT[useComponentSize(size)];
241
- const axes = cartesianAxisProps(layout);
242
- return {
243
- container: {
244
- className: "aspect-auto w-full",
245
- style: { height: layout.height }
246
- },
247
- chart: {
248
- accessibilityLayer: true,
249
- margin: layout.margin,
250
- barCategoryGap: layout.barCategoryGap,
251
- barGap: layout.barGap
252
- },
253
- xAxis: axes.xAxis,
254
- yAxis: axes.yAxis,
255
- bar: {
256
- radius: [layout.barRadius, layout.barRadius, 0, 0],
257
- maxBarSize: layout.maxBarSize
258
- }
259
- };
124
+ /**
125
+ * Plot root - wraps the shared `ChartContainer` (tooltip/legend theming,
126
+ * responsive box) around the recharts `BarChart` with size-scaled height,
127
+ * margin, and bar gaps. `size` also flows to the child primitives through
128
+ * `SizeProvider`. Extra props reach the recharts chart (`data`, `syncId`,
129
+ * `layout`, ...); passing `layout` directly overrides `orientation`.
130
+ */
131
+ function BarChart({ config = {}, size, className, children, orientation = "vertical", layout, ...props }) {
132
+ const resolvedSize = useComponentSize(size);
133
+ const chartLayout = BAR_CHART_LAYOUT[resolvedSize];
134
+ const rechartsLayout = layout ?? (orientation === "horizontal" ? "vertical" : "horizontal");
135
+ return /* @__PURE__ */ jsx(SizeProvider, {
136
+ size: resolvedSize,
137
+ children: /* @__PURE__ */ jsx(BarChartContext.Provider, {
138
+ value: { orientation },
139
+ children: /* @__PURE__ */ jsx(ChartContainer, {
140
+ config,
141
+ className: cn("aspect-auto w-full", className),
142
+ style: { height: chartLayout.height },
143
+ children: /* @__PURE__ */ jsx(BarChart$1, {
144
+ accessibilityLayer: true,
145
+ margin: chartLayout.margin,
146
+ barCategoryGap: chartLayout.barCategoryGap,
147
+ barGap: chartLayout.barGap,
148
+ layout: rechartsLayout,
149
+ ...props,
150
+ children
151
+ })
152
+ })
153
+ })
154
+ });
260
155
  }
261
- function BarValueLabel({
262
- orientation = "vertical",
263
- fontSize,
264
- formatter,
265
- className,
266
- x,
267
- y,
268
- width,
269
- height,
270
- value
271
- }) {
272
- const valueFontSize = BAR_CHART_LAYOUT[useComponentSize()].valueFontSize;
273
- if (value == null || x == null || y == null || width == null) {
274
- return null;
275
- }
276
- const numX = Number(x);
277
- const numY = Number(y);
278
- const numWidth = Number(width);
279
- const numHeight = Number(height ?? 0);
280
- const gap = 6;
281
- const isHorizontal = orientation === "horizontal";
282
- const labelX = isHorizontal ? numX + numWidth + gap : numX + numWidth / 2;
283
- const labelY = isHorizontal ? numY + numHeight / 2 : numY - gap;
284
- return /* @__PURE__ */ jsx3(
285
- "text",
286
- {
287
- x: labelX,
288
- y: labelY,
289
- textAnchor: isHorizontal ? "start" : "middle",
290
- dominantBaseline: isHorizontal ? "central" : "auto",
291
- className: cn("fill-fg-primary font-semibold tabular-nums", className),
292
- style: { fontSize: fontSize ?? valueFontSize },
293
- children: formatter ? formatter(value) : value
294
- }
295
- );
156
+ /**
157
+ * Value reference lines - recharts `CartesianGrid` with vertical lines hidden
158
+ * and the visible grid painted with the `line` token (`line-subtle` matches the
159
+ * chart card surface in both themes, so it would vanish). For horizontal bar
160
+ * charts, pass `horizontal={false} vertical`.
161
+ */
162
+ function BarChartGrid(props) {
163
+ return /* @__PURE__ */ jsx(CartesianGrid, {
164
+ vertical: false,
165
+ stroke: "var(--color-line)",
166
+ ...props
167
+ });
296
168
  }
297
- export {
298
- BAR_CHART_LAYOUT,
299
- BarValueLabel,
300
- useBarChartLayout
301
- };
302
- //# sourceMappingURL=bar-chart.js.map
169
+ /**
170
+ * Category/value axis - recharts `XAxis` with no axis/tick lines,
171
+ * size-scaled tick margin, and caption-placeholder tick ink. Passing your own
172
+ * `tick` replaces the default styling entirely.
173
+ */
174
+ function BarChartXAxis({ size, tick, ...props }) {
175
+ const layout = BAR_CHART_LAYOUT[useComponentSize(size)];
176
+ const axes = barChartAxisProps(layout);
177
+ return /* @__PURE__ */ jsx(XAxis, {
178
+ tickLine: axes.xAxis.tickLine,
179
+ axisLine: axes.xAxis.axisLine,
180
+ tickMargin: axes.xAxis.tickMargin,
181
+ tick: tick ?? axes.xAxis.tick,
182
+ ...props
183
+ });
184
+ }
185
+ /**
186
+ * Value/category axis - recharts `YAxis` with no axis/tick lines,
187
+ * size-scaled tick type, and reserved width for value labels. Override `width`
188
+ * for long horizontal-category labels.
189
+ */
190
+ function BarChartYAxis({ size, tick, ...props }) {
191
+ const layout = BAR_CHART_LAYOUT[useComponentSize(size)];
192
+ const axes = barChartAxisProps(layout);
193
+ return /* @__PURE__ */ jsx(YAxis, {
194
+ tickLine: axes.yAxis.tickLine,
195
+ axisLine: axes.yAxis.axisLine,
196
+ width: axes.yAxis.width,
197
+ tick: tick ?? axes.yAxis.tick,
198
+ ...props
199
+ });
200
+ }
201
+ /**
202
+ * One data series - recharts `Bar` with the giddaa mark spec: a theme-aware
203
+ * series colour, size-scaled max thickness, and a small radius only on the
204
+ * leading edge (top for vertical bars, right for horizontal bars). `color`
205
+ * drives `fill`; `fill`, `radius`, and `maxBarSize` still win when passed
206
+ * directly.
207
+ */
208
+ function BarChartSeries({ color = DEFAULT_SERIES_COLOR, size, orientation, ...props }) {
209
+ const layout = BAR_CHART_LAYOUT[useComponentSize(size)];
210
+ return /* @__PURE__ */ jsx(Bar, {
211
+ fill: color,
212
+ radius: useBarChartOrientation(orientation) === "horizontal" ? [
213
+ 0,
214
+ layout.barRadius,
215
+ layout.barRadius,
216
+ 0
217
+ ] : [
218
+ layout.barRadius,
219
+ layout.barRadius,
220
+ 0,
221
+ 0
222
+ ],
223
+ maxBarSize: layout.maxBarSize,
224
+ ...props
225
+ });
226
+ }
227
+ function BarValueLabel({ orientation, fontSize, formatter, size, className, x, y, width, height, value }) {
228
+ const resolvedOrientation = useBarChartOrientation(orientation);
229
+ const valueFontSize = BAR_CHART_LAYOUT[useComponentSize(size)].valueFontSize;
230
+ if (value == null || x == null || y == null || width == null) return null;
231
+ const numX = Number(x);
232
+ const numY = Number(y);
233
+ const numWidth = Number(width);
234
+ const numHeight = Number(height ?? 0);
235
+ const gap = 6;
236
+ if (!Number.isFinite(numX) || !Number.isFinite(numY) || !Number.isFinite(numWidth) || !Number.isFinite(numHeight)) return null;
237
+ const isHorizontal = resolvedOrientation === "horizontal";
238
+ return /* @__PURE__ */ jsx("text", {
239
+ x: isHorizontal ? numX + numWidth + gap : numX + numWidth / 2,
240
+ y: isHorizontal ? numY + numHeight / 2 : numY - gap,
241
+ textAnchor: isHorizontal ? "start" : "middle",
242
+ dominantBaseline: isHorizontal ? "central" : "auto",
243
+ className: cn("fill-fg-primary font-semibold tabular-nums", className),
244
+ style: { fontSize: fontSize ?? valueFontSize },
245
+ children: formatter ? formatter(value) : value
246
+ });
247
+ }
248
+ //#endregion
249
+ export { BAR_CHART_LAYOUT, BAR_CHART_PALETTE, BarChart, BarChartGrid, BarChartSeries, BarChartXAxis, BarChartYAxis, BarValueLabel };
@@ -1,6 +1,6 @@
1
- import { useRender } from '@base-ui/react/use-render';
2
- import * as React from 'react';
3
-
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import * as React from "react";
3
+ //#region src/breadcrumb.d.ts
4
4
  declare function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
5
5
  declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): React.JSX.Element;
6
6
  declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
@@ -8,5 +8,5 @@ declare function BreadcrumbLink({ className, render, ...props }: useRender.Compo
8
8
  declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
9
9
  declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
10
10
  declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
11
-
12
- export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
11
+ //#endregion
12
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };