@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/popover.js CHANGED
@@ -1,169 +1,73 @@
1
- // src/components/ui/popover.tsx
2
- import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
3
-
4
- // src/lib/cn.ts
5
- import { clsx } from "clsx";
6
- import { extendTailwindMerge } from "tailwind-merge";
7
- var twMerge = extendTailwindMerge({
8
- extend: {
9
- classGroups: {
10
- "font-size": [
11
- {
12
- text: [
13
- "gdt-display",
14
- "gdt-h1",
15
- "gdt-h2",
16
- "gdt-h3",
17
- "gdt-h4",
18
- "gdt-h5",
19
- "gdt-xl",
20
- "gdt-lg",
21
- "gdt-md",
22
- "gdt-sm",
23
- "gdt-xs",
24
- "gdt-subtext",
25
- "gdt-capitalized"
26
- ]
27
- }
28
- ]
29
- }
30
- }
31
- });
32
- function cn(...inputs) {
33
- return twMerge(clsx(inputs));
34
- }
35
-
36
- // src/components/ui/size-context.tsx
37
- import { createContext, useContext } from "react";
38
- import { Fragment, jsx } from "react/jsx-runtime";
39
- var SizeContext = createContext(void 0);
40
- function SizeProvider({
41
- children,
42
- size
43
- }) {
44
- if (!size) {
45
- return /* @__PURE__ */ jsx(Fragment, { children });
46
- }
47
- return /* @__PURE__ */ jsx(SizeContext.Provider, { value: size, children });
48
- }
49
-
50
- // src/components/ui/popover.tsx
51
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { SizeProvider } from "./size-context.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { Popover as Popover$1 } from "@base-ui/react/popover";
6
+ //#region src/popover.tsx
52
7
  function Popover({ ...props }) {
53
- return /* @__PURE__ */ jsx2(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
8
+ return /* @__PURE__ */ jsx(Popover$1.Root, {
9
+ "data-slot": "popover",
10
+ ...props
11
+ });
54
12
  }
55
13
  function PopoverTrigger({ ...props }) {
56
- return /* @__PURE__ */ jsx2(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
14
+ return /* @__PURE__ */ jsx(Popover$1.Trigger, {
15
+ "data-slot": "popover-trigger",
16
+ ...props
17
+ });
57
18
  }
58
- function PopoverContent({
59
- className,
60
- align = "center",
61
- alignOffset = 0,
62
- side = "bottom",
63
- sideOffset = 6,
64
- showArrow = true,
65
- size = "md",
66
- children,
67
- ...props
68
- }) {
69
- return /* @__PURE__ */ jsx2(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx2(
70
- PopoverPrimitive.Positioner,
71
- {
72
- align,
73
- alignOffset,
74
- side,
75
- sideOffset,
76
- className: "isolate z-50",
77
- children: /* @__PURE__ */ jsxs(
78
- PopoverPrimitive.Popup,
79
- {
80
- "data-slot": "popover-content",
81
- className: cn(
82
- "z-50 relative flex w-72 max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col rounded-lg border-0 bg-surface-overlay py-4 text-gdt-sm text-fg-primary shadow-2 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-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 has-[&_[data-slot=popover-footer]]:pb-0",
83
- className
84
- ),
85
- ...props,
86
- children: [
87
- /* @__PURE__ */ jsx2(SizeProvider, { size, children }),
88
- showArrow ? /* @__PURE__ */ jsx2(PopoverPrimitive.Arrow, { className: "relative block w-3 h-1.5 overflow-clip data-[side=bottom]:top-[-6px] data-[side=left]:right-[-9px] data-[side=left]:rotate-90 data-[side=right]:left-[-9px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-6px] data-[side=top]:rotate-180 before:content-[''] before:absolute before:bottom-0 before:left-1/2 before:w-[calc(6px*sqrt(2))] before:h-[calc(6px*sqrt(2))] before:bg-surface-overlay before:border before:border-line before:[transform:translate(-50%,50%)_rotate(45deg)]" }) : null
89
- ]
90
- }
91
- )
92
- }
93
- ) });
19
+ function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 6, showArrow = true, size = "md", children, ...props }) {
20
+ return /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(Popover$1.Positioner, {
21
+ align,
22
+ alignOffset,
23
+ side,
24
+ sideOffset,
25
+ className: "isolate z-50",
26
+ children: /* @__PURE__ */ jsxs(Popover$1.Popup, {
27
+ "data-slot": "popover-content",
28
+ className: cn("z-50 relative flex w-72 max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col rounded-lg border-0 bg-surface-overlay py-4 text-gdt-sm text-fg-primary shadow-2 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-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 has-[&_[data-slot=popover-footer]]:pb-0", className),
29
+ ...props,
30
+ children: [/* @__PURE__ */ jsx(SizeProvider, {
31
+ size,
32
+ children
33
+ }), showArrow ? /* @__PURE__ */ jsx(Popover$1.Arrow, { className: "relative block w-3 h-1.5 overflow-clip data-[side=bottom]:top-[-6px] data-[side=left]:right-[-9px] data-[side=left]:rotate-90 data-[side=right]:left-[-9px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-6px] data-[side=top]:rotate-180 before:content-[''] before:absolute before:bottom-0 before:left-1/2 before:w-[calc(6px*sqrt(2))] before:h-[calc(6px*sqrt(2))] before:bg-surface-overlay before:border before:border-line before:[transform:translate(-50%,50%)_rotate(45deg)]" }) : null]
34
+ })
35
+ }) });
94
36
  }
