@giddaa-housing/ui 1.0.0 → 1.2.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 (331) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/css/giddaa.css +12 -2
  3. package/dist/accordion.d.ts +9 -10
  4. package/dist/accordion.js +41 -87
  5. package/dist/activity-timeline.d.ts +12 -16
  6. package/dist/activity-timeline.js +83 -198
  7. package/dist/alert.d.ts +8 -9
  8. package/dist/alert.js +53 -111
  9. package/dist/auth-layout.d.ts +4 -4
  10. package/dist/auth-layout.js +143 -294
  11. package/dist/avatar.d.ts +6 -6
  12. package/dist/avatar.js +49 -19
  13. package/dist/badge.d.ts +12 -14
  14. package/dist/badge.js +71 -11
  15. package/dist/bar-chart.d.ts +65 -67
  16. package/dist/bar-chart.js +232 -207
  17. package/dist/breadcrumb.d.ts +5 -5
  18. package/dist/breadcrumb.js +56 -118
  19. package/dist/bullet-chart.d.ts +41 -37
  20. package/dist/bullet-chart.js +125 -148
  21. package/dist/button-BZIeyUw6.d.ts +17 -0
  22. package/dist/button-group.d.ts +13 -16
  23. package/dist/button-group.js +39 -88
  24. package/dist/button.d.ts +2 -19
  25. package/dist/button.js +94 -13
  26. package/dist/calendar.d.ts +6 -6
  27. package/dist/calendar.js +138 -17
  28. package/dist/card.d.ts +14 -16
  29. package/dist/card.js +59 -145
  30. package/dist/carousel.d.ts +34 -35
  31. package/dist/carousel.js +335 -20
  32. package/dist/chart.d.ts +90 -63
  33. package/dist/chart.js +573 -28
  34. package/dist/checkbox.d.ts +10 -12
  35. package/dist/checkbox.js +82 -47
  36. package/dist/cn-BI_4DMBf.js +23 -0
  37. package/dist/collapsible.d.ts +7 -8
  38. package/dist/collapsible.js +22 -47
  39. package/dist/combobox.d.ts +10 -10
  40. package/dist/combobox.js +236 -44
  41. package/dist/cta.d.ts +12 -14
  42. package/dist/cta.js +175 -341
  43. package/dist/currency-selector.d.ts +31 -32
  44. package/dist/currency-selector.js +106 -184
  45. package/dist/data-table.d.ts +168 -0
  46. package/dist/data-table.js +676 -0
  47. package/dist/date-picker.d.ts +22 -23
  48. package/dist/date-picker.js +119 -192
  49. package/dist/details-card.d.ts +7 -7
  50. package/dist/details-card.js +104 -253
  51. package/dist/dialog.d.ts +13 -14
  52. package/dist/dialog.js +116 -209
  53. package/dist/dropdown-menu.d.ts +13 -13
  54. package/dist/dropdown-menu.js +180 -37
  55. package/dist/dropzone.d.ts +55 -55
  56. package/dist/dropzone.js +327 -439
  57. package/dist/editorial-card.d.ts +23 -25
  58. package/dist/editorial-card.js +129 -296
  59. package/dist/empty-state.d.ts +8 -9
  60. package/dist/empty-state.js +48 -105
  61. package/dist/field.d.ts +23 -25
  62. package/dist/field.js +110 -221
  63. package/dist/filter.d.ts +118 -0
  64. package/dist/filter.js +775 -0
  65. package/dist/footer.d.ts +8 -15
  66. package/dist/footer.js +197 -400
  67. package/dist/funnel-chart.d.ts +49 -48
  68. package/dist/funnel-chart.js +170 -189
  69. package/dist/gallery-indicator.d.ts +11 -12
  70. package/dist/gallery-indicator.js +75 -12
  71. package/dist/heatmap-chart.d.ts +47 -50
  72. package/dist/heatmap-chart.js +186 -237
  73. package/dist/infotip.d.ts +8 -9
  74. package/dist/infotip.js +33 -59
  75. package/dist/input-CfoEJ8A6.d.ts +12 -0
  76. package/dist/input-group.d.ts +16 -20
  77. package/dist/input-group.js +99 -23
  78. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  79. package/dist/input-size-context.d.ts +2 -11
  80. package/dist/input-size-context.js +17 -9
  81. package/dist/input.d.ts +2 -13
  82. package/dist/input.js +27 -11
  83. package/dist/item.d.ts +7 -8
  84. package/dist/item.js +22 -59
  85. package/dist/kpi-card.d.ts +18 -20
  86. package/dist/kpi-card.js +84 -192
  87. package/dist/label.d.ts +6 -6
  88. package/dist/label.js +40 -8
  89. package/dist/line-chart.d.ts +200 -129
  90. package/dist/line-chart.js +330 -105
  91. package/dist/list-item.d.ts +22 -0
  92. package/dist/list-item.js +84 -0
  93. package/dist/logo.d.ts +4 -4
  94. package/dist/logo.js +92 -9
  95. package/dist/map-indicator.d.ts +7 -7
  96. package/dist/map-indicator.js +80 -106
  97. package/dist/match.d.ts +10 -11
  98. package/dist/match.js +62 -107
  99. package/dist/media-gallery-hero.d.ts +40 -42
  100. package/dist/media-gallery-hero.js +182 -343
  101. package/dist/media-player.d.ts +17 -17
  102. package/dist/media-player.js +873 -1348
  103. package/dist/multi-step-form.d.ts +56 -0
  104. package/dist/multi-step-form.js +342 -0
  105. package/dist/number-input.d.ts +34 -34
  106. package/dist/number-input.js +64 -117
  107. package/dist/page-header.d.ts +10 -11
  108. package/dist/page-header.js +34 -79
  109. package/dist/pagination.d.ts +17 -21
  110. package/dist/pagination.js +132 -207
  111. package/dist/password-input.d.ts +5 -13
  112. package/dist/password-input.js +31 -55
  113. package/dist/phone-input.d.ts +19 -20
  114. package/dist/phone-input.js +226 -344
  115. package/dist/photo-gallery.d.ts +19 -19
  116. package/dist/photo-gallery.js +313 -449
  117. package/dist/picker-lzgmsNfG.js +32 -0
  118. package/dist/pie-chart.d.ts +121 -90
  119. package/dist/pie-chart.js +183 -149
  120. package/dist/popover.d.ts +9 -9
  121. package/dist/popover.js +72 -23
  122. package/dist/price-tag.d.ts +26 -27
  123. package/dist/price-tag.js +113 -173
  124. package/dist/progress.d.ts +16 -17
  125. package/dist/progress.js +169 -24
  126. package/dist/property-listing-card.d.ts +14 -17
  127. package/dist/property-listing-card.js +102 -220
  128. package/dist/purchase-option-card.d.ts +79 -0
  129. package/dist/purchase-option-card.js +176 -0
  130. package/dist/radar-chart.d.ts +29 -31
  131. package/dist/radar-chart.js +162 -137
  132. package/dist/radio-group.d.ts +11 -13
  133. package/dist/radio-group.js +46 -60
  134. package/dist/review-block.d.ts +14 -16
  135. package/dist/review-block.js +154 -10
  136. package/dist/rich-text-editor.d.ts +30 -14
  137. package/dist/rich-text-editor.js +592 -716
  138. package/dist/scatter-chart.d.ts +45 -47
  139. package/dist/scatter-chart.js +236 -240
  140. package/dist/search-input.d.ts +8 -16
  141. package/dist/search-input.js +57 -109
  142. package/dist/select.d.ts +8 -8
  143. package/dist/select.js +144 -27
  144. package/dist/separator.d.ts +8 -9
  145. package/dist/separator.js +32 -8
  146. package/dist/sheet.d.ts +11 -11
  147. package/dist/sheet.js +103 -24
  148. package/dist/sidebar.d.ts +32 -37
  149. package/dist/sidebar.js +364 -634
  150. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  151. package/dist/size-context.d.ts +2 -11
  152. package/dist/size-context.js +17 -9
  153. package/dist/skeleton.d.ts +4 -5
  154. package/dist/skeleton.js +12 -8
  155. package/dist/slider.d.ts +8 -9
  156. package/dist/slider.js +64 -135
  157. package/dist/sparkline.d.ts +68 -58
  158. package/dist/sparkline.js +315 -251
  159. package/dist/stepper.d.ts +23 -24
  160. package/dist/stepper.js +149 -246
  161. package/dist/styles.css +1004 -116
  162. package/dist/switch.d.ts +10 -12
  163. package/dist/switch.js +48 -70
  164. package/dist/table-card.d.ts +35 -0
  165. package/dist/table-card.js +125 -0
  166. package/dist/table.d.ts +18 -14
  167. package/dist/table.js +117 -154
  168. package/dist/tabs.d.ts +33 -15
  169. package/dist/tabs.js +110 -18
  170. package/dist/tag.d.ts +21 -23
  171. package/dist/tag.js +103 -159
  172. package/dist/testimonial-block.d.ts +18 -19
  173. package/dist/testimonial-block.js +189 -358
  174. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  175. package/dist/textarea.d.ts +2 -12
  176. package/dist/textarea.js +24 -11
  177. package/dist/time-picker.d.ts +11 -11
  178. package/dist/time-picker.js +245 -302
  179. package/dist/toast.d.ts +16 -18
  180. package/dist/toast.js +154 -205
  181. package/dist/tooltip.d.ts +8 -9
  182. package/dist/tooltip.js +37 -12
  183. package/dist/tree-map.d.ts +59 -62
  184. package/dist/tree-map.js +226 -269
  185. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  186. package/dist/waterfall-chart.d.ts +94 -97
  187. package/dist/waterfall-chart.js +455 -552
  188. package/package.json +36 -9
  189. package/dist/accordion.js.map +0 -1
  190. package/dist/activity-timeline.js.map +0 -1
  191. package/dist/alert.js.map +0 -1
  192. package/dist/auth-layout.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/breadcrumb.js.map +0 -1
  197. package/dist/bullet-chart.js.map +0 -1
  198. package/dist/button-group.js.map +0 -1
  199. package/dist/button.js.map +0 -1
  200. package/dist/calendar.js.map +0 -1
  201. package/dist/card.js.map +0 -1
  202. package/dist/carousel.js.map +0 -1
  203. package/dist/chart.js.map +0 -1
  204. package/dist/checkbox.js.map +0 -1
  205. package/dist/chunk-322YCNVL.js +0 -278
  206. package/dist/chunk-322YCNVL.js.map +0 -1
  207. package/dist/chunk-3ACQVT7A.js +0 -25
  208. package/dist/chunk-3ACQVT7A.js.map +0 -1
  209. package/dist/chunk-3T65TLJX.js +0 -334
  210. package/dist/chunk-3T65TLJX.js.map +0 -1
  211. package/dist/chunk-6ZSGQHH2.js +0 -192
  212. package/dist/chunk-6ZSGQHH2.js.map +0 -1
  213. package/dist/chunk-7TBMLFGW.js +0 -41
  214. package/dist/chunk-7TBMLFGW.js.map +0 -1
  215. package/dist/chunk-B4H6RNDH.js +0 -135
  216. package/dist/chunk-B4H6RNDH.js.map +0 -1
  217. package/dist/chunk-BUXCGZ6X.js +0 -219
  218. package/dist/chunk-BUXCGZ6X.js.map +0 -1
  219. package/dist/chunk-CHII2QHH.js +0 -58
  220. package/dist/chunk-CHII2QHH.js.map +0 -1
  221. package/dist/chunk-DMNOXRRW.js +0 -147
  222. package/dist/chunk-DMNOXRRW.js.map +0 -1
  223. package/dist/chunk-EFSOSSIC.js +0 -130
  224. package/dist/chunk-EFSOSSIC.js.map +0 -1
  225. package/dist/chunk-FZDSVMKY.js +0 -363
  226. package/dist/chunk-FZDSVMKY.js.map +0 -1
  227. package/dist/chunk-GJOFIJS3.js +0 -246
  228. package/dist/chunk-GJOFIJS3.js.map +0 -1
  229. package/dist/chunk-HL3ZSYES.js +0 -23
  230. package/dist/chunk-HL3ZSYES.js.map +0 -1
  231. package/dist/chunk-JVLUBAPB.js +0 -129
  232. package/dist/chunk-JVLUBAPB.js.map +0 -1
  233. package/dist/chunk-KDPYSOYZ.js +0 -64
  234. package/dist/chunk-KDPYSOYZ.js.map +0 -1
  235. package/dist/chunk-KSMDANKI.js +0 -43
  236. package/dist/chunk-KSMDANKI.js.map +0 -1
  237. package/dist/chunk-MEKCCOP5.js +0 -46
  238. package/dist/chunk-MEKCCOP5.js.map +0 -1
  239. package/dist/chunk-NOFXVRWL.js +0 -451
  240. package/dist/chunk-NOFXVRWL.js.map +0 -1
  241. package/dist/chunk-PC5MHNVA.js +0 -171
  242. package/dist/chunk-PC5MHNVA.js.map +0 -1
  243. package/dist/chunk-QKAQZ2GU.js +0 -122
  244. package/dist/chunk-QKAQZ2GU.js.map +0 -1
  245. package/dist/chunk-QZHSHSVV.js +0 -26
  246. package/dist/chunk-QZHSHSVV.js.map +0 -1
  247. package/dist/chunk-RBMK26XD.js +0 -19
  248. package/dist/chunk-RBMK26XD.js.map +0 -1
  249. package/dist/chunk-SFNJGF6M.js +0 -262
  250. package/dist/chunk-SFNJGF6M.js.map +0 -1
  251. package/dist/chunk-UJJNLGTM.js +0 -112
  252. package/dist/chunk-UJJNLGTM.js.map +0 -1
  253. package/dist/chunk-VGR4ZWJ3.js +0 -418
  254. package/dist/chunk-VGR4ZWJ3.js.map +0 -1
  255. package/dist/chunk-XG47P6D4.js +0 -99
  256. package/dist/chunk-XG47P6D4.js.map +0 -1
  257. package/dist/chunk-XZZAHNVM.js +0 -21
  258. package/dist/chunk-XZZAHNVM.js.map +0 -1
  259. package/dist/chunk-Y4TTYVNE.js +0 -36
  260. package/dist/chunk-Y4TTYVNE.js.map +0 -1
  261. package/dist/chunk-YDWIHW6Q.js +0 -69
  262. package/dist/chunk-YDWIHW6Q.js.map +0 -1
  263. package/dist/collapsible.js.map +0 -1
  264. package/dist/combobox.js.map +0 -1
  265. package/dist/cta.js.map +0 -1
  266. package/dist/currency-selector.js.map +0 -1
  267. package/dist/date-picker.js.map +0 -1
  268. package/dist/details-card.js.map +0 -1
  269. package/dist/dialog.js.map +0 -1
  270. package/dist/dropdown-menu.js.map +0 -1
  271. package/dist/dropzone.js.map +0 -1
  272. package/dist/editorial-card.js.map +0 -1
  273. package/dist/empty-state.js.map +0 -1
  274. package/dist/field.js.map +0 -1
  275. package/dist/footer.js.map +0 -1
  276. package/dist/funnel-chart.js.map +0 -1
  277. package/dist/gallery-indicator.js.map +0 -1
  278. package/dist/heatmap-chart.js.map +0 -1
  279. package/dist/infotip.js.map +0 -1
  280. package/dist/input-group.js.map +0 -1
  281. package/dist/input-size-context.js.map +0 -1
  282. package/dist/input.js.map +0 -1
  283. package/dist/item.js.map +0 -1
  284. package/dist/kpi-card.js.map +0 -1
  285. package/dist/label.js.map +0 -1
  286. package/dist/line-chart.js.map +0 -1
  287. package/dist/logo.js.map +0 -1
  288. package/dist/map-indicator.js.map +0 -1
  289. package/dist/match.js.map +0 -1
  290. package/dist/media-gallery-hero.js.map +0 -1
  291. package/dist/media-player.js.map +0 -1
  292. package/dist/number-input.js.map +0 -1
  293. package/dist/page-header.js.map +0 -1
  294. package/dist/pagination.js.map +0 -1
  295. package/dist/password-input.js.map +0 -1
  296. package/dist/phone-input.js.map +0 -1
  297. package/dist/photo-gallery.js.map +0 -1
  298. package/dist/pie-chart.js.map +0 -1
  299. package/dist/popover.js.map +0 -1
  300. package/dist/price-tag.js.map +0 -1
  301. package/dist/progress.js.map +0 -1
  302. package/dist/property-listing-card.js.map +0 -1
  303. package/dist/radar-chart.js.map +0 -1
  304. package/dist/radio-group.js.map +0 -1
  305. package/dist/review-block.js.map +0 -1
  306. package/dist/rich-text-editor.js.map +0 -1
  307. package/dist/scatter-chart.js.map +0 -1
  308. package/dist/search-input.js.map +0 -1
  309. package/dist/select.js.map +0 -1
  310. package/dist/separator.js.map +0 -1
  311. package/dist/sheet.js.map +0 -1
  312. package/dist/sidebar.js.map +0 -1
  313. package/dist/size-context.js.map +0 -1
  314. package/dist/skeleton.js.map +0 -1
  315. package/dist/slider.js.map +0 -1
  316. package/dist/sparkline.js.map +0 -1
  317. package/dist/stepper.js.map +0 -1
  318. package/dist/switch.js.map +0 -1
  319. package/dist/tab-list.d.ts +0 -38
  320. package/dist/tab-list.js +0 -123
  321. package/dist/tab-list.js.map +0 -1
  322. package/dist/table.js.map +0 -1
  323. package/dist/tabs.js.map +0 -1
  324. package/dist/tag.js.map +0 -1
  325. package/dist/testimonial-block.js.map +0 -1
  326. package/dist/textarea.js.map +0 -1
  327. package/dist/time-picker.js.map +0 -1
  328. package/dist/toast.js.map +0 -1
  329. package/dist/tooltip.js.map +0 -1
  330. package/dist/tree-map.js.map +0 -1
  331. package/dist/waterfall-chart.js.map +0 -1
