@giddaa-housing/ui 0.1.0 → 1.0.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 (334) 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.js +5 -35
  10. package/dist/accordion.js.map +1 -1
  11. package/dist/activity-timeline.d.ts +33 -0
  12. package/dist/activity-timeline.js +212 -0
  13. package/dist/activity-timeline.js.map +1 -0
  14. package/dist/alert.js +5 -35
  15. package/dist/alert.js.map +1 -1
  16. package/dist/auth-layout.d.ts +23 -0
  17. package/dist/auth-layout.js +304 -0
  18. package/dist/auth-layout.js.map +1 -0
  19. package/dist/avatar.js +10 -142
  20. package/dist/avatar.js.map +1 -1
  21. package/dist/badge.d.ts +3 -2
  22. package/dist/badge.js +6 -114
  23. package/dist/badge.js.map +1 -1
  24. package/dist/bar-chart.d.ts +101 -77
  25. package/dist/bar-chart.js +142 -220
  26. package/dist/bar-chart.js.map +1 -1
  27. package/dist/breadcrumb.js +5 -35
  28. package/dist/breadcrumb.js.map +1 -1
  29. package/dist/bullet-chart.js +15 -48
  30. package/dist/bullet-chart.js.map +1 -1
  31. package/dist/button-group.js +14 -90
  32. package/dist/button-group.js.map +1 -1
  33. package/dist/button.d.ts +5 -5
  34. package/dist/button.js +7 -140
  35. package/dist/button.js.map +1 -1
  36. package/dist/calendar.js +12 -287
  37. package/dist/calendar.js.map +1 -1
  38. package/dist/card.js +5 -35
  39. package/dist/card.js.map +1 -1
  40. package/dist/carousel.js +12 -386
  41. package/dist/carousel.js.map +1 -1
  42. package/dist/chart.js +16 -480
  43. package/dist/chart.js.map +1 -1
  44. package/dist/checkbox.d.ts +1 -1
  45. package/dist/checkbox.js +13 -48
  46. package/dist/checkbox.js.map +1 -1
  47. package/dist/chunk-322YCNVL.js +278 -0
  48. package/dist/chunk-322YCNVL.js.map +1 -0
  49. package/dist/chunk-3ACQVT7A.js +25 -0
  50. package/dist/chunk-3ACQVT7A.js.map +1 -0
  51. package/dist/chunk-3T65TLJX.js +334 -0
  52. package/dist/chunk-3T65TLJX.js.map +1 -0
  53. package/dist/chunk-6ZSGQHH2.js +192 -0
  54. package/dist/chunk-6ZSGQHH2.js.map +1 -0
  55. package/dist/chunk-7TBMLFGW.js +41 -0
  56. package/dist/chunk-7TBMLFGW.js.map +1 -0
  57. package/dist/chunk-B4H6RNDH.js +135 -0
  58. package/dist/chunk-B4H6RNDH.js.map +1 -0
  59. package/dist/chunk-BUXCGZ6X.js +219 -0
  60. package/dist/chunk-BUXCGZ6X.js.map +1 -0
  61. package/dist/chunk-CHII2QHH.js +58 -0
  62. package/dist/chunk-CHII2QHH.js.map +1 -0
  63. package/dist/chunk-DMNOXRRW.js +147 -0
  64. package/dist/chunk-DMNOXRRW.js.map +1 -0
  65. package/dist/chunk-EFSOSSIC.js +130 -0
  66. package/dist/chunk-EFSOSSIC.js.map +1 -0
  67. package/dist/chunk-FZDSVMKY.js +363 -0
  68. package/dist/chunk-FZDSVMKY.js.map +1 -0
  69. package/dist/chunk-GJOFIJS3.js +246 -0
  70. package/dist/chunk-GJOFIJS3.js.map +1 -0
  71. package/dist/chunk-HL3ZSYES.js +23 -0
  72. package/dist/chunk-HL3ZSYES.js.map +1 -0
  73. package/dist/chunk-JVLUBAPB.js +129 -0
  74. package/dist/chunk-JVLUBAPB.js.map +1 -0
  75. package/dist/chunk-KDPYSOYZ.js +64 -0
  76. package/dist/chunk-KDPYSOYZ.js.map +1 -0
  77. package/dist/chunk-KSMDANKI.js +43 -0
  78. package/dist/chunk-KSMDANKI.js.map +1 -0
  79. package/dist/chunk-MEKCCOP5.js +46 -0
  80. package/dist/chunk-MEKCCOP5.js.map +1 -0
  81. package/dist/chunk-NOFXVRWL.js +451 -0
  82. package/dist/chunk-NOFXVRWL.js.map +1 -0
  83. package/dist/chunk-PC5MHNVA.js +171 -0
  84. package/dist/chunk-PC5MHNVA.js.map +1 -0
  85. package/dist/chunk-QKAQZ2GU.js +122 -0
  86. package/dist/chunk-QKAQZ2GU.js.map +1 -0
  87. package/dist/chunk-QZHSHSVV.js +26 -0
  88. package/dist/chunk-QZHSHSVV.js.map +1 -0
  89. package/dist/chunk-RBMK26XD.js +19 -0
  90. package/dist/chunk-RBMK26XD.js.map +1 -0
  91. package/dist/chunk-SFNJGF6M.js +262 -0
  92. package/dist/chunk-SFNJGF6M.js.map +1 -0
  93. package/dist/chunk-UJJNLGTM.js +112 -0
  94. package/dist/chunk-UJJNLGTM.js.map +1 -0
  95. package/dist/chunk-VGR4ZWJ3.js +418 -0
  96. package/dist/chunk-VGR4ZWJ3.js.map +1 -0
  97. package/dist/chunk-XG47P6D4.js +99 -0
  98. package/dist/chunk-XG47P6D4.js.map +1 -0
  99. package/dist/chunk-XZZAHNVM.js +21 -0
  100. package/dist/chunk-XZZAHNVM.js.map +1 -0
  101. package/dist/chunk-Y4TTYVNE.js +36 -0
  102. package/dist/chunk-Y4TTYVNE.js.map +1 -0
  103. package/dist/chunk-YDWIHW6Q.js +69 -0
  104. package/dist/chunk-YDWIHW6Q.js.map +1 -0
  105. package/dist/collapsible.js +6 -35
  106. package/dist/collapsible.js.map +1 -1
  107. package/dist/combobox.js +26 -694
  108. package/dist/combobox.js.map +1 -1
  109. package/dist/cta.d.ts +66 -0
  110. package/dist/cta.js +358 -0
  111. package/dist/cta.js.map +1 -0
  112. package/dist/currency-selector.d.ts +42 -0
  113. package/dist/currency-selector.js +192 -0
  114. package/dist/currency-selector.js.map +1 -0
  115. package/dist/date-picker.d.ts +18 -10
  116. package/dist/date-picker.js +105 -430
  117. package/dist/date-picker.js.map +1 -1
  118. package/dist/details-card.d.ts +19 -0
  119. package/dist/details-card.js +267 -0
  120. package/dist/details-card.js.map +1 -0
  121. package/dist/dialog.js +36 -146
  122. package/dist/dialog.js.map +1 -1
  123. package/dist/dropdown-menu.d.ts +1 -1
  124. package/dist/dropdown-menu.js +20 -358
  125. package/dist/dropdown-menu.js.map +1 -1
  126. package/dist/dropzone.js +13 -40
  127. package/dist/dropzone.js.map +1 -1
  128. package/dist/editorial-card.d.ts +29 -0
  129. package/dist/editorial-card.js +311 -0
  130. package/dist/editorial-card.js.map +1 -0
  131. package/dist/empty-state.js +5 -35
  132. package/dist/empty-state.js.map +1 -1
  133. package/dist/field.js +30 -135
  134. package/dist/field.js.map +1 -1
  135. package/dist/footer.d.ts +47 -0
  136. package/dist/footer.js +430 -0
  137. package/dist/footer.js.map +1 -0
  138. package/dist/funnel-chart.js +42 -415
  139. package/dist/funnel-chart.js.map +1 -1
  140. package/dist/gallery-indicator.d.ts +18 -0
  141. package/dist/gallery-indicator.js +12 -0
  142. package/dist/gallery-indicator.js.map +1 -0
  143. package/dist/heatmap-chart.d.ts +98 -0
  144. package/dist/heatmap-chart.js +248 -0
  145. package/dist/heatmap-chart.js.map +1 -0
  146. package/dist/infotip.d.ts +11 -0
  147. package/dist/infotip.js +66 -0
  148. package/dist/infotip.js.map +1 -0
  149. package/dist/input-group.d.ts +2 -1
  150. package/dist/input-group.js +15 -371
  151. package/dist/input-group.js.map +1 -1
  152. package/dist/input-size-context.js +5 -19
  153. package/dist/input-size-context.js.map +1 -1
  154. package/dist/input.js +6 -78
  155. package/dist/input.js.map +1 -1
  156. package/dist/item.js +5 -35
  157. package/dist/item.js.map +1 -1
  158. package/dist/kpi-card.js +12 -52
  159. package/dist/kpi-card.js.map +1 -1
  160. package/dist/label.js +5 -64
  161. package/dist/label.js.map +1 -1
  162. package/dist/line-chart.js +9 -166
  163. package/dist/line-chart.js.map +1 -1
  164. package/dist/logo.js +4 -141
  165. package/dist/logo.js.map +1 -1
  166. package/dist/map-indicator.d.ts +13 -0
  167. package/dist/map-indicator.js +109 -0
  168. package/dist/map-indicator.js.map +1 -0
  169. package/dist/match.d.ts +16 -0
  170. package/dist/match.js +113 -0
  171. package/dist/match.js.map +1 -0
  172. package/dist/media-gallery-hero.d.ts +60 -0
  173. package/dist/media-gallery-hero.js +362 -0
  174. package/dist/media-gallery-hero.js.map +1 -0
  175. package/dist/media-player.d.ts +60 -0
  176. package/dist/media-player.js +1394 -0
  177. package/dist/media-player.js.map +1 -0
  178. package/dist/number-input.js +30 -325
  179. package/dist/number-input.js.map +1 -1
  180. package/dist/page-header.js +4 -32
  181. package/dist/page-header.js.map +1 -1
  182. package/dist/pagination.d.ts +1 -0
  183. package/dist/pagination.js +27 -161
  184. package/dist/pagination.js.map +1 -1
  185. package/dist/password-input.d.ts +1 -0
  186. package/dist/password-input.js +21 -319
  187. package/dist/password-input.js.map +1 -1
  188. package/dist/phone-input.d.ts +2 -1
  189. package/dist/phone-input.js +148 -359
  190. package/dist/phone-input.js.map +1 -1
  191. package/dist/photo-gallery.d.ts +1 -1
  192. package/dist/photo-gallery.js +97 -393
  193. package/dist/photo-gallery.js.map +1 -1
  194. package/dist/pie-chart.js +17 -52
  195. package/dist/pie-chart.js.map +1 -1
  196. package/dist/popover.js +13 -158
  197. package/dist/popover.js.map +1 -1
  198. package/dist/price-tag.d.ts +35 -0
  199. package/dist/price-tag.js +178 -0
  200. package/dist/price-tag.js.map +1 -0
  201. package/dist/progress.d.ts +5 -2
  202. package/dist/progress.js +14 -303
  203. package/dist/progress.js.map +1 -1
  204. package/dist/property-listing-card.d.ts +32 -0
  205. package/dist/property-listing-card.js +235 -0
  206. package/dist/property-listing-card.js.map +1 -0
  207. package/dist/radar-chart.d.ts +110 -0
  208. package/dist/radar-chart.js +147 -0
  209. package/dist/radar-chart.js.map +1 -0
  210. package/dist/radio-group.js +15 -50
  211. package/dist/radio-group.js.map +1 -1
  212. package/dist/review-block.d.ts +20 -0
  213. package/dist/review-block.js +10 -0
  214. package/dist/review-block.js.map +1 -0
  215. package/dist/rich-text-editor.js +172 -433
  216. package/dist/rich-text-editor.js.map +1 -1
  217. package/dist/scatter-chart.d.ts +142 -0
  218. package/dist/scatter-chart.js +252 -0
  219. package/dist/scatter-chart.js.map +1 -0
  220. package/dist/search-input.d.ts +1 -0
  221. package/dist/search-input.js +22 -320
  222. package/dist/search-input.js.map +1 -1
  223. package/dist/select.js +15 -292
  224. package/dist/select.js.map +1 -1
  225. package/dist/separator.js +5 -68
  226. package/dist/separator.js.map +1 -1
  227. package/dist/sheet.js +14 -271
  228. package/dist/sheet.js.map +1 -1
  229. package/dist/sidebar.d.ts +1 -1
  230. package/dist/sidebar.js +89 -494
  231. package/dist/sidebar.js.map +1 -1
  232. package/dist/size-context.js +5 -17
  233. package/dist/size-context.js.map +1 -1
  234. package/dist/skeleton.js +4 -44
  235. package/dist/skeleton.js.map +1 -1
  236. package/dist/slider.d.ts +28 -0
  237. package/dist/slider.js +152 -0
  238. package/dist/slider.js.map +1 -0
  239. package/dist/sparkline.js +33 -341
  240. package/dist/sparkline.js.map +1 -1
  241. package/dist/stepper.js +5 -35
  242. package/dist/stepper.js.map +1 -1
  243. package/dist/styles.css +9593 -2
  244. package/dist/switch.js +13 -48
  245. package/dist/switch.js.map +1 -1
  246. package/dist/tab-list.js +35 -306
  247. package/dist/tab-list.js.map +1 -1
  248. package/dist/table.js +5 -32
  249. package/dist/table.js.map +1 -1
  250. package/dist/tabs.js +10 -150
  251. package/dist/tabs.js.map +1 -1
  252. package/dist/tag.d.ts +7 -6
  253. package/dist/tag.js +101 -97
  254. package/dist/tag.js.map +1 -1
  255. package/dist/testimonial-block.d.ts +34 -0
  256. package/dist/testimonial-block.js +377 -0
  257. package/dist/testimonial-block.js.map +1 -0
  258. package/dist/textarea.js +6 -73
  259. package/dist/textarea.js.map +1 -1
  260. package/dist/time-picker.js +119 -279
  261. package/dist/time-picker.js.map +1 -1
  262. package/dist/toast.js +27 -132
  263. package/dist/toast.js.map +1 -1
  264. package/dist/tooltip.d.ts +5 -5
  265. package/dist/tooltip.js +7 -90
  266. package/dist/tooltip.js.map +1 -1
  267. package/dist/tree-map.js +41 -414
  268. package/dist/tree-map.js.map +1 -1
  269. package/dist/waterfall-chart.d.ts +129 -0
  270. package/dist/waterfall-chart.js +577 -0
  271. package/dist/waterfall-chart.js.map +1 -0
  272. package/package.json +98 -28
  273. package/dist/base.css +0 -32
  274. package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
  275. package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
  276. package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
  277. package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
  278. package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
  279. package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
  280. package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
  281. package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
  282. package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
  283. package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
  284. package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
  285. package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
  286. package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
  287. package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
  288. package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
  289. package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
  290. package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
  291. package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
  292. package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
  293. package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
  294. package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
  295. package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
  296. package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
  297. package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
  298. package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
  299. package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
  300. package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
  301. package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
  302. package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
  303. package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
  304. package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
  305. package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
  306. package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
  307. package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
  308. package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
  309. package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
  310. package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
  311. package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
  312. package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
  313. package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
  314. package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
  315. package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
  316. package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
  317. package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
  318. package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
  319. package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
  320. package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
  321. package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
  322. package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
  323. package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
  324. package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
  325. package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
  326. package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
  327. package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
  328. package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
  329. package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
  330. package/dist/index.d.ts +0 -87
  331. package/dist/index.js +0 -10448
  332. package/dist/index.js.map +0 -1
  333. package/dist/red-hat-display.css +0 -2
  334. package/dist/theme/giddaa.css +0 -2