95
- function PopoverHeader({
96
- className,
97
- border,
98
- ...props
99
- }) {
100
- return /* @__PURE__ */ jsx2(
101
- "div",
102
- {
103
- "data-slot": "popover-header",
104
- className: cn(
105
- "flex flex-col gap-0.5 px-4",
106
- border && "border-b border-line-subtle pb-3",
107
- className
108
- ),
109
- ...props
110
- }
111
- );
37
+ function PopoverHeader({ className, border, ...props }) {
38
+ return /* @__PURE__ */ jsx("div", {
39
+ "data-slot": "popover-header",
40
+ className: cn("flex flex-col gap-0.5 px-4", border && "border-b border-line-subtle pb-3", className),
41
+ ...props
42
+ });
112
43
  }
113
44
  function PopoverBody({ className, ...props }) {
114
- return /* @__PURE__ */ jsx2(
115
- "div",
116
- {
117
- "data-slot": "popover-body",
118
- className: cn("px-4 py-2", className),
119
- ...props
120
- }
121
- );
45
+ return /* @__PURE__ */ jsx("div", {
46
+ "data-slot": "popover-body",
47
+ className: cn("px-4 py-2", className),
48
+ ...props
49
+ });
122
50
  }
123
51
  function PopoverFooter({ className, ...props }) {
124
- return /* @__PURE__ */ jsx2(
125
- "div",
126
- {
127
- "data-slot": "popover-footer",
128
- className: cn(
129
- "flex flex-row items-center gap-2 px-4 border-t border-line-subtle pt-3",
130
- className
131
- ),
132
- ...props
133
- }
134
- );
52
+ return /* @__PURE__ */ jsx("div", {
53
+ "data-slot": "popover-footer",
54
+ className: cn("flex flex-row items-center gap-2 px-4 border-t border-line-subtle pt-3", className),
55
+ ...props
56
+ });
135
57
  }
136
58
  function PopoverTitle({ className, ...props }) {
137
- return /* @__PURE__ */ jsx2(
138
- PopoverPrimitive.Title,
139
- {
140
- "data-slot": "popover-title",
141
- className: cn("text-gdt-sm font-semibold text-fg-primary", className),
142
- ...props
143
- }
144
- );
59
+ return /* @__PURE__ */ jsx(Popover$1.Title, {
60
+ "data-slot": "popover-title",
61
+ className: cn("text-gdt-sm font-semibold text-fg-primary", className),
62
+ ...props
63
+ });
145
64
  }
146
- function PopoverDescription({
147
- className,
148
- ...props
149
- }) {
150
- return /* @__PURE__ */ jsx2(
151
- PopoverPrimitive.Description,
152
- {
153
- "data-slot": "popover-description",
154
- className: cn("text-gdt-xs font-normal text-fg-secondary", className),
155
- ...props
156
- }
157
- );
65
+ function PopoverDescription({ className, ...props }) {
66
+ return /* @__PURE__ */ jsx(Popover$1.Description, {
67
+ "data-slot": "popover-description",
68
+ className: cn("text-gdt-xs font-normal text-fg-secondary", className),
69
+ ...props
70
+ });
158
71
  }
159
- export {
160
- Popover,
161
- PopoverBody,
162
- PopoverContent,
163
- PopoverDescription,
164
- PopoverFooter,
165
- PopoverHeader,
166
- PopoverTitle,
167
- PopoverTrigger
168
- };
169
- //# sourceMappingURL=popover.js.map
72
+ //#endregion
73
+ export { Popover, PopoverBody, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverTitle, PopoverTrigger };
@@ -0,0 +1,34 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ //#region src/price-tag.d.ts
4
+ declare const priceTagVariants: (props?: ({
5
+ size?: "lg" | "md" | "sm" | "xs" | "xxs" | null | undefined;
6
+ hasMonthlyPayment?: boolean | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ type PriceTagSize = NonNullable<VariantProps<typeof priceTagVariants>["size"]>;
9
+ type PriceTagCurrencyOption = {
10
+ code: string;
11
+ amount: string;
12
+ shortAmount?: string;
13
+ monthlyPayment?: string;
14
+ monthlyPaymentLabel?: string;
15
+ };
16
+ type PriceTagFormat = "full" | "shortened";
17
+ type PriceTagProps = Omit<React.ComponentProps<"button">, "children"> & {
18
+ amount: string;
19
+ shortAmount?: string;
20
+ format?: PriceTagFormat;
21
+ size?: PriceTagSize;
22
+ monthlyPayment?: string;
23
+ monthlyPaymentLabel?: string;
24
+ currencies?: PriceTagCurrencyOption[];
25
+ selectedCurrency?: string;
26
+ onCurrencyChange?: (currency: PriceTagCurrencyOption) => void;
27
+ open?: boolean;
28
+ defaultOpen?: boolean;
29
+ onOpenChange?: (open: boolean) => void;
30
+ popoverClassName?: string;
31
+ };
32
+ declare function PriceTag({ amount, shortAmount, format, size, monthlyPayment, monthlyPaymentLabel, currencies, selectedCurrency, onCurrencyChange, open, defaultOpen, onOpenChange, className, popoverClassName, type, ...props }: PriceTagProps): React.JSX.Element;
33
+ //#endregion
34
+ export { PriceTag, type PriceTagCurrencyOption, type PriceTagFormat, type PriceTagProps, type PriceTagSize, priceTagVariants };
@@ -0,0 +1,118 @@
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { Check, ChevronDown } from "lucide-react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { cva } from "class-variance-authority";
6
+ import { Popover } from "@base-ui/react/popover";
7
+ //#region src/price-tag.tsx
8
+ const priceTagVariants = cva("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", {
9
+ variants: {
10
+ size: {
11
+ xxs: "min-h-7 gap-1 px-2.5 py-0.75 text-gdt-subtext [&>svg]:size-3",
12
+ xs: "min-h-7.5 gap-1 px-3 py-1 text-gdt-xs [&>svg]:size-3.5",
13
+ sm: "min-h-9 gap-1.5 px-4 py-1.5 text-gdt-sm [&>svg]:size-3.5",
14
+ md: "min-h-10.5 gap-1.5 px-5 py-2 text-gdt-md [&>svg]:size-4",
15
+ lg: "min-h-13 gap-2 px-7 py-3 text-gdt-lg [&>svg]:size-4.5"
16
+ },
17
+ hasMonthlyPayment: {
18
+ true: "items-start",
19
+ false: ""
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ size: "md",
24
+ hasMonthlyPayment: false
25
+ }
26
+ });
27
+ function getDisplayAmount({ amount, shortAmount, format }) {
28
+ return format === "shortened" && shortAmount ? shortAmount : amount;
29
+ }
30
+ function PriceTag({ amount, shortAmount, format = "full", size = "md", monthlyPayment, monthlyPaymentLabel = "Low as", currencies, selectedCurrency, onCurrencyChange, open, defaultOpen, onOpenChange, className, popoverClassName, type = "button", ...props }) {
31
+ const hasDropdown = Boolean(currencies?.length);
32
+ const displayMonthlyPayment = (size === "md" || size === "lg") && monthlyPayment ? `${monthlyPaymentLabel} ${monthlyPayment} monthly` : void 0;
33
+ const pill = /* @__PURE__ */ jsxs("span", {
34
+ className: "flex min-w-0 flex-col gap-1",
35
+ children: [/* @__PURE__ */ jsx("span", { children: getDisplayAmount({
36
+ amount,
37
+ shortAmount,
38
+ format
39
+ }) }), displayMonthlyPayment ? /* @__PURE__ */ jsx("span", {
40
+ className: cn("hidden text-gdt-subtext font-medium leading-none opacity-90", {
41
+ "inline-block": size === "md",
42
+ "inline-block text-gdt-xs": size === "lg"
43
+ }),
44
+ children: displayMonthlyPayment
45
+ }) : null]
46
+ });
47
+ if (!hasDropdown) return /* @__PURE__ */ jsx("span", {
48
+ "data-slot": "price-tag",
49
+ className: cn(priceTagVariants({
50
+ size,
51
+ hasMonthlyPayment: Boolean(displayMonthlyPayment)
52
+ }), className),
53
+ children: pill
54
+ });
55
+ return /* @__PURE__ */ jsxs(Popover.Root, {
56
+ open,
57
+ defaultOpen,
58
+ onOpenChange,
59
+ children: [/* @__PURE__ */ jsxs(Popover.Trigger, {
60
+ "data-slot": "price-tag",
61
+ "data-interactive": "true",
62
+ type,
63
+ className: cn(priceTagVariants({
64
+ size,
65
+ hasMonthlyPayment: Boolean(displayMonthlyPayment)
66
+ }), className),
67
+ ...props,
68
+ children: [pill, /* @__PURE__ */ jsx(ChevronDown, {
69
+ "aria-hidden": "true",
70
+ className: "transition-transform group-data-popup-open/price-tag:rotate-180"
71
+ })]
72
+ }), /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
73
+ sideOffset: 10,
74
+ align: "start",
75
+ children: /* @__PURE__ */ jsx(Popover.Popup, {
76
+ "data-slot": "price-tag-popover",
77
+ className: cn("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", popoverClassName),
78
+ children: currencies?.map((currency) => {
79
+ const active = currency.code === selectedCurrency;
80
+ const optionAmount = getDisplayAmount({
81
+ amount: currency.amount,
82
+ shortAmount: currency.shortAmount,
83
+ format
84
+ });
85
+ const optionMonthlyPayment = currency.monthlyPayment ? `${currency.monthlyPaymentLabel ?? "As low as"} ${currency.monthlyPayment} per month` : void 0;
86
+ return /* @__PURE__ */ jsxs("button", {
87
+ type: "button",
88
+ "data-active": active ? "true" : void 0,
89
+ 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",
90
+ onClick: () => onCurrencyChange?.(currency),
91
+ children: [
92
+ /* @__PURE__ */ jsx("span", {
93
+ className: "min-w-10 text-gdt-sm font-semibold text-fg-brand",
94
+ children: currency.code
95
+ }),
96
+ /* @__PURE__ */ jsxs("span", {
97
+ className: "ml-auto flex min-w-0 flex-col items-end",
98
+ children: [/* @__PURE__ */ jsx("span", {
99
+ className: "text-gdt-sm font-bold text-fg-primary",
100
+ children: optionAmount
101
+ }), optionMonthlyPayment ? /* @__PURE__ */ jsx("span", {
102
+ className: "text-gdt-xs text-fg-secondary",
103
+ children: optionMonthlyPayment
104
+ }) : null]
105
+ }),
106
+ active ? /* @__PURE__ */ jsx(Check, {
107
+ "aria-hidden": "true",
108
+ className: "size-4 shrink-0 text-fg-brand"
109
+ }) : null
110
+ ]
111
+ }, currency.code);
112
+ })
113
+ })
114
+ }) })]
115
+ });
116
+ }
117
+ //#endregion
118
+ export { PriceTag, priceTagVariants };
@@ -1,21 +1,23 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import { Progress as Progress$1 } from '@base-ui/react/progress';
3
- import { VariantProps } from 'class-variance-authority';
4
- import * as React from 'react';
5
-
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ import { Progress as Progress$1 } from "@base-ui/react/progress";
4
+ //#region src/progress.d.ts
6
5
  declare const progressVariants: (props?: ({
7
- size?: "sm" | "md" | "lg" | null | undefined;
8
- } & class_variance_authority_types.ClassProp) | undefined) => string;
6
+ size?: "lg" | "md" | "sm" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
8
  declare const circularProgressVariants: (props?: ({
10
- size?: "sm" | "md" | "lg" | null | undefined;
11
- } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ size?: "lg" | "md" | "sm" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
11
  type ProgressProps = Progress$1.Root.Props & VariantProps<typeof progressVariants> & {
13
- disabled?: boolean;
12
+ disabled?: boolean;
14
13
  };
15
14
  type ProgressSize = NonNullable<VariantProps<typeof progressVariants>["size"]>;
16
- type CircularProgressProps = Omit<React.ComponentProps<"div">, "children"> & VariantProps<typeof circularProgressVariants> & {
17
- value: number;
18
- labelOverlay?: boolean;
15
+ type CircularProgressProps = React.ComponentProps<"div"> & VariantProps<typeof circularProgressVariants> & {
16
+ value: number;
17
+ labelOverlay?: boolean;
18
+ pixelSize?: number;
19
+ strokeWidth?: number;
20
+ strokeLinecap?: "round" | "butt" | "square";
19
21
  };
20
22
  declare function Progress({ className, children, value, size, disabled, ...props }: ProgressProps): React.JSX.Element;
21
23
  declare function ProgressTrack({ className, ...props }: Progress$1.Track.Props): React.JSX.Element;
@@ -23,6 +25,6 @@ declare function ProgressIndicator({ className, ...props }: Progress$1.Indicator
23
25
  declare function ProgressLabel({ className, ...props }: Progress$1.Label.Props): React.JSX.Element;
24
26
  declare function ProgressValue({ className, ...props }: Progress$1.Value.Props): React.JSX.Element;
25
27
  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;
27
-
28
- export { CircularProgress, type CircularProgressProps, Progress, ProgressCaption, ProgressIndicator, ProgressLabel, type ProgressProps, type ProgressSize, ProgressTrack, ProgressValue, circularProgressVariants, progressVariants };
28
+ declare function CircularProgress({ className, style, value, size, children, labelOverlay, pixelSize, strokeWidth, strokeLinecap, ...props }: CircularProgressProps): React.JSX.Element;
29
+ //#endregion
30
+ export { CircularProgress, type CircularProgressProps, Progress, ProgressCaption, ProgressIndicator, ProgressLabel, type ProgressProps, type ProgressSize, ProgressTrack, ProgressValue, circularProgressVariants, progressVariants };