@giddaa-housing/ui 1.0.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 (326) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/dist/accordion.d.ts +9 -10
  3. package/dist/accordion.js +41 -87
  4. package/dist/activity-timeline.d.ts +12 -16
  5. package/dist/activity-timeline.js +83 -198
  6. package/dist/alert.d.ts +8 -9
  7. package/dist/alert.js +53 -111
  8. package/dist/auth-layout.d.ts +4 -4
  9. package/dist/auth-layout.js +143 -294
  10. package/dist/avatar.d.ts +6 -6
  11. package/dist/avatar.js +49 -19
  12. package/dist/badge.d.ts +12 -14
  13. package/dist/badge.js +71 -11
  14. package/dist/bar-chart.d.ts +65 -67
  15. package/dist/bar-chart.js +232 -207
  16. package/dist/breadcrumb.d.ts +5 -5
  17. package/dist/breadcrumb.js +56 -118
  18. package/dist/bullet-chart.d.ts +33 -33
  19. package/dist/bullet-chart.js +121 -148
  20. package/dist/button-BZIeyUw6.d.ts +17 -0
  21. package/dist/button-group.d.ts +13 -16
  22. package/dist/button-group.js +39 -88
  23. package/dist/button.d.ts +2 -19
  24. package/dist/button.js +94 -13
  25. package/dist/calendar.d.ts +6 -6
  26. package/dist/calendar.js +138 -17
  27. package/dist/card.d.ts +14 -16
  28. package/dist/card.js +59 -145
  29. package/dist/carousel.d.ts +34 -35
  30. package/dist/carousel.js +335 -20
  31. package/dist/chart.d.ts +58 -59
  32. package/dist/chart.js +376 -28
  33. package/dist/checkbox.d.ts +10 -12
  34. package/dist/checkbox.js +82 -47
  35. package/dist/cn-BI_4DMBf.js +23 -0
  36. package/dist/collapsible.d.ts +7 -8
  37. package/dist/collapsible.js +22 -47
  38. package/dist/combobox.d.ts +10 -10
  39. package/dist/combobox.js +236 -44
  40. package/dist/cta.d.ts +12 -14
  41. package/dist/cta.js +175 -341
  42. package/dist/currency-selector.d.ts +31 -32
  43. package/dist/currency-selector.js +106 -184
  44. package/dist/data-table.d.ts +164 -0
  45. package/dist/data-table.js +673 -0
  46. package/dist/date-picker.d.ts +22 -23
  47. package/dist/date-picker.js +119 -192
  48. package/dist/details-card.d.ts +7 -7
  49. package/dist/details-card.js +104 -253
  50. package/dist/dialog.d.ts +13 -14
  51. package/dist/dialog.js +116 -209
  52. package/dist/dropdown-menu.d.ts +13 -13
  53. package/dist/dropdown-menu.js +180 -37
  54. package/dist/dropzone.d.ts +55 -55
  55. package/dist/dropzone.js +327 -439
  56. package/dist/editorial-card.d.ts +23 -25
  57. package/dist/editorial-card.js +129 -296
  58. package/dist/empty-state.d.ts +8 -9
  59. package/dist/empty-state.js +48 -105
  60. package/dist/field.d.ts +23 -25
  61. package/dist/field.js +110 -221
  62. package/dist/filter.d.ts +118 -0
  63. package/dist/filter.js +775 -0
  64. package/dist/footer.d.ts +8 -15
  65. package/dist/footer.js +197 -400
  66. package/dist/funnel-chart.d.ts +38 -41
  67. package/dist/funnel-chart.js +167 -189
  68. package/dist/gallery-indicator.d.ts +11 -12
  69. package/dist/gallery-indicator.js +75 -12
  70. package/dist/heatmap-chart.d.ts +47 -50
  71. package/dist/heatmap-chart.js +186 -237
  72. package/dist/infotip.d.ts +8 -9
  73. package/dist/infotip.js +33 -59
  74. package/dist/input-CfoEJ8A6.d.ts +12 -0
  75. package/dist/input-group.d.ts +16 -20
  76. package/dist/input-group.js +99 -23
  77. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  78. package/dist/input-size-context.d.ts +2 -11
  79. package/dist/input-size-context.js +17 -9
  80. package/dist/input.d.ts +2 -13
  81. package/dist/input.js +27 -11
  82. package/dist/item.d.ts +7 -8
  83. package/dist/item.js +22 -59
  84. package/dist/kpi-card.d.ts +18 -20
  85. package/dist/kpi-card.js +84 -192
  86. package/dist/label.d.ts +6 -6
  87. package/dist/label.js +40 -8
  88. package/dist/line-chart.d.ts +88 -89
  89. package/dist/line-chart.js +142 -104
  90. package/dist/logo.d.ts +4 -4
  91. package/dist/logo.js +92 -9
  92. package/dist/map-indicator.d.ts +7 -7
  93. package/dist/map-indicator.js +80 -106
  94. package/dist/match.d.ts +10 -11
  95. package/dist/match.js +62 -107
  96. package/dist/media-gallery-hero.d.ts +40 -42
  97. package/dist/media-gallery-hero.js +182 -343
  98. package/dist/media-player.d.ts +17 -17
  99. package/dist/media-player.js +873 -1348
  100. package/dist/multi-step-form.d.ts +56 -0
  101. package/dist/multi-step-form.js +342 -0
  102. package/dist/number-input.d.ts +34 -34
  103. package/dist/number-input.js +61 -117
  104. package/dist/page-header.d.ts +10 -11
  105. package/dist/page-header.js +34 -79
  106. package/dist/pagination.d.ts +17 -21
  107. package/dist/pagination.js +132 -207
  108. package/dist/password-input.d.ts +5 -13
  109. package/dist/password-input.js +31 -55
  110. package/dist/phone-input.d.ts +19 -20
  111. package/dist/phone-input.js +226 -344
  112. package/dist/photo-gallery.d.ts +19 -19
  113. package/dist/photo-gallery.js +313 -449
  114. package/dist/picker-lzgmsNfG.js +32 -0
  115. package/dist/pie-chart.d.ts +60 -60
  116. package/dist/pie-chart.js +140 -148
  117. package/dist/popover.d.ts +9 -9
  118. package/dist/popover.js +72 -23
  119. package/dist/price-tag.d.ts +26 -27
  120. package/dist/price-tag.js +113 -173
  121. package/dist/progress.d.ts +16 -17
  122. package/dist/progress.js +169 -24
  123. package/dist/property-listing-card.d.ts +14 -17
  124. package/dist/property-listing-card.js +102 -220
  125. package/dist/radar-chart.d.ts +29 -31
  126. package/dist/radar-chart.js +162 -137
  127. package/dist/radio-group.d.ts +11 -13
  128. package/dist/radio-group.js +46 -60
  129. package/dist/review-block.d.ts +14 -16
  130. package/dist/review-block.js +154 -10
  131. package/dist/rich-text-editor.d.ts +30 -14
  132. package/dist/rich-text-editor.js +592 -716
  133. package/dist/scatter-chart.d.ts +45 -47
  134. package/dist/scatter-chart.js +236 -240
  135. package/dist/search-input.d.ts +8 -16
  136. package/dist/search-input.js +57 -109
  137. package/dist/select.d.ts +8 -8
  138. package/dist/select.js +144 -27
  139. package/dist/separator.d.ts +8 -9
  140. package/dist/separator.js +32 -8
  141. package/dist/sheet.d.ts +11 -11
  142. package/dist/sheet.js +103 -24
  143. package/dist/sidebar.d.ts +32 -37
  144. package/dist/sidebar.js +364 -634
  145. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  146. package/dist/size-context.d.ts +2 -11
  147. package/dist/size-context.js +17 -9
  148. package/dist/skeleton.d.ts +4 -5
  149. package/dist/skeleton.js +12 -8
  150. package/dist/slider.d.ts +8 -9
  151. package/dist/slider.js +64 -135
  152. package/dist/sparkline.d.ts +43 -46
  153. package/dist/sparkline.js +221 -251
  154. package/dist/stepper.d.ts +23 -24
  155. package/dist/stepper.js +149 -246
  156. package/dist/styles.css +510 -108
  157. package/dist/switch.d.ts +10 -12
  158. package/dist/switch.js +48 -70
  159. package/dist/table-card.d.ts +35 -0
  160. package/dist/table-card.js +125 -0
  161. package/dist/table.d.ts +18 -14
  162. package/dist/table.js +113 -154
  163. package/dist/tabs.d.ts +23 -15
  164. package/dist/tabs.js +71 -18
  165. package/dist/tag.d.ts +21 -23
  166. package/dist/tag.js +103 -159
  167. package/dist/testimonial-block.d.ts +18 -19
  168. package/dist/testimonial-block.js +189 -358
  169. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  170. package/dist/textarea.d.ts +2 -12
  171. package/dist/textarea.js +24 -11
  172. package/dist/time-picker.d.ts +11 -11
  173. package/dist/time-picker.js +245 -302
  174. package/dist/toast.d.ts +16 -18
  175. package/dist/toast.js +154 -205
  176. package/dist/tooltip.d.ts +8 -9
  177. package/dist/tooltip.js +37 -12
  178. package/dist/tree-map.d.ts +54 -57
  179. package/dist/tree-map.js +227 -269
  180. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  181. package/dist/waterfall-chart.d.ts +94 -97
  182. package/dist/waterfall-chart.js +455 -552
  183. package/package.json +28 -9
  184. package/dist/accordion.js.map +0 -1
  185. package/dist/activity-timeline.js.map +0 -1
  186. package/dist/alert.js.map +0 -1
  187. package/dist/auth-layout.js.map +0 -1
  188. package/dist/avatar.js.map +0 -1
  189. package/dist/badge.js.map +0 -1
  190. package/dist/bar-chart.js.map +0 -1
  191. package/dist/breadcrumb.js.map +0 -1
  192. package/dist/bullet-chart.js.map +0 -1
  193. package/dist/button-group.js.map +0 -1
  194. package/dist/button.js.map +0 -1
  195. package/dist/calendar.js.map +0 -1
  196. package/dist/card.js.map +0 -1
  197. package/dist/carousel.js.map +0 -1
  198. package/dist/chart.js.map +0 -1
  199. package/dist/checkbox.js.map +0 -1
  200. package/dist/chunk-322YCNVL.js +0 -278
  201. package/dist/chunk-322YCNVL.js.map +0 -1
  202. package/dist/chunk-3ACQVT7A.js +0 -25
  203. package/dist/chunk-3ACQVT7A.js.map +0 -1
  204. package/dist/chunk-3T65TLJX.js +0 -334
  205. package/dist/chunk-3T65TLJX.js.map +0 -1
  206. package/dist/chunk-6ZSGQHH2.js +0 -192
  207. package/dist/chunk-6ZSGQHH2.js.map +0 -1
  208. package/dist/chunk-7TBMLFGW.js +0 -41
  209. package/dist/chunk-7TBMLFGW.js.map +0 -1
  210. package/dist/chunk-B4H6RNDH.js +0 -135
  211. package/dist/chunk-B4H6RNDH.js.map +0 -1
  212. package/dist/chunk-BUXCGZ6X.js +0 -219
  213. package/dist/chunk-BUXCGZ6X.js.map +0 -1
  214. package/dist/chunk-CHII2QHH.js +0 -58
  215. package/dist/chunk-CHII2QHH.js.map +0 -1
  216. package/dist/chunk-DMNOXRRW.js +0 -147
  217. package/dist/chunk-DMNOXRRW.js.map +0 -1
  218. package/dist/chunk-EFSOSSIC.js +0 -130
  219. package/dist/chunk-EFSOSSIC.js.map +0 -1
  220. package/dist/chunk-FZDSVMKY.js +0 -363
  221. package/dist/chunk-FZDSVMKY.js.map +0 -1
  222. package/dist/chunk-GJOFIJS3.js +0 -246
  223. package/dist/chunk-GJOFIJS3.js.map +0 -1
  224. package/dist/chunk-HL3ZSYES.js +0 -23
  225. package/dist/chunk-HL3ZSYES.js.map +0 -1
  226. package/dist/chunk-JVLUBAPB.js +0 -129
  227. package/dist/chunk-JVLUBAPB.js.map +0 -1
  228. package/dist/chunk-KDPYSOYZ.js +0 -64
  229. package/dist/chunk-KDPYSOYZ.js.map +0 -1
  230. package/dist/chunk-KSMDANKI.js +0 -43
  231. package/dist/chunk-KSMDANKI.js.map +0 -1
  232. package/dist/chunk-MEKCCOP5.js +0 -46
  233. package/dist/chunk-MEKCCOP5.js.map +0 -1
  234. package/dist/chunk-NOFXVRWL.js +0 -451
  235. package/dist/chunk-NOFXVRWL.js.map +0 -1
  236. package/dist/chunk-PC5MHNVA.js +0 -171
  237. package/dist/chunk-PC5MHNVA.js.map +0 -1
  238. package/dist/chunk-QKAQZ2GU.js +0 -122
  239. package/dist/chunk-QKAQZ2GU.js.map +0 -1
  240. package/dist/chunk-QZHSHSVV.js +0 -26
  241. package/dist/chunk-QZHSHSVV.js.map +0 -1
  242. package/dist/chunk-RBMK26XD.js +0 -19
  243. package/dist/chunk-RBMK26XD.js.map +0 -1
  244. package/dist/chunk-SFNJGF6M.js +0 -262
  245. package/dist/chunk-SFNJGF6M.js.map +0 -1
  246. package/dist/chunk-UJJNLGTM.js +0 -112
  247. package/dist/chunk-UJJNLGTM.js.map +0 -1
  248. package/dist/chunk-VGR4ZWJ3.js +0 -418
  249. package/dist/chunk-VGR4ZWJ3.js.map +0 -1
  250. package/dist/chunk-XG47P6D4.js +0 -99
  251. package/dist/chunk-XG47P6D4.js.map +0 -1
  252. package/dist/chunk-XZZAHNVM.js +0 -21
  253. package/dist/chunk-XZZAHNVM.js.map +0 -1
  254. package/dist/chunk-Y4TTYVNE.js +0 -36
  255. package/dist/chunk-Y4TTYVNE.js.map +0 -1
  256. package/dist/chunk-YDWIHW6Q.js +0 -69
  257. package/dist/chunk-YDWIHW6Q.js.map +0 -1
  258. package/dist/collapsible.js.map +0 -1
  259. package/dist/combobox.js.map +0 -1
  260. package/dist/cta.js.map +0 -1
  261. package/dist/currency-selector.js.map +0 -1
  262. package/dist/date-picker.js.map +0 -1
  263. package/dist/details-card.js.map +0 -1
  264. package/dist/dialog.js.map +0 -1
  265. package/dist/dropdown-menu.js.map +0 -1
  266. package/dist/dropzone.js.map +0 -1
  267. package/dist/editorial-card.js.map +0 -1
  268. package/dist/empty-state.js.map +0 -1
  269. package/dist/field.js.map +0 -1
  270. package/dist/footer.js.map +0 -1
  271. package/dist/funnel-chart.js.map +0 -1
  272. package/dist/gallery-indicator.js.map +0 -1
  273. package/dist/heatmap-chart.js.map +0 -1
  274. package/dist/infotip.js.map +0 -1
  275. package/dist/input-group.js.map +0 -1
  276. package/dist/input-size-context.js.map +0 -1
  277. package/dist/input.js.map +0 -1
  278. package/dist/item.js.map +0 -1
  279. package/dist/kpi-card.js.map +0 -1
  280. package/dist/label.js.map +0 -1
  281. package/dist/line-chart.js.map +0 -1
  282. package/dist/logo.js.map +0 -1
  283. package/dist/map-indicator.js.map +0 -1
  284. package/dist/match.js.map +0 -1
  285. package/dist/media-gallery-hero.js.map +0 -1
  286. package/dist/media-player.js.map +0 -1
  287. package/dist/number-input.js.map +0 -1
  288. package/dist/page-header.js.map +0 -1
  289. package/dist/pagination.js.map +0 -1
  290. package/dist/password-input.js.map +0 -1
  291. package/dist/phone-input.js.map +0 -1
  292. package/dist/photo-gallery.js.map +0 -1
  293. package/dist/pie-chart.js.map +0 -1
  294. package/dist/popover.js.map +0 -1
  295. package/dist/price-tag.js.map +0 -1
  296. package/dist/progress.js.map +0 -1
  297. package/dist/property-listing-card.js.map +0 -1
  298. package/dist/radar-chart.js.map +0 -1
  299. package/dist/radio-group.js.map +0 -1
  300. package/dist/review-block.js.map +0 -1
  301. package/dist/rich-text-editor.js.map +0 -1
  302. package/dist/scatter-chart.js.map +0 -1
  303. package/dist/search-input.js.map +0 -1
  304. package/dist/select.js.map +0 -1
  305. package/dist/separator.js.map +0 -1
  306. package/dist/sheet.js.map +0 -1
  307. package/dist/sidebar.js.map +0 -1
  308. package/dist/size-context.js.map +0 -1
  309. package/dist/skeleton.js.map +0 -1
  310. package/dist/slider.js.map +0 -1
  311. package/dist/sparkline.js.map +0 -1
  312. package/dist/stepper.js.map +0 -1
  313. package/dist/switch.js.map +0 -1
  314. package/dist/tab-list.d.ts +0 -38
  315. package/dist/tab-list.js +0 -123
  316. package/dist/tab-list.js.map +0 -1
  317. package/dist/table.js.map +0 -1
  318. package/dist/tabs.js.map +0 -1
  319. package/dist/tag.js.map +0 -1
  320. package/dist/testimonial-block.js.map +0 -1
  321. package/dist/textarea.js.map +0 -1
  322. package/dist/time-picker.js.map +0 -1
  323. package/dist/toast.js.map +0 -1
  324. package/dist/tooltip.js.map +0 -1
  325. package/dist/tree-map.js.map +0 -1
  326. package/dist/waterfall-chart.js.map +0 -1