@@ -0,0 +1,178 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "./chunk-Y4TTYVNE.js";
5
+
6
+ // src/price-tag.tsx
7
+ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
8
+ import { cva } from "class-variance-authority";
9
+ import { Check, ChevronDown } from "lucide-react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var priceTagVariants = cva(
12
+ "group/price-tag inline-flex w-fit shrink-0 items-center justify-center rounded-4xl bg-surface-brand font-bold leading-none whitespace-nowrap text-fg-on-brand shadow-none transition-[background-color,box-shadow] outline-none data-[interactive=true]:cursor-pointer data-[interactive=true]:hover:bg-action-primary-hover data-[interactive=true]:focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] data-[interactive=true]:active:bg-action-primary-pressed",
13
+ {
14
+ variants: {
15
+ size: {
16
+ xxs: "min-h-7 gap-1 px-2.5 py-0.75 text-gdt-subtext [&>svg]:size-3",
17
+ xs: "min-h-7.5 gap-1 px-3 py-1 text-gdt-xs [&>svg]:size-3.5",
18
+ sm: "min-h-9 gap-1.5 px-4 py-1.5 text-gdt-sm [&>svg]:size-3.5",
19
+ md: "min-h-10.5 gap-1.5 px-5 py-2 text-gdt-md [&>svg]:size-4",
20
+ lg: "min-h-13 gap-2 px-7 py-3 text-gdt-lg [&>svg]:size-4.5"
21
+ },
22
+ hasMonthlyPayment: {
23
+ true: "items-start",
24
+ false: ""
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ size: "md",
29
+ hasMonthlyPayment: false
30
+ }
31
+ }
32
+ );
33
+ function getDisplayAmount({
34
+ amount,
35
+ shortAmount,
36
+ format
37
+ }) {
38
+ return format === "shortened" && shortAmount ? shortAmount : amount;
39
+ }
40
+ function PriceTag({
41
+ amount,
42
+ shortAmount,
43
+ format = "full",
44
+ size = "md",
45
+ monthlyPayment,
46
+ monthlyPaymentLabel = "Low as",
47
+ currencies,
48
+ selectedCurrency,
49
+ onCurrencyChange,
50
+ open,
51
+ defaultOpen,
52
+ onOpenChange,
53
+ className,
54
+ popoverClassName,
55
+ type = "button",
56
+ ...props
57
+ }) {
58
+ const hasDropdown = Boolean(currencies?.length);
59
+ const canShowMonthlyPayment = size === "md" || size === "lg";
60
+ const displayMonthlyPayment = canShowMonthlyPayment && monthlyPayment ? `${monthlyPaymentLabel} ${monthlyPayment} monthly` : void 0;
61
+ const displayAmount = getDisplayAmount({ amount, shortAmount, format });
62
+ const pill = /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [
63
+ /* @__PURE__ */ jsx("span", { children: displayAmount }),
64
+ displayMonthlyPayment ? /* @__PURE__ */ jsx(
65
+ "span",
66
+ {
67
+ className: cn(
68
+ "hidden text-gdt-subtext font-medium leading-none opacity-90",
69
+ {
70
+ "inline-block": size === "md",
71
+ "inline-block text-gdt-xs": size === "lg"
72
+ }
73
+ ),
74
+ children: displayMonthlyPayment
75
+ }
76
+ ) : null
77
+ ] });
78
+ if (!hasDropdown) {
79
+ return /* @__PURE__ */ jsx(
80
+ "span",
81
+ {
82
+ "data-slot": "price-tag",
83
+ className: cn(
84
+ priceTagVariants({
85
+ size,
86
+ hasMonthlyPayment: Boolean(displayMonthlyPayment)
87
+ }),
88
+ className
89
+ ),
90
+ children: pill
91
+ }
92
+ );
93
+ }
94
+ return /* @__PURE__ */ jsxs(
95
+ PopoverPrimitive.Root,
96
+ {
97
+ open,
98
+ defaultOpen,
99
+ onOpenChange,
100
+ children: [
101
+ /* @__PURE__ */ jsxs(
102
+ PopoverPrimitive.Trigger,
103
+ {
104
+ "data-slot": "price-tag",
105
+ "data-interactive": "true",
106
+ type,
107
+ className: cn(
108
+ priceTagVariants({
109
+ size,
110
+ hasMonthlyPayment: Boolean(displayMonthlyPayment)
111
+ }),
112
+ className
113
+ ),
114
+ ...props,
115
+ children: [
116
+ pill,
117
+ /* @__PURE__ */ jsx(
118
+ ChevronDown,
119
+ {
120
+ "aria-hidden": "true",
121
+ className: "transition-transform group-data-popup-open/price-tag:rotate-180"
122
+ }
123
+ )
124
+ ]
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Positioner, { sideOffset: 10, align: "start", children: /* @__PURE__ */ jsx(
128
+ PopoverPrimitive.Popup,
129
+ {
130
+ "data-slot": "price-tag-popover",
131
+ className: cn(
132
+ "z-50 flex w-[17.25rem] max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col rounded-xl border border-line-subtle bg-surface-overlay p-2 text-fg-primary shadow-3 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
133
+ popoverClassName
134
+ ),
135
+ children: currencies?.map((currency) => {
136
+ const active = currency.code === selectedCurrency;
137
+ const optionAmount = getDisplayAmount({
138
+ amount: currency.amount,
139
+ shortAmount: currency.shortAmount,
140
+ format
141
+ });
142
+ const optionMonthlyPayment = currency.monthlyPayment ? `${currency.monthlyPaymentLabel ?? "As low as"} ${currency.monthlyPayment} per month` : void 0;
143
+ return /* @__PURE__ */ jsxs(
144
+ "button",
145
+ {
146
+ type: "button",
147
+ "data-active": active ? "true" : void 0,
148
+ className: "flex min-h-14 w-full items-center gap-3 rounded-lg px-3 text-start outline-none transition-colors hover:bg-surface-brand-subtle focus-visible:bg-surface-brand-subtle focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] data-[active=true]:bg-surface-brand-subtle",
149
+ onClick: () => onCurrencyChange?.(currency),
150
+ children: [
151
+ /* @__PURE__ */ jsx("span", { className: "min-w-10 text-gdt-sm font-semibold text-fg-brand", children: currency.code }),
152
+ /* @__PURE__ */ jsxs("span", { className: "ml-auto flex min-w-0 flex-col items-end", children: [
153
+ /* @__PURE__ */ jsx("span", { className: "text-gdt-sm font-bold text-fg-primary", children: optionAmount }),
154
+ optionMonthlyPayment ? /* @__PURE__ */ jsx("span", { className: "text-gdt-xs text-fg-secondary", children: optionMonthlyPayment }) : null
155
+ ] }),
156
+ active ? /* @__PURE__ */ jsx(
157
+ Check,
158
+ {
159
+ "aria-hidden": "true",
160
+ className: "size-4 shrink-0 text-fg-brand"
161
+ }
162
+ ) : null
163
+ ]
164
+ },
165
+ currency.code
166
+ );
167
+ })
168
+ }
169
+ ) }) })
170
+ ]
171
+ }
172
+ );
173
+ }
174
+ export {
175
+ PriceTag,
176
+ priceTagVariants
177
+ };
178
+ //# sourceMappingURL=price-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/price-tag.tsx"],"sourcesContent":["\"use client\";\n\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Check, ChevronDown } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\nconst priceTagVariants = cva(\n\t\"group/price-tag inline-flex w-fit shrink-0 items-center justify-center rounded-4xl bg-surface-brand font-bold leading-none whitespace-nowrap text-fg-on-brand shadow-none transition-[background-color,box-shadow] outline-none data-[interactive=true]:cursor-pointer data-[interactive=true]:hover:bg-action-primary-hover data-[interactive=true]:focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] data-[interactive=true]:active:bg-action-primary-pressed\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txxs: \"min-h-7 gap-1 px-2.5 py-0.75 text-gdt-subtext [&>svg]:size-3\",\n\t\t\t\txs: \"min-h-7.5 gap-1 px-3 py-1 text-gdt-xs [&>svg]:size-3.5\",\n\t\t\t\tsm: \"min-h-9 gap-1.5 px-4 py-1.5 text-gdt-sm [&>svg]:size-3.5\",\n\t\t\t\tmd: \"min-h-10.5 gap-1.5 px-5 py-2 text-gdt-md [&>svg]:size-4\",\n\t\t\t\tlg: \"min-h-13 gap-2 px-7 py-3 text-gdt-lg [&>svg]:size-4.5\",\n\t\t\t},\n\t\t\thasMonthlyPayment: {\n\t\t\t\ttrue: \"items-start\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t\thasMonthlyPayment: false,\n\t\t},\n\t},\n);\n\ntype PriceTagSize = NonNullable<VariantProps<typeof priceTagVariants>[\"size\"]>;\n\ntype PriceTagCurrencyOption = {\n\tcode: string;\n\tamount: string;\n\tshortAmount?: string;\n\tmonthlyPayment?: string;\n\tmonthlyPaymentLabel?: string;\n};\n\ntype PriceTagFormat = \"full\" | \"shortened\";\n\ntype PriceTagProps = Omit<React.ComponentProps<\"button\">, \"children\"> & {\n\tamount: string;\n\tshortAmount?: string;\n\tformat?: PriceTagFormat;\n\tsize?: PriceTagSize;\n\tmonthlyPayment?: string;\n\tmonthlyPaymentLabel?: string;\n\tcurrencies?: PriceTagCurrencyOption[];\n\tselectedCurrency?: string;\n\tonCurrencyChange?: (currency: PriceTagCurrencyOption) => void;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tpopoverClassName?: string;\n};\n\nfunction getDisplayAmount({\n\tamount,\n\tshortAmount,\n\tformat,\n}: Pick<PriceTagProps, \"amount\" | \"shortAmount\" | \"format\">) {\n\treturn format === \"shortened\" && shortAmount ? shortAmount : amount;\n}\n\nfunction PriceTag({\n\tamount,\n\tshortAmount,\n\tformat = \"full\",\n\tsize = \"md\",\n\tmonthlyPayment,\n\tmonthlyPaymentLabel = \"Low as\",\n\tcurrencies,\n\tselectedCurrency,\n\tonCurrencyChange,\n\topen,\n\tdefaultOpen,\n\tonOpenChange,\n\tclassName,\n\tpopoverClassName,\n\ttype = \"button\",\n\t...props\n}: PriceTagProps) {\n\tconst hasDropdown = Boolean(currencies?.length);\n\tconst canShowMonthlyPayment = size === \"md\" || size === \"lg\";\n\tconst displayMonthlyPayment =\n\t\tcanShowMonthlyPayment && monthlyPayment\n\t\t\t? `${monthlyPaymentLabel} ${monthlyPayment} monthly`\n\t\t\t: undefined;\n\tconst displayAmount = getDisplayAmount({ amount, shortAmount, format });\n\n\tconst pill = (\n\t\t<span className=\"flex min-w-0 flex-col gap-1\">\n\t\t\t<span>{displayAmount}</span>\n\t\t\t{displayMonthlyPayment ? (\n\t\t\t\t<span\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"hidden text-gdt-subtext font-medium leading-none opacity-90\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"inline-block\": size === \"md\",\n\t\t\t\t\t\t\t\"inline-block text-gdt-xs\": size === \"lg\",\n\t\t\t\t\t\t},\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{displayMonthlyPayment}\n\t\t\t\t</span>\n\t\t\t) : null}\n\t\t</span>\n\t);\n\n\tif (!hasDropdown) {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tdata-slot=\"price-tag\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\tpriceTagVariants({\n\t\t\t\t\t\tsize,\n\t\t\t\t\t\thasMonthlyPayment: Boolean(displayMonthlyPayment),\n\t\t\t\t\t}),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{pill}\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PopoverPrimitive.Root\n\t\t\topen={open}\n\t\t\tdefaultOpen={defaultOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t>\n\t\t\t<PopoverPrimitive.Trigger\n\t\t\t\tdata-slot=\"price-tag\"\n\t\t\t\tdata-interactive=\"true\"\n\t\t\t\ttype={type}\n\t\t\t\tclassName={cn(\n\t\t\t\t\tpriceTagVariants({\n\t\t\t\t\t\tsize,\n\t\t\t\t\t\thasMonthlyPayment: Boolean(displayMonthlyPayment),\n\t\t\t\t\t}),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{pill}\n\t\t\t\t<ChevronDown\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName=\"transition-transform group-data-popup-open/price-tag:rotate-180\"\n\t\t\t\t/>\n\t\t\t</PopoverPrimitive.Trigger>\n\t\t\t<PopoverPrimitive.Portal>\n\t\t\t\t<PopoverPrimitive.Positioner sideOffset={10} align=\"start\">\n\t\t\t\t\t<PopoverPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"price-tag-popover\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"z-50 flex w-[17.25rem] max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col rounded-xl border border-line-subtle bg-surface-overlay p-2 text-fg-primary shadow-3 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n\t\t\t\t\t\t\tpopoverClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{currencies?.map((currency) => {\n\t\t\t\t\t\t\tconst active = currency.code === selectedCurrency;\n\t\t\t\t\t\t\tconst optionAmount = getDisplayAmount({\n\t\t\t\t\t\t\t\tamount: currency.amount,\n\t\t\t\t\t\t\t\tshortAmount: currency.shortAmount,\n\t\t\t\t\t\t\t\tformat,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst optionMonthlyPayment = currency.monthlyPayment\n\t\t\t\t\t\t\t\t? `${currency.monthlyPaymentLabel ?? \"As low as\"} ${\n\t\t\t\t\t\t\t\t\t\tcurrency.monthlyPayment\n\t\t\t\t\t\t\t\t\t} per month`\n\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tkey={currency.code}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tdata-active={active ? \"true\" : undefined}\n\t\t\t\t\t\t\t\t\tclassName=\"flex min-h-14 w-full items-center gap-3 rounded-lg px-3 text-start outline-none transition-colors hover:bg-surface-brand-subtle focus-visible:bg-surface-brand-subtle focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] data-[active=true]:bg-surface-brand-subtle\"\n\t\t\t\t\t\t\t\t\tonClick={() => onCurrencyChange?.(currency)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span className=\"min-w-10 text-gdt-sm font-semibold text-fg-brand\">\n\t\t\t\t\t\t\t\t\t\t{currency.code}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span className=\"ml-auto flex min-w-0 flex-col items-end\">\n\t\t\t\t\t\t\t\t\t\t<span className=\"text-gdt-sm font-bold text-fg-primary\">\n\t\t\t\t\t\t\t\t\t\t\t{optionAmount}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t{optionMonthlyPayment ? (\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-gdt-xs text-fg-secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t{optionMonthlyPayment}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{active ? (\n\t\t\t\t\t\t\t\t\t\t<Check\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"size-4 shrink-0 text-fg-brand\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</PopoverPrimitive.Popup>\n\t\t\t\t</PopoverPrimitive.Positioner>\n\t\t\t</PopoverPrimitive.Portal>\n\t\t</PopoverPrimitive.Root>\n\t);\n}\n\nexport {\n\tPriceTag,\n\tpriceTagVariants,\n\ttype PriceTagCurrencyOption,\n\ttype PriceTagFormat,\n\ttype PriceTagProps,\n\ttype PriceTagSize,\n};\n"],"mappings":"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","names":[]}
@@ -13,9 +13,12 @@ type ProgressProps = Progress$1.Root.Props & VariantProps<typeof progressVariant
13
13
  disabled?: boolean;
