@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
package/dist/sparkline.js CHANGED
@@ -1,260 +1,230 @@
1
1
  "use client";
2
- import {
3
- ChartContainer,
4
- ChartTooltip,
5
- ChartTooltipContent
6
- } from "./chunk-NOFXVRWL.js";
7
- import {
8
- useComponentSize
9
- } from "./chunk-HL3ZSYES.js";
10
- import {
11
- cn
12
- } from "./chunk-Y4TTYVNE.js";
13
-
14
- // src/sparkline.tsx
15
- import {
16
- Area,
17
- AreaChart,
18
- Bar,
19
- BarChart,
20
- Line,
21
- LineChart,
22
- XAxis
23
- } from "recharts";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { useComponentSize } from "./size-context.js";
4
+ import { ChartContainer, ChartTooltip, ChartTooltipContent } from "./chart.js";
24
5
  import { jsx, jsxs } from "react/jsx-runtime";
25
- var SPARKLINE_LAYOUT = {
26
- sm: {
27
- width: 72,
28
- height: 24,
29
- strokeWidth: 1.5,
30
- dotRadius: 2,
31
- margin: { top: 4, right: 4, bottom: 2, left: 2 },
32
- barRadius: 1,
33
- maxBarSize: 6
34
- },
35
- md: {
36
- width: 104,
37
- height: 32,
38
- strokeWidth: 2,
39
- dotRadius: 2.5,
40
- margin: { top: 5, right: 5, bottom: 2, left: 2 },
41
- barRadius: 2,
42
- maxBarSize: 8
43
- },
44
- lg: {
45
- width: 144,
46
- height: 44,
47
- strokeWidth: 2,
48
- dotRadius: 3,
49
- margin: { top: 6, right: 6, bottom: 3, left: 3 },
50
- barRadius: 2,
51
- maxBarSize: 10
52
- }
6
+ import { Area, AreaChart, Bar, BarChart, Line, LineChart, XAxis } from "recharts";
7
+ //#region src/sparkline.tsx
8
+ const SPARKLINE_LAYOUT = {
9
+ sm: {
10
+ width: 72,
11
+ height: 24,
12
+ strokeWidth: 1.5,
13
+ dotRadius: 2,
14
+ margin: {
15
+ top: 4,
16
+ right: 4,
17
+ bottom: 2,
18
+ left: 2
19
+ },
20
+ barRadius: 1,
21
+ maxBarSize: 6
22
+ },
23
+ md: {
24
+ width: 104,
25
+ height: 32,
26
+ strokeWidth: 2,
27
+ dotRadius: 2.5,
28
+ margin: {
29
+ top: 5,
30
+ right: 5,
31
+ bottom: 2,
32
+ left: 2
33
+ },
34
+ barRadius: 2,
35
+ maxBarSize: 8
36
+ },
37
+ lg: {
38
+ width: 144,
39
+ height: 44,
40
+ strokeWidth: 2,
41
+ dotRadius: 3,
42
+ margin: {
43
+ top: 6,
44
+ right: 6,
45
+ bottom: 3,
46
+ left: 3
47
+ },
48
+ barRadius: 2,
49
+ maxBarSize: 10
50
+ }
53
51
  };
54
- var TREND_COLOR = {
55
- up: "var(--color-status-success)",
56
- down: "var(--color-status-danger)",
57
- flat: "var(--color-fg-secondary)"
52
+ const TREND_COLOR = {
53
+ up: "var(--color-status-success)",
54
+ down: "var(--color-status-danger)",
55
+ flat: "var(--color-fg-secondary)"
58
56
  };
57
+ /**
58
+ * Derive sentiment from the series: compare the last value to the first and
59
+ * read flat when the change is a small fraction of the overall range.
60
+ */
59
61
  function resolveTrend(data) {
60
- if (data.length < 2) return "flat";
61
- const first = data[0];
62
- const last = data[data.length - 1];
63
- const min = Math.min(...data);
64
- const max = Math.max(...data);
65
- const range = max - min || 1;
66
- const delta = last - first;
67
- if (Math.abs(delta) / range < 0.05) return "flat";
68
- return delta > 0 ? "up" : "down";
62
+ if (data.length < 2) return "flat";
63
+ const first = data[0];
64
+ const last = data[data.length - 1];
65
+ const min = Math.min(...data);
66
+ const range = Math.max(...data) - min || 1;
67
+ const delta = last - first;
68
+ if (Math.abs(delta) / range < .05) return "flat";
69
+ return delta > 0 ? "up" : "down";
69
70
  }
70
- function SparklineEndDot({
71
- cx,
72
- cy,
73
- index,
74
- lastIndex,
75
- radius
76
- }) {
77
- if (cx == null || cy == null || index !== lastIndex) {
78
- return null;
79
- }
80
- return /* @__PURE__ */ jsx(
81
- "circle",
82
- {
83
- cx,
84
- cy,
85
- r: radius,
86
- fill: "var(--color-value)",
87
- stroke: "var(--color-surface)",
88
- strokeWidth: 2
89
- }
90
- );
71
+ /**
72
+ * Custom dot passed to recharts as `dot={<SparklineEndDot ... />}`. recharts
73
+ * clones it for every point, injecting `cx`/`cy`/`index`; we only paint the
74
+ * latest point so the series carries a single end-point marker.
75
+ */
76
+ function SparklineEndDot({ cx, cy, index, lastIndex, radius }) {
77
+ if (cx == null || cy == null || index !== lastIndex) return null;
78
+ return /* @__PURE__ */ jsx("circle", {
79
+ cx,
80
+ cy,
81
+ r: radius,
82
+ fill: "var(--color-value)",
83
+ stroke: "var(--color-surface)",
84
+ strokeWidth: 2
85
+ });
91
86
  }
92
- function SparklineBarShape({
93
- x,
94
- y,
95
- width,
96
- height,
97
- index,
98
- value,
99
- lastIndex,
100
- radius,
101
- dotRadius
102
- }) {
103
- if (x == null || y == null || width == null || height == null) {
104
- return null;
105
- }
106
- const markerY = typeof value === "number" && value < 0 ? y + height : y;
107
- return /* @__PURE__ */ jsxs("g", { children: [
108
- /* @__PURE__ */ jsx(
109
- "rect",
110
- {
111
- x,
112
- y,
113
- width,
114
- height,
115
- rx: radius,
116
- ry: radius,
117
- fill: "var(--color-value)"
118
- }
119
- ),
120
- index === lastIndex ? /* @__PURE__ */ jsx(
121
- "circle",
122
- {
123
- cx: x + width / 2,
124
- cy: markerY,
125
- r: dotRadius,
126
- fill: "var(--color-value)",
127
- stroke: "var(--color-surface)",
128
- strokeWidth: 2
129
- }
130
- ) : null
131
- ] });
87
+ /**
88
+ * Bars do not support `dot`, so the marker is rendered as part of a custom bar
89
+ * shape. Only the latest bar receives the end-point marker.
90
+ */
91
+ function SparklineBarShape({ x, y, width, height, index, value, lastIndex, radius, dotRadius }) {
92
+ if (x == null || y == null || width == null || height == null) return null;
93
+ const markerY = typeof value === "number" && value < 0 ? y + height : y;
94
+ return /* @__PURE__ */ jsxs("g", { children: [/* @__PURE__ */ jsx("rect", {
95
+ x,
96
+ y,
97
+ width,
98
+ height,
99
+ rx: radius,
100
+ ry: radius,
101
+ fill: "var(--color-value)"
102
+ }), index === lastIndex ? /* @__PURE__ */ jsx("circle", {
103
+ cx: x + width / 2,
104
+ cy: markerY,
105
+ r: dotRadius,
106
+ fill: "var(--color-value)",
107
+ stroke: "var(--color-surface)",
108
+ strokeWidth: 2
109
+ }) : null] });
132
110
  }
133
- function Sparkline({
134
- data,
135
- type = "line",
136
- size,
137
- trend,
138
- showMarker = true,
139
- tooltip = false,
140
- label = "Value",
141
- labels,
142
- valueType = "number",
143
- className,
144
- style,
145
- ...props
146
- }) {
147
- const layout = SPARKLINE_LAYOUT[useComponentSize(size)];
148
- const resolvedTrend = trend ?? resolveTrend(data);
149
- const color = TREND_COLOR[resolvedTrend];
150
- const chartData = data.map((value, i) => ({
151
- x: labels?.[i] ?? `${i + 1}`,
152
- value
153
- }));
154
- const lastIndex = data.length - 1;
155
- const config = {
156
- value: { label, color }
157
- };
158
- const showDot = showMarker && data.length >= 2;
159
- const endDot = showDot ? /* @__PURE__ */ jsx(SparklineEndDot, { lastIndex, radius: layout.dotRadius }) : false;
160
- const barShape = showDot ? /* @__PURE__ */ jsx(
161
- SparklineBarShape,
162
- {
163
- lastIndex,
164
- radius: layout.barRadius,
165
- dotRadius: layout.dotRadius
166
- }
167
- ) : void 0;
168
- const activeDot = tooltip ? {
169
- r: layout.dotRadius + 0.5,
170
- fill: "var(--color-value)",
171
- stroke: "var(--color-surface)",
172
- strokeWidth: 2
173
- } : false;
174
- const tooltipNode = tooltip ? /* @__PURE__ */ jsx(
175
- ChartTooltip,
176
- {
177
- cursor: false,
178
- content: /* @__PURE__ */ jsx(ChartTooltipContent, { size: "xs", valueType })
179
- }
180
- ) : null;
181
- const ariaLabel = props["aria-label"] ?? `${label} sparkline, trend ${resolvedTrend}`;
182
- if (data.length < 2) {
183
- return /* @__PURE__ */ jsx(
184
- "div",
185
- {
186
- ...props,
187
- "aria-label": ariaLabel,
188
- role: "img",
189
- className: cn("w-full", className),
190
- style: { height: layout.height, ...style }
191
- }
192
- );
193
- }
194
- return /* @__PURE__ */ jsx(
195
- ChartContainer,
196
- {
197
- ...props,
198
- "aria-label": ariaLabel,
199
- role: "img",
200
- config,
201
- className: cn("aspect-auto w-full", className),
202
- style: { height: layout.height, ...style },
203
- children: type === "bar" ? /* @__PURE__ */ jsxs(BarChart, { accessibilityLayer: true, data: chartData, margin: layout.margin, children: [
204
- tooltipNode,
205
- /* @__PURE__ */ jsx(
206
- Bar,
207
- {
208
- dataKey: "value",
209
- fill: "var(--color-value)",
210
- radius: layout.barRadius,
211
- maxBarSize: layout.maxBarSize,
212
- shape: barShape,
213
- isAnimationActive: false
214
- }
215
- )
216
- ] }) : type === "area" ? /* @__PURE__ */ jsxs(AreaChart, { accessibilityLayer: true, data: chartData, margin: layout.margin, children: [
217
- tooltip ? /* @__PURE__ */ jsx(XAxis, { dataKey: "x", hide: true }) : null,
218
- tooltipNode,
219
- /* @__PURE__ */ jsx(
220
- Area,
221
- {
222
- type: "monotone",
223
- dataKey: "value",
224
- stroke: "var(--color-value)",
225
- strokeWidth: layout.strokeWidth,
226
- strokeLinejoin: "round",
227
- strokeLinecap: "round",
228
- fill: "var(--color-value)",
229
- fillOpacity: 0.14,
230
- dot: endDot,
231
- activeDot,
232
- isAnimationActive: false
233
- }
234
- )
235
- ] }) : /* @__PURE__ */ jsxs(LineChart, { accessibilityLayer: true, data: chartData, margin: layout.margin, children: [
236
- tooltip ? /* @__PURE__ */ jsx(XAxis, { dataKey: "x", hide: true }) : null,
237
- tooltipNode,
238
- /* @__PURE__ */ jsx(
239
- Line,
240
- {
241
- type: "monotone",
242
- dataKey: "value",
243
- stroke: "var(--color-value)",
244
- strokeWidth: layout.strokeWidth,
245
- strokeLinejoin: "round",
246
- strokeLinecap: "round",
247
- dot: endDot,
248
- activeDot,
249
- isAnimationActive: false
250
- }
251
- )
252
- ] })
253
- }
254
- );
111
+ function Sparkline({ data, type = "line", size, trend, showMarker = true, tooltip = false, label = "Value", labels, valueType = "number", className, style, ...props }) {
112
+ const layout = SPARKLINE_LAYOUT[useComponentSize(size)];
113
+ const resolvedTrend = trend ?? resolveTrend(data);
114
+ const color = TREND_COLOR[resolvedTrend];
115
+ const chartData = data.map((value, i) => ({
116
+ x: labels?.[i] ?? `${i + 1}`,
117
+ value
118
+ }));
119
+ const lastIndex = data.length - 1;
120
+ const config = { value: {
121
+ label,
122
+ color
123
+ } };
124
+ const showDot = showMarker && data.length >= 2;
125
+ const endDot = showDot ? /* @__PURE__ */ jsx(SparklineEndDot, {
126
+ lastIndex,
127
+ radius: layout.dotRadius
128
+ }) : false;
129
+ const barShape = showDot ? /* @__PURE__ */ jsx(SparklineBarShape, {
130
+ lastIndex,
131
+ radius: layout.barRadius,
132
+ dotRadius: layout.dotRadius
133
+ }) : void 0;
134
+ const activeDot = tooltip ? {
135
+ r: layout.dotRadius + .5,
136
+ fill: "var(--color-value)",
137
+ stroke: "var(--color-surface)",
138
+ strokeWidth: 2
139
+ } : false;
140
+ const tooltipNode = tooltip ? /* @__PURE__ */ jsx(ChartTooltip, {
141
+ cursor: false,
142
+ content: /* @__PURE__ */ jsx(ChartTooltipContent, {
143
+ size: "xs",
144
+ valueType
145
+ })
146
+ }) : null;
147
+ const ariaLabel = props["aria-label"] ?? `${label} sparkline, trend ${resolvedTrend}`;
148
+ if (data.length < 2) return /* @__PURE__ */ jsx("div", {
149
+ ...props,
150
+ "aria-label": ariaLabel,
151
+ role: "img",
152
+ className: cn("w-full", className),
153
+ style: {
154
+ height: layout.height,
155
+ ...style
156
+ }
157
+ });
158
+ return /* @__PURE__ */ jsx(ChartContainer, {
159
+ ...props,
160
+ "aria-label": ariaLabel,
161
+ role: "img",
162
+ config,
163
+ className: cn("aspect-auto w-full", className),
164
+ style: {
165
+ height: layout.height,
166
+ ...style
167
+ },
168
+ children: type === "bar" ? /* @__PURE__ */ jsxs(BarChart, {
169
+ accessibilityLayer: true,
170
+ data: chartData,
171
+ margin: layout.margin,
172
+ children: [tooltipNode, /* @__PURE__ */ jsx(Bar, {
173
+ dataKey: "value",
174
+ fill: "var(--color-value)",
175
+ radius: layout.barRadius,
176
+ maxBarSize: layout.maxBarSize,
177
+ shape: barShape,
178
+ isAnimationActive: false
179
+ })]
180
+ }) : type === "area" ? /* @__PURE__ */ jsxs(AreaChart, {
181
+ accessibilityLayer: true,
182
+ data: chartData,
183
+ margin: layout.margin,
184
+ children: [
185
+ tooltip ? /* @__PURE__ */ jsx(XAxis, {
186
+ dataKey: "x",
187
+ hide: true
188
+ }) : null,
189
+ tooltipNode,
190
+ /* @__PURE__ */ jsx(Area, {
191
+ type: "monotone",
192
+ dataKey: "value",
193
+ stroke: "var(--color-value)",
194
+ strokeWidth: layout.strokeWidth,
195
+ strokeLinejoin: "round",
196
+ strokeLinecap: "round",
197
+ fill: "var(--color-value)",
198
+ fillOpacity: .14,
199
+ dot: endDot,
200
+ activeDot,
201
+ isAnimationActive: false
202
+ })
203
+ ]
204
+ }) : /* @__PURE__ */ jsxs(LineChart, {
205
+ accessibilityLayer: true,
206
+ data: chartData,
207
+ margin: layout.margin,
208
+ children: [
209
+ tooltip ? /* @__PURE__ */ jsx(XAxis, {
210
+ dataKey: "x",
211
+ hide: true
212
+ }) : null,
213
+ tooltipNode,
214
+ /* @__PURE__ */ jsx(Line, {
215
+ type: "monotone",
216
+ dataKey: "value",
217
+ stroke: "var(--color-value)",
218
+ strokeWidth: layout.strokeWidth,
219
+ strokeLinejoin: "round",
220
+ strokeLinecap: "round",
221
+ dot: endDot,
222
+ activeDot,
223
+ isAnimationActive: false
224
+ })
225
+ ]
226
+ })
227
+ });
255
228
  }
256
- export {
257
- SPARKLINE_LAYOUT,
258
- Sparkline
259
- };
260
- //# sourceMappingURL=sparkline.js.map
229
+ //#endregion
230
+ export { SPARKLINE_LAYOUT, Sparkline };
package/dist/stepper.d.ts CHANGED
@@ -1,43 +1,42 @@
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/stepper.d.ts
5
4
  type StepperOrientation = "horizontal" | "vertical";
6
5
  type StepperState = "complete" | "active" | "upcoming";
7
6
  type StepperProps = React.ComponentProps<"div"> & {
8
- orientation?: StepperOrientation;
9
- /** Active step number (1-based). Items without an explicit `state` derive theirs from this. */
10
- value?: number;
7
+ orientation?: StepperOrientation;
8
+ /** Active step number (1-based). Items without an explicit `state` derive theirs from this. */
9
+ value?: number;
11
10
  };
12
11
  declare function Stepper({ orientation, value, className, children, ...props }: StepperProps): React.JSX.Element;
13
12
  type StepperItemProps = Omit<React.ComponentProps<"div">, "children"> & {
14
- /** Force a specific state instead of deriving it from the stepper `value`. */
15
- state?: StepperState;
16
- /** 1-based position. Injected by `Stepper`; only set this to override. */
17
- step?: number;
18
- /** Whether this is the last item (hides its connector). Injected by `Stepper`. */
19
- last?: boolean;
20
- /** Custom indicator node. Defaults to a numbered circle / checkmark. */
21
- indicator?: React.ReactNode;
22
- children?: React.ReactNode;
13
+ /** Force a specific state instead of deriving it from the stepper `value`. */
14
+ state?: StepperState;
15
+ /** 1-based position. Injected by `Stepper`; only set this to override. */
16
+ step?: number;
17
+ /** Whether this is the last item (hides its connector). Injected by `Stepper`. */
18
+ last?: boolean;
19
+ /** Custom indicator node. Defaults to a numbered circle / checkmark. */
20
+ indicator?: React.ReactNode;
21
+ children?: React.ReactNode;
23
22
  };
24
23
  declare function StepperItem({ state: stateOverride, step, last, indicator, className, children, ...props }: StepperItemProps): React.JSX.Element;
25
24
  declare const indicatorVariants: (props?: ({
26
- state?: "active" | "complete" | "upcoming" | null | undefined;
27
- } & class_variance_authority_types.ClassProp) | undefined) => string;
25
+ state?: "active" | "complete" | "upcoming" | null | undefined;
26
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
28
27
  type StepperIndicatorProps = Omit<React.ComponentProps<"div">, "children"> & VariantProps<typeof indicatorVariants> & {
29
- /** Override the rendered glyph. Defaults to the step number / checkmark. */
30
- children?: React.ReactNode;
28
+ /** Override the rendered glyph. Defaults to the step number / checkmark. */
29
+ children?: React.ReactNode;
31
30
  };
32
31
  declare function StepperIndicator({ className, state: stateProp, children, ...props }: StepperIndicatorProps): React.JSX.Element;
33
32
  declare function StepperSeparator({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
34
33
  declare function StepperTitle({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
35
34
  declare function StepperDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
36
35
  type StepperMetaProps = Omit<React.ComponentProps<"div">, "children"> & {
37
- date?: React.ReactNode;
38
- time?: React.ReactNode;
36
+ date?: React.ReactNode;
37
+ time?: React.ReactNode;
39
38
  };
40
39
  /** Date / timestamp caption pair. Placeholder colour regardless of state. */
41
40
  declare function StepperMeta({ date, time, className, ...props }: StepperMetaProps): React.JSX.Element | null;
42
-
43
- export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperMeta, type StepperOrientation, StepperSeparator, type StepperState, StepperTitle };
41
+ //#endregion
42
+ export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperMeta, type StepperOrientation, StepperSeparator, type StepperState, StepperTitle };