@@ -1,362 +1,201 @@
1
1
  "use client";
2
- import {
3
- ReviewBlock
4
- } from "./chunk-BUXCGZ6X.js";
5
- import {
6
- GalleryIndicator
7
- } from "./chunk-UJJNLGTM.js";
8
- import {
9
- buttonVariants
10
- } from "./chunk-B4H6RNDH.js";
11
- import {
12
- Carousel,
13
- CarouselContent,
14
- CarouselItem,
15
- useCarousel
16
- } from "./chunk-FZDSVMKY.js";
17
- import "./chunk-HL3ZSYES.js";
18
- import {
19
- cn
20
- } from "./chunk-Y4TTYVNE.js";
21
-
22
- // src/media-gallery-hero.tsx
23
- import { cva } from "class-variance-authority";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { buttonVariants } from "./button.js";
4
+ import { Carousel, CarouselContent, CarouselItem, useCarousel } from "./carousel.js";
5
+ import { GalleryIndicator } from "./gallery-indicator.js";
6
+ import { ReviewBlock } from "./review-block.js";
24
7
  import { Play } from "lucide-react";
25
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
26
- var mediaGalleryHeroVariants = cva(
27
- "relative isolate h-[350px] w-full overflow-hidden rounded-[32px] bg-surface-raised md:h-[380px] md:rounded-[40px] lg:h-[480px]"
28
- );
29
- var mediaGalleryImagesVariants = cva(
30
- "absolute inset-0 z-0 hidden size-full min-h-0 min-w-0 bg-surface-raised md:grid",
31
- {
32
- variants: {
33
- imageCount: {
34
- 1: "",
35
- 2: "gap-2 grid-cols-[minmax(0,3fr)_minmax(0,2fr)]",
36
- 3: "gap-2 grid-cols-[minmax(0,3fr)_minmax(0,2fr)] grid-rows-2",
37
- 4: "gap-2 grid-cols-[minmax(0,2fr)_minmax(0,1fr)_minmax(0,1fr)] grid-rows-2"
38
- }
39
- },
40
- defaultVariants: {
41
- imageCount: 4
42
- }
43
- }
44
- );
9
+ import { cva } from "class-variance-authority";
10
+ //#region src/media-gallery-hero.tsx
11
+ const mediaGalleryHeroVariants = cva("relative isolate h-[350px] w-full overflow-hidden rounded-[32px] bg-surface-raised md:h-[380px] md:rounded-[40px] lg:h-[480px]");
12
+ const mediaGalleryImagesVariants = cva("absolute inset-0 z-0 hidden size-full min-h-0 min-w-0 bg-surface-raised md:grid", {
13
+ variants: { imageCount: {
14
+ 1: "",
15
+ 2: "gap-2 grid-cols-[minmax(0,3fr)_minmax(0,2fr)]",
16
+ 3: "gap-2 grid-cols-[minmax(0,3fr)_minmax(0,2fr)] grid-rows-2",
17
+ 4: "gap-2 grid-cols-[minmax(0,2fr)_minmax(0,1fr)_minmax(0,1fr)] grid-rows-2"
18
+ } },
19
+ defaultVariants: { imageCount: 4 }
20
+ });
45
21
  function MediaGalleryHero({ className, ...props }) {
46
- return /* @__PURE__ */ jsx(
47
- "div",
48
- {
49
- className: cn(mediaGalleryHeroVariants(), className),
50
- "data-slot": "media-gallery-hero",
51
- ...props
52
- }
53
- );
22
+ return /* @__PURE__ */ jsx("div", {
23
+ className: cn(mediaGalleryHeroVariants(), className),
24
+ "data-slot": "media-gallery-hero",
25
+ ...props
26
+ });
54
27
  }
