@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,377 @@
1
+ import {
2
+ buttonVariants
3
+ } from "./chunk-B4H6RNDH.js";
4
+ import {
5
+ Avatar,
6
+ AvatarFallback,
7
+ AvatarImage
8
+ } from "./chunk-QKAQZ2GU.js";
9
+ import "./chunk-HL3ZSYES.js";
10
+ import {
11
+ cn
12
+ } from "./chunk-Y4TTYVNE.js";
13
+
14
+ // src/testimonial-block.tsx
15
+ import { mergeProps } from "@base-ui/react/merge-props";
16
+ import { useRender } from "@base-ui/react/use-render";
17
+ import { cva } from "class-variance-authority";
18
+ import { ArrowUpRight, Play, Star } from "lucide-react";
19
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
+ var STAR_INDEXES = [0, 1, 2, 3, 4];
21
+ var testimonialBlockVariants = cva(
22
+ "group/testimonial-block relative flex w-full min-w-0 overflow-hidden rounded-xl text-fg-primary shadow-1 transition-[background-color,border-color,box-shadow,transform]",
23
+ {
24
+ variants: {
25
+ tone: {
26
+ neutral: "border border-line-subtle bg-surface hover:bg-surface-raised hover:shadow-2 active:bg-surface-raised active:shadow-none",
27
+ brand: "border border-transparent bg-surface-brand text-fg-on-brand hover:bg-action-primary-hover hover:shadow-2 active:bg-action-primary-pressed active:shadow-none"
28
+ },
29
+ orientation: {
30
+ vertical: "flex-col",
31
+ horizontal: "flex-row"
32
+ },
33
+ size: {
34
+ sm: "gap-3.5 p-5",
35
+ md: "gap-4 p-7",
36
+ lg: "gap-5 p-8.5 rounded-2xl"
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ orientation: "vertical",
41
+ size: "md",
42
+ tone: "neutral"
43
+ }
44
+ }
45
+ );
46
+ function TestimonialBlock({
47
+ className,
48
+ orientation = "vertical",
49
+ render,
50
+ size = "md",
51
+ tone = "neutral",
52
+ ...props
53
+ }) {
54
+ return useRender({
55
+ defaultTagName: "article",
56
+ props: mergeProps(
57
+ {
58
+ className: cn(
59
+ testimonialBlockVariants({ orientation, size, tone }),
60
+ className
61
+ )
62
+ },
63
+ props
64
+ ),
65
+ render,
66
+ state: {
67
+ orientation,
68
+ size,
69
+ slot: "testimonial-block",
70
+ tone
71
+ }
72
+ });
73
+ }
74
+ function TestimonialBlockContent({
75
+ className,
76
+ render,
77
+ ...props
78
+ }) {
79
+ return useRender({
80
+ defaultTagName: "div",
81
+ props: mergeProps(
82
+ {
83
+ className: cn(
84
+ "flex min-w-0 flex-1 flex-col gap-gdt-md group-data-[size=lg]/testimonial-block:gap-gdt-lg",
85
+ className
86
+ )
87
+ },
88
+ props
89
+ ),
90
+ render,
91
+ state: {
92
+ slot: "testimonial-block-content"
93
+ }
94
+ });
95
+ }
96
+ function TestimonialBlockMedia({
97
+ className,
98
+ render,
99
+ ...props
100
+ }) {
101
+ return useRender({
102
+ defaultTagName: "div",
103
+ props: mergeProps(
104
+ {
105
+ className: cn(
106
+ "relative isolate flex min-w-0 items-center justify-center overflow-hidden rounded-2xl bg-surface-raised",
107
+ "min-h-32 group-data-[size=sm]/testimonial-block:min-h-28 group-data-[size=lg]/testimonial-block:min-h-44",
108
+ "group-data-[orientation=horizontal]/testimonial-block:w-2/5 group-data-[orientation=horizontal]/testimonial-block:shrink-0",
109
+ "[&>img]:absolute [&>img]:inset-0 [&>img]:size-full [&>img]:object-cover",
110
+ className
111
+ )
112
+ },
113
+ props
114
+ ),
115
+ render,
116
+ state: {
117
+ slot: "testimonial-block-media"
118
+ }
119
+ });
120
+ }
121
+ function TestimonialBlockPlayButton({
122
+ "aria-label": ariaLabel = "Play testimonial",
123
+ children,
124
+ className,
125
+ render,
126
+ ...props
127
+ }) {
128
+ return useRender({
129
+ defaultTagName: "button",
130
+ props: mergeProps(
131
+ {
132
+ "aria-label": ariaLabel,
133
+ children: children ?? /* @__PURE__ */ jsx(Play, { "aria-hidden": "true", fill: "currentColor" }),
134
+ className: cn(
135
+ buttonVariants({ variant: "glass-overlay", size: "icon-lg" }),
136
+ "size-12 group-data-[size=lg]/testimonial-block:size-14",
137
+ "[&>svg]:ml-0.5 [&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6",
138
+ className
139
+ )
140
+ },
141
+ props
142
+ ),
143
+ render,
144
+ state: {
145
+ slot: "testimonial-block-play-button"
146
+ }
147
+ });
148
+ }
149
+ function clampRating(rating) {
150
+ return Math.min(5, Math.max(0, rating));
151
+ }
152
+ function getInitials(name) {
153
+ return name.trim().split(/\s+/).slice(0, 2).map((part) => part[0]?.toUpperCase()).join("");
154
+ }
155
+ function formatRating(rating) {
156
+ return clampRating(rating).toFixed(1);
157
+ }
158
+ function formatReviewSource({
159
+ reviewLabel,
160
+ source,
161
+ totalReviews
162
+ }) {
163
+ const label = reviewLabel ?? (totalReviews === 1 ? "review" : "reviews");
164
+ if (source && typeof totalReviews === "number") {
165
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
166
+ totalReviews.toLocaleString(),
167
+ " ",
168
+ source,
169
+ " ",
170
+ label
171
+ ] });
172
+ }
173
+ if (source) {
174
+ return source;
175
+ }
176
+ if (typeof totalReviews === "number") {
177
+ return `${totalReviews.toLocaleString()} ${label}`;
178
+ }
179
+ return null;
180
+ }
181
+ function TestimonialBlockRating({
182
+ className,
183
+ rating,
184
+ render,
185
+ reviewLabel,
186
+ showScore = true,
187
+ source,
188
+ totalReviews,
189
+ ...props
190
+ }) {
191
+ const formattedRating = formatRating(rating);
192
+ const roundedRating = Math.round(clampRating(rating));
193
+ const reviewSource = formatReviewSource({
194
+ reviewLabel,
195
+ source,
196
+ totalReviews
197
+ });
198
+ return useRender({
199
+ defaultTagName: "div",
200
+ props: mergeProps(
201
+ {
202
+ className: cn(
203
+ "flex min-w-0 flex-wrap items-center gap-gdt-sm text-fg-primary group-data-[tone=brand]/testimonial-block:text-fg-on-brand",
204
+ className
205
+ ),
206
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
207
+ showScore ? /* @__PURE__ */ jsx("span", { className: "font-bold text-gdt-lg group-data-[size=md]/testimonial-block:text-gdt-xl group-data-[size=lg]/testimonial-block:text-gdt-h5", children: formattedRating }) : null,
208
+ /* @__PURE__ */ jsx(
209
+ "span",
210
+ {
211
+ className: cn(
212
+ "inline-flex shrink-0 items-center gap-0.5 text-surface-accent group-data-[tone=brand]/testimonial-block:text-fg-on-brand",
213
+ "[&>svg]:size-4.5 group-data-[size=md]/testimonial-block:[&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6"
214
+ ),
215
+ children: STAR_INDEXES.map((index) => /* @__PURE__ */ jsx(
216
+ Star,
217
+ {
218
+ "aria-hidden": "true",
219
+ fill: index < roundedRating ? "currentColor" : "none"
220
+ },
221
+ index
222
+ ))
223
+ }
224
+ ),
225
+ reviewSource ? /* @__PURE__ */ jsx("span", { className: "text-gdt-xs text-fg-secondary group-data-[size=md]/testimonial-block:text-gdt-sm group-data-[size=lg]/testimonial-block:text-gdt-md group-data-[tone=brand]/testimonial-block:text-fg-on-brand", children: reviewSource }) : null
226
+ ] })
227
+ },
228
+ props
229
+ ),
230
+ render,
231
+ state: {
232
+ rating: formattedRating,
233
+ slot: "testimonial-block-rating"
234
+ }
235
+ });
236
+ }
237
+ function TestimonialBlockQuote({
238
+ className,
239
+ render,
240
+ ...props
241
+ }) {
242
+ return useRender({
243
+ defaultTagName: "blockquote",
244
+ props: mergeProps(
245
+ {
246
+ className: cn(
247
+ "text-gdt-sm text-fg-primary group-data-[size=md]/testimonial-block:text-gdt-md group-data-[size=lg]/testimonial-block:text-gdt-lg",
248
+ "group-data-[tone=brand]/testimonial-block:text-fg-on-brand",
249
+ className
250
+ )
251
+ },
252
+ props
253
+ ),
254
+ render,
255
+ state: {
256
+ slot: "testimonial-block-quote"
257
+ }
258
+ });
259
+ }
260
+ function TestimonialBlockFooter({
261
+ className,
262
+ render,
263
+ ...props
264
+ }) {
265
+ return useRender({
266
+ defaultTagName: "div",
267
+ props: mergeProps(
268
+ {
269
+ className: cn(
270
+ "mt-auto flex min-w-0 items-center gap-gdt-md",
271
+ className
272
+ )
273
+ },
274
+ props
275
+ ),
276
+ render,
277
+ state: {
278
+ slot: "testimonial-block-footer"
279
+ }
280
+ });
281
+ }
282
+ function TestimonialBlockReviewer({
283
+ className,
284
+ name,
285
+ photo,
286
+ render,
287
+ reviewerRole,
288
+ ...props
289
+ }) {
290
+ return useRender({
291
+ defaultTagName: "div",
292
+ props: mergeProps(
293
+ {
294
+ className: cn("flex min-w-0 flex-1 items-center gap-gdt-sm", className),
295
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
296
+ /* @__PURE__ */ jsxs(
297
+ Avatar,
298
+ {
299
+ size: "md",
300
+ className: cn(
301
+ "size-10 border border-line-subtle bg-canvas",
302
+ "group-data-[size=sm]/testimonial-block:size-8 group-data-[size=lg]/testimonial-block:size-12",
303
+ "group-data-[tone=brand]/testimonial-block:border-transparent"
304
+ ),
305
+ children: [
306
+ photo ? /* @__PURE__ */ jsx(AvatarImage, { alt: name, src: photo }) : null,
307
+ /* @__PURE__ */ jsx(
308
+ AvatarFallback,
309
+ {
310
+ className: cn(
311
+ "bg-canvas text-fg-secondary",
312
+ "group-data-[tone=brand]/testimonial-block:bg-canvas group-data-[tone=brand]/testimonial-block:text-fg-secondary"
313
+ ),
314
+ children: getInitials(name)
315
+ }
316
+ )
317
+ ]
318
+ }
319
+ ),
320
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
321
+ /* @__PURE__ */ jsx("span", { className: "block truncate font-bold text-gdt-sm text-fg-primary group-data-[size=md]/testimonial-block:text-gdt-md group-data-[size=lg]/testimonial-block:text-gdt-lg group-data-[tone=brand]/testimonial-block:text-fg-on-brand", children: name }),
322
+ reviewerRole ? /* @__PURE__ */ jsx("span", { className: "block truncate text-gdt-xs text-fg-secondary group-data-[size=md]/testimonial-block:text-gdt-sm group-data-[size=lg]/testimonial-block:text-gdt-md group-data-[tone=brand]/testimonial-block:text-fg-on-brand/85", children: reviewerRole }) : null
323
+ ] })
324
+ ] })
325
+ },
326
+ props
327
+ ),
328
+ render,
329
+ state: {
330
+ slot: "testimonial-block-reviewer"
331
+ }
332
+ });
333
+ }
334
+ function TestimonialBlockAction({
335
+ "aria-label": ariaLabel = "Open review",
336
+ children,
337
+ className,
338
+ render,
339
+ ...props
340
+ }) {
341
+ return useRender({
342
+ defaultTagName: "a",
343
+ props: mergeProps(
344
+ {
345
+ "aria-label": ariaLabel,
346
+ children: children ?? /* @__PURE__ */ jsx(ArrowUpRight, { "aria-hidden": "true" }),
347
+ className: cn(
348
+ "inline-flex shrink-0 items-center justify-center rounded-full bg-action-primary text-fg-on-brand transition-[background-color,box-shadow,transform]",
349
+ "size-10 hover:bg-action-primary-hover active:scale-95 active:bg-action-primary-pressed",
350
+ "group-data-[size=md]/testimonial-block:size-12 group-data-[size=lg]/testimonial-block:size-14",
351
+ "group-data-[tone=brand]/testimonial-block:bg-canvas group-data-[tone=brand]/testimonial-block:text-fg-brand group-data-[tone=brand]/testimonial-block:hover:bg-surface",
352
+ "focus-visible:outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
353
+ "[&>svg]:size-5",
354
+ className
355
+ )
356
+ },
357
+ props
358
+ ),
359
+ render,
360
+ state: {
361
+ slot: "testimonial-block-action"
362
+ }
363
+ });
364
+ }
365
+ export {
366
+ TestimonialBlock,
367
+ TestimonialBlockAction,
368
+ TestimonialBlockContent,
369
+ TestimonialBlockFooter,
370
+ TestimonialBlockMedia,
371
+ TestimonialBlockPlayButton,
372
+ TestimonialBlockQuote,
373
+ TestimonialBlockRating,
374
+ TestimonialBlockReviewer,
375
+ testimonialBlockVariants
376
+ };
377
+ //# sourceMappingURL=testimonial-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testimonial-block.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ArrowUpRight, Play, Star } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\";\nimport { buttonVariants } from \"./button\";\nimport { cn } from \"./lib/cn\";\n\nconst STAR_INDEXES = [0, 1, 2, 3, 4] as const;\n\nconst testimonialBlockVariants = cva(\n\t\"group/testimonial-block relative flex w-full min-w-0 overflow-hidden rounded-xl text-fg-primary shadow-1 transition-[background-color,border-color,box-shadow,transform]\",\n\t{\n\t\tvariants: {\n\t\t\ttone: {\n\t\t\t\tneutral:\n\t\t\t\t\t\"border border-line-subtle bg-surface hover:bg-surface-raised hover:shadow-2 active:bg-surface-raised active:shadow-none\",\n\t\t\t\tbrand:\n\t\t\t\t\t\"border border-transparent bg-surface-brand text-fg-on-brand hover:bg-action-primary-hover hover:shadow-2 active:bg-action-primary-pressed active:shadow-none\",\n\t\t\t},\n\t\t\torientation: {\n\t\t\t\tvertical: \"flex-col\",\n\t\t\t\thorizontal: \"flex-row\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tsm: \"gap-3.5 p-5\",\n\t\t\t\tmd: \"gap-4 p-7\",\n\t\t\t\tlg: \"gap-5 p-8.5 rounded-2xl\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\torientation: \"vertical\",\n\t\t\tsize: \"md\",\n\t\t\ttone: \"neutral\",\n\t\t},\n\t},\n);\n\ntype TestimonialBlockProps = useRender.ComponentProps<\"article\"> &\n\tVariantProps<typeof testimonialBlockVariants>;\n\nfunction TestimonialBlock({\n\tclassName,\n\torientation = \"vertical\",\n\trender,\n\tsize = \"md\",\n\ttone = \"neutral\",\n\t...props\n}: TestimonialBlockProps) {\n\treturn useRender({\n\t\tdefaultTagName: \"article\",\n\t\tprops: mergeProps<\"article\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\ttestimonialBlockVariants({ orientation, size, tone }),\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\torientation,\n\t\t\tsize,\n\t\t\tslot: \"testimonial-block\",\n\t\t\ttone,\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockContent({\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"div\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"flex min-w-0 flex-1 flex-col gap-gdt-md group-data-[size=lg]/testimonial-block:gap-gdt-lg\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-content\",\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockMedia({\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"div\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"relative isolate flex min-w-0 items-center justify-center overflow-hidden rounded-2xl bg-surface-raised\",\n\t\t\t\t\t\"min-h-32 group-data-[size=sm]/testimonial-block:min-h-28 group-data-[size=lg]/testimonial-block:min-h-44\",\n\t\t\t\t\t\"group-data-[orientation=horizontal]/testimonial-block:w-2/5 group-data-[orientation=horizontal]/testimonial-block:shrink-0\",\n\t\t\t\t\t\"[&>img]:absolute [&>img]:inset-0 [&>img]:size-full [&>img]:object-cover\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-media\",\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockPlayButton({\n\t\"aria-label\": ariaLabel = \"Play testimonial\",\n\tchildren,\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"button\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"button\",\n\t\tprops: mergeProps<\"button\">(\n\t\t\t{\n\t\t\t\t\"aria-label\": ariaLabel,\n\t\t\t\tchildren: children ?? <Play aria-hidden=\"true\" fill=\"currentColor\" />,\n\t\t\t\tclassName: cn(\n\t\t\t\t\tbuttonVariants({ variant: \"glass-overlay\", size: \"icon-lg\" }),\n\t\t\t\t\t\"size-12 group-data-[size=lg]/testimonial-block:size-14\",\n\t\t\t\t\t\"[&>svg]:ml-0.5 [&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-play-button\",\n\t\t},\n\t});\n}\n\ntype TestimonialBlockRatingProps = Omit<\n\tuseRender.ComponentProps<\"div\">,\n\t\"children\"\n> & {\n\trating: number;\n\tsource?: React.ReactNode;\n\ttotalReviews?: number;\n\treviewLabel?: string;\n\tshowScore?: boolean;\n};\n\nfunction clampRating(rating: number) {\n\treturn Math.min(5, Math.max(0, rating));\n}\n\nfunction getInitials(name: string) {\n\treturn name\n\t\t.trim()\n\t\t.split(/\\s+/)\n\t\t.slice(0, 2)\n\t\t.map((part) => part[0]?.toUpperCase())\n\t\t.join(\"\");\n}\n\nfunction formatRating(rating: number) {\n\treturn clampRating(rating).toFixed(1);\n}\n\nfunction formatReviewSource({\n\treviewLabel,\n\tsource,\n\ttotalReviews,\n}: Pick<\n\tTestimonialBlockRatingProps,\n\t\"reviewLabel\" | \"source\" | \"totalReviews\"\n>) {\n\tconst label = reviewLabel ?? (totalReviews === 1 ? \"review\" : \"reviews\");\n\n\tif (source && typeof totalReviews === \"number\") {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{totalReviews.toLocaleString()} {source} {label}\n\t\t\t</>\n\t\t);\n\t}\n\n\tif (source) {\n\t\treturn source;\n\t}\n\n\tif (typeof totalReviews === \"number\") {\n\t\treturn `${totalReviews.toLocaleString()} ${label}`;\n\t}\n\n\treturn null;\n}\n\nfunction TestimonialBlockRating({\n\tclassName,\n\trating,\n\trender,\n\treviewLabel,\n\tshowScore = true,\n\tsource,\n\ttotalReviews,\n\t...props\n}: TestimonialBlockRatingProps) {\n\tconst formattedRating = formatRating(rating);\n\tconst roundedRating = Math.round(clampRating(rating));\n\tconst reviewSource = formatReviewSource({\n\t\treviewLabel,\n\t\tsource,\n\t\ttotalReviews,\n\t});\n\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"flex min-w-0 flex-wrap items-center gap-gdt-sm text-fg-primary group-data-[tone=brand]/testimonial-block:text-fg-on-brand\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t\tchildren: (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{showScore ? (\n\t\t\t\t\t\t\t<span className=\"font-bold text-gdt-lg group-data-[size=md]/testimonial-block:text-gdt-xl group-data-[size=lg]/testimonial-block:text-gdt-h5\">\n\t\t\t\t\t\t\t\t{formattedRating}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) : null}\n\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"inline-flex shrink-0 items-center gap-0.5 text-surface-accent group-data-[tone=brand]/testimonial-block:text-fg-on-brand\",\n\t\t\t\t\t\t\t\t\"[&>svg]:size-4.5 group-data-[size=md]/testimonial-block:[&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{STAR_INDEXES.map((index) => (\n\t\t\t\t\t\t\t\t<Star\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tfill={index < roundedRating ? \"currentColor\" : \"none\"}\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{reviewSource ? (\n\t\t\t\t\t\t\t<span className=\"text-gdt-xs text-fg-secondary group-data-[size=md]/testimonial-block:text-gdt-sm group-data-[size=lg]/testimonial-block:text-gdt-md group-data-[tone=brand]/testimonial-block:text-fg-on-brand\">\n\t\t\t\t\t\t\t\t{reviewSource}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\trating: formattedRating,\n\t\t\tslot: \"testimonial-block-rating\",\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockQuote({\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"blockquote\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"blockquote\",\n\t\tprops: mergeProps<\"blockquote\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"text-gdt-sm text-fg-primary group-data-[size=md]/testimonial-block:text-gdt-md group-data-[size=lg]/testimonial-block:text-gdt-lg\",\n\t\t\t\t\t\"group-data-[tone=brand]/testimonial-block:text-fg-on-brand\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-quote\",\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockFooter({\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"div\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"mt-auto flex min-w-0 items-center gap-gdt-md\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-footer\",\n\t\t},\n\t});\n}\n\ntype TestimonialBlockReviewerProps = Omit<\n\tuseRender.ComponentProps<\"div\">,\n\t\"children\"\n> & {\n\tname: string;\n\tphoto?: string;\n\treviewerRole?: React.ReactNode;\n};\n\nfunction TestimonialBlockReviewer({\n\tclassName,\n\tname,\n\tphoto,\n\trender,\n\treviewerRole,\n\t...props\n}: TestimonialBlockReviewerProps) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\"flex min-w-0 flex-1 items-center gap-gdt-sm\", className),\n\t\t\t\tchildren: (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"size-10 border border-line-subtle bg-canvas\",\n\t\t\t\t\t\t\t\t\"group-data-[size=sm]/testimonial-block:size-8 group-data-[size=lg]/testimonial-block:size-12\",\n\t\t\t\t\t\t\t\t\"group-data-[tone=brand]/testimonial-block:border-transparent\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{photo ? <AvatarImage alt={name} src={photo} /> : null}\n\t\t\t\t\t\t\t<AvatarFallback\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"bg-canvas text-fg-secondary\",\n\t\t\t\t\t\t\t\t\t\"group-data-[tone=brand]/testimonial-block:bg-canvas group-data-[tone=brand]/testimonial-block:text-fg-secondary\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{getInitials(name)}\n\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t\t<span className=\"block truncate font-bold text-gdt-sm text-fg-primary group-data-[size=md]/testimonial-block:text-gdt-md group-data-[size=lg]/testimonial-block:text-gdt-lg group-data-[tone=brand]/testimonial-block:text-fg-on-brand\">\n\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{reviewerRole ? (\n\t\t\t\t\t\t\t\t<span className=\"block truncate text-gdt-xs text-fg-secondary group-data-[size=md]/testimonial-block:text-gdt-sm group-data-[size=lg]/testimonial-block:text-gdt-md group-data-[tone=brand]/testimonial-block:text-fg-on-brand/85\">\n\t\t\t\t\t\t\t\t\t{reviewerRole}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-reviewer\",\n\t\t},\n\t});\n}\n\nfunction TestimonialBlockAction({\n\t\"aria-label\": ariaLabel = \"Open review\",\n\tchildren,\n\tclassName,\n\trender,\n\t...props\n}: useRender.ComponentProps<\"a\">) {\n\treturn useRender({\n\t\tdefaultTagName: \"a\",\n\t\tprops: mergeProps<\"a\">(\n\t\t\t{\n\t\t\t\t\"aria-label\": ariaLabel,\n\t\t\t\tchildren: children ?? <ArrowUpRight aria-hidden=\"true\" />,\n\t\t\t\tclassName: cn(\n\t\t\t\t\t\"inline-flex shrink-0 items-center justify-center rounded-full bg-action-primary text-fg-on-brand transition-[background-color,box-shadow,transform]\",\n\t\t\t\t\t\"size-10 hover:bg-action-primary-hover active:scale-95 active:bg-action-primary-pressed\",\n\t\t\t\t\t\"group-data-[size=md]/testimonial-block:size-12 group-data-[size=lg]/testimonial-block:size-14\",\n\t\t\t\t\t\"group-data-[tone=brand]/testimonial-block:bg-canvas group-data-[tone=brand]/testimonial-block:text-fg-brand group-data-[tone=brand]/testimonial-block:hover:bg-surface\",\n\t\t\t\t\t\"focus-visible:outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]\",\n\t\t\t\t\t\"[&>svg]:size-5\",\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"testimonial-block-action\",\n\t\t},\n\t});\n}\n\nexport {\n\tTestimonialBlock,\n\tTestimonialBlockAction,\n\tTestimonialBlockContent,\n\tTestimonialBlockFooter,\n\tTestimonialBlockMedia,\n\tTestimonialBlockPlayButton,\n\tTestimonialBlockQuote,\n\tTestimonialBlockRating,\n\tTestimonialBlockReviewer,\n\ttestimonialBlockVariants,\n};\nexport type { TestimonialBlockProps, TestimonialBlockReviewerProps };\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,WAA8B;AACvC,SAAS,cAAc,MAAM,YAAY;AAkIf,SAyDvB,UAzDuB,KAyDvB,YAzDuB;AA3H1B,IAAM,eAAe,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,IAAM,2BAA2B;AAAA,EAChC;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,QACL,SACC;AAAA,QACD,OACC;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACZ,UAAU;AAAA,QACV,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAKA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA,OAAO;AAAA,EACP,OAAO;AAAA,EACP,GAAG;AACJ,GAA0B;AACzB,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV,yBAAyB,EAAE,aAAa,MAAM,KAAK,CAAC;AAAA,UACpD;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEA,SAAS,wBAAwB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAoC;AACnC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAoC;AACnC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAEA,SAAS,2BAA2B;AAAA,EACnC,cAAc,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAuC;AACtC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,cAAc;AAAA,QACd,UAAU,YAAY,oBAAC,QAAK,eAAY,QAAO,MAAK,gBAAe;AAAA,QACnE,WAAW;AAAA,UACV,eAAe,EAAE,SAAS,iBAAiB,MAAM,UAAU,CAAC;AAAA,UAC5D;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAaA,SAAS,YAAY,QAAgB;AACpC,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,CAAC;AACvC;AAEA,SAAS,YAAY,MAAc;AAClC,SAAO,KACL,KAAK,EACL,MAAM,KAAK,EACX,MAAM,GAAG,CAAC,EACV,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,YAAY,CAAC,EACpC,KAAK,EAAE;AACV;AAEA,SAAS,aAAa,QAAgB;AACrC,SAAO,YAAY,MAAM,EAAE,QAAQ,CAAC;AACrC;AAEA,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACD,GAGG;AACF,QAAM,QAAQ,gBAAgB,iBAAiB,IAAI,WAAW;AAE9D,MAAI,UAAU,OAAO,iBAAiB,UAAU;AAC/C,WACC,iCACE;AAAA,mBAAa,eAAe;AAAA,MAAE;AAAA,MAAE;AAAA,MAAO;AAAA,MAAE;AAAA,OAC3C;AAAA,EAEF;AAEA,MAAI,QAAQ;AACX,WAAO;AAAA,EACR;AAEA,MAAI,OAAO,iBAAiB,UAAU;AACrC,WAAO,GAAG,aAAa,eAAe,CAAC,IAAI,KAAK;AAAA,EACjD;AAEA,SAAO;AACR;AAEA,SAAS,uBAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAgC;AAC/B,QAAM,kBAAkB,aAAa,MAAM;AAC3C,QAAM,gBAAgB,KAAK,MAAM,YAAY,MAAM,CAAC;AACpD,QAAM,eAAe,mBAAmB;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAED,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV;AAAA,UACA;AAAA,QACD;AAAA,QACA,UACC,iCACE;AAAA,sBACA,oBAAC,UAAK,WAAU,+HACd,2BACF,IACG;AAAA,UAEJ;AAAA,YAAC;AAAA;AAAA,cACA,WAAW;AAAA,gBACV;AAAA,gBACA;AAAA,cACD;AAAA,cAEC,uBAAa,IAAI,CAAC,UAClB;AAAA,gBAAC;AAAA;AAAA,kBACA,eAAY;AAAA,kBACZ,MAAM,QAAQ,gBAAgB,iBAAiB;AAAA;AAAA,gBAC1C;AAAA,cACN,CACA;AAAA;AAAA,UACF;AAAA,UACC,eACA,oBAAC,UAAK,WAAU,kMACd,wBACF,IACG;AAAA,WACL;AAAA,MAEF;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAA2C;AAC1C,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAEA,SAAS,uBAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAoC;AACnC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAWA,SAAS,yBAAyB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAkC;AACjC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW,GAAG,+CAA+C,SAAS;AAAA,QACtE,UACC,iCACC;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,MAAK;AAAA,cACL,WAAW;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA;AAAA,cACD;AAAA,cAEC;AAAA,wBAAQ,oBAAC,eAAY,KAAK,MAAM,KAAK,OAAO,IAAK;AAAA,gBAClD;AAAA,kBAAC;AAAA;AAAA,oBACA,WAAW;AAAA,sBACV;AAAA,sBACA;AAAA,oBACD;AAAA,oBAEC,sBAAY,IAAI;AAAA;AAAA,gBAClB;AAAA;AAAA;AAAA,UACD;AAAA,UACA,qBAAC,SAAI,WAAU,WACd;AAAA,gCAAC,UAAK,WAAU,yNACd,gBACF;AAAA,YACC,eACA,oBAAC,UAAK,WAAU,oNACd,wBACF,IACG;AAAA,aACL;AAAA,WACD;AAAA,MAEF;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;AAEA,SAAS,uBAAuB;AAAA,EAC/B,cAAc,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAkC;AACjC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,cAAc;AAAA,QACd,UAAU,YAAY,oBAAC,gBAAa,eAAY,QAAO;AAAA,QACvD,WAAW;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AACF;","names":[]}
package/dist/textarea.js CHANGED
@@ -1,76 +1,9 @@
1
- // src/components/ui/textarea.tsx
2
- import { cva } from "class-variance-authority";
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 useComponentSize(size, fallback = "md") {
41
- const inheritedSize = useContext(SizeContext);
42
- return size ?? inheritedSize ?? fallback;
43
- }
44
-
45
- // src/components/ui/textarea.tsx
46
- import { jsx as jsx2 } from "react/jsx-runtime";
47
- var textareaVariants = cva(
48
- "flex field-sizing-content w-full min-w-0 resize-y rounded-xl border border-line bg-canvas text-fg-primary transition-[background-color,border-color,box-shadow,color] outline-none placeholder:text-fg-caption-placeholder hover:border-line-strong focus-visible:border-line-focus focus-visible:inset-ring-1 inset-ring-line-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-line-subtle disabled:bg-surface disabled:text-fg-caption-placeholder disabled:placeholder:text-fg-caption-placeholder aria-invalid:border-line-danger aria-invalid:text-fg-danger aria-invalid:placeholder:text-fg-danger aria-invalid:shadow-none",
49
- {
50
- variants: {
51
- size: {
52
- sm: "min-h-22 px-3 py-2 text-gdt-xs",
53
- md: "min-h-26 px-3.5 py-2.5 text-gdt-sm",
54
- lg: "min-h-31 px-4 py-3 text-gdt-md"
55
- }
56
- },
57
- defaultVariants: {
58
- size: "md"
59
- }
60
- }
61
- );
62
- function Textarea({ className, size, ...props }) {
63
- const resolvedSize = useComponentSize(size);
64
- return /* @__PURE__ */ jsx2(
65
- "textarea",
66
- {
67
- "data-slot": "textarea",
68
- "data-size": resolvedSize,
69
- className: cn(textareaVariants({ size: resolvedSize }), className),
70
- ...props
71
- }
72
- );
73
- }
1
+ import {
2
+ Textarea,
3
+ textareaVariants
4
+ } from "./chunk-KSMDANKI.js";
5
+ import "./chunk-HL3ZSYES.js";
6
+ import "./chunk-Y4TTYVNE.js";
74
7
  export {
75
8
  Textarea,
76
9
  textareaVariants
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/textarea.tsx","../src/lib/cn.ts","../src/components/ui/size-context.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useComponentSize } from \"./size-context\";\n\nconst textareaVariants = cva(\n\t\"flex field-sizing-content w-full min-w-0 resize-y rounded-xl border border-line bg-canvas text-fg-primary transition-[background-color,border-color,box-shadow,color] outline-none placeholder:text-fg-caption-placeholder hover:border-line-strong focus-visible:border-line-focus focus-visible:inset-ring-1 inset-ring-line-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-line-subtle disabled:bg-surface disabled:text-fg-caption-placeholder disabled:placeholder:text-fg-caption-placeholder aria-invalid:border-line-danger aria-invalid:text-fg-danger aria-invalid:placeholder:text-fg-danger aria-invalid:shadow-none\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"min-h-22 px-3 py-2 text-gdt-xs\",\n\t\t\t\tmd: \"min-h-26 px-3.5 py-2.5 text-gdt-sm\",\n\t\t\t\tlg: \"min-h-31 px-4 py-3 text-gdt-md\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype TextareaProps = Omit<React.ComponentProps<\"textarea\">, \"size\"> &\n\tVariantProps<typeof textareaVariants>;\n\ntype TextareaSize = NonNullable<VariantProps<typeof textareaVariants>[\"size\"]>;\n\nfunction Textarea({ className, size, ...props }: TextareaProps) {\n\tconst resolvedSize = useComponentSize(size);\n\n\treturn (\n\t\t<textarea\n\t\t\tdata-slot=\"textarea\"\n\t\t\tdata-size={resolvedSize}\n\t\t\tclassName={cn(textareaVariants({ size: resolvedSize }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Textarea, textareaVariants, type TextareaSize };\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":";AAAA,SAAS,WAA8B;;;ACAvC,SAA0B,YAAY;AACtC,SAAS,2BAA2B;AAEpC,IAAM,UAAU,oBAAoB;AAAA,EACnC,QAAQ;AAAA,IACP,aAAa;AAAA,MACZ,aAAa;AAAA,QACZ;AAAA,UACC,MAAM;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;AAEM,SAAS,MAAM,QAAsB;AAC3C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC5B;;;AC7BA,SAAS,eAA+B,kBAAkB;AAcjD;AAVT,IAAM,cAAc,cAAyC,MAAS;AAgBtE,SAAS,iBACR,MACA,WAA0B,MACzB;AACD,QAAM,gBAAgB,WAAW,WAAW;AAC5C,SAAO,QAAQ,iBAAiB;AACjC;;;AFGE,gBAAAA,YAAA;AAzBF,IAAM,mBAAmB;AAAA,EACxB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAOA,SAAS,SAAS,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkB;AAC/D,QAAM,eAAe,iBAAiB,IAAI;AAE1C,SACC,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW,GAAG,iBAAiB,EAAE,MAAM,aAAa,CAAC,GAAG,SAAS;AAAA,MAChE,GAAG;AAAA;AAAA,EACL;AAEF;","names":["jsx"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}