@@ -1,10 +1,7 @@
1
- import * as React from 'react';
2
- import { ChartCard, ChartValueType } from './chart.js';
3
- import { ComponentSize } from './size-context.js';
4
- import 'class-variance-authority/types';
5
- import 'class-variance-authority';
6
- import 'recharts';
7
-
1
+ import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
2
+ import { ChartCard, ChartValueType } from "./chart.js";
3
+ import * as React from "react";
4
+ //#region src/funnel-chart.d.ts
8
5
  /**
9
6
  * A staged conversion chart for drop-off analytics. Two renderings share one
10
7
  * component — `funnel` draws connected, edge-sharing trapezoids (recharts
@@ -35,12 +32,12 @@ type FunnelChartType = "funnel" | "bars";
35
32
  /** Where the colour-key legend sits relative to the plot. */
36
33
  type FunnelLegendPlacement = "right" | "bottom";
37
34
  type FunnelStage = {
38
- /** Stage name, e.g. "Applied". */
39
- label: string;
40
- /** Absolute count reaching this stage. */
41
- value: number;
42
- /** Segment colour; defaults to the palette in stage order. */
43
- fill?: string;
35
+ /** Stage name, e.g. "Applied". */
36
+ label: string;
37
+ /** Absolute count reaching this stage. */
38
+ value: number;
39
+ /** Segment colour; defaults to the palette in stage order. */
40
+ fill?: string;
44
41
  };
