@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,41 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-Y4TTYVNE.js";
4
-
5
- // src/label.tsx
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- function Label({
8
- className,
9
- children,
10
- withAsterisk = false,
11
- showOptionalText = false,
12
- ...props
13
- }) {
14
- const labelClassName = cn(
15
- "flex w-fit max-w-full items-center gap-1 text-gdt-sm leading-none font-semibold text-fg-primary select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
16
- className
17
- );
18
- if (withAsterisk) {
19
- return (
20
- // biome-ignore lint/a11y/noLabelWithoutControl: association is supplied by callers through htmlFor or nesting patterns.
21
- /* @__PURE__ */ jsxs("label", { "data-slot": "label", className: labelClassName, ...props, children: [
22
- /* @__PURE__ */ jsx("div", { className: "inline-flex", children }),
23
- withAsterisk && /* @__PURE__ */ jsx("span", { className: "inline-flex shrink-0 text-fg-danger", children: "*" }),
24
- showOptionalText && /* @__PURE__ */ jsx("span", { className: "text-gdt-xs font-normal italic", children: "(optional)" })
25
- ] })
26
- );
27
- }
28
- return (
29
- // biome-ignore lint/a11y/noLabelWithoutControl: association is supplied by callers through htmlFor or nesting patterns.
30
- /* @__PURE__ */ jsx("label", { "data-slot": "label", className: labelClassName, ...props, children: /* @__PURE__ */ jsxs("div", { children: [
31
- children,
32
- " ",
33
- showOptionalText && /* @__PURE__ */ jsx("span", { className: "text-gdt-xs font-normal italic", children: "(optional)" })
34
- ] }) })
35
- );
36
- }
37
-
38
- export {
39
- Label
40
- };
41
- //# sourceMappingURL=chunk-7TBMLFGW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/label.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\nfunction Label({\n\tclassName,\n\tchildren,\n\twithAsterisk = false,\n\tshowOptionalText = false,\n\t...props\n}: React.ComponentProps<\"label\"> & {\n\twithAsterisk?: boolean;\n\tshowOptionalText?: boolean;\n}) {\n\tconst labelClassName = cn(\n\t\t\"flex w-fit max-w-full items-center gap-1 text-gdt-sm leading-none font-semibold text-fg-primary select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n\t\tclassName,\n\t);\n\n\tif (withAsterisk) {\n\t\treturn (\n\t\t\t// biome-ignore lint/a11y/noLabelWithoutControl: association is supplied by callers through htmlFor or nesting patterns.\n\t\t\t<label data-slot=\"label\" className={labelClassName} {...props}>\n\t\t\t\t<div className=\"inline-flex\">{children}</div>\n\t\t\t\t{withAsterisk && (\n\t\t\t\t\t<span className=\"inline-flex shrink-0 text-fg-danger\">*</span>\n\t\t\t\t)}\n\t\t\t\t{showOptionalText && (\n\t\t\t\t\t<span className=\"text-gdt-xs font-normal italic\">(optional)</span>\n\t\t\t\t)}\n\t\t\t</label>\n\t\t);\n\t}\n\n\treturn (\n\t\t// biome-ignore lint/a11y/noLabelWithoutControl: association is supplied by callers through htmlFor or nesting patterns.\n\t\t<label data-slot=\"label\" className={labelClassName} {...props}>\n\t\t\t<div>\n\t\t\t\t{children}{\" \"}\n\t\t\t\t{showOptionalText && (\n\t\t\t\t\t<span className=\"text-gdt-xs font-normal italic\">(optional)</span>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</label>\n\t);\n}\n\nexport { Label };\n"],"mappings":";;;;;AAwBG,SACC,KADD;AAlBH,SAAS,MAAM;AAAA,EACd;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,GAAG;AACJ,GAGG;AACF,QAAM,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,EACD;AAEA,MAAI,cAAc;AACjB;AAAA;AAAA,MAEC,qBAAC,WAAM,aAAU,SAAQ,WAAW,gBAAiB,GAAG,OACvD;AAAA,4BAAC,SAAI,WAAU,eAAe,UAAS;AAAA,QACtC,gBACA,oBAAC,UAAK,WAAU,uCAAsC,eAAC;AAAA,QAEvD,oBACA,oBAAC,UAAK,WAAU,kCAAiC,wBAAU;AAAA,SAE7D;AAAA;AAAA,EAEF;AAEA;AAAA;AAAA,IAEC,oBAAC,WAAM,aAAU,SAAQ,WAAW,gBAAiB,GAAG,OACvD,+BAAC,SACC;AAAA;AAAA,MAAU;AAAA,MACV,oBACA,oBAAC,UAAK,WAAU,kCAAiC,wBAAU;AAAA,OAE7D,GACD;AAAA;AAEF;","names":[]}
@@ -1,135 +0,0 @@
1
- import {
2
- useComponentSize
3
- } from "./chunk-HL3ZSYES.js";
4
- import {
5
- cn
6
- } from "./chunk-Y4TTYVNE.js";
7
-
8
- // src/button.tsx
9
- import { Button as ButtonPrimitive } from "@base-ui/react/button";
10
- import { mergeProps } from "@base-ui/react/merge-props";
11
- import { useRender } from "@base-ui/react/use-render";
12
- import { cva } from "class-variance-authority";
13
- import { Loader } from "lucide-react";
14
- import { jsx, jsxs } from "react/jsx-runtime";
15
- var buttonVariants = cva(
16
- "group/button inline-flex shrink-0 items-center justify-center rounded-full bg-clip-padding whitespace-nowrap font-bold transition-[background-color,color,border-color,box-shadow,transform] outline-none select-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-line-danger aria-invalid:ring-3 aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
17
- {
18
- variants: {
19
- variant: {
20
- primary: "bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed",
21
- "primary-outline": "border-2 border-action-primary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle",
22
- secondary: "bg-surface-brand-subtle text-fg-brand hover:bg-action-primary-hover hover:text-fg-on-brand active:bg-action-primary-pressed active:text-fg-on-brand data-focused:bg-action-primary-hover data-pressed:bg-action-primary-pressed data-focused:text-fg-on-brand data-pressed:text-fg-on-brand",
23
- "secondary-outline": "border-2 border-action-secondary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle",
24
- tertiary: "bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-focused:bg-action-tertiary-hover data-pressed:bg-action-tertiary-pressed",
25
- "tertiary-outline": "border border-line-strong bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised",
26
- ghost: "bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised",
27
- danger: "bg-action-danger text-fg-on-brand hover:bg-action-danger-hover active:bg-action-danger-pressed data-focused:bg-action-danger-hover data-pressed:bg-action-danger-pressed",
28
- whatsapp: "bg-whatsapp-button text-black [&_svg]:text-white hover:brightness-95 active:brightness-90 data-focused:brightness-95 data-pressed:brightness-90",
29
- "glass-overlay": "bg-surface-glass-overlay-button text-fg-on-brand shadow-2 backdrop-blur-sm hover:scale-105 active:scale-95",
30
- "link-brand": "border-transparent bg-transparent px-0 text-fg-brand hover:underline active:underline active:opacity-70",
31
- "link-neutral": "border-transparent bg-transparent px-0 text-fg-secondary hover:underline active:underline active:opacity-70"
32
- },
33
- size: {
34
- sm: "h-8 min-w-8 gap-2 px-3.5 text-gdt-xs [&_svg:not([class*='size-'])]:size-4",
35
- md: "h-10 min-w-10 gap-2 px-4.5 text-gdt-sm [&_svg:not([class*='size-'])]:size-4.5",
36
- lg: "h-12 min-w-12 gap-2.5 px-5.5 text-gdt-md [&_svg:not([class*='size-'])]:size-6",
37
- xl: "h-14 min-w-14 gap-3 px-6.5 text-gdt-lg [&_svg:not([class*='size-'])]:size-6",
38
- icon: "size-10",
39
- "icon-xs": "size-6 text-gdt-xs [&_svg:not([class*='size-'])]:size-3",
40
- "icon-sm": "size-8 text-gdt-sm [&_svg:not([class*='size-'])]:size-3.5",
41
- "icon-lg": "size-12.5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5",
42
- "icon-xl": "size-14 text-gdt-lg [&_svg:not([class*='size-'])]:size-5"
43
- }
44
- },
45
- defaultVariants: {
46
- variant: "primary",
47
- size: "md"
48
- }
49
- }
50
- );
51
- function Button({
52
- className,
53
- variant = "primary",
54
- size,
55
- isLoading = false,
56
- children,
57
- disabled = false,
58
- ...props
59
- }) {
60
- const inheritedSize = useComponentSize();
61
- const resolvedSize = size ?? inheritedSize;
62
- const _disabled = disabled || isLoading;
63
- return /* @__PURE__ */ jsxs(
64
- ButtonPrimitive,
65
- {
66
- "data-slot": "button",
67
- className: cn(
68
- buttonVariants({
69
- variant,
70
- size: resolvedSize,
71
- className
72
- })
73
- ),
74
- disabled: _disabled,
75
- ...props,
76
- children: [
77
- isLoading && /* @__PURE__ */ jsx(Loader, { className: "size-4 animate-spin" }),
78
- " ",
79
- children
80
- ]
81
- }
82
- );
83
- }
84
- function ButtonLink({
85
- className,
86
- render,
87
- variant = "primary",
88
- size,
89
- disabled = false,
90
- onClick,
91
- children,
92
- ...props
93
- }) {
94
- const inheritedSize = useComponentSize();
95
- const resolvedSize = size ?? inheritedSize;
96
- return useRender({
97
- defaultTagName: "a",
98
- props: mergeProps(
99
- {
100
- className: cn(
101
- buttonVariants({
102
- variant,
103
- size: resolvedSize,
104
- className
105
- })
106
- ),
107
- children
108
- },
109
- {
110
- ...props,
111
- "aria-disabled": disabled,
112
- tabIndex: disabled ? -1 : props.tabIndex,
113
- onClick: (event) => {
114
- if (disabled) {
115
- event.preventDefault();
116
- return;
117
- }
118
- onClick?.(event);
119
- }
120
- }
121
- ),
122
- render,
123
- state: {
124
- slot: "button-link",
125
- disabled
126
- }
127
- });
128
- }
129
-
130
- export {
131
- buttonVariants,
132
- Button,
133
- ButtonLink
134
- };
135
- //# sourceMappingURL=chunk-B4H6RNDH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/button.tsx"],"sourcesContent":["import { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport { cn } from \"./lib/cn\";\nimport { useComponentSize } from \"./size-context\";\n\nconst buttonVariants = cva(\n\t\"group/button inline-flex shrink-0 items-center justify-center rounded-full bg-clip-padding whitespace-nowrap font-bold transition-[background-color,color,border-color,box-shadow,transform] outline-none select-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-line-danger aria-invalid:ring-3 aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tprimary:\n\t\t\t\t\t\"bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed\",\n\t\t\t\t\"primary-outline\":\n\t\t\t\t\t\"border-2 border-action-primary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-surface-brand-subtle text-fg-brand hover:bg-action-primary-hover hover:text-fg-on-brand active:bg-action-primary-pressed active:text-fg-on-brand data-focused:bg-action-primary-hover data-pressed:bg-action-primary-pressed data-focused:text-fg-on-brand data-pressed:text-fg-on-brand\",\n\t\t\t\t\"secondary-outline\":\n\t\t\t\t\t\"border-2 border-action-secondary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle\",\n\t\t\t\ttertiary:\n\t\t\t\t\t\"bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-focused:bg-action-tertiary-hover data-pressed:bg-action-tertiary-pressed\",\n\t\t\t\t\"tertiary-outline\":\n\t\t\t\t\t\"border border-line-strong bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised\",\n\t\t\t\tghost:\n\t\t\t\t\t\"bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised\",\n\t\t\t\tdanger:\n\t\t\t\t\t\"bg-action-danger text-fg-on-brand hover:bg-action-danger-hover active:bg-action-danger-pressed data-focused:bg-action-danger-hover data-pressed:bg-action-danger-pressed\",\n\t\t\t\twhatsapp:\n\t\t\t\t\t\"bg-whatsapp-button text-black [&_svg]:text-white hover:brightness-95 active:brightness-90 data-focused:brightness-95 data-pressed:brightness-90\",\n\t\t\t\t\"glass-overlay\":\n\t\t\t\t\t\"bg-surface-glass-overlay-button text-fg-on-brand shadow-2 backdrop-blur-sm hover:scale-105 active:scale-95\",\n\t\t\t\t\"link-brand\":\n\t\t\t\t\t\"border-transparent bg-transparent px-0 text-fg-brand hover:underline active:underline active:opacity-70\",\n\t\t\t\t\"link-neutral\":\n\t\t\t\t\t\"border-transparent bg-transparent px-0 text-fg-secondary hover:underline active:underline active:opacity-70\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tsm: \"h-8 min-w-8 gap-2 px-3.5 text-gdt-xs [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tmd: \"h-10 min-w-10 gap-2 px-4.5 text-gdt-sm [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\tlg: \"h-12 min-w-12 gap-2.5 px-5.5 text-gdt-md [&_svg:not([class*='size-'])]:size-6\",\n\t\t\t\txl: \"h-14 min-w-14 gap-3 px-6.5 text-gdt-lg [&_svg:not([class*='size-'])]:size-6\",\n\t\t\t\ticon: \"size-10\",\n\t\t\t\t\"icon-xs\": \"size-6 text-gdt-xs [&_svg:not([class*='size-'])]:size-3\",\n\t\t\t\t\"icon-sm\": \"size-8 text-gdt-sm [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\t\"icon-lg\":\n\t\t\t\t\t\"size-12.5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\t\"icon-xl\": \"size-14 text-gdt-lg [&_svg:not([class*='size-'])]:size-5\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"primary\",\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nfunction Button({\n\tclassName,\n\tvariant = \"primary\",\n\tsize,\n\tisLoading = false,\n\tchildren,\n\tdisabled = false,\n\t...props\n}: ButtonPrimitive.Props &\n\tVariantProps<typeof buttonVariants> & { isLoading?: boolean }) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize = size ?? inheritedSize;\n\tconst _disabled = disabled || isLoading;\n\treturn (\n\t\t<ButtonPrimitive\n\t\t\tdata-slot=\"button\"\n\t\t\tclassName={cn(\n\t\t\t\tbuttonVariants({\n\t\t\t\t\tvariant,\n\t\t\t\t\tsize: resolvedSize,\n\t\t\t\t\tclassName,\n\t\t\t\t}),\n\t\t\t)}\n\t\t\tdisabled={_disabled}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isLoading && <Loader className=\"size-4 animate-spin\" />} {children}\n\t\t</ButtonPrimitive>\n\t);\n}\n\ntype ButtonLinkProps = useRender.ComponentProps<\"a\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tdisabled?: boolean;\n\t};\n\nfunction ButtonLink({\n\tclassName,\n\trender,\n\tvariant = \"primary\",\n\tsize,\n\tdisabled = false,\n\tonClick,\n\tchildren,\n\t...props\n}: ButtonLinkProps) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize: ButtonSize = size ?? inheritedSize;\n\n\treturn useRender({\n\t\tdefaultTagName: \"a\",\n\t\tprops: mergeProps<\"a\">(\n\t\t\t{\n\t\t\t\tclassName: cn(\n\t\t\t\t\tbuttonVariants({\n\t\t\t\t\t\tvariant,\n\t\t\t\t\t\tsize: resolvedSize,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\tchildren,\n\t\t\t},\n\t\t\t{\n\t\t\t\t...props,\n\t\t\t\t\"aria-disabled\": disabled,\n\t\t\t\ttabIndex: disabled ? -1 : props.tabIndex,\n\t\t\t\tonClick: (event) => {\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t},\n\t\t\t},\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tslot: \"button-link\",\n\t\t\tdisabled,\n\t\t},\n\t});\n}\n\nexport { Button, ButtonLink, buttonVariants };\n"],"mappings":";;;;;;;;AAAA,SAAS,UAAU,uBAAuB;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,WAA8B;AACvC,SAAS,cAAc;AAsErB,SAYe,KAZf;AAlEF,IAAM,iBAAiB;AAAA,EACtB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,SACC;AAAA,QACD,mBACC;AAAA,QACD,WACC;AAAA,QACD,qBACC;AAAA,QACD,UACC;AAAA,QACD,oBACC;AAAA,QACD,OACC;AAAA,QACD,QACC;AAAA,QACD,UACC;AAAA,QACD,iBACC;AAAA,QACD,cACC;AAAA,QACD,gBACC;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WACC;AAAA,QACD,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAIA,SAAS,OAAO;AAAA,EACf;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACJ,GACgE;AAC/D,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,eAAe,QAAQ;AAC7B,QAAM,YAAY,YAAY;AAC9B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV,eAAe;AAAA,UACd;AAAA,UACA,MAAM;AAAA,UACN;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,UAAU;AAAA,MACT,GAAG;AAAA,MAEH;AAAA,qBAAa,oBAAC,UAAO,WAAU,uBAAsB;AAAA,QAAG;AAAA,QAAE;AAAA;AAAA;AAAA,EAC5D;AAEF;AAOA,SAAS,WAAW;AAAA,EACnB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAoB;AACnB,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,eAA2B,QAAQ;AAEzC,SAAO,UAAU;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,MACN;AAAA,QACC,WAAW;AAAA,UACV,eAAe;AAAA,YACd;AAAA,YACA,MAAM;AAAA,YACN;AAAA,UACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,MACD;AAAA,MACA;AAAA,QACC,GAAG;AAAA,QACH,iBAAiB;AAAA,QACjB,UAAU,WAAW,KAAK,MAAM;AAAA,QAChC,SAAS,CAAC,UAAU;AACnB,cAAI,UAAU;AACb,kBAAM,eAAe;AACrB;AAAA,UACD;AAEA,oBAAU,KAAK;AAAA,QAChB;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IACD;AAAA,EACD,CAAC;AACF;","names":[]}
@@ -1,219 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-Y4TTYVNE.js";
4
-
5
- // src/review-block.tsx
6
- import { mergeProps } from "@base-ui/react/merge-props";
7
- import { useRender } from "@base-ui/react/use-render";
8
- import { cva } from "class-variance-authority";
9
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
- var STAR_INDEXES = [0, 1, 2, 3, 4];
11
- var reviewBlockVariants = cva(
12
- "group/review-block inline-flex w-fit min-w-0 flex-col items-center justify-center rounded-full bg-canvas text-fg-primary transition-[background-color,border-color,box-shadow]",
13
- {
14
- variants: {
15
- size: {
16
- xs: "gap-[2px] border px-6 py-1.5",
17
- sm: "gap-[3px] border-[1.5px] px-10 py-1.5",
18
- md: "gap-1 border-2 px-14 py-2",
19
- lg: "gap-[5px] border-[2.5px] px-18 py-2.5"
20
- },
21
- bordered: {
22
- true: "border-line-focus",
23
- false: "border-transparent"
24
- },
25
- showReviewText: {
26
- true: "",
27
- false: ""
28
- }
29
- },
30
- defaultVariants: {
31
- size: "md",
32
- bordered: true,
33
- showReviewText: true
34
- }
35
- }
36
- );
37
- var reviewBlockStarsVariants = cva("inline-flex shrink-0 items-center", {
38
- variants: {
39
- size: {
40
- xs: "gap-1.5",
41
- sm: "gap-2",
42
- md: "gap-2.5",
43
- lg: "gap-3.5"
44
- }
45
- },
46
- defaultVariants: {
47
- size: "md"
48
- }
49
- });
50
- var reviewBlockStarVariants = cva("relative inline-flex shrink-0", {
51
- variants: {
52
- size: {
53
- xs: "size-4",
54
- sm: "size-6",
55
- md: "size-9",
56
- lg: "size-12"
57
- }
58
- },
59
- defaultVariants: {
60
- size: "md"
61
- }
62
- });
63
- var reviewBlockStarIconVariants = cva("block h-full max-w-none", {
64
- variants: {
65
- size: {
66
- xs: "w-4",
67
- sm: "w-6",
68
- md: "w-9",
69
- lg: "w-12"
70
- }
71
- },
72
- defaultVariants: {
73
- size: "md"
74
- }
75
- });
76
- var reviewBlockTextVariants = cva(
77
- "text-center font-medium text-fg-primary whitespace-nowrap",
78
- {
79
- variants: {
80
- size: {
81
- xs: "text-[0.75rem] leading-[1.125rem]",
82
- sm: "text-gdt-sm",
83
- md: "text-[1rem] leading-[1.375rem]",
84
- lg: "text-[1.125rem] leading-[1.5rem]"
85
- }
86
- },
87
- defaultVariants: {
88
- size: "md"
89
- }
90
- }
91
- );
92
- function clampRating(rating) {
93
- if (!Number.isFinite(rating)) {
94
- return 0;
95
- }
96
- return Math.min(5, Math.max(0, rating));
97
- }
98
- function getStarFill(index, rating) {
99
- return Math.min(1, Math.max(0, rating - index)) * 100;
100
- }
101
- function formatRating(rating) {
102
- return Number.isInteger(rating) ? rating.toString() : rating.toFixed(2).replace(/0+$/, "").replace(/\.$/, "");
103
- }
104
- function formatReviewText(reviewCount, reviewLabel = "Review") {
105
- const normalizedLabel = reviewCount === 1 ? reviewLabel : `${reviewLabel}s`;
106
- return `${reviewCount.toLocaleString()} ${normalizedLabel}`;
107
- }
108
- function ReviewStarIcon(props) {
109
- return /* @__PURE__ */ jsx(
110
- "svg",
111
- {
112
- "aria-hidden": "true",
113
- fill: "none",
114
- focusable: "false",
115
- viewBox: "0 0 35 33",
116
- xmlns: "http://www.w3.org/2000/svg",
117
- ...props,
118
- children: /* @__PURE__ */ jsx(
119
- "path",
120
- {
121
- d: "m17.119 0 4.042 12.437h13.077l-10.58 7.688L27.7 32.562l-10.58-7.686-10.58 7.686 4.04-12.437L0 12.438h13.077L17.12 0Z",
122
- fill: "currentColor"
123
- }
124
- )
125
- }
126
- );
127
- }
128
- function ReviewStar({
129
- fillPercent,
130
- size
131
- }) {
132
- return /* @__PURE__ */ jsxs("span", { className: reviewBlockStarVariants({ size }), children: [
133
- /* @__PURE__ */ jsx(
134
- ReviewStarIcon,
135
- {
136
- "aria-hidden": "true",
137
- className: cn("text-line-focus", reviewBlockStarIconVariants({ size }))
138
- }
139
- ),
140
- /* @__PURE__ */ jsx(
141
- "span",
142
- {
143
- "aria-hidden": "true",
144
- className: "absolute inset-y-0 left-0 overflow-hidden text-line-focus",
145
- style: { width: `${fillPercent}%` },
146
- children: /* @__PURE__ */ jsx(ReviewStarIcon, { className: reviewBlockStarIconVariants({ size }) })
147
- }
148
- )
149
- ] });
150
- }
151
- function ReviewBlock({
152
- bordered = true,
153
- className,
154
- rating,
155
- ratingLabel,
156
- render,
157
- reviewCount,
158
- reviewLabel,
159
- size = "md",
160
- showReviewText = true,
161
- ...props
162
- }) {
163
- const resolvedSize = size ?? "md";
164
- const normalizedRating = clampRating(rating);
165
- const formattedRating = formatRating(normalizedRating);
166
- const reviewText = showReviewText && typeof reviewCount === "number" ? formatReviewText(reviewCount, reviewLabel) : null;
167
- const ariaLabel = ratingLabel ?? (reviewText ? `${formattedRating} out of 5 stars, ${reviewText}` : `${formattedRating} out of 5 stars`);
168
- return useRender({
169
- defaultTagName: "div",
170
- props: mergeProps(
171
- {
172
- "aria-label": ariaLabel,
173
- className: cn(
174
- reviewBlockVariants({
175
- bordered,
176
- size: resolvedSize,
177
- showReviewText: Boolean(reviewText)
178
- }),
179
- className
180
- ),
181
- children: /* @__PURE__ */ jsxs(Fragment, { children: [
182
- /* @__PURE__ */ jsx(
183
- "span",
184
- {
185
- "aria-hidden": "true",
186
- className: reviewBlockStarsVariants({ size: resolvedSize }),
187
- children: STAR_INDEXES.map((index) => /* @__PURE__ */ jsx(
188
- ReviewStar,
189
- {
190
- fillPercent: getStarFill(index, normalizedRating),
191
- size: resolvedSize
192
- },
193
- index
194
- ))
195
- }
196
- ),
197
- reviewText ? /* @__PURE__ */ jsx("span", { className: reviewBlockTextVariants({ size: resolvedSize }), children: reviewText }) : null
198
- ] }),
199
- role: "img"
200
- },
201
- props
202
- ),
203
- render,
204
- state: {
205
- bordered,
206
- rating: normalizedRating,
207
- reviewCount,
208
- size: resolvedSize,
209
- showReviewText: Boolean(reviewText),
210
- slot: "review-block"
211
- }
212
- });
213
- }
214
-
215
- export {
216
- reviewBlockVariants,
217
- ReviewBlock
218
- };
219
- //# sourceMappingURL=chunk-BUXCGZ6X.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/review-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 type { SVGProps } from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\nconst STAR_INDEXES = [0, 1, 2, 3, 4] as const;\n\nconst reviewBlockVariants = cva(\n\t\"group/review-block inline-flex w-fit min-w-0 flex-col items-center justify-center rounded-full bg-canvas text-fg-primary transition-[background-color,border-color,box-shadow]\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: \"gap-[2px] border px-6 py-1.5\",\n\t\t\t\tsm: \"gap-[3px] border-[1.5px] px-10 py-1.5\",\n\t\t\t\tmd: \"gap-1 border-2 px-14 py-2\",\n\t\t\t\tlg: \"gap-[5px] border-[2.5px] px-18 py-2.5\",\n\t\t\t},\n\t\t\tbordered: {\n\t\t\t\ttrue: \"border-line-focus\",\n\t\t\t\tfalse: \"border-transparent\",\n\t\t\t},\n\t\t\tshowReviewText: {\n\t\t\t\ttrue: \"\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t\tbordered: true,\n\t\t\tshowReviewText: true,\n\t\t},\n\t},\n);\n\nconst reviewBlockStarsVariants = cva(\"inline-flex shrink-0 items-center\", {\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"gap-1.5\",\n\t\t\tsm: \"gap-2\",\n\t\t\tmd: \"gap-2.5\",\n\t\t\tlg: \"gap-3.5\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst reviewBlockStarVariants = cva(\"relative inline-flex shrink-0\", {\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"size-4\",\n\t\t\tsm: \"size-6\",\n\t\t\tmd: \"size-9\",\n\t\t\tlg: \"size-12\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst reviewBlockStarIconVariants = cva(\"block h-full max-w-none\", {\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"w-4\",\n\t\t\tsm: \"w-6\",\n\t\t\tmd: \"w-9\",\n\t\t\tlg: \"w-12\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst reviewBlockTextVariants = cva(\n\t\"text-center font-medium text-fg-primary whitespace-nowrap\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: \"text-[0.75rem] leading-[1.125rem]\",\n\t\t\t\tsm: \"text-gdt-sm\",\n\t\t\t\tmd: \"text-[1rem] leading-[1.375rem]\",\n\t\t\t\tlg: \"text-[1.125rem] leading-[1.5rem]\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype ReviewBlockSize = NonNullable<\n\tVariantProps<typeof reviewBlockVariants>[\"size\"]\n>;\n\ntype ReviewBlockProps = Omit<useRender.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof reviewBlockVariants> & {\n\t\trating: number;\n\t\treviewCount?: number;\n\t\treviewLabel?: string;\n\t\tratingLabel?: string;\n\t};\n\nfunction clampRating(rating: number) {\n\tif (!Number.isFinite(rating)) {\n\t\treturn 0;\n\t}\n\n\treturn Math.min(5, Math.max(0, rating));\n}\n\nfunction getStarFill(index: number, rating: number) {\n\treturn Math.min(1, Math.max(0, rating - index)) * 100;\n}\n\nfunction formatRating(rating: number) {\n\treturn Number.isInteger(rating)\n\t\t? rating.toString()\n\t\t: rating.toFixed(2).replace(/0+$/, \"\").replace(/\\.$/, \"\");\n}\n\nfunction formatReviewText(reviewCount: number, reviewLabel = \"Review\") {\n\tconst normalizedLabel = reviewCount === 1 ? reviewLabel : `${reviewLabel}s`;\n\n\treturn `${reviewCount.toLocaleString()} ${normalizedLabel}`;\n}\n\nfunction ReviewStarIcon(props: SVGProps<SVGSVGElement>) {\n\treturn (\n\t\t<svg\n\t\t\taria-hidden=\"true\"\n\t\t\tfill=\"none\"\n\t\t\tfocusable=\"false\"\n\t\t\tviewBox=\"0 0 35 33\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"m17.119 0 4.042 12.437h13.077l-10.58 7.688L27.7 32.562l-10.58-7.686-10.58 7.686 4.04-12.437L0 12.438h13.077L17.12 0Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nfunction ReviewStar({\n\tfillPercent,\n\tsize,\n}: {\n\tfillPercent: number;\n\tsize: ReviewBlockSize;\n}) {\n\treturn (\n\t\t<span className={reviewBlockStarVariants({ size })}>\n\t\t\t<ReviewStarIcon\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={cn(\"text-line-focus\", reviewBlockStarIconVariants({ size }))}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"absolute inset-y-0 left-0 overflow-hidden text-line-focus\"\n\t\t\t\tstyle={{ width: `${fillPercent}%` }}\n\t\t\t>\n\t\t\t\t<ReviewStarIcon className={reviewBlockStarIconVariants({ size })} />\n\t\t\t</span>\n\t\t</span>\n\t);\n}\n\nfunction ReviewBlock({\n\tbordered = true,\n\tclassName,\n\trating,\n\tratingLabel,\n\trender,\n\treviewCount,\n\treviewLabel,\n\tsize = \"md\",\n\tshowReviewText = true,\n\t...props\n}: ReviewBlockProps) {\n\tconst resolvedSize = size ?? \"md\";\n\tconst normalizedRating = clampRating(rating);\n\tconst formattedRating = formatRating(normalizedRating);\n\tconst reviewText =\n\t\tshowReviewText && typeof reviewCount === \"number\"\n\t\t\t? formatReviewText(reviewCount, reviewLabel)\n\t\t\t: null;\n\tconst ariaLabel =\n\t\tratingLabel ??\n\t\t(reviewText\n\t\t\t? `${formattedRating} out of 5 stars, ${reviewText}`\n\t\t\t: `${formattedRating} out of 5 stars`);\n\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: mergeProps<\"div\">(\n\t\t\t{\n\t\t\t\t\"aria-label\": ariaLabel,\n\t\t\t\tclassName: cn(\n\t\t\t\t\treviewBlockVariants({\n\t\t\t\t\t\tbordered,\n\t\t\t\t\t\tsize: resolvedSize,\n\t\t\t\t\t\tshowReviewText: Boolean(reviewText),\n\t\t\t\t\t}),\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<span\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={reviewBlockStarsVariants({ size: resolvedSize })}\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<ReviewStar\n\t\t\t\t\t\t\t\t\tfillPercent={getStarFill(index, normalizedRating)}\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\tsize={resolvedSize}\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{reviewText ? (\n\t\t\t\t\t\t\t<span className={reviewBlockTextVariants({ size: resolvedSize })}>\n\t\t\t\t\t\t\t\t{reviewText}\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\trole: \"img\",\n\t\t\t},\n\t\t\tprops,\n\t\t),\n\t\trender,\n\t\tstate: {\n\t\t\tbordered,\n\t\t\trating: normalizedRating,\n\t\t\treviewCount,\n\t\t\tsize: resolvedSize,\n\t\t\tshowReviewText: Boolean(reviewText),\n\t\t\tslot: \"review-block\",\n\t\t},\n\t});\n}\n\nexport { ReviewBlock, reviewBlockVariants };\nexport type { ReviewBlockProps, ReviewBlockSize };\n"],"mappings":"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","names":[]}
@@ -1,58 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-Y4TTYVNE.js";
4
-
5
- // src/separator.tsx
6
- import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
7
- import { jsx } from "react/jsx-runtime";
8
- function Separator({
9
- className,
10
- orientation = "horizontal",
11
- dashed = false,
12
- shade = "feint",
13
- thickness = "default",
14
- ...props
15
- }) {
16
- return /* @__PURE__ */ jsx(
17
- SeparatorPrimitive,
18
- {
19
- "data-slot": "separator",
20
- orientation,
21
- className: cn(
22
- "shrink-0",
23
- dashed ? [
24
- // DASHED STATE: Uses borders for thickness and color
25
- "border-dashed",
26
- "data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:w-full",
27
- "data-[orientation=vertical]:w-0 data-[orientation=vertical]:self-stretch",
28
- // shade
29
- shade === "feint" && "border-line-subtle",
30
- shade === "deep" && "border-line",
31
- // thickness
32
- thickness === "hairline" && "data-[orientation=horizontal]:border-t-[0.5px] data-[orientation=vertical]:border-l-[0.5px]",
33
- thickness === "default" && "data-[orientation=horizontal]:border-t data-[orientation=vertical]:border-l",
34
- thickness === "thick" && "data-[orientation=horizontal]:border-t-2 data-[orientation=vertical]:border-l-2",
35
- thickness === "extra-thick" && "data-[orientation=horizontal]:border-t-[3px] data-[orientation=vertical]:border-l-[3px]"
36
- ] : [
37
- // SOLID STATE: Uses background color and height/width dimensions
38
- "data-[orientation=horizontal]:w-full data-[orientation=vertical]:self-stretch",
39
- // shade
40
- shade === "feint" && "bg-line-subtle",
41
- shade === "deep" && "bg-line",
42
- // thickness
43
- thickness === "hairline" && "data-[orientation=horizontal]:h-[0.5px] data-[orientation=vertical]:w-[0.5px]",
44
- thickness === "default" && "data-[orientation=horizontal]:h-px data-[orientation=vertical]:w-px",
45
- thickness === "thick" && "data-[orientation=horizontal]:h-0.5 data-[orientation=vertical]:w-0.5",
46
- thickness === "extra-thick" && "data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5"
47
- ],
48
- className
49
- ),
50
- ...props
51
- }
52
- );
53
- }
54
-
55
- export {
56
- Separator
57
- };
58
- //# sourceMappingURL=chunk-CHII2QHH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\";\nimport { cn } from \"./lib/cn\";\n\nfunction Separator({\n\tclassName,\n\torientation = \"horizontal\",\n\tdashed = false,\n\tshade = \"feint\",\n\tthickness = \"default\",\n\t...props\n}: SeparatorPrimitive.Props & {\n\tdashed?: boolean;\n\tshade?: \"feint\" | \"deep\";\n\tthickness?: \"hairline\" | \"default\" | \"thick\" | \"extra-thick\";\n}) {\n\treturn (\n\t\t<SeparatorPrimitive\n\t\t\tdata-slot=\"separator\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"shrink-0\",\n\t\t\t\tdashed\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t// DASHED STATE: Uses borders for thickness and color\n\t\t\t\t\t\t\t\"border-dashed\",\n\t\t\t\t\t\t\t\"data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:w-full\",\n\t\t\t\t\t\t\t\"data-[orientation=vertical]:w-0 data-[orientation=vertical]:self-stretch\",\n\t\t\t\t\t\t\t// shade\n\t\t\t\t\t\t\tshade === \"feint\" && \"border-line-subtle\",\n\t\t\t\t\t\t\tshade === \"deep\" && \"border-line\",\n\t\t\t\t\t\t\t// thickness\n\t\t\t\t\t\t\tthickness === \"hairline\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:border-t-[0.5px] data-[orientation=vertical]:border-l-[0.5px]\",\n\t\t\t\t\t\t\tthickness === \"default\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:border-t data-[orientation=vertical]:border-l\",\n\t\t\t\t\t\t\tthickness === \"thick\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:border-t-2 data-[orientation=vertical]:border-l-2\",\n\t\t\t\t\t\t\tthickness === \"extra-thick\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:border-t-[3px] data-[orientation=vertical]:border-l-[3px]\",\n\t\t\t\t\t\t]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t// SOLID STATE: Uses background color and height/width dimensions\n\t\t\t\t\t\t\t\"data-[orientation=horizontal]:w-full data-[orientation=vertical]:self-stretch\",\n\t\t\t\t\t\t\t// shade\n\t\t\t\t\t\t\tshade === \"feint\" && \"bg-line-subtle\",\n\t\t\t\t\t\t\tshade === \"deep\" && \"bg-line\",\n\t\t\t\t\t\t\t// thickness\n\t\t\t\t\t\t\tthickness === \"hairline\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:h-[0.5px] data-[orientation=vertical]:w-[0.5px]\",\n\t\t\t\t\t\t\tthickness === \"default\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:h-px data-[orientation=vertical]:w-px\",\n\t\t\t\t\t\t\tthickness === \"thick\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:h-0.5 data-[orientation=vertical]:w-0.5\",\n\t\t\t\t\t\t\tthickness === \"extra-thick\" &&\n\t\t\t\t\t\t\t\t\"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n\t\t\t\t\t\t],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"mappings":";;;;;AAEA,SAAS,aAAa,0BAA0B;AAgB9C;AAbF,SAAS,UAAU;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,GAAG;AACJ,GAIG;AACF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACV;AAAA,QACA,SACG;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA,UAAU,WAAW;AAAA,UACrB,UAAU,UAAU;AAAA;AAAA,UAEpB,cAAc,cACb;AAAA,UACD,cAAc,aACb;AAAA,UACD,cAAc,WACb;AAAA,UACD,cAAc,iBACb;AAAA,QACF,IACC;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA,UAAU,WAAW;AAAA,UACrB,UAAU,UAAU;AAAA;AAAA,UAEpB,cAAc,cACb;AAAA,UACD,cAAc,aACb;AAAA,UACD,cAAc,WACb;AAAA,UACD,cAAc,iBACb;AAAA,QACF;AAAA,QACF;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}