55
28
  function getVisibleImages(images, imageCount) {
56
- if (images.length === 0) {
57
- return [{}];
58
- }
59
- return images.slice(0, imageCount);
29
+ if (images.length === 0) return [{}];
30
+ return images.slice(0, imageCount);
60
31
  }
61
32
  function getTileClassName(index, imageCount) {
62
- if (index === 0) {
63
- return "md:col-start-1 md:row-span-2";
64
- }
65
- if (imageCount === 2 && index === 1) {
66
- return "md:col-start-2 md:row-span-2";
67
- }
68
- if (imageCount === 3 && index === 1) {
69
- return "md:col-start-2 md:row-start-1";
70
- }
71
- if (imageCount === 3 && index === 2) {
72
- return "md:col-start-2 md:row-start-2";
73
- }
74
- if (imageCount === 4 && index === 1) {
75
- return "md:col-start-2 md:row-span-2";
76
- }
77
- if (imageCount === 4 && index === 2) {
78
- return "md:col-start-3 md:row-start-1";
79
- }
80
- return "md:col-start-3 md:row-start-2";
33
+ if (index === 0) return "md:col-start-1 md:row-span-2";
34
+ if (imageCount === 2 && index === 1) return "md:col-start-2 md:row-span-2";
35
+ if (imageCount === 3 && index === 1) return "md:col-start-2 md:row-start-1";
36
+ if (imageCount === 3 && index === 2) return "md:col-start-2 md:row-start-2";
37
+ if (imageCount === 4 && index === 1) return "md:col-start-2 md:row-span-2";
38
+ if (imageCount === 4 && index === 2) return "md:col-start-3 md:row-start-1";
39
+ return "md:col-start-3 md:row-start-2";
81
40
  }