45
42
  /**
46
43
  * Stage palette, ordered top-of-funnel → bottom: forest → brass → moss → clay →
@@ -49,36 +46,36 @@ type FunnelStage = {
49
46
  */
50
47
  declare const FUNNEL_CHART_PALETTE: readonly ["var(--color-forest-700)", "var(--color-brass-500)", "var(--color-moss-600)", "var(--color-clay-500)", "var(--color-stone-500)"];
51
48
  type FunnelChartLayout = {
52
- /** Plot box height in px. */
53
- height: number;
54
- /** Plot box width in px — the funnel/bars column; labels + legend flow after. */
55
- width: number;
56
- /** Corner radius for the `bars` rendering. */
57
- barRadius: number;
58
- /** Bar thickness cap for the `bars` rendering. */
59
- barMaxSize: number;
49
+ /** Plot box height in px. */
50
+ height: number;
51
+ /** Plot box width in px — the funnel/bars column; labels + legend flow after. */
52
+ width: number;
53
+ /** Corner radius for the `bars` rendering. */
54
+ barRadius: number;
55
+ /** Bar thickness cap for the `bars` rendering. */
56
+ barMaxSize: number;
60
57
  };
61
58
  declare const FUNNEL_CHART_LAYOUT: Record<FunnelChartSize, FunnelChartLayout>;
