@giddaa-housing/ui 0.1.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/README.md +18 -6
  2. package/css/base.css +37 -0
  3. package/css/components.css +135 -0
  4. package/css/generated/shared.css +1 -0
  5. package/css/giddaa.css +402 -0
  6. package/css/preset.css +77 -0
  7. package/css/styles.css +2 -0
  8. package/css/theme.css +255 -0
  9. package/dist/accordion.d.ts +9 -10
  10. package/dist/accordion.js +41 -117
  11. package/dist/activity-timeline.d.ts +29 -0
  12. package/dist/activity-timeline.js +97 -0
  13. package/dist/alert.d.ts +8 -9
  14. package/dist/alert.js +53 -141
  15. package/dist/auth-layout.d.ts +23 -0
  16. package/dist/auth-layout.js +153 -0
  17. package/dist/avatar.d.ts +6 -6
  18. package/dist/avatar.js +40 -142
  19. package/dist/badge.d.ts +12 -13
  20. package/dist/badge.js +66 -114
  21. package/dist/bar-chart.d.ts +136 -114
  22. package/dist/bar-chart.js +244 -297
  23. package/dist/breadcrumb.d.ts +5 -5
  24. package/dist/breadcrumb.js +56 -148
  25. package/dist/bullet-chart.d.ts +33 -33
  26. package/dist/bullet-chart.js +123 -183
  27. package/dist/button-BZIeyUw6.d.ts +17 -0
  28. package/dist/button-group.d.ts +13 -16
  29. package/dist/button-group.js +38 -163
  30. package/dist/button.d.ts +2 -19
  31. package/dist/button.js +90 -142
  32. package/dist/calendar.d.ts +6 -6
  33. package/dist/calendar.js +134 -288
  34. package/dist/card.d.ts +14 -16
  35. package/dist/card.js +58 -174
  36. package/dist/carousel.d.ts +34 -35
  37. package/dist/carousel.js +319 -378
  38. package/dist/chart.d.ts +58 -59
  39. package/dist/chart.js +350 -466
  40. package/dist/checkbox.d.ts +10 -12
  41. package/dist/checkbox.js +84 -84
  42. package/dist/cn-BI_4DMBf.js +23 -0
  43. package/dist/collapsible.d.ts +7 -8
  44. package/dist/collapsible.js +23 -77
  45. package/dist/combobox.d.ts +10 -10
  46. package/dist/combobox.js +220 -696
  47. package/dist/cta.d.ts +64 -0
  48. package/dist/cta.js +192 -0
  49. package/dist/currency-selector.d.ts +41 -0
  50. package/dist/currency-selector.js +114 -0
  51. package/dist/data-table.d.ts +164 -0
  52. package/dist/data-table.js +673 -0
  53. package/dist/date-picker.d.ts +27 -20
  54. package/dist/date-picker.js +122 -520
  55. package/dist/details-card.d.ts +19 -0
  56. package/dist/details-card.js +118 -0
  57. package/dist/dialog.d.ts +13 -14
  58. package/dist/dialog.js +117 -320
  59. package/dist/dropdown-menu.d.ts +14 -14
  60. package/dist/dropdown-menu.js +170 -365
  61. package/dist/dropzone.d.ts +55 -55
  62. package/dist/dropzone.js +328 -467
  63. package/dist/editorial-card.d.ts +27 -0
  64. package/dist/editorial-card.js +144 -0
  65. package/dist/empty-state.d.ts +8 -9
  66. package/dist/empty-state.js +48 -135
  67. package/dist/field.d.ts +23 -25
  68. package/dist/field.js +111 -327
  69. package/dist/filter.d.ts +118 -0
  70. package/dist/filter.js +775 -0
  71. package/dist/footer.d.ts +40 -0
  72. package/dist/footer.js +227 -0
  73. package/dist/funnel-chart.d.ts +38 -41
  74. package/dist/funnel-chart.js +168 -563
  75. package/dist/gallery-indicator.d.ts +17 -0
  76. package/dist/gallery-indicator.js +75 -0
  77. package/dist/heatmap-chart.d.ts +95 -0
  78. package/dist/heatmap-chart.js +197 -0
  79. package/dist/infotip.d.ts +10 -0
  80. package/dist/infotip.js +40 -0
  81. package/dist/input-CfoEJ8A6.d.ts +12 -0
  82. package/dist/input-group.d.ts +16 -19
  83. package/dist/input-group.js +92 -372
  84. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  85. package/dist/input-size-context.d.ts +2 -11
  86. package/dist/input-size-context.js +14 -20
  87. package/dist/input.d.ts +2 -13
  88. package/dist/input.js +23 -79
  89. package/dist/item.d.ts +7 -8
  90. package/dist/item.js +22 -89
  91. package/dist/kpi-card.d.ts +18 -20
  92. package/dist/kpi-card.js +84 -232
  93. package/dist/label.d.ts +6 -6
  94. package/dist/label.js +39 -66
  95. package/dist/line-chart.d.ts +88 -89
  96. package/dist/line-chart.js +143 -262
  97. package/dist/logo.d.ts +4 -4
  98. package/dist/logo.js +87 -141
  99. package/dist/map-indicator.d.ts +13 -0
  100. package/dist/map-indicator.js +83 -0
  101. package/dist/match.d.ts +15 -0
  102. package/dist/match.js +68 -0
  103. package/dist/media-gallery-hero.d.ts +58 -0
  104. package/dist/media-gallery-hero.js +201 -0
  105. package/dist/media-player.d.ts +60 -0
  106. package/dist/media-player.js +919 -0
  107. package/dist/multi-step-form.d.ts +56 -0
  108. package/dist/multi-step-form.js +342 -0
  109. package/dist/number-input.d.ts +34 -34
  110. package/dist/number-input.js +62 -413
  111. package/dist/page-header.d.ts +10 -11
  112. package/dist/page-header.js +34 -107
  113. package/dist/pagination.d.ts +17 -20
  114. package/dist/pagination.js +132 -341
  115. package/dist/password-input.d.ts +5 -12
  116. package/dist/password-input.js +32 -354
  117. package/dist/phone-input.d.ts +19 -19
  118. package/dist/phone-input.js +232 -561
  119. package/dist/photo-gallery.d.ts +20 -20
  120. package/dist/photo-gallery.js +314 -746
  121. package/dist/picker-lzgmsNfG.js +32 -0
  122. package/dist/pie-chart.d.ts +60 -60
  123. package/dist/pie-chart.js +141 -184
  124. package/dist/popover.d.ts +9 -9
  125. package/dist/popover.js +60 -156
  126. package/dist/price-tag.d.ts +34 -0
  127. package/dist/price-tag.js +118 -0
  128. package/dist/progress.d.ts +18 -16
  129. package/dist/progress.js +156 -300
  130. package/dist/property-listing-card.d.ts +29 -0
  131. package/dist/property-listing-card.js +117 -0
  132. package/dist/radar-chart.d.ts +108 -0
  133. package/dist/radar-chart.js +172 -0
  134. package/dist/radio-group.d.ts +11 -13
  135. package/dist/radio-group.js +47 -96
  136. package/dist/review-block.d.ts +18 -0
  137. package/dist/review-block.js +154 -0
  138. package/dist/rich-text-editor.d.ts +30 -14
  139. package/dist/rich-text-editor.js +594 -979
  140. package/dist/scatter-chart.d.ts +140 -0
  141. package/dist/scatter-chart.js +248 -0
  142. package/dist/search-input.d.ts +8 -15
  143. package/dist/search-input.js +58 -408
  144. package/dist/select.d.ts +8 -8
  145. package/dist/select.js +131 -291
  146. package/dist/separator.d.ts +8 -9
  147. package/dist/separator.js +31 -70
  148. package/dist/sheet.d.ts +11 -11
  149. package/dist/sheet.js +84 -262
  150. package/dist/sidebar.d.ts +32 -37
  151. package/dist/sidebar.js +380 -1055
  152. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  153. package/dist/size-context.d.ts +2 -11
  154. package/dist/size-context.js +14 -18
  155. package/dist/skeleton.d.ts +4 -5
  156. package/dist/skeleton.js +9 -45
  157. package/dist/slider.d.ts +27 -0
  158. package/dist/slider.js +81 -0
  159. package/dist/sparkline.d.ts +43 -46
  160. package/dist/sparkline.js +223 -561
  161. package/dist/stepper.d.ts +23 -24
  162. package/dist/stepper.js +149 -276
  163. package/dist/styles.css +9995 -2
  164. package/dist/switch.d.ts +10 -12
  165. package/dist/switch.js +49 -106
  166. package/dist/table-card.d.ts +35 -0
  167. package/dist/table-card.js +125 -0
  168. package/dist/table.d.ts +18 -14
  169. package/dist/table.js +114 -182
  170. package/dist/tabs.d.ts +23 -15
  171. package/dist/tabs.js +62 -149
  172. package/dist/tag.d.ts +22 -23
  173. package/dist/tag.js +104 -156
  174. package/dist/testimonial-block.d.ts +33 -0
  175. package/dist/testimonial-block.js +208 -0
  176. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  177. package/dist/textarea.d.ts +2 -12
  178. package/dist/textarea.js +20 -74
  179. package/dist/time-picker.d.ts +11 -11
  180. package/dist/time-picker.js +247 -464
  181. package/dist/toast.d.ts +16 -18
  182. package/dist/toast.js +154 -310
  183. package/dist/tooltip.d.ts +9 -10
  184. package/dist/tooltip.js +33 -91
  185. package/dist/tree-map.d.ts +54 -57
  186. package/dist/tree-map.js +231 -646
  187. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  188. package/dist/waterfall-chart.d.ts +126 -0
  189. package/dist/waterfall-chart.js +480 -0
  190. package/package.json +123 -34
  191. package/dist/accordion.js.map +0 -1
  192. package/dist/alert.js.map +0 -1
  193. package/dist/avatar.js.map +0 -1
  194. package/dist/badge.js.map +0 -1
  195. package/dist/bar-chart.js.map +0 -1
  196. package/dist/base.css +0 -32
  197. package/dist/breadcrumb.js.map +0 -1
  198. package/dist/bullet-chart.js.map +0 -1
  199. package/dist/button-group.js.map +0 -1
  200. package/dist/button.js.map +0 -1
  201. package/dist/calendar.js.map +0 -1
  202. package/dist/card.js.map +0 -1
  203. package/dist/carousel.js.map +0 -1
  204. package/dist/chart.js.map +0 -1
  205. package/dist/checkbox.js.map +0 -1
  206. package/dist/collapsible.js.map +0 -1
  207. package/dist/combobox.js.map +0 -1
  208. package/dist/date-picker.js.map +0 -1
  209. package/dist/dialog.js.map +0 -1
  210. package/dist/dropdown-menu.js.map +0 -1
  211. package/dist/dropzone.js.map +0 -1
  212. package/dist/empty-state.js.map +0 -1
  213. package/dist/field.js.map +0 -1
  214. package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
  215. package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
  216. package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
  217. package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
  218. package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
  219. package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
  220. package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
  221. package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
  222. package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
  223. package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
  224. package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
  225. package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
  226. package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
  227. package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
  228. package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
  229. package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
  230. package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
  231. package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
  232. package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
  233. package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
  234. package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
  235. package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
  236. package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
  237. package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
  238. package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
  239. package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
  240. package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
  241. package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
  242. package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
  243. package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
  244. package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
  245. package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
  246. package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
  247. package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
  248. package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
  249. package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
  250. package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
  251. package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
  252. package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
  253. package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
  254. package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
  255. package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
  256. package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
  257. package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
  258. package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
  259. package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
  260. package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
  261. package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
  262. package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
  263. package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
  264. package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
  265. package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
  266. package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
  267. package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
  268. package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
  269. package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
  270. package/dist/funnel-chart.js.map +0 -1
  271. package/dist/index.d.ts +0 -87
  272. package/dist/index.js +0 -10448
  273. package/dist/index.js.map +0 -1
  274. package/dist/input-group.js.map +0 -1
  275. package/dist/input-size-context.js.map +0 -1
  276. package/dist/input.js.map +0 -1
  277. package/dist/item.js.map +0 -1
  278. package/dist/kpi-card.js.map +0 -1
  279. package/dist/label.js.map +0 -1
  280. package/dist/line-chart.js.map +0 -1
  281. package/dist/logo.js.map +0 -1
  282. package/dist/number-input.js.map +0 -1
  283. package/dist/page-header.js.map +0 -1
  284. package/dist/pagination.js.map +0 -1
  285. package/dist/password-input.js.map +0 -1
  286. package/dist/phone-input.js.map +0 -1
  287. package/dist/photo-gallery.js.map +0 -1
  288. package/dist/pie-chart.js.map +0 -1
  289. package/dist/popover.js.map +0 -1
  290. package/dist/progress.js.map +0 -1
  291. package/dist/radio-group.js.map +0 -1
  292. package/dist/red-hat-display.css +0 -2
  293. package/dist/rich-text-editor.js.map +0 -1
  294. package/dist/search-input.js.map +0 -1
  295. package/dist/select.js.map +0 -1
  296. package/dist/separator.js.map +0 -1
  297. package/dist/sheet.js.map +0 -1
  298. package/dist/sidebar.js.map +0 -1
  299. package/dist/size-context.js.map +0 -1
  300. package/dist/skeleton.js.map +0 -1
  301. package/dist/sparkline.js.map +0 -1
  302. package/dist/stepper.js.map +0 -1
  303. package/dist/switch.js.map +0 -1
  304. package/dist/tab-list.d.ts +0 -38
  305. package/dist/tab-list.js +0 -394
  306. package/dist/tab-list.js.map +0 -1
  307. package/dist/table.js.map +0 -1
  308. package/dist/tabs.js.map +0 -1
  309. package/dist/tag.js.map +0 -1
  310. package/dist/textarea.js.map +0 -1
  311. package/dist/theme/giddaa.css +0 -2
  312. package/dist/time-picker.js.map +0 -1
  313. package/dist/toast.js.map +0 -1
  314. package/dist/tooltip.js.map +0 -1
  315. package/dist/tree-map.js.map +0 -1
