@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,377 +1,208 @@
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
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
2
+ import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
3
+ import { buttonVariants } from "./button.js";
4
+ import { ArrowUpRight, Play, Star } from "lucide-react";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
6
  import { mergeProps } from "@base-ui/react/merge-props";
16
7
  import { useRender } from "@base-ui/react/use-render";
17
8
  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
- });
9
+ //#region src/testimonial-block.tsx
10
+ const STAR_INDEXES = [
11
+ 0,
12
+ 1,
13
+ 2,
14
+ 3,
15
+ 4
16
+ ];
17
+ const testimonialBlockVariants = cva("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]", {
18
+ variants: {
19
+ tone: {
20
+ neutral: "border border-line-subtle bg-surface hover:bg-surface-raised hover:shadow-2 active:bg-surface-raised active:shadow-none",
21
+ 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"
22
+ },
23
+ orientation: {
24
+ vertical: "flex-col",
25
+ horizontal: "flex-row"
26
+ },
27
+ size: {
28
+ sm: "gap-3.5 p-5",
29
+ md: "gap-4 p-7",
30
+ lg: "gap-5 p-8.5 rounded-2xl"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ orientation: "vertical",
35
+ size: "md",
36
+ tone: "neutral"
37
+ }
38
+ });
39
+ function TestimonialBlock({ className, orientation = "vertical", render, size = "md", tone = "neutral", ...props }) {
40
+ return useRender({
41
+ defaultTagName: "article",
42
+ props: mergeProps({ className: cn(testimonialBlockVariants({
43
+ orientation,
44
+ size,
45
+ tone
46
+ }), className) }, props),
47
+ render,
48
+ state: {
49
+ orientation,
50
+ size,
51
+ slot: "testimonial-block",
52
+ tone
53
+ }
54
+ });
73
55
  }
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
- });
56
+ function TestimonialBlockContent({ className, render, ...props }) {
57
+ return useRender({
58
+ defaultTagName: "div",
59
+ props: mergeProps({ className: cn("flex min-w-0 flex-1 flex-col gap-gdt-md group-data-[size=lg]/testimonial-block:gap-gdt-lg", className) }, props),
60
+ render,
61
+ state: { slot: "testimonial-block-content" }
62
+ });
95
63
  }
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
- });
64
+ function TestimonialBlockMedia({ className, render, ...props }) {
65
+ return useRender({
66
+ defaultTagName: "div",
67
+ props: mergeProps({ className: cn("relative isolate flex min-w-0 items-center justify-center overflow-hidden rounded-2xl bg-surface-raised", "min-h-32 group-data-[size=sm]/testimonial-block:min-h-28 group-data-[size=lg]/testimonial-block:min-h-44", "group-data-[orientation=horizontal]/testimonial-block:w-2/5 group-data-[orientation=horizontal]/testimonial-block:shrink-0", "[&>img]:absolute [&>img]:inset-0 [&>img]:size-full [&>img]:object-cover", className) }, props),
68
+ render,
69
+ state: { slot: "testimonial-block-media" }
70
+ });
120
71
  }
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
- });
72
+ function TestimonialBlockPlayButton({ "aria-label": ariaLabel = "Play testimonial", children, className, render, ...props }) {
73
+ return useRender({
74
+ defaultTagName: "button",
75
+ props: mergeProps({
76
+ "aria-label": ariaLabel,
77
+ children: children ?? /* @__PURE__ */ jsx(Play, {
78
+ "aria-hidden": "true",
79
+ fill: "currentColor"
80
+ }),
81
+ className: cn(buttonVariants({
82
+ variant: "glass-overlay",
83
+ size: "icon-lg"
84
+ }), "size-12 group-data-[size=lg]/testimonial-block:size-14", "[&>svg]:ml-0.5 [&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6", className)
85
+ }, props),
86
+ render,
87
+ state: { slot: "testimonial-block-play-button" }
88
+ });
148
89
  }
149
90
  function clampRating(rating) {
150
- return Math.min(5, Math.max(0, rating));
91
+ return Math.min(5, Math.max(0, rating));
151
92
  }
152
93
  function getInitials(name) {
153
- return name.trim().split(/\s+/).slice(0, 2).map((part) => part[0]?.toUpperCase()).join("");
94
+ return name.trim().split(/\s+/).slice(0, 2).map((part) => part[0]?.toUpperCase()).join("");
154
95
  }