62
59
  type FunnelChartProps = Omit<React.ComponentProps<typeof ChartCard>, "size" | "children"> & {
63
- /** Stages in funnel order — the widest (top) stage first. */
64
- data: FunnelStage[];
65
- /** Plot rendering. Defaults to `funnel`. */
66
- type?: FunnelChartType;
67
- /** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
68
- size?: FunnelChartSize;
69
- /** Chart heading. Omit to hide the title. */
70
- title?: React.ReactNode;
71
- /** Supporting metadata (period, source). Omit to hide the description. */
72
- description?: React.ReactNode;
73
- /** Enable the hover value tooltip. Default false. */
74
- tooltip?: boolean;
75
- /** Legend placement — a right column or a wrapped bottom row. Default right. */
76
- legend?: FunnelLegendPlacement;
77
- /** Format the absolute count in the value label and tooltip. */
78
- valueFormatter?: (value: number) => string;
79
- /** Value formatting for the tooltip. Defaults to `number`. */
80
- valueType?: ChartValueType;
60
+ /** Stages in funnel order — the widest (top) stage first. */
61
+ data: FunnelStage[];
62
+ /** Plot rendering. Defaults to `funnel`. */
63
+ type?: FunnelChartType;
64
+ /** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
65
+ size?: FunnelChartSize;
66
+ /** Chart heading. Omit to hide the title. */
67
+ title?: React.ReactNode;
68
+ /** Supporting metadata (period, source). Omit to hide the description. */
69
+ description?: React.ReactNode;
70
+ /** Enable the hover value tooltip. Default false. */
71
+ tooltip?: boolean;
72
+ /** Legend placement — a right column or a wrapped bottom row. Default right. */
73
+ legend?: FunnelLegendPlacement;
74
+ /** Format the absolute count in the value label and tooltip. */
75
+ valueFormatter?: (value: number) => string;
76
+ /** Value formatting for the tooltip. Defaults to `number`. */
77
+ valueType?: ChartValueType;
81
78
  };
