@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
@@ -1,161 +1,69 @@
1
- // src/components/ui/breadcrumb.tsx
2
- import { mergeProps } from "@base-ui/react/merge-props";
3
- import { useRender } from "@base-ui/react/use-render";
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
4
2
  import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
5
-
6
- // src/lib/cn.ts
7
- import { clsx } from "clsx";
8
- import { extendTailwindMerge } from "tailwind-merge";
9
- var twMerge = extendTailwindMerge({
10
- extend: {
11
- classGroups: {
12
- "font-size": [
13
- {
14
- text: [
15
- "gdt-display",
16
- "gdt-h1",
17
- "gdt-h2",
18
- "gdt-h3",
19
- "gdt-h4",
20
- "gdt-h5",
21
- "gdt-xl",
22
- "gdt-lg",
23
- "gdt-md",
24
- "gdt-sm",
25
- "gdt-xs",
26
- "gdt-subtext",
27
- "gdt-capitalized"
28
- ]
29
- }
30
- ]
31
- }
32
- }
33
- });
34
- function cn(...inputs) {
35
- return twMerge(clsx(inputs));
36
- }
37
-
38
- // src/components/ui/breadcrumb.tsx
39
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+ //#region src/breadcrumb.tsx
40
7
  function Breadcrumb({ className, ...props }) {
41
- return /* @__PURE__ */ jsx(
42
- "nav",
43
- {
44
- "aria-label": "breadcrumb",
45
- "data-slot": "breadcrumb",
46
- className: cn("min-w-0", className),
47
- ...props
48
- }
49
- );
8
+ return /* @__PURE__ */ jsx("nav", {
9
+ "aria-label": "breadcrumb",
10
+ "data-slot": "breadcrumb",
11
+ className: cn("min-w-0", className),
12
+ ...props
13
+ });
50
14
  }
51
15
  function BreadcrumbList({ className, ...props }) {
52
- return /* @__PURE__ */ jsx(
53
- "ol",
54
- {
55
- "data-slot": "breadcrumb-list",
56
- className: cn(
57
- "flex flex-wrap items-center gap-2 wrap-break-word text-gdt-sm text-fg-secondary",
58
- className
59
- ),
60
- ...props
61
- }
62
- );
16
+ return /* @__PURE__ */ jsx("ol", {
17
+ "data-slot": "breadcrumb-list",
18
+ className: cn("flex flex-wrap items-center gap-2 wrap-break-word text-gdt-sm text-fg-secondary", className),
19
+ ...props
20
+ });
63
21
  }
64
22
  function BreadcrumbItem({ className, ...props }) {
65
- return /* @__PURE__ */ jsx(
66
- "li",
67
- {
68
- "data-slot": "breadcrumb-item",
69
- className: cn("inline-flex min-w-0 items-center gap-2", className),
70
- ...props
71
- }
72
- );
23
+ return /* @__PURE__ */ jsx("li", {
24
+ "data-slot": "breadcrumb-item",
25
+ className: cn("inline-flex min-w-0 items-center gap-2", className),
26
+ ...props
27
+ });
73
28
  }