14
14
  };
15
15
  type ProgressSize = NonNullable<VariantProps<typeof progressVariants>["size"]>;
16
- type CircularProgressProps = Omit<React.ComponentProps<"div">, "children"> & VariantProps<typeof circularProgressVariants> & {
16
+ type CircularProgressProps = React.ComponentProps<"div"> & VariantProps<typeof circularProgressVariants> & {
17
17
  value: number;
18
18
  labelOverlay?: boolean;
19
+ pixelSize?: number;
20
+ strokeWidth?: number;
21
+ strokeLinecap?: "round" | "butt" | "square";
19
22
  };
20
23
  declare function Progress({ className, children, value, size, disabled, ...props }: ProgressProps): React.JSX.Element;
21
24
  declare function ProgressTrack({ className, ...props }: Progress$1.Track.Props): React.JSX.Element;
@@ -23,6 +26,6 @@ declare function ProgressIndicator({ className, ...props }: Progress$1.Indicator
23
26
  declare function ProgressLabel({ className, ...props }: Progress$1.Label.Props): React.JSX.Element;
24
27
  declare function ProgressValue({ className, ...props }: Progress$1.Value.Props): React.JSX.Element;
25
28
  declare function ProgressCaption({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
26
- declare function CircularProgress({ className, style, value, size, labelOverlay, ...props }: CircularProgressProps): React.JSX.Element;
29
+ declare function CircularProgress({ className, style, value, size, children, labelOverlay, pixelSize, strokeWidth, strokeLinecap, ...props }: CircularProgressProps): React.JSX.Element;
27
30
 
28
31
  export { CircularProgress, type CircularProgressProps, Progress, ProgressCaption, ProgressIndicator, ProgressLabel, type ProgressProps, type ProgressSize, ProgressTrack, ProgressValue, circularProgressVariants, progressVariants };
package/dist/progress.js CHANGED
@@ -1,306 +1,17 @@
1
- // src/components/ui/progress.tsx
2
- import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
3
- import { cva } from "class-variance-authority";
4
- 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
- }
33
- });
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 }
112
- };
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
- ) });
141
- }
142
- 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
- );
155
- }
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
- );
171
- }
172
- 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
- );
185
- }
186
- 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
- );
199
- }
200
- 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
- );
213
- }
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
- );
303
- }
1
+ "use client";
2
+ import {
3
+ CircularProgress,
4
+ Progress,
5
+ ProgressCaption,
6
+ ProgressIndicator,
7
+ ProgressLabel,
8
+ ProgressTrack,
9
+ ProgressValue,
10
+ circularProgressVariants,
11
+ progressVariants
12
+ } from "./chunk-322YCNVL.js";
13
+ import "./chunk-HL3ZSYES.js";
14
+ import "./chunk-Y4TTYVNE.js";
304
15
  export {
305
16
  CircularProgress,
306
17
  Progress,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/progress.tsx","../src/lib/cn.ts","../src/components/ui/size-context.tsx"],"sourcesContent":["\"use client\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n\ttype ComponentSize,\n\tSizeProvider,\n\tuseComponentSize,\n} from \"./size-context\";\n\nconst progressVariants = cva(\n\t\"group/progress flex w-full flex-wrap items-center\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"gap-x-2 gap-y-1.5\",\n\t\t\t\tmd: \"gap-x-3 gap-y-2\",\n\t\t\t\tlg: \"gap-x-4 gap-y-2.5\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nconst circularProgressVariants = cva(\n\t\"relative grid place-items-center text-fg-on-brand\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"text-[9px]\",\n\t\t\t\tmd: \"text-[10px]\",\n\t\t\t\tlg: \"text-gdt-xs\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nconst circularProgressLabelVariants = cva(\n\t\"relative z-10 font-medium tabular-nums leading-none\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"text-[9px]\",\n\t\t\t\tmd: \"text-[10px]\",\n\t\t\t\tlg: \"text-gdt-xs\",\n\t\t\t},\n\t\t\toverlay: {\n\t\t\t\ttrue: \"grid place-items-center rounded-full bg-black/65 text-white shadow-sm backdrop-blur-[1px]\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t\toverlay: false,\n\t\t},\n\t},\n);\n\nconst circularProgressSizes: Record<\n\tComponentSize,\n\t{ pixelSize: number; strokeWidth: number }\n> = {\n\tsm: { pixelSize: 40, strokeWidth: 3 },\n\tmd: { pixelSize: 48, strokeWidth: 4 },\n\tlg: { pixelSize: 56, strokeWidth: 5 },\n};\n\ntype ProgressProps = ProgressPrimitive.Root.Props &\n\tVariantProps<typeof progressVariants> & {\n\t\tdisabled?: boolean;\n\t};\n\ntype ProgressSize = NonNullable<VariantProps<typeof progressVariants>[\"size\"]>;\n\ntype CircularProgressProps = Omit<React.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof circularProgressVariants> & {\n\t\tvalue: number;\n\t\tlabelOverlay?: boolean;\n\t};\n\nfunction Progress({\n\tclassName,\n\tchildren,\n\tvalue,\n\tsize,\n\tdisabled = false,\n\t...props\n}: ProgressProps) {\n\tconst resolvedSize = useComponentSize(size);\n\tconst hasCustomTrack = React.Children.toArray(children).some(\n\t\t(child) => React.isValidElement(child) && child.type === ProgressTrack,\n\t);\n\n\treturn (\n\t\t<SizeProvider size={resolvedSize}>\n\t\t\t<ProgressPrimitive.Root\n\t\t\t\tvalue={value}\n\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\tdata-disabled={disabled}\n\t\t\t\tdata-size={resolvedSize}\n\t\t\t\tdata-slot=\"progress\"\n\t\t\t\tclassName={cn(progressVariants({ size: resolvedSize }), className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{!hasCustomTrack && (\n\t\t\t\t\t<ProgressTrack>\n\t\t\t\t\t\t<ProgressIndicator />\n\t\t\t\t\t</ProgressTrack>\n\t\t\t\t)}\n\t\t\t</ProgressPrimitive.Root>\n\t\t</SizeProvider>\n\t);\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n\treturn (\n\t\t<ProgressPrimitive.Track\n\t\t\tclassName={cn(\n\t\t\t\t\"order-3 relative flex basis-full items-center overflow-hidden rounded-full bg-surface-raised\",\n\t\t\t\t\"group-data-[size=sm]/progress:h-1 group-data-[size=md]/progress:h-1.5 group-data-[size=lg]/progress:h-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-slot=\"progress-track\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ProgressIndicator({\n\tclassName,\n\t...props\n}: ProgressPrimitive.Indicator.Props) {\n\treturn (\n\t\t<ProgressPrimitive.Indicator\n\t\t\tdata-slot=\"progress-indicator\"\n\t\t\tclassName={cn(\n\t\t\t\t\"h-full rounded-full bg-action-primary transition-[width,transform,background-color] duration-300 ease-out group-data-[disabled=true]/progress:bg-line-strong\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n\treturn (\n\t\t<ProgressPrimitive.Label\n\t\t\tclassName={cn(\n\t\t\t\t\"order-1 min-w-0 text-fg-primary font-semibold leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder\",\n\t\t\t\t\"group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-slot=\"progress-label\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n\treturn (\n\t\t<ProgressPrimitive.Value\n\t\t\tclassName={cn(\n\t\t\t\t\"order-2 ml-auto shrink-0 tabular-nums text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder\",\n\t\t\t\t\"group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-slot=\"progress-value\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ProgressCaption({ className, ...props }: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn(\n\t\t\t\t\"order-4 basis-full text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder\",\n\t\t\t\t\"group-data-[size=sm]/progress:text-gdt-subtext group-data-[size=md]/progress:text-gdt-xs group-data-[size=lg]/progress:text-gdt-sm\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-slot=\"progress-caption\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CircularProgress({\n\tclassName,\n\tstyle,\n\tvalue,\n\tsize,\n\tlabelOverlay = false,\n\t...props\n}: CircularProgressProps) {\n\tconst resolvedSize = useComponentSize(size);\n\tconst normalizedValue = Number.isFinite(value) ? value : 0;\n\tconst progress = Math.min(100, Math.max(0, Math.round(normalizedValue)));\n\tconst { pixelSize, strokeWidth } = circularProgressSizes[resolvedSize];\n\tconst radius = (pixelSize - strokeWidth * 2) / 2;\n\tconst labelSize = pixelSize - strokeWidth * 3;\n\tconst circumference = 2 * Math.PI * radius;\n\tconst strokeDashoffset = circumference - (progress / 100) * circumference;\n\n\treturn (\n\t\t<div\n\t\t\trole=\"progressbar\"\n\t\t\taria-valuemin={0}\n\t\t\taria-valuemax={100}\n\t\t\taria-valuenow={progress}\n\t\t\taria-valuetext={`${progress}%`}\n\t\t\tdata-slot=\"circular-progress\"\n\t\t\tclassName={cn(\n\t\t\t\tcircularProgressVariants({ size: resolvedSize }),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={{ width: pixelSize, height: pixelSize, ...style }}\n\t\t\t{...props}\n\t\t>\n\t\t\t<svg\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"absolute inset-0 -rotate-90 transform\"\n\t\t\t\tfocusable=\"false\"\n\t\t\t\twidth={pixelSize}\n\t\t\t\theight={pixelSize}\n\t\t\t\tviewBox={`0 0 ${pixelSize} ${pixelSize}`}\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t>\n\t\t\t\t<circle\n\t\t\t\t\tclassName=\"text-primary/25\"\n\t\t\t\t\tstrokeWidth={strokeWidth}\n\t\t\t\t\tcx={pixelSize / 2}\n\t\t\t\t\tcy={pixelSize / 2}\n\t\t\t\t\tr={radius}\n\t\t\t\t/>\n\t\t\t\t<circle\n\t\t\t\t\tclassName=\"text-surface-brand transition-[stroke-dashoffset] duration-300 ease-linear\"\n\t\t\t\t\tstrokeWidth={strokeWidth}\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeDasharray={circumference}\n\t\t\t\t\tstrokeDashoffset={strokeDashoffset}\n\t\t\t\t\tcx={pixelSize / 2}\n\t\t\t\t\tcy={pixelSize / 2}\n\t\t\t\t\tr={radius}\n\t\t\t\t/>\n\t\t\t</svg>\n\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\tcircularProgressLabelVariants({\n\t\t\t\t\t\tsize: resolvedSize,\n\t\t\t\t\t\toverlay: labelOverlay,\n\t\t\t\t\t}),\n\t\t\t\t)}\n\t\t\t\tstyle={\n\t\t\t\t\tlabelOverlay ? { width: labelSize, height: labelSize } : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{progress}%\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\n/**\n * Composition example\n *\n * <Progress value={60} size=\"md\">\n * <ProgressLabel>Progress</ProgressLabel>\n * <ProgressValue>{(formatted) => formatted}</ProgressValue>\n * <ProgressCaption>\n *\t Uploading 3 files... Please don't close the window.\n * </ProgressCaption>\n * </Progress>\n */\n\nexport {\n\tCircularProgress,\n\tProgress,\n\tProgressTrack,\n\tProgressIndicator,\n\tProgressLabel,\n\tProgressValue,\n\tProgressCaption,\n\tcircularProgressVariants,\n\tprogressVariants,\n\ttype CircularProgressProps,\n\ttype ProgressProps,\n\ttype ProgressSize,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { createContext, type ReactNode, useContext } from \"react\";\n\ntype ComponentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SizeContext = createContext<ComponentSize | undefined>(undefined);\n\nfunction SizeProvider({\n\tchildren,\n\tsize,\n}: {\n\tchildren: ReactNode;\n\tsize?: ComponentSize | null;\n}) {\n\tif (!size) {\n\t\treturn <>{children}</>;\n\t}\n\n\treturn <SizeContext.Provider value={size}>{children}</SizeContext.Provider>;\n}\n\nfunction useComponentSize(\n\tsize?: ComponentSize | null,\n\tfallback: ComponentSize = \"md\",\n) {\n\tconst inheritedSize = useContext(SizeContext);\n\treturn size ?? inheritedSize ?? fallback;\n}\n\nexport { SizeProvider, useComponentSize, type ComponentSize };\n"],"mappings":"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","names":["jsx"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,32 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import * as React from 'react';
5
+ import { Button, ButtonLink } from './button.js';
6
+ import '@base-ui/react/button';
7
+
8
+ declare const propertyListingCardVariants: (props?: ({
9
+ variant?: "default" | "elevated" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ type PropertyListingImage = {
12
+ id?: string;
13
+ src?: string;
14
+ alt?: string;
15
+ };
16
+ interface PropertyListingCardProps extends React.ComponentProps<"article">, VariantProps<typeof propertyListingCardVariants> {
17
+ }
18
+ declare function PropertyListingCard({ className, variant, ...props }: PropertyListingCardProps): React.JSX.Element;
19
+ declare function PropertyListingCardMedia({ className, images, children, ...props }: React.ComponentProps<"div"> & {
20
+ images?: PropertyListingImage[];
21
+ }): React.JSX.Element;
22
+ declare function PropertyListingCardMediaTop({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
23
+ declare function PropertyListingCardOptionsBar({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
24
+ declare function PropertyListingCardDetails({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
25
+ declare function PropertyListingCardTitle({ className, ...props }: React.ComponentProps<"h3">): React.JSX.Element;
26
+ declare function PropertyListingCardOverview({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
27
+ declare function PropertyListingCardBadges({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
28
+ declare function PropertyListingCardActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
29
+ declare function PropertyListingCardActionButton({ className, type, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
30
+ declare function PropertyListingCardActionButtonLink({ className, ...props }: React.ComponentProps<typeof ButtonLink>): React.JSX.Element;
31
+
32
+ export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, type PropertyListingCardProps, PropertyListingCardTitle, type PropertyListingImage, propertyListingCardVariants };