82
79
  declare function FunnelChart({ data, type, size, title, description, tooltip, legend, valueFormatter, valueType, className, ...props }: FunnelChartProps): React.JSX.Element;
83
-
84
- export { FUNNEL_CHART_LAYOUT, FUNNEL_CHART_PALETTE, FunnelChart, type FunnelChartLayout, type FunnelChartProps, type FunnelChartSize, type FunnelChartType, type FunnelLegendPlacement, type FunnelStage };
80
+ //#endregion
81
+ export { FUNNEL_CHART_LAYOUT, FUNNEL_CHART_PALETTE, FunnelChart, type FunnelChartLayout, type FunnelChartProps, type FunnelChartSize, type FunnelChartType, type FunnelLegendPlacement, type FunnelStage };
@@ -1,196 +1,174 @@
1
1
  "use client";
2
- import {
3
- ChartCard,
4
- ChartContainer,
5
- ChartDescription,
6
- ChartHeader,
7
- ChartTitle,
8
- ChartTooltip,
9
- ChartTooltipContent
10
- } from "./chunk-NOFXVRWL.js";
11
- import {
12
- useComponentSize
13
- } from "./chunk-HL3ZSYES.js";
14
- import {
15
- cn
16
- } from "./chunk-Y4TTYVNE.js";
17
-
18
- // src/funnel-chart.tsx
19
- import { cva } from "class-variance-authority";
20
- import {
21
- Bar,
22
- BarChart,
23
- Funnel,
24
- FunnelChart as RechartsFunnelChart,
25
- XAxis,
26
- YAxis
27
- } from "recharts";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { useComponentSize } from "./size-context.js";
4
+ import { ChartCard, ChartContainer, ChartDescription, ChartHeader, ChartTitle, ChartTooltip, ChartTooltipContent } from "./chart.js";
28
5
  import { jsx, jsxs } from "react/jsx-runtime";