74
- function BreadcrumbLink({
75
- className,
76
- render,
77
- ...props
78
- }) {
79
- return useRender({
80
- defaultTagName: "a",
81
- props: mergeProps(
82
- {
83
- className: cn(
84
- "inline-flex min-w-0 items-center rounded-sm text-gdt-sm font-normal text-fg-secondary transition-colors hover:text-fg-primary focus-visible:outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
85
- className
86
- )
87
- },
88
- props
89
- ),
90
- render,
91
- state: {
92
- slot: "breadcrumb-link"
93
- }
94
- });
29
+ function BreadcrumbLink({ className, render, ...props }) {
30
+ return useRender({
31
+ defaultTagName: "a",
32
+ props: mergeProps({ className: cn("inline-flex min-w-0 items-center rounded-sm text-gdt-sm font-normal text-fg-secondary transition-colors hover:text-fg-primary focus-visible:outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]", className) }, props),
33
+ render,
34
+ state: { slot: "breadcrumb-link" }
35
+ });
95
36
  }
96
37
  function BreadcrumbPage({ className, ...props }) {
97
- return /* @__PURE__ */ jsx(
98
- "span",
99
- {
100
- "data-slot": "breadcrumb-page",
101
- "aria-current": "page",
102
- className: cn(
103
- "inline-flex min-w-0 items-center text-gdt-sm font-semibold text-fg-brand",
104
- className
105
- ),
106
- ...props
107
- }
108
- );
38
+ return /* @__PURE__ */ jsx("span", {
39
+ "data-slot": "breadcrumb-page",
40
+ "aria-current": "page",
41
+ className: cn("inline-flex min-w-0 items-center text-gdt-sm font-semibold text-fg-brand", className),
42
+ ...props
43
+ });
109
44
  }
110
- function BreadcrumbSeparator({
111
- children,
112
- className,
113
- ...props
114
- }) {
115
- return /* @__PURE__ */ jsx(
116
- "li",
117
- {
118
- "data-slot": "breadcrumb-separator",
119
- role: "presentation",
120
- "aria-hidden": "true",
121
- className: cn(
122
- "inline-flex shrink-0 items-center text-fg-caption-placeholder [&>svg]:size-4 [&>svg]:shrink-0",
123
- className
124
- ),
125
- ...props,
126
- children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "cn-rtl-flip" })
127
- }
128
- );
45
+ function BreadcrumbSeparator({ children, className, ...props }) {
46
+ return /* @__PURE__ */ jsx("li", {
47
+ "data-slot": "breadcrumb-separator",
48
+ role: "presentation",
49
+ "aria-hidden": "true",
50
+ className: cn("inline-flex shrink-0 items-center text-fg-caption-placeholder [&>svg]:size-4 [&>svg]:shrink-0", className),
51
+ ...props,
52
+ children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "cn-rtl-flip" })
53
+ });
129
54
  }
130
- function BreadcrumbEllipsis({
131
- className,
132
- ...props
133
- }) {
134
- return /* @__PURE__ */ jsxs(
135
- "span",
136
- {
137
- "data-slot": "breadcrumb-ellipsis",
138
- role: "presentation",
139
- "aria-hidden": "true",
140
- className: cn(
141
- "inline-flex items-center justify-center text-fg-caption-placeholder [&>svg]:size-4 [&>svg]:shrink-0",
142
- className
143
- ),
144
- ...props,
145
- children: [
146
- /* @__PURE__ */ jsx(MoreHorizontalIcon, {}),
147
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
148
- ]
149
- }
150
- );
55
+ function BreadcrumbEllipsis({ className, ...props }) {
56
+ return /* @__PURE__ */ jsxs("span", {
57
+ "data-slot": "breadcrumb-ellipsis",
58
+ role: "presentation",
59
+ "aria-hidden": "true",
60
+ className: cn("inline-flex items-center justify-center text-fg-caption-placeholder [&>svg]:size-4 [&>svg]:shrink-0", className),
61
+ ...props,
62
+ children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, {}), /* @__PURE__ */ jsx("span", {
63
+ className: "sr-only",
64
+ children: "More"
65
+ })]
66
+ });
151
67
  }
152
- export {
153
- Breadcrumb,
154
- BreadcrumbEllipsis,
155
- BreadcrumbItem,
156
- BreadcrumbLink,
157
- BreadcrumbList,
158
- BreadcrumbPage,
159
- BreadcrumbSeparator
160
- };
161
- //# sourceMappingURL=breadcrumb.js.map
68
+ //#endregion
69
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
2
- import { ComponentSize } from './size-context.js';
3
-
1
+ import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
2
+ import * as React from "react";
3
+ //#region src/bullet-chart.d.ts
4
4
  /**
5
5
  * A bullet chart — a compact linear gauge for KPI-vs-goal reporting where a full
6
6
  * bar chart would be excessive. It encodes three things on one horizontal track:
@@ -55,16 +55,16 @@ type BulletChartSize = ComponentSize;
55
55
  /** Measure-bar sentiment — `auto` derives it from `value` vs `target`. */
56
56
  type BulletChartStatus = "auto" | "success" | "warning";