package/dist/progress.js CHANGED
@@ -1,315 +1,171 @@
1
- // src/components/ui/progress.tsx
2
- import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { SizeProvider, useComponentSize } from "./size-context.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
3
5
  import { cva } from "class-variance-authority";
4
6
  import * as React from "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
- }
7
+ import { Progress as Progress$1 } from "@base-ui/react/progress";
8
+ //#region src/progress.tsx
9
+ const progressVariants = cva("group/progress flex w-full flex-wrap items-center", {
10
+ variants: { size: {
11
+ sm: "gap-x-2 gap-y-1.5",
12
+ md: "gap-x-3 gap-y-2",
13
+ lg: "gap-x-4 gap-y-2.5"
14
+ } },
15
+ defaultVariants: { size: "md" }
33
16
  });
34
- function cn(...inputs) {
35
- return twMerge(clsx(inputs));
36
- }
37
-
38
- // src/components/ui/size-context.tsx
39
- import { createContext, useContext } from "react";
40
- import { Fragment, jsx } from "react/jsx-runtime";
41
- var SizeContext = createContext(void 0);
42
- function SizeProvider({
43
- children,
44
- size
45
- }) {
46
- if (!size) {
47
- return /* @__PURE__ */ jsx(Fragment, { children });
48
- }
49
- return /* @__PURE__ */ jsx(SizeContext.Provider, { value: size, children });
50
- }
51
- function useComponentSize(size, fallback = "md") {
52
- const inheritedSize = useContext(SizeContext);
53
- return size ?? inheritedSize ?? fallback;
54
- }
55
-
56
- // src/components/ui/progress.tsx
57
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
58
- var progressVariants = cva(
59
- "group/progress flex w-full flex-wrap items-center",
60
- {
61
- variants: {
62
- size: {
63
- sm: "gap-x-2 gap-y-1.5",
64
- md: "gap-x-3 gap-y-2",
65
- lg: "gap-x-4 gap-y-2.5"
66
- }
67
- },
68
- defaultVariants: {
69
- size: "md"
70
- }
71
- }
72
- );
73
- var circularProgressVariants = cva(
74
- "relative grid place-items-center text-fg-on-brand",
75
- {
76
- variants: {
77
- size: {
78
- sm: "text-[9px]",
79
- md: "text-[10px]",
80
- lg: "text-gdt-xs"
81
- }
82
- },
83
- defaultVariants: {
84
- size: "md"
85
- }
86
- }
87
- );
88
- var circularProgressLabelVariants = cva(
89
- "relative z-10 font-medium tabular-nums leading-none",
90
- {
91
- variants: {
92
- size: {
93
- sm: "text-[9px]",
94
- md: "text-[10px]",
95
- lg: "text-gdt-xs"
96
- },
97
- overlay: {
98
- true: "grid place-items-center rounded-full bg-black/65 text-white shadow-sm backdrop-blur-[1px]",
99
- false: ""
100
- }
101
- },
102
- defaultVariants: {
103
- size: "md",
104
- overlay: false
105
- }
106
- }
107
- );
108
- var circularProgressSizes = {
109
- sm: { pixelSize: 40, strokeWidth: 3 },
110
- md: { pixelSize: 48, strokeWidth: 4 },
111
- lg: { pixelSize: 56, strokeWidth: 5 }
17
+ const circularProgressVariants = cva("relative grid place-items-center text-fg-on-brand", {
18
+ variants: { size: {
19
+ sm: "text-[9px]",
20
+ md: "text-[10px]",
21
+ lg: "text-gdt-xs"
22
+ } },
23
+ defaultVariants: { size: "md" }
24
+ });
25
+ const circularProgressLabelVariants = cva("relative z-10 font-medium tabular-nums leading-none", {
26
+ variants: {
27
+ size: {
28
+ sm: "text-[9px]",
29
+ md: "text-[10px]",
30
+ lg: "text-gdt-xs"
31
+ },
32
+ overlay: {
33
+ true: "grid place-items-center rounded-full bg-black/65 text-white shadow-sm backdrop-blur-[1px]",
34
+ false: ""
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ size: "md",
39
+ overlay: false
40
+ }
41
+ });
42
+ const circularProgressSizes = {
43
+ sm: {
44
+ pixelSize: 40,
45
+ strokeWidth: 3
46
+ },
47
+ md: {
48
+ pixelSize: 48,
49
+ strokeWidth: 4
50
+ },
51
+ lg: {
52
+ pixelSize: 56,
53
+ strokeWidth: 5
54
+ }
112
55
  };
113
- function Progress({
114
- className,
115
- children,
116
- value,
117
- size,
118
- disabled = false,
119
- ...props
120
- }) {
121
- const resolvedSize = useComponentSize(size);
122
- const hasCustomTrack = React.Children.toArray(children).some(
123
- (child) => React.isValidElement(child) && child.type === ProgressTrack
124
- );
125
- return /* @__PURE__ */ jsx2(SizeProvider, { size: resolvedSize, children: /* @__PURE__ */ jsxs(
126
- ProgressPrimitive.Root,
127
- {
128
- value,
129
- "aria-disabled": disabled || void 0,
130
- "data-disabled": disabled,
131
- "data-size": resolvedSize,
132
- "data-slot": "progress",
133
- className: cn(progressVariants({ size: resolvedSize }), className),
134
- ...props,
135
- children: [
136
- children,
137
- !hasCustomTrack && /* @__PURE__ */ jsx2(ProgressTrack, { children: /* @__PURE__ */ jsx2(ProgressIndicator, {}) })
138
- ]
139
- }
140
- ) });
56
+ function Progress({ className, children, value, size, disabled = false, ...props }) {
57
+ const resolvedSize = useComponentSize(size);
58
+ const hasCustomTrack = React.Children.toArray(children).some((child) => React.isValidElement(child) && child.type === ProgressTrack);
59
+ return /* @__PURE__ */ jsx(SizeProvider, {
60
+ size: resolvedSize,
61
+ children: /* @__PURE__ */ jsxs(Progress$1.Root, {
62
+ value,
63
+ "aria-disabled": disabled || void 0,
64
+ "data-disabled": disabled,
65
+ "data-size": resolvedSize,
66
+ "data-slot": "progress",
67
+ className: cn(progressVariants({ size: resolvedSize }), className),
68
+ ...props,
69
+ children: [children, !hasCustomTrack && /* @__PURE__ */ jsx(ProgressTrack, { children: /* @__PURE__ */ jsx(ProgressIndicator, {}) })]
70
+ })
71
+ });
141
72
  }
142
73
  function ProgressTrack({ className, ...props }) {
143
- return /* @__PURE__ */ jsx2(
144
- ProgressPrimitive.Track,
145
- {
146
- className: cn(
147
- "order-3 relative flex basis-full items-center overflow-hidden rounded-full bg-surface-raised",
148
- "group-data-[size=sm]/progress:h-1 group-data-[size=md]/progress:h-1.5 group-data-[size=lg]/progress:h-2",
149
- className
150
- ),
151
- "data-slot": "progress-track",
152
- ...props
153
- }
154
- );
74
+ return /* @__PURE__ */ jsx(Progress$1.Track, {
75
+ className: cn("order-3 relative flex basis-full items-center overflow-hidden rounded-full bg-surface-raised", "group-data-[size=sm]/progress:h-1 group-data-[size=md]/progress:h-1.5 group-data-[size=lg]/progress:h-2", className),
76
+ "data-slot": "progress-track",
77
+ ...props
78
+ });
155
79
  }
156
- function ProgressIndicator({
157
- className,
158
- ...props
159
- }) {
160
- return /* @__PURE__ */ jsx2(
161
- ProgressPrimitive.Indicator,
162
- {
163
- "data-slot": "progress-indicator",
164
- className: cn(
165
- "h-full rounded-full bg-action-primary transition-[width,transform,background-color] duration-300 ease-out group-data-[disabled=true]/progress:bg-line-strong",
166
- className
167
- ),
168
- ...props
169
- }
170
- );
80
+ function ProgressIndicator({ className, ...props }) {
81
+ return /* @__PURE__ */ jsx(Progress$1.Indicator, {
82
+ "data-slot": "progress-indicator",
83
+ className: cn("h-full rounded-full bg-action-primary transition-[width,transform,background-color] duration-300 ease-out group-data-[disabled=true]/progress:bg-line-strong", className),
84
+ ...props
85
+ });
171
86
  }
172
87
  function ProgressLabel({ className, ...props }) {
173
- return /* @__PURE__ */ jsx2(
174
- ProgressPrimitive.Label,
175
- {
176
- className: cn(
177
- "order-1 min-w-0 text-fg-primary font-semibold leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder",
178
- "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md",
179
- className
180
- ),
181
- "data-slot": "progress-label",
182
- ...props
183
- }
184
- );
88
+ return /* @__PURE__ */ jsx(Progress$1.Label, {
89
+ className: cn("order-1 min-w-0 text-fg-primary font-semibold leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md", className),
90
+ "data-slot": "progress-label",
91
+ ...props
92
+ });
185
93
  }
186
94
  function ProgressValue({ className, ...props }) {
187
- return /* @__PURE__ */ jsx2(
188
- ProgressPrimitive.Value,
189
- {
190
- className: cn(
191
- "order-2 ml-auto shrink-0 tabular-nums text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder",
192
- "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md",
193
- className
194
- ),
195
- "data-slot": "progress-value",
196
- ...props
197
- }
198
- );
95
+ return /* @__PURE__ */ jsx(Progress$1.Value, {
96
+ className: cn("order-2 ml-auto shrink-0 tabular-nums text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md", className),
97
+ "data-slot": "progress-value",
98
+ ...props
99
+ });
199
100
  }
200
101
  function ProgressCaption({ className, ...props }) {
201
- return /* @__PURE__ */ jsx2(
202
- "p",
203
- {
204
- className: cn(
205
- "order-4 basis-full text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder",
206
- "group-data-[size=sm]/progress:text-gdt-subtext group-data-[size=md]/progress:text-gdt-xs group-data-[size=lg]/progress:text-gdt-sm",
207
- className
208
- ),
209
- "data-slot": "progress-caption",
210
- ...props
211
- }
212
- );
102
+ return /* @__PURE__ */ jsx("p", {
103
+ className: cn("order-4 basis-full text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-subtext group-data-[size=md]/progress:text-gdt-xs group-data-[size=lg]/progress:text-gdt-sm", className),
104
+ "data-slot": "progress-caption",
105
+ ...props
106
+ });
213
107
  }
214
- function CircularProgress({
215
- className,
216
- style,
217
- value,
218
- size,
219
- labelOverlay = false,
220
- ...props
221
- }) {
222
- const resolvedSize = useComponentSize(size);
223
- const normalizedValue = Number.isFinite(value) ? value : 0;
224
- const progress = Math.min(100, Math.max(0, Math.round(normalizedValue)));
225
- const { pixelSize, strokeWidth } = circularProgressSizes[resolvedSize];
226
- const radius = (pixelSize - strokeWidth * 2) / 2;
227
- const labelSize = pixelSize - strokeWidth * 3;
228
- const circumference = 2 * Math.PI * radius;
229
- const strokeDashoffset = circumference - progress / 100 * circumference;
230
- return /* @__PURE__ */ jsxs(
231
- "div",
232
- {
233
- role: "progressbar",
234
- "aria-valuemin": 0,
235
- "aria-valuemax": 100,
236
- "aria-valuenow": progress,
237
- "aria-valuetext": `${progress}%`,
238
- "data-slot": "circular-progress",
239
- className: cn(
240
- circularProgressVariants({ size: resolvedSize }),
241
- className
242
- ),
243
- style: { width: pixelSize, height: pixelSize, ...style },
244
- ...props,
245
- children: [
246
- /* @__PURE__ */ jsxs(
247
- "svg",
248
- {
249
- "aria-hidden": "true",
250
- className: "absolute inset-0 -rotate-90 transform",
251
- focusable: "false",
252
- width: pixelSize,
253
- height: pixelSize,
254
- viewBox: `0 0 ${pixelSize} ${pixelSize}`,
255
- fill: "none",
256
- stroke: "currentColor",
257
- children: [
258
- /* @__PURE__ */ jsx2(
259
- "circle",
260
- {
261
- className: "text-primary/25",
262
- strokeWidth,
263
- cx: pixelSize / 2,
264
- cy: pixelSize / 2,
265
- r: radius
266
- }
267
- ),
268
- /* @__PURE__ */ jsx2(
269
- "circle",
270
- {
271
- className: "text-surface-brand transition-[stroke-dashoffset] duration-300 ease-linear",
272
- strokeWidth,
273
- strokeLinecap: "round",
274
- strokeDasharray: circumference,
275
- strokeDashoffset,
276
- cx: pixelSize / 2,
277
- cy: pixelSize / 2,
278
- r: radius
279
- }
280
- )
281
- ]
282
- }
283
- ),
284
- /* @__PURE__ */ jsxs(
285
- "span",
286
- {
287
- className: cn(
288
- circularProgressLabelVariants({
289
- size: resolvedSize,
290
- overlay: labelOverlay
291
- })
292
- ),
293
- style: labelOverlay ? { width: labelSize, height: labelSize } : void 0,
294
- children: [
295
- progress,
296
- "%"
297
- ]
298
- }
299
- )
300
- ]
301
- }
302
- );
108
+ function CircularProgress({ className, style, value, size, children, labelOverlay = false, pixelSize, strokeWidth, strokeLinecap = "round", ...props }) {
109
+ const resolvedSize = useComponentSize(size);
110
+ const progress = Math.min(100, Math.max(0, Math.round(Number.isFinite(value) ? value : 0)));
111
+ const resolvedDimensions = circularProgressSizes[resolvedSize];
112
+ const resolvedPixelSize = pixelSize ?? resolvedDimensions.pixelSize;
113
+ const resolvedStrokeWidth = strokeWidth ?? resolvedDimensions.strokeWidth;
114
+ const radius = (resolvedPixelSize - resolvedStrokeWidth) / 2;
115
+ const labelSize = resolvedPixelSize - resolvedStrokeWidth * 3;
116
+ const circumference = 2 * Math.PI * radius;
117
+ const strokeDashoffset = circumference - progress / 100 * circumference;
118
+ return /* @__PURE__ */ jsxs("div", {
119
+ role: "progressbar",
120
+ "aria-valuemin": 0,
121
+ "aria-valuemax": 100,
122
+ "aria-valuenow": progress,
123
+ "aria-valuetext": `${progress}%`,
124
+ "data-slot": "circular-progress",
125
+ className: cn(circularProgressVariants({ size: resolvedSize }), className),
126
+ style: {
127
+ width: resolvedPixelSize,
128
+ height: resolvedPixelSize,
129
+ ...style
130
+ },
131
+ ...props,
132
+ children: [/* @__PURE__ */ jsxs("svg", {
133
+ "aria-hidden": "true",
134
+ className: "absolute inset-0 -rotate-90 transform",
135
+ focusable: "false",
136
+ width: resolvedPixelSize,
137
+ height: resolvedPixelSize,
138
+ viewBox: `0 0 ${resolvedPixelSize} ${resolvedPixelSize}`,
139
+ fill: "none",
140
+ stroke: "currentColor",
141
+ children: [/* @__PURE__ */ jsx("circle", {
142
+ className: "text-line",
143
+ strokeWidth: resolvedStrokeWidth,
144
+ cx: resolvedPixelSize / 2,
145
+ cy: resolvedPixelSize / 2,
146
+ r: radius
147
+ }), /* @__PURE__ */ jsx("circle", {
148
+ className: "text-action-primary transition-[stroke-dashoffset] duration-300 ease-linear",
149
+ strokeWidth: resolvedStrokeWidth,
150
+ strokeLinecap,
151
+ strokeDasharray: circumference,
152
+ strokeDashoffset,
153
+ cx: resolvedPixelSize / 2,
154
+ cy: resolvedPixelSize / 2,
155
+ r: radius
156
+ })]
157
+ }), children ?? /* @__PURE__ */ jsxs("span", {
158
+ className: cn(circularProgressLabelVariants({
159
+ size: resolvedSize,
160
+ overlay: labelOverlay
161
+ })),
162
+ style: labelOverlay ? {
163
+ width: labelSize,
164
+ height: labelSize
165
+ } : void 0,
166
+ children: [progress, "%"]
167
+ })]
168
+ });
303
169
  }
304
- export {
305
- CircularProgress,
306
- Progress,
307
- ProgressCaption,
308
- ProgressIndicator,
309
- ProgressLabel,
310
- ProgressTrack,
311
- ProgressValue,
312
- circularProgressVariants,
313
- progressVariants
314
- };
315
- //# sourceMappingURL=progress.js.map
170
+ //#endregion
171
+ export { CircularProgress, Progress, ProgressCaption, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, circularProgressVariants, progressVariants };
@@ -0,0 +1,29 @@
1
+ import { n as ButtonLink, t as Button } from "./button-BZIeyUw6.js";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as React from "react";
5
+ //#region src/property-listing-card.d.ts
6
+ declare const propertyListingCardVariants: (props?: ({
7
+ variant?: "default" | "elevated" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ type PropertyListingImage = {
10
+ id?: string;
11
+ src?: string;
12
+ alt?: string;
13
+ };
14
+ interface PropertyListingCardProps extends React.ComponentProps<"article">, VariantProps<typeof propertyListingCardVariants> {}
15
+ declare function PropertyListingCard({ className, variant, ...props }: PropertyListingCardProps): React.JSX.Element;
16
+ declare function PropertyListingCardMedia({ className, images, children, ...props }: React.ComponentProps<"div"> & {
17
+ images?: PropertyListingImage[];
18
+ }): React.JSX.Element;
19
+ declare function PropertyListingCardMediaTop({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
20
+ declare function PropertyListingCardOptionsBar({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
21
+ declare function PropertyListingCardDetails({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
+ declare function PropertyListingCardTitle({ className, ...props }: React.ComponentProps<"h3">): React.JSX.Element;
23
+ declare function PropertyListingCardOverview({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
24
+ declare function PropertyListingCardBadges({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
25
+ declare function PropertyListingCardActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
26
+ declare function PropertyListingCardActionButton({ className, type, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
27
+ declare function PropertyListingCardActionButtonLink({ className, ...props }: React.ComponentProps<typeof ButtonLink>): React.JSX.Element;
28
+ //#endregion
29
+ export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, type PropertyListingCardProps, PropertyListingCardTitle, type PropertyListingImage, propertyListingCardVariants };
@@ -0,0 +1,117 @@
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
2
+ import { Button, ButtonLink } from "./button.js";
3
+ import { Carousel, CarouselContent, CarouselIndicator, CarouselItem } from "./carousel.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ import { useRender } from "@base-ui/react/use-render";
7
+ import { cva } from "class-variance-authority";
8
+ //#region src/property-listing-card.tsx
9
+ const propertyListingCardVariants = cva("relative flex w-full min-w-0 flex-col overflow-hidden text-fg-primary", {
10
+ variants: { variant: {
11
+ default: "rounded-none border-0 shadow-none",
12
+ elevated: "rounded-2xl bg-surface-overlay border border-line-subtle shadow-1"
13
+ } },
14
+ defaultVariants: { variant: "default" }
15
+ });
16
+ function PropertyListingCard({ className, variant, ...props }) {
17
+ return /* @__PURE__ */ jsx("article", {
18
+ className: cn(propertyListingCardVariants({ variant }), className),
19
+ ...props
20
+ });
21
+ }
22
+ function PropertyListingCardMedia({ className, images = [], children, ...props }) {
23
+ const hasMultipleImages = images.length > 1;
24
+ return /* @__PURE__ */ jsxs("div", {
25
+ className: cn("relative isolate min-h-70 overflow-hidden rounded-t-2xl bg-surface text-fg-primary", className),
26
+ ...props,
27
+ children: [hasMultipleImages ? /* @__PURE__ */ jsxs(Carousel, {
28
+ imageSize: "full",
29
+ opts: { loop: true },
30
+ className: "absolute inset-0 -z-10 size-full rounded-none bg-surface",
31
+ children: [/* @__PURE__ */ jsx(CarouselContent, { children: images.map((carouselImage, index) => /* @__PURE__ */ jsx(CarouselItem, {
32
+ className: "relative h-full",
33
+ children: /* @__PURE__ */ jsx(PropertyListingCardImage, { image: carouselImage })
34
+ }, carouselImage.id ?? carouselImage.src ?? carouselImage.alt ?? index)) }), /* @__PURE__ */ jsx(CarouselIndicator, {
35
+ size: "sm",
36
+ className: "bottom-16"
37
+ })]
38
+ }) : images[0]?.src ? /* @__PURE__ */ jsx(PropertyListingCardImage, {
39
+ image: images[0],
40
+ className: "absolute inset-0 -z-10"
41
+ }) : /* @__PURE__ */ jsx("div", {
42
+ className: "absolute inset-0 -z-10 grid place-items-center bg-surface-raised text-gdt-sm font-bold text-fg-caption-placeholder",
43
+ children: "Property Image"
44
+ }), children]
45
+ });
46
+ }
47
+ function PropertyListingCardImage({ image, className, ...props }) {
48
+ return /* @__PURE__ */ jsx("img", {
49
+ src: image.src,
50
+ alt: image.alt ?? "Property image",
51
+ className: cn("size-full object-cover", className),
52
+ ...props
53
+ });
54
+ }
55
+ function PropertyListingCardMediaTop({ className, ...props }) {
56
+ return /* @__PURE__ */ jsx("div", {
57
+ className: cn("absolute inset-x-2 top-2 z-10 flex items-start justify-between gap-3", className),
58
+ ...props
59
+ });
60
+ }
61
+ function PropertyListingCardOptionsBar({ className, render, ...props }) {
62
+ return useRender({
63
+ defaultTagName: "a",
64
+ props: mergeProps({ className: cn("absolute inset-x-0 bottom-0 z-10 flex min-h-9.5 items-center justify-center gap-1 bg-black/80 px-4 py-1.5 text-center text-gdt-subtext font-extrabold tracking-wide text-white uppercase transition-[background-color] hover:bg-black/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus", className) }, props),
65
+ render,
66
+ state: { slot: "property-listing-card-options-bar" }
67
+ });
68
+ }
69
+ function PropertyListingCardDetails({ className, ...props }) {
70
+ return /* @__PURE__ */ jsx("div", {
71
+ className: cn("flex flex-col gap-4 pt-4", className),
72
+ ...props
73
+ });
74
+ }
75
+ function PropertyListingCardTitle({ className, ...props }) {
76
+ return /* @__PURE__ */ jsx("h3", {
77
+ className: cn("text-gdt-md font-bold text-fg-primary", className),
78
+ ...props
79
+ });
80
+ }
81
+ function PropertyListingCardOverview({ className, ...props }) {
82
+ return /* @__PURE__ */ jsx("p", {
83
+ className: cn("text-gdt-sm text-fg-secondary", className),
84
+ ...props
85
+ });
86
+ }
87
+ function PropertyListingCardBadges({ className, ...props }) {
88
+ return /* @__PURE__ */ jsx("div", {
89
+ className: cn("flex flex-wrap gap-3", className),
90
+ ...props
91
+ });
92
+ }
93
+ function PropertyListingCardActions({ className, ...props }) {
94
+ return /* @__PURE__ */ jsx("div", {
95
+ className: cn("flex items-center gap-5 border-line-subtle border-t pt-4 mt-4", className),
96
+ ...props
97
+ });
98
+ }
99
+ function PropertyListingCardActionButton({ className, type = "button", ...props }) {
100
+ return /* @__PURE__ */ jsx(Button, {
101
+ type,
102
+ variant: "tertiary",
103
+ size: "md",
104
+ className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
105
+ ...props
106
+ });
107
+ }
108
+ function PropertyListingCardActionButtonLink({ className, ...props }) {
109
+ return /* @__PURE__ */ jsx(ButtonLink, {
110
+ variant: "tertiary",
111
+ size: "md",
112
+ className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
113
+ ...props
114
+ });
115
+ }
116
+ //#endregion
117
+ export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, PropertyListingCardTitle, propertyListingCardVariants };