29
- var FUNNEL_CHART_PALETTE = [
30
- "var(--color-forest-700)",
31
- "var(--color-brass-500)",
32
- "var(--color-moss-600)",
33
- "var(--color-clay-500)",
34
- "var(--color-stone-500)"
6
+ import { cva } from "class-variance-authority";
7
+ import { Bar, BarChart, Funnel, FunnelChart as FunnelChart$1, XAxis, YAxis } from "recharts";
8
+ //#region src/funnel-chart.tsx
9
+ /**
10
+ * Stage palette, ordered top-of-funnel → bottom: forest → brass → moss → clay
11
+ * stone. Giddaa has no `chart-1`…`chart-N` tokens yet, so these map to the brand
12
+ * scales; assign by order, or override per stage with `fill`.
13
+ */
14
+ const FUNNEL_CHART_PALETTE = [
15
+ "var(--color-forest-700)",
16
+ "var(--color-brass-500)",
17
+ "var(--color-moss-600)",
18
+ "var(--color-clay-500)",
19
+ "var(--color-stone-500)"
35
20
  ];
36
- var FUNNEL_CHART_LAYOUT = {
37
- sm: { height: 150, width: 150, barRadius: 3, barMaxSize: 14 },
38
- md: { height: 200, width: 220, barRadius: 4, barMaxSize: 18 },
39
- lg: { height: 264, width: 288, barRadius: 5, barMaxSize: 22 }
21
+ const FUNNEL_CHART_LAYOUT = {
22
+ sm: {
23
+ height: 150,
24
+ width: 150,
25
+ barRadius: 3,
26
+ barMaxSize: 14
27
+ },
28
+ md: {
29
+ height: 200,
30
+ width: 220,
31
+ barRadius: 4,
32
+ barMaxSize: 18
33
+ },
34
+ lg: {
35
+ height: 264,
36
+ width: 288,
37
+ barRadius: 5,
38
+ barMaxSize: 22
39
+ }
40
40
  };
41
- var funnelStageListVariants = cva("flex min-w-0 flex-col", {
42
- variants: {
43
- size: {
44
- sm: "gap-2 text-gdt-xs",
45
- md: "gap-3 text-gdt-sm",
46
- lg: "gap-3.5 text-gdt-sm"
47
- }
48
- },
49
- defaultVariants: { size: "md" }
41
+ /** Vertical stage list — value-label column and the right-hand legend share it. */
42
+ const funnelStageListVariants = cva("flex min-w-0 flex-col", {
43
+ variants: { size: {
44
+ sm: "gap-2 text-gdt-xs",
45
+ md: "gap-3 text-gdt-sm",
46
+ lg: "gap-3.5 text-gdt-sm"
47
+ } },
48
+ defaultVariants: { size: "md" }
50
49
  });
51
- var funnelLegendDotVariants = cva("shrink-0 rounded-full", {
52
- variants: {
53
- size: { sm: "size-2", md: "size-2.5", lg: "size-3" }
54
- },
55
- defaultVariants: { size: "md" }
50
+ const funnelLegendDotVariants = cva("shrink-0 rounded-full", {
51
+ variants: { size: {
52
+ sm: "size-2",
53
+ md: "size-2.5",
54
+ lg: "size-3"
55
+ } },
56
+ defaultVariants: { size: "md" }
56
57
  });
57
- function FunnelChart({
58
- data,
59
- type = "funnel",
60
- size,
61
- title,
62
- description,
63
- tooltip = false,
64
- legend = "right",
65
- valueFormatter = (value) => value.toLocaleString("en-NG"),
66
- valueType = "number",
67
- className,
68
- ...props
69
- }) {
70
- const resolvedSize = useComponentSize(size);
71
- const layout = FUNNEL_CHART_LAYOUT[resolvedSize];
72
- const stages = data.map((stage, i) => ({
73
- ...stage,
74
- fill: stage.fill ?? FUNNEL_CHART_PALETTE[i % FUNNEL_CHART_PALETTE.length]
75
- }));
76
- const top = stages[0]?.value || 1;
77
- const config = Object.fromEntries(
78
- stages.map((stage) => [
79
- stage.label,
80
- { label: stage.label, color: stage.fill }
81
- ])
82
- );
83
- const tooltipNode = tooltip ? /* @__PURE__ */ jsx(
84
- ChartTooltip,
85
- {
86
- cursor: false,
87
- content: /* @__PURE__ */ jsx(ChartTooltipContent, { nameKey: "label", valueType })
88
- }
89
- ) : null;
90
- const chartNode = type === "bars" ? /* @__PURE__ */ jsxs(
91
- BarChart,
92
- {
93
- accessibilityLayer: true,
94
- layout: "vertical",
95
- data: stages,
96
- margin: { top: 0, right: 0, bottom: 0, left: 0 },
97
- barCategoryGap: "0%",
98
- children: [
99
- tooltipNode,
100
- /* @__PURE__ */ jsx(XAxis, { type: "number", domain: [0, top], hide: true }),
101
- /* @__PURE__ */ jsx(YAxis, { type: "category", dataKey: "label", hide: true }),
102
- /* @__PURE__ */ jsx(
103
- Bar,
104
- {
105
- dataKey: "value",
106
- radius: layout.barRadius,
107
- color: "var(--color-line-subtle)",
108
- isAnimationActive: false
109
- }
110
- )
111
- ]
112
- }
113
- ) : /* @__PURE__ */ jsxs(RechartsFunnelChart, { margin: { top: 0, right: 0, bottom: 0, left: 0 }, children: [
114
- tooltipNode,
115
- /* @__PURE__ */ jsx(
116
- Funnel,
117
- {
118
- data: stages,
119
- dataKey: "value",
120
- nameKey: "label",
121
- isAnimationActive: false
122
- }
123
- )
124
- ] });
125
- const valueLabels = /* @__PURE__ */ jsx("ul", { className: cn(funnelStageListVariants({ size: resolvedSize })), children: stages.map((stage) => /* @__PURE__ */ jsxs(
126
- "li",
127
- {
128
- className: "whitespace-nowrap tabular-nums text-fg-primary",
129
- children: [
130
- valueFormatter(stage.value),
131
- " \xB7",
132
- " ",
133
- Math.round(stage.value / top * 100),
134
- "%"
135
- ]
136
- },
137
- stage.label
138
- )) });
139
- const legendNode = /* @__PURE__ */ jsx(
140
- "ul",
141
- {
142
- className: cn(
143
- legend === "right" ? funnelStageListVariants({ size: resolvedSize }) : cn(
144
- "flex flex-row flex-wrap items-center gap-x-4 gap-y-2",
145
- resolvedSize === "sm" ? "text-gdt-xs" : "text-gdt-sm"
146
- )
147
- ),
148
- children: stages.map((stage) => /* @__PURE__ */ jsxs(
149
- "li",
150
- {
151
- className: "flex items-center gap-2 text-fg-primary",
152
- children: [
153
- /* @__PURE__ */ jsx(
154
- "span",
155
- {
156
- "aria-hidden": "true",
157
- className: cn(funnelLegendDotVariants({ size: resolvedSize })),
158
- style: { backgroundColor: stage.fill }
159
- }
160
- ),
161
- /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: stage.label })
162
- ]
163
- },
164
- stage.label
165
- ))
166
- }
167
- );
168
- return /* @__PURE__ */ jsxs(ChartCard, { size: resolvedSize, className, ...props, children: [
169
- (title != null || description != null) && /* @__PURE__ */ jsxs(ChartHeader, { children: [
170
- title != null && /* @__PURE__ */ jsx(ChartTitle, { children: title }),
171
- description != null && /* @__PURE__ */ jsx(ChartDescription, { children: description })
172
- ] }),
173
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
174
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-4", children: [
175
- /* @__PURE__ */ jsx(
176
- ChartContainer,
177
- {
178
- config,
179
- className: "aspect-auto shrink-0",
180
- style: { width: layout.width, height: layout.height },
181
- children: chartNode
182
- }
183
- ),
184
- valueLabels,
185
- legend === "right" && legendNode
186
- ] }),
187
- legend === "bottom" && legendNode
188
- ] })
189
- ] });
58
+ function FunnelChart({ data, type = "funnel", size, title, description, tooltip = false, legend = "right", valueFormatter = (value) => value.toLocaleString("en-NG"), valueType = "number", className, ...props }) {
59
+ const resolvedSize = useComponentSize(size);
60
+ const layout = FUNNEL_CHART_LAYOUT[resolvedSize];
61
+ const stages = data.map((stage, i) => ({
62
+ ...stage,
63
+ fill: stage.fill ?? FUNNEL_CHART_PALETTE[i % FUNNEL_CHART_PALETTE.length]
64
+ }));
65
+ const top = stages[0]?.value || 1;
66
+ const config = Object.fromEntries(stages.map((stage) => [stage.label, {
67
+ label: stage.label,
68
+ color: stage.fill
69
+ }]));
70
+ const tooltipNode = tooltip ? /* @__PURE__ */ jsx(ChartTooltip, {
71
+ cursor: false,
72
+ content: /* @__PURE__ */ jsx(ChartTooltipContent, {
73
+ nameKey: "label",
74
+ valueType
75
+ })
76
+ }) : null;
77
+ const chartNode = type === "bars" ? /* @__PURE__ */ jsxs(BarChart, {
78
+ accessibilityLayer: true,
79
+ layout: "vertical",
80
+ data: stages,
81
+ margin: {
82
+ top: 0,
83
+ right: 0,
84
+ bottom: 0,
85
+ left: 0
86
+ },
87
+ barCategoryGap: "0%",
88
+ children: [
89
+ tooltipNode,
90
+ /* @__PURE__ */ jsx(XAxis, {
91
+ type: "number",
92
+ domain: [0, top],
93
+ hide: true
94
+ }),
95
+ /* @__PURE__ */ jsx(YAxis, {
96
+ type: "category",
97
+ dataKey: "label",
98
+ hide: true
99
+ }),
100
+ /* @__PURE__ */ jsx(Bar, {
101
+ dataKey: "value",
102
+ radius: layout.barRadius,
103
+ color: "var(--color-line-subtle)",
104
+ isAnimationActive: false
105
+ })
106
+ ]
107
+ }) : /* @__PURE__ */ jsxs(FunnelChart$1, {
108
+ margin: {
109
+ top: 0,
110
+ right: 0,
111
+ bottom: 0,
112
+ left: 0
113
+ },
114
+ children: [tooltipNode, /* @__PURE__ */ jsx(Funnel, {
115
+ data: stages,
116
+ dataKey: "value",
117
+ nameKey: "label",
118
+ isAnimationActive: false
119
+ })]
120
+ });
121
+ const valueLabels = /* @__PURE__ */ jsx("ul", {
122
+ className: cn(funnelStageListVariants({ size: resolvedSize })),
123
+ children: stages.map((stage) => /* @__PURE__ */ jsxs("li", {
124
+ className: "whitespace-nowrap tabular-nums text-fg-primary",
125
+ children: [
126
+ valueFormatter(stage.value),
127
+ " ·",
128
+ " ",
129
+ Math.round(stage.value / top * 100),
130
+ "%"
131
+ ]
132
+ }, stage.label))
133
+ });
134
+ const legendNode = /* @__PURE__ */ jsx("ul", {
135
+ className: cn(legend === "right" ? funnelStageListVariants({ size: resolvedSize }) : cn("flex flex-row flex-wrap items-center gap-x-4 gap-y-2", resolvedSize === "sm" ? "text-gdt-xs" : "text-gdt-sm")),
136
+ children: stages.map((stage) => /* @__PURE__ */ jsxs("li", {
137
+ className: "flex items-center gap-2 text-fg-primary",
138
+ children: [/* @__PURE__ */ jsx("span", {
139
+ "aria-hidden": "true",
140
+ className: cn(funnelLegendDotVariants({ size: resolvedSize })),
141
+ style: { backgroundColor: stage.fill }
142
+ }), /* @__PURE__ */ jsx("span", {
143
+ className: "min-w-0 truncate",
144
+ children: stage.label
145
+ })]
146
+ }, stage.label))
147
+ });
148
+ return /* @__PURE__ */ jsxs(ChartCard, {
149
+ size: resolvedSize,
150
+ className,
151
+ ...props,
152
+ children: [(title != null || description != null) && /* @__PURE__ */ jsxs(ChartHeader, { children: [title != null && /* @__PURE__ */ jsx(ChartTitle, { children: title }), description != null && /* @__PURE__ */ jsx(ChartDescription, { children: description })] }), /* @__PURE__ */ jsxs("div", {
153
+ className: "flex flex-col gap-4",
154
+ children: [/* @__PURE__ */ jsxs("div", {
155
+ className: "flex flex-wrap items-center gap-x-6 gap-y-4",
156
+ children: [
157
+ /* @__PURE__ */ jsx(ChartContainer, {
158
+ config,
159
+ className: "aspect-auto shrink-0",
160
+ style: {
161
+ width: layout.width,
162
+ height: layout.height
163
+ },
164
+ children: chartNode
165
+ }),
166
+ valueLabels,
167
+ legend === "right" && legendNode
168
+ ]
169
+ }), legend === "bottom" && legendNode]
170
+ })]
171
+ });
190
172
  }