57
57
  type BulletChartLayout = {
58
- /** Thickness of the range-band track (the pill) in px. */
59
- trackHeight: number;
60
- /** Thickness of the centered measure bar in px. */
61
- measureHeight: number;
62
- /** Height of the target marker in px — taller than the bar, inside the track. */
63
- markerHeight: number;
64
- /** Target marker thickness in px. */
65
- markerWidth: number;
66
- /** Axis tick label class. */
67
- tickClass: string;
58
+ /** Thickness of the range-band track (the pill) in px. */
59
+ trackHeight: number;
60
+ /** Thickness of the centered measure bar in px. */
61
+ measureHeight: number;
62
+ /** Height of the target marker in px — taller than the bar, inside the track. */
63
+ markerHeight: number;
64
+ /** Target marker thickness in px. */
65
+ markerWidth: number;
66
+ /** Axis tick label class. */
67
+ tickClass: string;
68
68
  };
69
69
  declare const BULLET_CHART_LAYOUT: Record<BulletChartSize, BulletChartLayout>;
70
70
  /**
@@ -74,25 +74,25 @@ declare const BULLET_CHART_LAYOUT: Record<BulletChartSize, BulletChartLayout>;
74
74
  */
75
75
  declare const BULLET_RANGE_PALETTE: readonly ["var(--color-stone-200)", "var(--color-stone-300)", "var(--color-stone-400)"];
76
76
  type BulletChartProps = Omit<React.ComponentProps<"div">, "children"> & {
77
- /** The realized (actualized) value — drives the measure bar length. */
78
- value: number;
79
- /** The goal to beat — drives the target marker and the auto status colour. */
80
- target: number;
81
- /** Axis start. Default 0. */
82
- min?: number;
83
- /** Axis end. Default the largest of `value`, `target`, and the top range. */
84
- max?: number;
85
- /** Internal thresholds dividing [min, max] into qualitative zones, ascending. */
86
- ranges?: number[];
87
- /** Axis tick values. Default `[min, midpoint, max]`. Pass `[]` to hide. */
88
- ticks?: number[];
89
- /** Measure-bar sentiment. Default `auto` (success when `value >= target`). */
90
- status?: BulletChartStatus;
91
- /** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
92
- size?: BulletChartSize;
93
- /** Format the tick labels (and the aria summary). Default grouped integer. */
94
- valueFormatter?: (value: number) => string;
77
+ /** The realized (actualized) value — drives the measure bar length. */
78
+ value: number;
79
+ /** The goal to beat — drives the target marker and the auto status colour. */
80
+ target: number;
81
+ /** Axis start. Default 0. */
82
+ min?: number;
83
+ /** Axis end. Default the largest of `value`, `target`, and the top range. */
84
+ max?: number;
85
+ /** Internal thresholds dividing [min, max] into qualitative zones, ascending. */
86
+ ranges?: number[];
87
+ /** Axis tick values. Default `[min, midpoint, max]`. Pass `[]` to hide. */
88
+ ticks?: number[];
89
+ /** Measure-bar sentiment. Default `auto` (success when `value >= target`). */
90
+ status?: BulletChartStatus;
91
+ /** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
92
+ size?: BulletChartSize;
93
+ /** Format the tick labels (and the aria summary). Default grouped integer. */
94
+ valueFormatter?: (value: number) => string;
95
95
  };
96
96
  declare function BulletChart({ value, target, min, max, ranges, ticks, status, size, valueFormatter, className, ...props }: BulletChartProps): React.JSX.Element;
