@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
package/dist/tag.js CHANGED
@@ -1,164 +1,108 @@
1
1
  "use client";
2
- import {
3
- useComponentSize
4
- } from "./chunk-HL3ZSYES.js";
5
- import {
6
- cn
7
- } from "./chunk-Y4TTYVNE.js";
8
-
9
- // src/tag.tsx
10
- import { cva } from "class-variance-authority";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { useComponentSize } from "./size-context.js";
11
4
  import { X } from "lucide-react";
12
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- var tagVariants = cva(
14
- "group/tag inline-flex w-full shrink-0 items-center border bg-surface-raised font-bold leading-none text-fg-primary whitespace-nowrap transition-[background-color,border-color,color,box-shadow] select-none data-[shape=full]:rounded-4xl data-[shape=box]:data-[size=sm]:rounded-md data-[shape=box]:data-[size=md]:rounded-lg data-[shape=box]:data-[size=lg]:rounded-xl data-[has-close=true]:data-[size=sm]:pr-5 data-[has-close=true]:data-[size=md]:pr-7 data-[has-close=true]:data-[size=lg]:pr-8",
15
- {
16
- variants: {
17
- size: {
18
- sm: "gap-1 py-0.5 pl-2 pr-1 text-gdt-xs",
19
- md: "gap-1.5 py-1 pl-2.5 pr-1.5 text-gdt-sm",
20
- lg: "gap-2 py-1.5 pl-3 pr-2 text-gdt-md"
21
- },
22
- border: {
23
- true: "border-line",
24
- false: "border-transparent"
25
- },
26
- clickable: {
27
- true: "cursor-pointer hover:border-line-strong hover:bg-action-tertiary-hover active:border-line-strong active:bg-action-tertiary-pressed outline-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
28
- false: "cursor-default"
29
- },
30
- disabled: {
31
- true: "border-line-subtle bg-surface text-fg-caption-placeholder",
32
- false: ""
33
- }
34
- },
35
- defaultVariants: {
36
- size: "md",
37
- border: false,
38
- clickable: false,
39
- disabled: false
40
- }
41
- }
42
- );
43
- var tagCloseVariants = cva(
44
- "absolute top-1/2 inline-flex shrink-0 -translate-y-1/2 items-center justify-center rounded-full text-current transition-[background-color,color] outline-none hover:bg-action-tertiary-hover hover:text-fg-primary focus-visible:bg-action-tertiary-hover focus-visible:text-fg-primary focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:bg-action-tertiary-pressed disabled:pointer-events-none disabled:text-fg-caption-placeholder",
45
- {
46
- variants: {
47
- size: {
48
- sm: "right-1 size-4 [&>svg]:size-2.5",
49
- md: "right-1.5 size-5 [&>svg]:size-3",
50
- lg: "right-2 size-5 [&>svg]:size-3.5"
51
- }
52
- },
53
- defaultVariants: {
54
- size: "md"
55
- }
56
- }
57
- );
58
- function Tag({
59
- label,
60
- leadingIcon,
61
- onClose,
62
- closeButtonProps,
63
- onClick,
64
- size,
65
- shape = "full",
66
- border = false,
67
- clickable = false,
68
- disabled = false,
69
- className,
70
- ...props
71
- }) {
72
- const resolvedSize = useComponentSize(size);
73
- const isInteractive = clickable && !disabled;
74
- const {
75
- "aria-label": closeAriaLabel = `Remove ${label}`,
76
- className: closeClassName,
77
- onKeyDown: onCloseKeyDown,
78
- ...resolvedCloseButtonProps
79
- } = closeButtonProps ?? {};
80
- return /* @__PURE__ */ jsxs("div", { "data-slot": "tag", className: "relative inline-flex w-fit shrink-0", children: [
81
- clickable ? /* @__PURE__ */ jsx(
82
- "button",
83
- {
84
- type: "button",
85
- "data-slot": "tag-surface",
86
- "data-shape": shape,
87
- "data-size": resolvedSize,
88
- "data-has-close": Boolean(onClose),
89
- disabled,
90
- className: cn(
91
- tagVariants({
92
- size: resolvedSize,
93
- border,
94
- clickable: isInteractive,
95
- disabled
96
- }),
97
- className
98
- ),
99
- onClick,
100
- ...props,
101
- children: /* @__PURE__ */ jsx(TagContent, { label, leadingIcon })
102
- }
103
- ) : /* @__PURE__ */ jsx(
104
- "span",
105
- {
106
- "data-slot": "tag-surface",
107
- "data-shape": shape,
108
- "data-size": resolvedSize,
109
- "data-has-close": Boolean(onClose),
110
- className: cn(
111
- tagVariants({
112
- size: resolvedSize,
113
- border,
114
- clickable: false,
115
- disabled
116
- }),
117
- className
118
- ),
119
- children: /* @__PURE__ */ jsx(TagContent, { label, leadingIcon })
120
- }
121
- ),
122
- onClose && /* @__PURE__ */ jsx(
123
- "button",
124
- {
125
- type: "button",
126
- "aria-label": closeAriaLabel,
127
- disabled,
128
- className: cn(
129
- tagCloseVariants({ size: resolvedSize }),
130
- closeClassName
131
- ),
132
- onClick: (e) => {
133
- e.stopPropagation();
134
- onClose(e);
135
- },
136
- onKeyDown: onCloseKeyDown,
137
- ...resolvedCloseButtonProps,
138
- children: /* @__PURE__ */ jsx(X, { "aria-hidden": "true" })
139
- }
140
- )
141
- ] });
6
+ import { cva } from "class-variance-authority";
7
+ //#region src/tag.tsx
8
+ const tagVariants = cva("group/tag inline-flex w-full shrink-0 items-center border bg-surface-raised font-bold leading-none text-fg-primary whitespace-nowrap transition-[background-color,border-color,color,box-shadow] select-none data-[shape=full]:rounded-4xl data-[shape=box]:data-[size=sm]:rounded-md data-[shape=box]:data-[size=md]:rounded-lg data-[shape=box]:data-[size=lg]:rounded-xl data-[has-close=true]:data-[size=sm]:pr-5 data-[has-close=true]:data-[size=md]:pr-7 data-[has-close=true]:data-[size=lg]:pr-8", {
9
+ variants: {
10
+ size: {
11
+ sm: "gap-1 py-0.5 pl-2 pr-1 text-gdt-xs",
12
+ md: "gap-1.5 py-1 pl-2.5 pr-1.5 text-gdt-sm",
13
+ lg: "gap-2 py-1.5 pl-3 pr-2 text-gdt-md"
14
+ },
15
+ border: {
16
+ true: "border-line",
17
+ false: "border-transparent"
18
+ },
19
+ clickable: {
20
+ true: "cursor-pointer hover:border-line-strong hover:bg-action-tertiary-hover active:border-line-strong active:bg-action-tertiary-pressed outline-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
21
+ false: "cursor-default"
22
+ },
23
+ disabled: {
24
+ true: "border-line-subtle bg-surface text-fg-caption-placeholder",
25
+ false: ""
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ size: "md",
30
+ border: false,
31
+ clickable: false,
32
+ disabled: false
33
+ }
34
+ });
35
+ const tagCloseVariants = cva("absolute top-1/2 inline-flex shrink-0 -translate-y-1/2 items-center justify-center rounded-full text-current transition-[background-color,color] outline-none hover:bg-action-tertiary-hover hover:text-fg-primary focus-visible:bg-action-tertiary-hover focus-visible:text-fg-primary focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:bg-action-tertiary-pressed disabled:pointer-events-none disabled:text-fg-caption-placeholder", {
36
+ variants: { size: {
37
+ sm: "right-1 size-4 [&>svg]:size-2.5",
38
+ md: "right-1.5 size-5 [&>svg]:size-3",
39
+ lg: "right-2 size-5 [&>svg]:size-3.5"
40
+ } },
41
+ defaultVariants: { size: "md" }
42
+ });
43
+ function Tag({ label, leadingIcon, onClose, closeButtonProps, onClick, size, shape = "full", border = false, clickable = false, disabled = false, className, ...props }) {
44
+ const resolvedSize = useComponentSize(size);
45
+ const isInteractive = clickable && !disabled;
46
+ const { "aria-label": closeAriaLabel = `Remove ${label}`, className: closeClassName, onKeyDown: onCloseKeyDown, ...resolvedCloseButtonProps } = closeButtonProps ?? {};
47
+ return /* @__PURE__ */ jsxs("div", {
48
+ "data-slot": "tag",
49
+ className: "relative inline-flex w-fit shrink-0",
50
+ children: [clickable ? /* @__PURE__ */ jsx("button", {
51
+ type: "button",
52
+ "data-slot": "tag-surface",
53
+ "data-shape": shape,
54
+ "data-size": resolvedSize,
55
+ "data-has-close": Boolean(onClose),
56
+ disabled,
57
+ className: cn(tagVariants({
58
+ size: resolvedSize,
59
+ border,
60
+ clickable: isInteractive,
61
+ disabled
62
+ }), className),
63
+ onClick,
64
+ ...props,
65
+ children: /* @__PURE__ */ jsx(TagContent, {
66
+ label,
67
+ leadingIcon
68
+ })
69
+ }) : /* @__PURE__ */ jsx("span", {
70
+ "data-slot": "tag-surface",
71
+ "data-shape": shape,
72
+ "data-size": resolvedSize,
73
+ "data-has-close": Boolean(onClose),
74
+ className: cn(tagVariants({
75
+ size: resolvedSize,
76
+ border,
77
+ clickable: false,
78
+ disabled
79
+ }), className),
80
+ children: /* @__PURE__ */ jsx(TagContent, {
81
+ label,
82
+ leadingIcon
83
+ })
84
+ }), onClose && /* @__PURE__ */ jsx("button", {
85
+ type: "button",
86
+ "aria-label": closeAriaLabel,
87
+ disabled,
88
+ className: cn(tagCloseVariants({ size: resolvedSize }), closeClassName),
89
+ onClick: (e) => {
90
+ e.stopPropagation();
91
+ onClose(e);
92
+ },
93
+ onKeyDown: onCloseKeyDown,
94
+ ...resolvedCloseButtonProps,
95
+ children: /* @__PURE__ */ jsx(X, { "aria-hidden": "true" })
96
+ })]
97
+ });
142
98
  }
143
- function TagContent({
144
- label,
145
- leadingIcon
146
- }) {
147
- return /* @__PURE__ */ jsxs(Fragment, { children: [
148
- leadingIcon && /* @__PURE__ */ jsx(
149
- "span",
150
- {
151
- "aria-hidden": "true",
152
- "data-slot": "tag-leading-icon",
153
- className: "inline-flex shrink-0 items-center [&>svg]:size-[1em]",
154
- children: leadingIcon
155
- }
156
- ),
157
- /* @__PURE__ */ jsx("span", { children: label })
158
- ] });
99
+ function TagContent({ label, leadingIcon }) {
100
+ return /* @__PURE__ */ jsxs(Fragment, { children: [leadingIcon && /* @__PURE__ */ jsx("span", {
101
+ "aria-hidden": "true",
102
+ "data-slot": "tag-leading-icon",
103
+ className: "inline-flex shrink-0 items-center [&>svg]:size-[1em]",
104
+ children: leadingIcon
105
+ }), /* @__PURE__ */ jsx("span", { children: label })] });
159
106
  }
160
- export {
161
- Tag,
162
- tagVariants
163
- };
164
- //# sourceMappingURL=tag.js.map
107
+ //#endregion
108
+ export { Tag, tagVariants };
@@ -1,34 +1,33 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import { useRender } from '@base-ui/react/use-render';
3
- import { VariantProps } from 'class-variance-authority';
4
- import * as React from 'react';
5
-
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as React from "react";
4
+ //#region src/testimonial-block.d.ts
6
5
  declare const testimonialBlockVariants: (props?: ({
7
- tone?: "brand" | "neutral" | null | undefined;
8
- orientation?: "horizontal" | "vertical" | null | undefined;
9
- size?: "sm" | "md" | "lg" | null | undefined;
10
- } & class_variance_authority_types.ClassProp) | undefined) => string;
6
+ tone?: "brand" | "neutral" | null | undefined;
7
+ orientation?: "horizontal" | "vertical" | null | undefined;
8
+ size?: "lg" | "md" | "sm" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
10
  type TestimonialBlockProps = useRender.ComponentProps<"article"> & VariantProps<typeof testimonialBlockVariants>;
12
11
  declare function TestimonialBlock({ className, orientation, render, size, tone, ...props }: TestimonialBlockProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
13
12
  declare function TestimonialBlockContent({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
14
13
  declare function TestimonialBlockMedia({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
15
14
  declare function TestimonialBlockPlayButton({ "aria-label": ariaLabel, children, className, render, ...props }: useRender.ComponentProps<"button">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
16
15
  type TestimonialBlockRatingProps = Omit<useRender.ComponentProps<"div">, "children"> & {
17
- rating: number;
18
- source?: React.ReactNode;
19
- totalReviews?: number;
20
- reviewLabel?: string;
21
- showScore?: boolean;
16
+ rating: number;
17
+ source?: React.ReactNode;
18
+ totalReviews?: number;
19
+ reviewLabel?: string;
20
+ showScore?: boolean;
22
21
  };
23
22
  declare function TestimonialBlockRating({ className, rating, render, reviewLabel, showScore, source, totalReviews, ...props }: TestimonialBlockRatingProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
24
23
  declare function TestimonialBlockQuote({ className, render, ...props }: useRender.ComponentProps<"blockquote">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
25
24
  declare function TestimonialBlockFooter({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
26
25
  type TestimonialBlockReviewerProps = Omit<useRender.ComponentProps<"div">, "children"> & {
27
- name: string;
28
- photo?: string;
29
- reviewerRole?: React.ReactNode;
26
+ name: string;
27
+ photo?: string;
28
+ reviewerRole?: React.ReactNode;
30
29
  };
31
30
  declare function TestimonialBlockReviewer({ className, name, photo, render, reviewerRole, ...props }: TestimonialBlockReviewerProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
32
31
  declare function TestimonialBlockAction({ "aria-label": ariaLabel, children, className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
33
-
34
- export { TestimonialBlock, TestimonialBlockAction, TestimonialBlockContent, TestimonialBlockFooter, TestimonialBlockMedia, TestimonialBlockPlayButton, type TestimonialBlockProps, TestimonialBlockQuote, TestimonialBlockRating, TestimonialBlockReviewer, type TestimonialBlockReviewerProps, testimonialBlockVariants };
32
+ //#endregion
33
+ export { TestimonialBlock, TestimonialBlockAction, TestimonialBlockContent, TestimonialBlockFooter, TestimonialBlockMedia, TestimonialBlockPlayButton, type TestimonialBlockProps, TestimonialBlockQuote, TestimonialBlockRating, TestimonialBlockReviewer, type TestimonialBlockReviewerProps, testimonialBlockVariants };