191
- export {
192
- FUNNEL_CHART_LAYOUT,
193
- FUNNEL_CHART_PALETTE,
194
- FunnelChart
195
- };
196
- //# sourceMappingURL=funnel-chart.js.map
173
+ //#endregion
174
+ export { FUNNEL_CHART_LAYOUT, FUNNEL_CHART_PALETTE, FunnelChart };
@@ -1,18 +1,17 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import { VariantProps } from 'class-variance-authority';
3
- import * as React from 'react';
4
-
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ //#region src/gallery-indicator.d.ts
5
4
  type GalleryIndicatorSize = "sm" | "md" | "lg";
6
5
  declare const galleryIndicatorVariants: (props?: ({
7
- size?: "sm" | "md" | "lg" | null | undefined;
8
- } & class_variance_authority_types.ClassProp) | undefined) => string;
6
+ size?: "lg" | "md" | "sm" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
8
  type GalleryIndicatorProps = React.ComponentProps<"span"> & VariantProps<typeof galleryIndicatorVariants> & {
10
- photoCount?: number;
11
- currentPhoto?: number;
12
- totalPhotos?: number;
13
- label?: string;
9
+ photoCount?: number;
10
+ currentPhoto?: number;
11
+ totalPhotos?: number;
12
+ label?: string;
14
13
  };