97
-
98
- export { BULLET_CHART_LAYOUT, BULLET_RANGE_PALETTE, BulletChart, type BulletChartLayout, type BulletChartProps, type BulletChartSize, type BulletChartStatus };
97
+ //#endregion
98
+ export { BULLET_CHART_LAYOUT, BULLET_RANGE_PALETTE, BulletChart, type BulletChartLayout, type BulletChartProps, type BulletChartSize, type BulletChartStatus };
@@ -1,189 +1,129 @@
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/size-context.tsx
34
- import { createContext, useContext } from "react";
35
- import { Fragment, jsx } from "react/jsx-runtime";
36
- var SizeContext = createContext(void 0);
37
- function useComponentSize(size, fallback = "md") {
38
- const inheritedSize = useContext(SizeContext);
39
- return size ?? inheritedSize ?? fallback;
40
- }
41
-
42
- // src/components/ui/bullet-chart.tsx
43
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
44
- var BULLET_CHART_LAYOUT = {
45
- sm: {
46
- trackHeight: 26,
47
- measureHeight: 11,
48
- markerHeight: 20,
49
- markerWidth: 3,
50
- tickClass: "text-gdt-xs"
51
- },
52
- md: {
53
- trackHeight: 34,
54
- measureHeight: 15,
55
- markerHeight: 26,
56
- markerWidth: 4,
57
- tickClass: "text-gdt-sm"
58
- },
59
- lg: {
60
- trackHeight: 44,
61
- measureHeight: 19,
62
- markerHeight: 34,
63
- markerWidth: 5,
64
- tickClass: "text-gdt-sm"
65
- }
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { useComponentSize } from "./size-context.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/bullet-chart.tsx
6
+ const BULLET_CHART_LAYOUT = {
7
+ sm: {
8
+ trackHeight: 26,
9
+ measureHeight: 11,
10
+ markerHeight: 20,
11
+ markerWidth: 3,
12
+ tickClass: "text-gdt-xs"
13
+ },
14
+ md: {
15
+ trackHeight: 34,
16
+ measureHeight: 15,
17
+ markerHeight: 26,
18
+ markerWidth: 4,
19
+ tickClass: "text-gdt-sm"
20
+ },
21
+ lg: {
22
+ trackHeight: 44,
23
+ measureHeight: 19,
24
+ markerHeight: 34,
25
+ markerWidth: 5,
26
+ tickClass: "text-gdt-sm"
27
+ }
66
28
  };
67
- var BULLET_RANGE_PALETTE = [
68
- "var(--color-stone-200)",
69
- "var(--color-stone-300)",
70
- "var(--color-stone-400)"
29
+ /**
30
+ * Range-band shades, ordered poor → good. The base track is the lightest shade,
31
+ * so the first (poorest) zone blends into it and each higher zone darkens —
32
+ * giving the gauge its qualitative context without competing with the bar.
33
+ */
34
+ const BULLET_RANGE_PALETTE = [
35
+ "var(--color-stone-200)",
36
+ "var(--color-stone-300)",
37
+ "var(--color-stone-400)"
71
38
  ];
72
- var STATUS_COLOR = {
73
- success: "var(--color-status-success)",
74
- warning: "var(--color-status-warning)"
39
+ const STATUS_COLOR = {
40
+ success: "var(--color-status-success)",
41
+ warning: "var(--color-status-warning)"
75
42
  };
43
+ /** Clamp a value into [min, max] and express it as a 0–100 track percentage. */
76
44
  function toPercent(value, min, max) {
77
- if (max <= min) return 0;
78
- const ratio = (value - min) / (max - min);
79
- return Math.min(Math.max(ratio, 0), 1) * 100;
45
+ if (max <= min) return 0;
46
+ const ratio = (value - min) / (max - min);
47
+ return Math.min(Math.max(ratio, 0), 1) * 100;
80
48
  }
81
- function BulletChart({
82
- value,
83
- target,
84
- min = 0,
85
- max,
86
- ranges,
87
- ticks,
88
- status = "auto",
89
- size,
90
- valueFormatter = (v) => v.toLocaleString("en-NG"),
91
- className,
92
- ...props
93
- }) {
94
- const layout = BULLET_CHART_LAYOUT[useComponentSize(size)];
95
- const topRange = ranges?.length ? Math.max(...ranges) : 0;
96
- const resolvedMax = max ?? (Math.max(value, target, topRange) || 1);
97
- const resolvedTicks = ticks ?? [min, (min + resolvedMax) / 2, resolvedMax];
98
- const resolvedStatus = status === "auto" ? value >= target ? "success" : "warning" : status;
99
- const measureColor = STATUS_COLOR[resolvedStatus];
100
- const thresholds = [
101
- min,
102
- ...(ranges ?? []).filter((r) => r > min && r < resolvedMax).sort((a, b) => a - b),
103
- resolvedMax
104
- ];
105
- const zones = thresholds.slice(0, -1).map((from, i) => ({
106
- from,
107
- to: thresholds[i + 1],
108
- color: BULLET_RANGE_PALETTE[Math.min(i, BULLET_RANGE_PALETTE.length - 1)]
109
- }));
110
- const ariaLabel = props["aria-label"] ?? `${valueFormatter(value)} of ${valueFormatter(target)} target \u2014 ${resolvedStatus === "success" ? "on track" : "behind"}`;
111
- return /* @__PURE__ */ jsxs(
112
- "div",
113
- {
114
- ...props,
115
- role: "img",
116
- "aria-label": ariaLabel,
117
- className: cn("flex w-full flex-col gap-2", className),
118
- children: [
119
- /* @__PURE__ */ jsxs("div", { className: "relative w-full", style: { height: layout.trackHeight }, children: [
120
- /* @__PURE__ */ jsx2(
121
- "div",
122
- {
123
- className: "absolute inset-0 overflow-hidden rounded-full",
124
- style: { backgroundColor: BULLET_RANGE_PALETTE[0] },
125
- children: zones.map((zone) => /* @__PURE__ */ jsx2(
126
- "div",
127
- {
128
- className: "absolute inset-y-0",
129
- style: {
130
- left: `${toPercent(zone.from, min, resolvedMax)}%`,
131
- width: `${toPercent(zone.to, min, resolvedMax) - toPercent(zone.from, min, resolvedMax)}%`,
132
- backgroundColor: zone.color
133
- }
134
- },
135
- zone.from
136
- ))
137
- }
138
- ),
139
- /* @__PURE__ */ jsx2(
140
- "div",
141
- {
142
- className: "absolute left-0 top-1/2 rounded-full",
143
- style: {
144
- height: layout.measureHeight,
145
- width: `${toPercent(value, min, resolvedMax)}%`,
146
- backgroundColor: measureColor,
147
- transform: "translateY(-50%)"
148
- }
149
- }
150
- ),
151
- /* @__PURE__ */ jsx2(
152
- "div",
153
- {
154
- className: "absolute top-1/2 rounded-full bg-fg-primary",
155
- style: {
156
- height: layout.markerHeight,
157
- width: layout.markerWidth,
158
- left: `${toPercent(target, min, resolvedMax)}%`,
159
- transform: "translate(-50%, -50%)"
160
- }
161
- }
162
- )
163
- ] }),
164
- resolvedTicks.length > 0 && /* @__PURE__ */ jsx2("div", { className: "relative h-4 w-full", children: resolvedTicks.map((tick) => {
165
- const pct = toPercent(tick, min, resolvedMax);
166
- const transform = pct <= 0 ? "translateX(0)" : pct >= 100 ? "translateX(-100%)" : "translateX(-50%)";
167
- return /* @__PURE__ */ jsx2(
168
- "span",
169
- {
170
- className: cn(
171
- "absolute top-0 whitespace-nowrap tabular-nums text-fg-caption-placeholder",
172
- layout.tickClass
173
- ),
174
- style: { left: `${pct}%`, transform },
175
- children: valueFormatter(tick)
176
- },
177
- tick
178
- );
179
- }) })
180
- ]
181
- }
182
- );
49
+ function BulletChart({ value, target, min = 0, max, ranges, ticks, status = "auto", size, valueFormatter = (v) => v.toLocaleString("en-NG"), className, ...props }) {
50
+ const layout = BULLET_CHART_LAYOUT[useComponentSize(size)];
51
+ const topRange = ranges?.length ? Math.max(...ranges) : 0;
52
+ const resolvedMax = max ?? (Math.max(value, target, topRange) || 1);
53
+ const resolvedTicks = ticks ?? [
54
+ min,
55
+ (min + resolvedMax) / 2,
56
+ resolvedMax
57
+ ];
58
+ const resolvedStatus = status === "auto" ? value >= target ? "success" : "warning" : status;
59
+ const measureColor = STATUS_COLOR[resolvedStatus];
60
+ const thresholds = [
61
+ min,
62
+ ...(ranges ?? []).filter((r) => r > min && r < resolvedMax).sort((a, b) => a - b),
63
+ resolvedMax
64
+ ];
65
+ const zones = thresholds.slice(0, -1).map((from, i) => ({
66
+ from,
67
+ to: thresholds[i + 1],
68
+ color: BULLET_RANGE_PALETTE[Math.min(i, BULLET_RANGE_PALETTE.length - 1)]
69
+ }));
70
+ const ariaLabel = props["aria-label"] ?? `${valueFormatter(value)} of ${valueFormatter(target)} target ${resolvedStatus === "success" ? "on track" : "behind"}`;
71
+ return /* @__PURE__ */ jsxs("div", {
72
+ ...props,
73
+ role: "img",
74
+ "aria-label": ariaLabel,
75
+ className: cn("flex w-full flex-col gap-2", className),
76
+ children: [/* @__PURE__ */ jsxs("div", {
77
+ className: "relative w-full",
78
+ style: { height: layout.trackHeight },
79
+ children: [
80
+ /* @__PURE__ */ jsx("div", {
81
+ className: "absolute inset-0 overflow-hidden rounded-full",
82
+ style: { backgroundColor: BULLET_RANGE_PALETTE[0] },
83
+ children: zones.map((zone) => /* @__PURE__ */ jsx("div", {
84
+ className: "absolute inset-y-0",
85
+ style: {
86
+ left: `${toPercent(zone.from, min, resolvedMax)}%`,
87
+ width: `${toPercent(zone.to, min, resolvedMax) - toPercent(zone.from, min, resolvedMax)}%`,
88
+ backgroundColor: zone.color
89
+ }
90
+ }, zone.from))
91
+ }),
92
+ /* @__PURE__ */ jsx("div", {
93
+ className: "absolute left-0 top-1/2 rounded-full",
94
+ style: {
95
+ height: layout.measureHeight,
96
+ width: `${toPercent(value, min, resolvedMax)}%`,
97
+ backgroundColor: measureColor,
98
+ transform: "translateY(-50%)"
99
+ }
100
+ }),
101
+ /* @__PURE__ */ jsx("div", {
102
+ className: "absolute top-1/2 rounded-full bg-fg-primary",
103
+ style: {
104
+ height: layout.markerHeight,
105
+ width: layout.markerWidth,
106
+ left: `${toPercent(target, min, resolvedMax)}%`,
107
+ transform: "translate(-50%, -50%)"
108
+ }
109
+ })
110
+ ]
111
+ }), resolvedTicks.length > 0 && /* @__PURE__ */ jsx("div", {
112
+ className: "relative h-4 w-full",
113
+ children: resolvedTicks.map((tick) => {
114
+ const pct = toPercent(tick, min, resolvedMax);
115
+ const transform = pct <= 0 ? "translateX(0)" : pct >= 100 ? "translateX(-100%)" : "translateX(-50%)";
116
+ return /* @__PURE__ */ jsx("span", {
117
+ className: cn("absolute top-0 whitespace-nowrap tabular-nums text-fg-caption-placeholder", layout.tickClass),
118
+ style: {
119
+ left: `${pct}%`,
120
+ transform
121
+ },
122
+ children: valueFormatter(tick)
123
+ }, tick);
124
+ })
125
+ })]
126
+ });
183
127
  }
184
- export {
185
- BULLET_CHART_LAYOUT,
186
- BULLET_RANGE_PALETTE,
187
- BulletChart
188
- };
189
- //# sourceMappingURL=bullet-chart.js.map
128
+ //#endregion
129
+ export { BULLET_CHART_LAYOUT, BULLET_RANGE_PALETTE, BulletChart };
@@ -0,0 +1,17 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { Button } from "@base-ui/react/button";
4
+ //#region src/button.d.ts
5
+ declare const buttonVariants: (props?: ({
6
+ variant?: "danger" | "ghost" | "glass-overlay" | "link-brand" | "link-neutral" | "primary" | "primary-outline" | "secondary" | "secondary-outline" | "tertiary" | "tertiary-outline" | "whatsapp" | null | undefined;
7
+ size?: "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "md" | "sm" | "xl" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ declare function Button$1({ className, variant, size, isLoading, children, disabled, ...props }: Button.Props & VariantProps<typeof buttonVariants> & {
10
+ isLoading?: boolean;
11
+ }): import("react").JSX.Element;
12
+ type ButtonLinkProps = useRender.ComponentProps<"a"> & VariantProps<typeof buttonVariants> & {
13
+ disabled?: boolean;
14
+ };
15
+ declare function ButtonLink({ className, render, variant, size, disabled, onClick, children, ...props }: ButtonLinkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
16
+ //#endregion
17
+ export { ButtonLink as n, buttonVariants as r, Button$1 as t };