82
41
  function getMediaKey(image) {
83
- return image.id ?? image.src ?? image.alt ?? "placeholder";
42
+ return image.id ?? image.src ?? image.alt ?? "placeholder";
84
43
  }
85
- function MediaGalleryTile({
86
- className,
87
- image,
88
- index,
89
- isDesktopTile,
90
- onMediaClick,
91
- renderMedia
92
- }) {
93
- const content = renderMedia?.(image, index) ?? (image.src ? /* @__PURE__ */ jsx(
94
- "img",
95
- {
96
- alt: image.alt ?? "",
97
- className: "size-full object-cover",
98
- draggable: false,
99
- src: image.src
100
- }
101
- ) : /* @__PURE__ */ jsx("span", { className: "text-gdt-sm font-medium text-fg-caption-placeholder", children: "Media" }));
102
- const tileClassName = cn(
103
- "relative flex size-full min-h-0 min-w-0 items-center justify-center overflow-hidden rounded-[32px] bg-surface-raised md:rounded-[40px]",
104
- "[&>img]:size-full [&>img]:object-cover",
105
- isDesktopTile && "hidden md:flex",
106
- className
107
- );
108
- if (!onMediaClick) {
109
- return /* @__PURE__ */ jsx("div", { className: tileClassName, "data-slot": "media-gallery-tile", children: content });
110
- }
111
- return /* @__PURE__ */ jsx(
112
- "button",
113
- {
114
- "aria-label": `Open media ${index + 1}`,
115
- className: cn(tileClassName, "cursor-pointer text-left"),
116
- "data-slot": "media-gallery-tile",
117
- onClick: () => onMediaClick(index),
118
- type: "button",
119
- children: content
120
- }
121
- );
44
+ function MediaGalleryTile({ className, image, index, isDesktopTile, onMediaClick, renderMedia }) {
45
+ const content = renderMedia?.(image, index) ?? (image.src ? /* @__PURE__ */ jsx("img", {
46
+ alt: image.alt ?? "",
47
+ className: "size-full object-cover",
48
+ draggable: false,
49
+ src: image.src
50
+ }) : /* @__PURE__ */ jsx("span", {
51
+ className: "text-gdt-sm font-medium text-fg-caption-placeholder",
52
+ children: "Media"
53
+ }));
54
+ const tileClassName = cn("relative flex size-full min-h-0 min-w-0 items-center justify-center overflow-hidden rounded-[32px] bg-surface-raised md:rounded-[40px]", "[&>img]:size-full [&>img]:object-cover", isDesktopTile && "hidden md:flex", className);
55
+ if (!onMediaClick) return /* @__PURE__ */ jsx("div", {
56
+ className: tileClassName,
57
+ "data-slot": "media-gallery-tile",
58
+ children: content
59
+ });
60
+ return /* @__PURE__ */ jsx("button", {
61
+ "aria-label": `Open media ${index + 1}`,
62
+ className: cn(tileClassName, "cursor-pointer text-left"),
63
+ "data-slot": "media-gallery-tile",
64
+ onClick: () => onMediaClick(index),
65
+ type: "button",
66
+ children: content
67
+ });
122
68
  }
123
69
  function MobileGalleryCounter({ total }) {
124
- const { selectedIndex } = useCarousel();
125
- return /* @__PURE__ */ jsx(
126
- GalleryIndicator,
127
- {
128
- currentPhoto: selectedIndex + 1,
129
- size: "sm",
130
- totalPhotos: total
131
- }
132
- );
70
+ const { selectedIndex } = useCarousel();
71
+ return /* @__PURE__ */ jsx(GalleryIndicator, {
72
+ currentPhoto: selectedIndex + 1,
73
+ size: "sm",
74
+ totalPhotos: total
75
+ });
133
76
  }
134
- function MobileMediaCarousel({
135
- currentMedia,
136
- images,
137
- mediaTotal,
138
- onMediaClick,
139
- renderMedia,
140
- showMobileIndicator
141
- }) {
142
- const carouselImages = images.length > 0 ? images : [{}];
143
- return /* @__PURE__ */ jsxs(
144
- Carousel,
145
- {
146
- className: "absolute inset-0 z-0 block size-full rounded-[32px] bg-surface-raised md:hidden",
147
- imageSize: "full",
148
- opts: {
149
- align: "start",
150
- loop: carouselImages.length > 1,
151
- startIndex: Math.max(0, currentMedia - 1)
152
- },
153
- children: [
154
- /* @__PURE__ */ jsx(CarouselContent, { children: carouselImages.map((image, index) => /* @__PURE__ */ jsx(CarouselItem, { className: "h-full", children: /* @__PURE__ */ jsx(
155
- MediaGalleryTile,
156
- {
157
- className: "rounded-[32px]",
158
- image,
159
- index,
160
- onMediaClick,
161
- renderMedia
162
- }
163
- ) }, getMediaKey(image))) }),
164
- showMobileIndicator ? /* @__PURE__ */ jsx("div", { className: "absolute right-4 bottom-4 z-10", children: /* @__PURE__ */ jsx(MobileGalleryCounter, { total: mediaTotal }) }) : null
165
- ]
166
- }
167
- );
77
+ function MobileMediaCarousel({ currentMedia, images, mediaTotal, onMediaClick, renderMedia, showMobileIndicator }) {
78
+ const carouselImages = images.length > 0 ? images : [{}];
79
+ return /* @__PURE__ */ jsxs(Carousel, {
80
+ className: "absolute inset-0 z-0 block size-full rounded-[32px] bg-surface-raised md:hidden",
81
+ imageSize: "full",
82
+ opts: {
83
+ align: "start",
84
+ loop: carouselImages.length > 1,
85
+ startIndex: Math.max(0, currentMedia - 1)
86
+ },
87
+ children: [/* @__PURE__ */ jsx(CarouselContent, { children: carouselImages.map((image, index) => /* @__PURE__ */ jsx(CarouselItem, {
88
+ className: "h-full",
89
+ children: /* @__PURE__ */ jsx(MediaGalleryTile, {
90
+ className: "rounded-[32px]",
91
+ image,
92
+ index,
93
+ onMediaClick,
94
+ renderMedia
95
+ })
96
+ }, getMediaKey(image))) }), showMobileIndicator ? /* @__PURE__ */ jsx("div", {
97
+ className: "absolute right-4 bottom-4 z-10",
98
+ children: /* @__PURE__ */ jsx(MobileGalleryCounter, { total: mediaTotal })
99
+ }) : null]
100
+ });
168
101
  }
169
- function MediaGalleryImages({
170
- className,
171
- currentMedia = 1,
172
- imageCount = 4,
173
- images,
174
- onMediaClick,
175
- renderMedia,
176
- showMobileIndicator = true,
177
- totalMediaCount,
178
- ...props
179
- }) {
180
- const resolvedImageCount = imageCount ?? 4;
181
- const mediaTotal = totalMediaCount ?? Math.max(images.length, 1);
182
- const visibleImages = getVisibleImages(images, resolvedImageCount);
183
- return /* @__PURE__ */ jsxs(Fragment, { children: [
184
- /* @__PURE__ */ jsx(
185
- MobileMediaCarousel,
186
- {
187
- currentMedia,
188
- images,
189
- mediaTotal,
190
- onMediaClick,
191
- renderMedia,
192
- showMobileIndicator
193
- }
194
- ),
195
- /* @__PURE__ */ jsx(
196
- "div",
197
- {
198
- className: cn(
199
- mediaGalleryImagesVariants({ imageCount: resolvedImageCount }),
200
- className
201
- ),
202
- "data-image-count": resolvedImageCount,
203
- "data-slot": "media-gallery-images",
204
- ...props,
205
- children: visibleImages.map((image, index) => /* @__PURE__ */ jsx(
206
- MediaGalleryTile,
207
- {
208
- className: getTileClassName(index, resolvedImageCount),
209
- image,
210
- index,
211
- isDesktopTile: true,
212
- onMediaClick,
213
- renderMedia
214
- },
215
- getMediaKey(image)
216
- ))
217
- }
218
- )
219
- ] });
102
+ function MediaGalleryImages({ className, currentMedia = 1, imageCount = 4, images, onMediaClick, renderMedia, showMobileIndicator = true, totalMediaCount, ...props }) {
103
+ const resolvedImageCount = imageCount ?? 4;
104
+ const mediaTotal = totalMediaCount ?? Math.max(images.length, 1);
105
+ const visibleImages = getVisibleImages(images, resolvedImageCount);
106
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MobileMediaCarousel, {
107
+ currentMedia,
108
+ images,
109
+ mediaTotal,
110
+ onMediaClick,
111
+ renderMedia,
112
+ showMobileIndicator
113
+ }), /* @__PURE__ */ jsx("div", {
114
+ className: cn(mediaGalleryImagesVariants({ imageCount: resolvedImageCount }), className),
115
+ "data-image-count": resolvedImageCount,
116
+ "data-slot": "media-gallery-images",
117
+ ...props,
118
+ children: visibleImages.map((image, index) => /* @__PURE__ */ jsx(MediaGalleryTile, {
119
+ className: getTileClassName(index, resolvedImageCount),
120
+ image,
121
+ index,
122
+ isDesktopTile: true,
123
+ onMediaClick,
124
+ renderMedia
125
+ }, getMediaKey(image)))
126
+ })] });
220
127
  }