15
14
  declare function GalleryIndicatorIcon(props: React.SVGProps<SVGSVGElement>): React.JSX.Element;
16
15
  declare function GalleryIndicator({ className, size, photoCount, currentPhoto, totalPhotos, label, children, ...props }: GalleryIndicatorProps): React.JSX.Element;
17
-
18
- export { GalleryIndicator, GalleryIndicatorIcon, type GalleryIndicatorProps, type GalleryIndicatorSize, galleryIndicatorVariants };
16
+ //#endregion
17
+ export { GalleryIndicator, GalleryIndicatorIcon, type GalleryIndicatorProps, type GalleryIndicatorSize, galleryIndicatorVariants };
@@ -1,12 +1,75 @@
1
- import {
2
- GalleryIndicator,
3
- GalleryIndicatorIcon,
4
- galleryIndicatorVariants
5
- } from "./chunk-UJJNLGTM.js";
6
- import "./chunk-Y4TTYVNE.js";
7
- export {
8
- GalleryIndicator,
9
- GalleryIndicatorIcon,
10
- galleryIndicatorVariants
11
- };
12
- //# sourceMappingURL=gallery-indicator.js.map
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/gallery-indicator.tsx
5
+ const galleryIndicatorVariants = cva("inline-flex w-fit shrink-0 items-center justify-center rounded-[100px] bg-black/40 px-3 font-bold leading-none whitespace-nowrap text-white shadow-[0px_0px_4px_0px_rgba(0,0,0,0.1)] backdrop-blur-[15px] sm:px-4", {
6
+ variants: { size: {
7
+ sm: "h-[35px] gap-2 text-gdt-xs sm:gap-4 [&>svg]:size-5",
8
+ md: "h-10 gap-2 text-gdt-sm sm:gap-4 [&>svg]:size-5",
9
+ lg: "h-10 gap-2 text-gdt-lg sm:h-[50px] sm:gap-4 [&>svg]:size-6"
10
+ } },
11
+ defaultVariants: { size: "md" }
12
+ });
13
+ function GalleryIndicatorIcon(props) {
14
+ return /* @__PURE__ */ jsxs("svg", {
15
+ "aria-hidden": "true",
16
+ xmlns: "http://www.w3.org/2000/svg",
17
+ viewBox: "0 0 24 24",
18
+ fill: "none",
19
+ ...props,
20
+ children: [
21
+ /* @__PURE__ */ jsx("path", {
22
+ d: "M5.75 17.5 3.63 7.62a2 2 0 0 1 1.53-2.37l9.66-2.07a2 2 0 0 1 2.37 1.53l.27 1.29",
23
+ stroke: "currentColor",
24
+ strokeLinecap: "round",
25
+ strokeLinejoin: "round",
26
+ strokeWidth: "2"
27
+ }),
28
+ /* @__PURE__ */ jsx("rect", {
29
+ width: "14.5",
30
+ height: "12.5",
31
+ x: "7",
32
+ y: "7.5",
33
+ stroke: "currentColor",
34
+ strokeLinejoin: "round",
35
+ strokeWidth: "2",
36
+ rx: "2"
37
+ }),
38
+ /* @__PURE__ */ jsx("path", {
39
+ d: "m8.75 17 3.31-3.31a1.25 1.25 0 0 1 1.77 0L17.25 17",
40
+ stroke: "currentColor",
41
+ strokeLinecap: "round",
42
+ strokeLinejoin: "round",
43
+ strokeWidth: "2"
44
+ }),
45
+ /* @__PURE__ */ jsx("path", {
46
+ d: "m15.5 15.25.81-.81a1.25 1.25 0 0 1 1.77 0L20.5 16.86",
47
+ stroke: "currentColor",
48
+ strokeLinecap: "round",
49
+ strokeLinejoin: "round",
50
+ strokeWidth: "2"
51
+ }),
52
+ /* @__PURE__ */ jsx("circle", {
53
+ cx: "17.25",
54
+ cy: "11.25",
55
+ r: "1.25",
56
+ fill: "currentColor"
57
+ })
58
+ ]
59
+ });
60
+ }
61
+ function GalleryIndicator({ className, size = "md", photoCount = 35, currentPhoto, totalPhotos = photoCount, label, children, ...props }) {
62
+ const resolvedLabel = children ?? label ?? (currentPhoto === void 0 ? `View All ${photoCount} Photos` : `${currentPhoto}/${totalPhotos}`);
63
+ return /* @__PURE__ */ jsxs("span", {
64
+ "data-slot": "gallery-indicator",
65
+ "data-size": size,
66
+ className: cn(galleryIndicatorVariants({ size }), className),
67
+ ...props,
68
+ children: [/* @__PURE__ */ jsx(GalleryIndicatorIcon, { className: "shrink-0 text-white" }), /* @__PURE__ */ jsx("span", {
69
+ className: "min-w-0 truncate",
70
+ children: resolvedLabel
71
+ })]
72
+ });
73
+ }
74
+ //#endregion
75
+ export { GalleryIndicator, GalleryIndicatorIcon, galleryIndicatorVariants };