155
96
  function formatRating(rating) {
156
- return clampRating(rating).toFixed(1);
97
+ return clampRating(rating).toFixed(1);
157
98
  }
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;
99
+ function formatReviewSource({ reviewLabel, source, totalReviews }) {
100
+ const label = reviewLabel ?? (totalReviews === 1 ? "review" : "reviews");
101
+ if (source && typeof totalReviews === "number") return /* @__PURE__ */ jsxs(Fragment, { children: [
102
+ totalReviews.toLocaleString(),
103
+ " ",
104
+ source,
105
+ " ",
106
+ label
107
+ ] });
108
+ if (source) return source;
109
+ if (typeof totalReviews === "number") return `${totalReviews.toLocaleString()} ${label}`;
110
+ return null;
180
111
  }
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
- });
112
+ function TestimonialBlockRating({ className, rating, render, reviewLabel, showScore = true, source, totalReviews, ...props }) {
113
+ const formattedRating = formatRating(rating);
114
+ const roundedRating = Math.round(clampRating(rating));
115
+ const reviewSource = formatReviewSource({
116
+ reviewLabel,
117
+ source,
118
+ totalReviews
119
+ });
120
+ return useRender({
121
+ defaultTagName: "div",
122
+ props: mergeProps({
123
+ className: cn("flex min-w-0 flex-wrap items-center gap-gdt-sm text-fg-primary group-data-[tone=brand]/testimonial-block:text-fg-on-brand", className),
124
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
125
+ showScore ? /* @__PURE__ */ jsx("span", {
126
+ className: "font-bold text-gdt-lg group-data-[size=md]/testimonial-block:text-gdt-xl group-data-[size=lg]/testimonial-block:text-gdt-h5",
127
+ children: formattedRating
128
+ }) : null,
129
+ /* @__PURE__ */ jsx("span", {
130
+ className: cn("inline-flex shrink-0 items-center gap-0.5 text-surface-accent group-data-[tone=brand]/testimonial-block:text-fg-on-brand", "[&>svg]:size-4.5 group-data-[size=md]/testimonial-block:[&>svg]:size-5 group-data-[size=lg]/testimonial-block:[&>svg]:size-6"),
131
+ children: STAR_INDEXES.map((index) => /* @__PURE__ */ jsx(Star, {
132
+ "aria-hidden": "true",
133
+ fill: index < roundedRating ? "currentColor" : "none"
134
+ }, index))
135
+ }),
136
+ reviewSource ? /* @__PURE__ */ jsx("span", {
137
+ 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",
138
+ children: reviewSource
139
+ }) : null
140
+ ] })
141
+ }, props),
142
+ render,
143
+ state: {
144
+ rating: formattedRating,
145
+ slot: "testimonial-block-rating"
146
+ }
147
+ });
236
148
  }
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
- });
149
+ function TestimonialBlockQuote({ className, render, ...props }) {
150
+ return useRender({
151
+ defaultTagName: "blockquote",
152
+ props: mergeProps({ className: cn("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", className) }, props),
153
+ render,
154
+ state: { slot: "testimonial-block-quote" }
155
+ });
259
156
  }
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
- });
157
+ function TestimonialBlockFooter({ className, render, ...props }) {
158
+ return useRender({
159
+ defaultTagName: "div",
160
+ props: mergeProps({ className: cn("mt-auto flex min-w-0 items-center gap-gdt-md", className) }, props),
161
+ render,
162
+ state: { slot: "testimonial-block-footer" }
163
+ });
281
164
  }
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
- });
165
+ function TestimonialBlockReviewer({ className, name, photo, render, reviewerRole, ...props }) {
166
+ return useRender({
167
+ defaultTagName: "div",
168
+ props: mergeProps({
169
+ className: cn("flex min-w-0 flex-1 items-center gap-gdt-sm", className),
170
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Avatar, {
171
+ size: "md",
172
+ className: cn("size-10 border border-line-subtle bg-canvas", "group-data-[size=sm]/testimonial-block:size-8 group-data-[size=lg]/testimonial-block:size-12", "group-data-[tone=brand]/testimonial-block:border-transparent"),
173
+ children: [photo ? /* @__PURE__ */ jsx(AvatarImage, {
174
+ alt: name,
175
+ src: photo
176
+ }) : null, /* @__PURE__ */ jsx(AvatarFallback, {
177
+ className: cn("bg-canvas text-fg-secondary", "group-data-[tone=brand]/testimonial-block:bg-canvas group-data-[tone=brand]/testimonial-block:text-fg-secondary"),
178
+ children: getInitials(name)
179
+ })]
180
+ }), /* @__PURE__ */ jsxs("div", {
181
+ className: "min-w-0",
182
+ children: [/* @__PURE__ */ jsx("span", {
183
+ 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",
184
+ children: name
185
+ }), reviewerRole ? /* @__PURE__ */ jsx("span", {
186
+ 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",
187
+ children: reviewerRole
188
+ }) : null]
189
+ })] })
190
+ }, props),
191
+ render,
192
+ state: { slot: "testimonial-block-reviewer" }
193
+ });
333
194
  }
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
- });
195
+ function TestimonialBlockAction({ "aria-label": ariaLabel = "Open review", children, className, render, ...props }) {
196
+ return useRender({
197
+ defaultTagName: "a",
198
+ props: mergeProps({
199
+ "aria-label": ariaLabel,
200
+ children: children ?? /* @__PURE__ */ jsx(ArrowUpRight, { "aria-hidden": "true" }),
201
+ className: cn("inline-flex shrink-0 items-center justify-center rounded-full bg-action-primary text-fg-on-brand transition-[background-color,box-shadow,transform]", "size-10 hover:bg-action-primary-hover active:scale-95 active:bg-action-primary-pressed", "group-data-[size=md]/testimonial-block:size-12 group-data-[size=lg]/testimonial-block:size-14", "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", "focus-visible:outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]", "[&>svg]:size-5", className)
202
+ }, props),
203
+ render,
204
+ state: { slot: "testimonial-block-action" }
205
+ });
364
206
  }
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
207
+ //#endregion
208
+ export { TestimonialBlock, TestimonialBlockAction, TestimonialBlockContent, TestimonialBlockFooter, TestimonialBlockMedia, TestimonialBlockPlayButton, TestimonialBlockQuote, TestimonialBlockRating, TestimonialBlockReviewer, testimonialBlockVariants };
@@ -0,0 +1,11 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ //#region src/textarea.d.ts
4
+ declare const textareaVariants: (props?: ({
5
+ size?: "lg" | "md" | "sm" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ type TextareaProps = Omit<React.ComponentProps<"textarea">, "size"> & VariantProps<typeof textareaVariants>;
8
+ type TextareaSize = NonNullable<VariantProps<typeof textareaVariants>["size"]>;
9
+ declare function Textarea({ className, size, ...props }: TextareaProps): React.JSX.Element;
10
+ //#endregion
11
+ export { TextareaSize as n, textareaVariants as r, Textarea as t };
@@ -1,12 +1,2 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import { VariantProps } from 'class-variance-authority';
3
- import * as React from 'react';
4
-
5
- declare const textareaVariants: (props?: ({
6
- size?: "sm" | "md" | "lg" | null | undefined;
7
- } & class_variance_authority_types.ClassProp) | undefined) => string;
8
- type TextareaProps = Omit<React.ComponentProps<"textarea">, "size"> & VariantProps<typeof textareaVariants>;
9
- type TextareaSize = NonNullable<VariantProps<typeof textareaVariants>["size"]>;
10
- declare function Textarea({ className, size, ...props }: TextareaProps): React.JSX.Element;
11
-
12
- export { Textarea, type TextareaSize, textareaVariants };
1
+ import { n as TextareaSize, r as textareaVariants, t as Textarea } from "./textarea-IS_D8pXf.js";
2
+ export { Textarea, type TextareaSize, textareaVariants };
package/dist/textarea.js CHANGED
@@ -1,11 +1,24 @@
1
- import {
2
- Textarea,
3
- textareaVariants
4
- } from "./chunk-KSMDANKI.js";
5
- import "./chunk-HL3ZSYES.js";
6
- import "./chunk-Y4TTYVNE.js";
7
- export {
8
- Textarea,
9
- textareaVariants
10
- };
11
- //# sourceMappingURL=textarea.js.map
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
2
+ import { useComponentSize } from "./size-context.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ //#region src/textarea.tsx
6
+ const textareaVariants = cva("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 focus-visible: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 aria-invalid:focus-visible:border-line-danger aria-invalid:focus-visible:inset-ring-line-danger", {
7
+ variants: { size: {
8
+ sm: "min-h-22 px-3 py-2 text-gdt-xs",
9
+ md: "min-h-26 px-3.5 py-2.5 text-gdt-sm",
10
+ lg: "min-h-31 px-4 py-3 text-gdt-md"
11
+ } },
12
+ defaultVariants: { size: "md" }
13
+ });
14
+ function Textarea({ className, size, ...props }) {
15
+ const resolvedSize = useComponentSize(size);
16
+ return /* @__PURE__ */ jsx("textarea", {
17
+ "data-slot": "textarea",
18
+ "data-size": resolvedSize,
19
+ className: cn(textareaVariants({ size: resolvedSize }), className),
20
+ ...props
21
+ });
22
+ }
23
+ //#endregion
24
+ export { Textarea, textareaVariants };