221
- function MediaGalleryVideo({
222
- alt = "",
223
- autoPlay,
224
- className,
225
- controls,
226
- label = "Play Video",
227
- loop,
228
- muted,
229
- onPlayClick,
230
- playsInline = true,
231
- poster,
232
- renderMedia,
233
- src,
234
- ...props
235
- }) {
236
- const content = renderMedia?.() ?? (src ? /* @__PURE__ */ jsx(
237
- "video",
238
- {
239
- autoPlay,
240
- className: "size-full object-cover",
241
- controls,
242
- loop,
243
- muted,
244
- playsInline,
245
- poster,
246
- src
247
- }
248
- ) : poster ? /* @__PURE__ */ jsx(
249
- "img",
250
- {
251
- alt,
252
- className: "size-full object-cover",
253
- draggable: false,
254
- src: poster
255
- }
256
- ) : /* @__PURE__ */ jsx("span", { className: "text-gdt-sm font-medium text-fg-caption-placeholder", children: "Video" }));
257
- return /* @__PURE__ */ jsxs(
258
- "div",
259
- {
260
- className: cn(
261
- "absolute inset-0 z-0 flex size-full items-center justify-center overflow-hidden rounded-[32px] bg-surface-raised md:rounded-[40px]",
262
- "[&>img]:size-full [&>img]:object-cover [&>video]:size-full [&>video]:object-cover",
263
- className
264
- ),
265
- "data-slot": "media-gallery-video",
266
- ...props,
267
- children: [
268
- content,
269
- controls ? null : /* @__PURE__ */ jsx(
270
- "button",
271
- {
272
- "aria-label": label,
273
- className: cn(
274
- buttonVariants({
275
- variant: "glass-overlay",
276
- size: "icon-xl"
277
- }),
278
- "absolute top-1/2 left-1/2 z-10 size-20 -translate-x-1/2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2 md:size-24"
279
- ),
280
- "data-slot": "media-gallery-video-play",
281
- onClick: onPlayClick,
282
- type: "button",
283
- children: /* @__PURE__ */ jsx(Play, { "aria-hidden": "true", className: "ml-0.5", fill: "currentColor" })
284
- }
285
- )
286
- ]
287
- }
288
- );
128
+ function MediaGalleryVideo({ alt = "", autoPlay, className, controls, label = "Play Video", loop, muted, onPlayClick, playsInline = true, poster, renderMedia, src, ...props }) {
129
+ const content = renderMedia?.() ?? (src ? /* @__PURE__ */ jsx("video", {
130
+ autoPlay,
131
+ className: "size-full object-cover",
132
+ controls,
133
+ loop,
134
+ muted,
135
+ playsInline,
136
+ poster,
137
+ src
138
+ }) : poster ? /* @__PURE__ */ jsx("img", {
139
+ alt,
140
+ className: "size-full object-cover",
141
+ draggable: false,
142
+ src: poster
143
+ }) : /* @__PURE__ */ jsx("span", {
144
+ className: "text-gdt-sm font-medium text-fg-caption-placeholder",
145
+ children: "Video"
146
+ }));
147
+ return /* @__PURE__ */ jsxs("div", {
148
+ className: cn("absolute inset-0 z-0 flex size-full items-center justify-center overflow-hidden rounded-[32px] bg-surface-raised md:rounded-[40px]", "[&>img]:size-full [&>img]:object-cover [&>video]:size-full [&>video]:object-cover", className),
149
+ "data-slot": "media-gallery-video",
150
+ ...props,
151
+ children: [content, controls ? null : /* @__PURE__ */ jsx("button", {
152
+ "aria-label": label,
153
+ className: cn(buttonVariants({
154
+ variant: "glass-overlay",
155
+ size: "icon-xl"
156
+ }), "absolute top-1/2 left-1/2 z-10 size-20 -translate-x-1/2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2 md:size-24"),
157
+ "data-slot": "media-gallery-video-play",
158
+ onClick: onPlayClick,
159
+ type: "button",
160
+ children: /* @__PURE__ */ jsx(Play, {
161
+ "aria-hidden": "true",
162
+ className: "ml-0.5",
163
+ fill: "currentColor"
164
+ })
165
+ })]
166
+ });
289
167
  }
290
- function MediaGalleryReview({
291
- bordered = false,
292
- className,
293
- size = "xs",
294
- ...props
295
- }) {
296
- return /* @__PURE__ */ jsx(
297
- ReviewBlock,
298
- {
299
- bordered,
300
- className: cn("absolute top-4 left-4 z-10", className),
301
- size,
302
- ...props
303
- }
304
- );
168
+ function MediaGalleryReview({ bordered = false, className, size = "xs", ...props }) {
169
+ return /* @__PURE__ */ jsx(ReviewBlock, {
170
+ bordered,
171
+ className: cn("absolute top-4 left-4 z-10", className),
172
+ size,
173
+ ...props
174
+ });
305
175
  }
306
- function MediaGalleryIndicator({
307
- "aria-label": ariaLabel,
308
- className,
309
- label,
310
- onClick,
311
- size = "md",
312
- totalMediaCount = 35,
313
- ...props
314
- }) {
315
- const indicatorLabel = label ?? `View All ${totalMediaCount.toLocaleString()} Photos`;
316
- if (onClick) {
317
- return /* @__PURE__ */ jsx(
318
- "button",
319
- {
320
- "aria-label": ariaLabel ?? indicatorLabel,
321
- className: cn(
322
- "absolute right-4 bottom-4 z-10 hidden rounded-full md:block",
323
- className
324
- ),
325
- "data-slot": "media-gallery-indicator",
326
- onClick,
327
- type: "button",
328
- ...props,
329
- children: /* @__PURE__ */ jsx(
330
- GalleryIndicator,
331
- {
332
- "aria-hidden": "true",
333
- label: indicatorLabel,
334
- size
335
- }
336
- )
337
- }
338
- );
339
- }
340
- return /* @__PURE__ */ jsx(
341
- "div",
342
- {
343
- className: cn(
344
- "absolute right-4 bottom-4 z-10 hidden md:block",
345
- className
346
- ),
347
- "data-slot": "media-gallery-indicator",
348
- children: /* @__PURE__ */ jsx(GalleryIndicator, { label: indicatorLabel, size })
349
- }
350
- );
176
+ function MediaGalleryIndicator({ "aria-label": ariaLabel, className, label, onClick, size = "md", totalMediaCount = 35, ...props }) {
177
+ const indicatorLabel = label ?? `View All ${totalMediaCount.toLocaleString()} Photos`;
178
+ if (onClick) return /* @__PURE__ */ jsx("button", {
179
+ "aria-label": ariaLabel ?? indicatorLabel,
180
+ className: cn("absolute right-4 bottom-4 z-10 hidden rounded-full md:block", className),
181
+ "data-slot": "media-gallery-indicator",
182
+ onClick,
183
+ type: "button",
184
+ ...props,
185
+ children: /* @__PURE__ */ jsx(GalleryIndicator, {
186
+ "aria-hidden": "true",
187
+ label: indicatorLabel,
188
+ size
189
+ })
190
+ });
191
+ return /* @__PURE__ */ jsx("div", {
192
+ className: cn("absolute right-4 bottom-4 z-10 hidden md:block", className),
193
+ "data-slot": "media-gallery-indicator",
194
+ children: /* @__PURE__ */ jsx(GalleryIndicator, {
195
+ label: indicatorLabel,
196
+ size
197
+ })
198
+ });
351
199
  }
352
- export {
353
- MediaGalleryHero,
354
- MediaGalleryImages,
355
- MediaGalleryIndicator,
356
- MediaGalleryReview,
357
- MediaGalleryTile,
358
- MediaGalleryVideo,
359
- mediaGalleryHeroVariants,
360
- mediaGalleryImagesVariants
361
- };
362
- //# sourceMappingURL=media-gallery-hero.js.map
200
+ //#endregion
201
+ export { MediaGalleryHero, MediaGalleryImages, MediaGalleryIndicator, MediaGalleryReview, MediaGalleryTile, MediaGalleryVideo, mediaGalleryHeroVariants, mediaGalleryImagesVariants };
@@ -1,11 +1,11 @@
1
- import { Slider } from '@base-ui/react/slider';
2
- import { MediaProvider } from 'media-chrome/react/media-store';
3
- import * as React from 'react';
4
-
1
+ import * as React from "react";
2
+ import { Slider } from "@base-ui/react/slider";
3
+ import { MediaProvider } from "media-chrome/react/media-store";
4
+ //#region src/media-player.d.ts
5
5
  type MediaProviderProps = React.ComponentProps<typeof MediaProvider>;
6
6
  type MediaPlayerProps = React.ComponentProps<"div"> & {
7
- audio?: boolean;
8
- mediaStore?: MediaProviderProps["mediaStore"];
7
+ audio?: boolean;
8
+ mediaStore?: MediaProviderProps["mediaStore"];
9
9
  };
10
10
  type MediaPlayerControlsProps = React.ComponentProps<"div">;
11
11
  type MediaPlayerVideoProps = React.ComponentProps<"video">;
@@ -13,26 +13,26 @@ type MediaPlayerAudioProps = React.ComponentProps<"audio">;
13
13
  type MediaPlayerControlsOverlayProps = React.ComponentProps<"div">;
14
14
  type MediaPlayerPlayProps = React.ComponentProps<"button">;
15
15
  type MediaPlayerSeekButtonProps = React.ComponentProps<"button"> & {
16
- seekOffset?: number;
16
+ seekOffset?: number;
17
17
  };
18
18
  type MediaPlayerVolumeProps = React.ComponentProps<"button"> & {
19
- expandable?: boolean;
20
- rangeClassName?: string;
19
+ expandable?: boolean;
20
+ rangeClassName?: string;
21
21
  };
22
22
  type MediaPlayerPlaybackSpeedProps = React.ComponentProps<"button"> & {
23
- rates?: number[];
23
+ rates?: number[];
24
24
  };
25
25
  type MediaPlayerCaptionsProps = React.ComponentProps<"button">;
26
26
  type MediaPlayerSettingsProps = React.ComponentProps<"button"> & {
27
- rates?: number[];
27
+ rates?: number[];
28
28
  };
29
29
  type MediaPlayerTimeProps = React.ComponentProps<"span"> & {
30
- showDuration?: boolean;
30
+ showDuration?: boolean;
31
31
  };
32
32
  type MediaPlayerSeekProps = Omit<Slider.Root.Props<number>, "defaultValue" | "onValueChange" | "onValueCommitted" | "value"> & {
33
- onValueChange?: (value: number) => void;
34
- step?: number;
35
- withTime?: boolean;
33
+ onValueChange?: (value: number) => void;
34
+ step?: number;
35
+ withTime?: boolean;
36
36
  };
37
37
  type MediaPlayerLoopProps = React.ComponentProps<"button">;
38
38
  type MediaPlayerPiPProps = React.ComponentProps<"button">;
@@ -56,5 +56,5 @@ declare function MediaPlayerLoop({ className, onClick, ...props }: MediaPlayerLo
56
56
  declare function MediaPlayerPiP({ className, disabled, onClick, ...props }: MediaPlayerPiPProps): React.JSX.Element;
57
57
  declare function MediaPlayerFullscreen({ className, disabled, onClick, ...props }: MediaPlayerFullscreenProps): React.JSX.Element;
58
58
  declare function MediaPlayerError({ children, className, ...props }: MediaPlayerErrorProps): React.JSX.Element | null;
59
-
60
- export { MediaPlayer, MediaPlayerAudio, MediaPlayerCaptions, MediaPlayerControls, MediaPlayerControlsOverlay, MediaPlayerError, MediaPlayerFullscreen, MediaPlayerLoop, MediaPlayerPiP, MediaPlayerPlay, MediaPlayerPlaybackSpeed, MediaPlayerSeek, MediaPlayerSeekBackward, MediaPlayerSeekForward, MediaPlayerSettings, MediaPlayerTime, MediaPlayerVideo, MediaPlayerVolume };
59
+ //#endregion
60
+ export { MediaPlayer, MediaPlayerAudio, MediaPlayerCaptions, MediaPlayerControls, MediaPlayerControlsOverlay, MediaPlayerError, MediaPlayerFullscreen, MediaPlayerLoop, MediaPlayerPiP, MediaPlayerPlay, MediaPlayerPlaybackSpeed, MediaPlayerSeek, MediaPlayerSeekBackward, MediaPlayerSeekForward, MediaPlayerSettings, MediaPlayerTime, MediaPlayerVideo, MediaPlayerVolume };