@giddaa-housing/ui 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +18 -6
  2. package/css/base.css +37 -0
  3. package/css/components.css +135 -0
  4. package/css/generated/shared.css +1 -0
  5. package/css/giddaa.css +402 -0
  6. package/css/preset.css +77 -0
  7. package/css/styles.css +2 -0
  8. package/css/theme.css +255 -0
  9. package/dist/accordion.js +5 -35
  10. package/dist/accordion.js.map +1 -1
  11. package/dist/activity-timeline.d.ts +33 -0
  12. package/dist/activity-timeline.js +212 -0
  13. package/dist/activity-timeline.js.map +1 -0
  14. package/dist/alert.js +5 -35
  15. package/dist/alert.js.map +1 -1
  16. package/dist/auth-layout.d.ts +23 -0
  17. package/dist/auth-layout.js +304 -0
  18. package/dist/auth-layout.js.map +1 -0
  19. package/dist/avatar.js +10 -142
  20. package/dist/avatar.js.map +1 -1
  21. package/dist/badge.d.ts +3 -2
  22. package/dist/badge.js +6 -114
  23. package/dist/badge.js.map +1 -1
  24. package/dist/bar-chart.d.ts +101 -77
  25. package/dist/bar-chart.js +142 -220
  26. package/dist/bar-chart.js.map +1 -1
  27. package/dist/breadcrumb.js +5 -35
  28. package/dist/breadcrumb.js.map +1 -1
  29. package/dist/bullet-chart.js +15 -48
  30. package/dist/bullet-chart.js.map +1 -1
  31. package/dist/button-group.js +14 -90
  32. package/dist/button-group.js.map +1 -1
  33. package/dist/button.d.ts +5 -5
  34. package/dist/button.js +7 -140
  35. package/dist/button.js.map +1 -1
  36. package/dist/calendar.js +12 -287
  37. package/dist/calendar.js.map +1 -1
  38. package/dist/card.js +5 -35
  39. package/dist/card.js.map +1 -1
  40. package/dist/carousel.js +12 -386
  41. package/dist/carousel.js.map +1 -1
  42. package/dist/chart.js +16 -480
  43. package/dist/chart.js.map +1 -1
  44. package/dist/checkbox.d.ts +1 -1
  45. package/dist/checkbox.js +13 -48
  46. package/dist/checkbox.js.map +1 -1
  47. package/dist/chunk-322YCNVL.js +278 -0
  48. package/dist/chunk-322YCNVL.js.map +1 -0
  49. package/dist/chunk-3ACQVT7A.js +25 -0
  50. package/dist/chunk-3ACQVT7A.js.map +1 -0
  51. package/dist/chunk-3T65TLJX.js +334 -0
  52. package/dist/chunk-3T65TLJX.js.map +1 -0
  53. package/dist/chunk-6ZSGQHH2.js +192 -0
  54. package/dist/chunk-6ZSGQHH2.js.map +1 -0
  55. package/dist/chunk-7TBMLFGW.js +41 -0
  56. package/dist/chunk-7TBMLFGW.js.map +1 -0
  57. package/dist/chunk-B4H6RNDH.js +135 -0
  58. package/dist/chunk-B4H6RNDH.js.map +1 -0
  59. package/dist/chunk-BUXCGZ6X.js +219 -0
  60. package/dist/chunk-BUXCGZ6X.js.map +1 -0
  61. package/dist/chunk-CHII2QHH.js +58 -0
  62. package/dist/chunk-CHII2QHH.js.map +1 -0
  63. package/dist/chunk-DMNOXRRW.js +147 -0
  64. package/dist/chunk-DMNOXRRW.js.map +1 -0
  65. package/dist/chunk-EFSOSSIC.js +130 -0
  66. package/dist/chunk-EFSOSSIC.js.map +1 -0
  67. package/dist/chunk-FZDSVMKY.js +363 -0
  68. package/dist/chunk-FZDSVMKY.js.map +1 -0
  69. package/dist/chunk-GJOFIJS3.js +246 -0
  70. package/dist/chunk-GJOFIJS3.js.map +1 -0
  71. package/dist/chunk-HL3ZSYES.js +23 -0
  72. package/dist/chunk-HL3ZSYES.js.map +1 -0
  73. package/dist/chunk-JVLUBAPB.js +129 -0
  74. package/dist/chunk-JVLUBAPB.js.map +1 -0
  75. package/dist/chunk-KDPYSOYZ.js +64 -0
  76. package/dist/chunk-KDPYSOYZ.js.map +1 -0
  77. package/dist/chunk-KSMDANKI.js +43 -0
  78. package/dist/chunk-KSMDANKI.js.map +1 -0
  79. package/dist/chunk-MEKCCOP5.js +46 -0
  80. package/dist/chunk-MEKCCOP5.js.map +1 -0
  81. package/dist/chunk-NOFXVRWL.js +451 -0
  82. package/dist/chunk-NOFXVRWL.js.map +1 -0
  83. package/dist/chunk-PC5MHNVA.js +171 -0
  84. package/dist/chunk-PC5MHNVA.js.map +1 -0
  85. package/dist/chunk-QKAQZ2GU.js +122 -0
  86. package/dist/chunk-QKAQZ2GU.js.map +1 -0
  87. package/dist/chunk-QZHSHSVV.js +26 -0
  88. package/dist/chunk-QZHSHSVV.js.map +1 -0
  89. package/dist/chunk-RBMK26XD.js +19 -0
  90. package/dist/chunk-RBMK26XD.js.map +1 -0
  91. package/dist/chunk-SFNJGF6M.js +262 -0
  92. package/dist/chunk-SFNJGF6M.js.map +1 -0
  93. package/dist/chunk-UJJNLGTM.js +112 -0
  94. package/dist/chunk-UJJNLGTM.js.map +1 -0
  95. package/dist/chunk-VGR4ZWJ3.js +418 -0
  96. package/dist/chunk-VGR4ZWJ3.js.map +1 -0
  97. package/dist/chunk-XG47P6D4.js +99 -0
  98. package/dist/chunk-XG47P6D4.js.map +1 -0
  99. package/dist/chunk-XZZAHNVM.js +21 -0
  100. package/dist/chunk-XZZAHNVM.js.map +1 -0
  101. package/dist/chunk-Y4TTYVNE.js +36 -0
  102. package/dist/chunk-Y4TTYVNE.js.map +1 -0
  103. package/dist/chunk-YDWIHW6Q.js +69 -0
  104. package/dist/chunk-YDWIHW6Q.js.map +1 -0
  105. package/dist/collapsible.js +6 -35
  106. package/dist/collapsible.js.map +1 -1
  107. package/dist/combobox.js +26 -694
  108. package/dist/combobox.js.map +1 -1
  109. package/dist/cta.d.ts +66 -0
  110. package/dist/cta.js +358 -0
  111. package/dist/cta.js.map +1 -0
  112. package/dist/currency-selector.d.ts +42 -0
  113. package/dist/currency-selector.js +192 -0
  114. package/dist/currency-selector.js.map +1 -0
  115. package/dist/date-picker.d.ts +18 -10
  116. package/dist/date-picker.js +105 -430
  117. package/dist/date-picker.js.map +1 -1
  118. package/dist/details-card.d.ts +19 -0
  119. package/dist/details-card.js +267 -0
  120. package/dist/details-card.js.map +1 -0
  121. package/dist/dialog.js +36 -146
  122. package/dist/dialog.js.map +1 -1
  123. package/dist/dropdown-menu.d.ts +1 -1
  124. package/dist/dropdown-menu.js +20 -358
  125. package/dist/dropdown-menu.js.map +1 -1
  126. package/dist/dropzone.js +13 -40
  127. package/dist/dropzone.js.map +1 -1
  128. package/dist/editorial-card.d.ts +29 -0
  129. package/dist/editorial-card.js +311 -0
  130. package/dist/editorial-card.js.map +1 -0
  131. package/dist/empty-state.js +5 -35
  132. package/dist/empty-state.js.map +1 -1
  133. package/dist/field.js +30 -135
  134. package/dist/field.js.map +1 -1
  135. package/dist/footer.d.ts +47 -0
  136. package/dist/footer.js +430 -0
  137. package/dist/footer.js.map +1 -0
  138. package/dist/funnel-chart.js +42 -415
  139. package/dist/funnel-chart.js.map +1 -1
  140. package/dist/gallery-indicator.d.ts +18 -0
  141. package/dist/gallery-indicator.js +12 -0
  142. package/dist/gallery-indicator.js.map +1 -0
  143. package/dist/heatmap-chart.d.ts +98 -0
  144. package/dist/heatmap-chart.js +248 -0
  145. package/dist/heatmap-chart.js.map +1 -0
  146. package/dist/infotip.d.ts +11 -0
  147. package/dist/infotip.js +66 -0
  148. package/dist/infotip.js.map +1 -0
  149. package/dist/input-group.d.ts +2 -1
  150. package/dist/input-group.js +15 -371
  151. package/dist/input-group.js.map +1 -1
  152. package/dist/input-size-context.js +5 -19
  153. package/dist/input-size-context.js.map +1 -1
  154. package/dist/input.js +6 -78
  155. package/dist/input.js.map +1 -1
  156. package/dist/item.js +5 -35
  157. package/dist/item.js.map +1 -1
  158. package/dist/kpi-card.js +12 -52
  159. package/dist/kpi-card.js.map +1 -1
  160. package/dist/label.js +5 -64
  161. package/dist/label.js.map +1 -1
  162. package/dist/line-chart.js +9 -166
  163. package/dist/line-chart.js.map +1 -1
  164. package/dist/logo.js +4 -141
  165. package/dist/logo.js.map +1 -1
  166. package/dist/map-indicator.d.ts +13 -0
  167. package/dist/map-indicator.js +109 -0
  168. package/dist/map-indicator.js.map +1 -0
  169. package/dist/match.d.ts +16 -0
  170. package/dist/match.js +113 -0
  171. package/dist/match.js.map +1 -0
  172. package/dist/media-gallery-hero.d.ts +60 -0
  173. package/dist/media-gallery-hero.js +362 -0
  174. package/dist/media-gallery-hero.js.map +1 -0
  175. package/dist/media-player.d.ts +60 -0
  176. package/dist/media-player.js +1394 -0
  177. package/dist/media-player.js.map +1 -0
  178. package/dist/number-input.js +30 -325
  179. package/dist/number-input.js.map +1 -1
  180. package/dist/page-header.js +4 -32
  181. package/dist/page-header.js.map +1 -1
  182. package/dist/pagination.d.ts +1 -0
  183. package/dist/pagination.js +27 -161
  184. package/dist/pagination.js.map +1 -1
  185. package/dist/password-input.d.ts +1 -0
  186. package/dist/password-input.js +21 -319
  187. package/dist/password-input.js.map +1 -1
  188. package/dist/phone-input.d.ts +2 -1
  189. package/dist/phone-input.js +148 -359
  190. package/dist/phone-input.js.map +1 -1
  191. package/dist/photo-gallery.d.ts +1 -1
  192. package/dist/photo-gallery.js +97 -393
  193. package/dist/photo-gallery.js.map +1 -1
  194. package/dist/pie-chart.js +17 -52
  195. package/dist/pie-chart.js.map +1 -1
  196. package/dist/popover.js +13 -158
  197. package/dist/popover.js.map +1 -1
  198. package/dist/price-tag.d.ts +35 -0
  199. package/dist/price-tag.js +178 -0
  200. package/dist/price-tag.js.map +1 -0
  201. package/dist/progress.d.ts +5 -2
  202. package/dist/progress.js +14 -303
  203. package/dist/progress.js.map +1 -1
  204. package/dist/property-listing-card.d.ts +32 -0
  205. package/dist/property-listing-card.js +235 -0
  206. package/dist/property-listing-card.js.map +1 -0
  207. package/dist/radar-chart.d.ts +110 -0
  208. package/dist/radar-chart.js +147 -0
  209. package/dist/radar-chart.js.map +1 -0
  210. package/dist/radio-group.js +15 -50
  211. package/dist/radio-group.js.map +1 -1
  212. package/dist/review-block.d.ts +20 -0
  213. package/dist/review-block.js +10 -0
  214. package/dist/review-block.js.map +1 -0
  215. package/dist/rich-text-editor.js +172 -433
  216. package/dist/rich-text-editor.js.map +1 -1
  217. package/dist/scatter-chart.d.ts +142 -0
  218. package/dist/scatter-chart.js +252 -0
  219. package/dist/scatter-chart.js.map +1 -0
  220. package/dist/search-input.d.ts +1 -0
  221. package/dist/search-input.js +22 -320
  222. package/dist/search-input.js.map +1 -1
  223. package/dist/select.js +15 -292
  224. package/dist/select.js.map +1 -1
  225. package/dist/separator.js +5 -68
  226. package/dist/separator.js.map +1 -1
  227. package/dist/sheet.js +14 -271
  228. package/dist/sheet.js.map +1 -1
  229. package/dist/sidebar.d.ts +1 -1
  230. package/dist/sidebar.js +89 -494
  231. package/dist/sidebar.js.map +1 -1
  232. package/dist/size-context.js +5 -17
  233. package/dist/size-context.js.map +1 -1
  234. package/dist/skeleton.js +4 -44
  235. package/dist/skeleton.js.map +1 -1
  236. package/dist/slider.d.ts +28 -0
  237. package/dist/slider.js +152 -0
  238. package/dist/slider.js.map +1 -0
  239. package/dist/sparkline.js +33 -341
  240. package/dist/sparkline.js.map +1 -1
  241. package/dist/stepper.js +5 -35
  242. package/dist/stepper.js.map +1 -1
  243. package/dist/styles.css +9593 -2
  244. package/dist/switch.js +13 -48
  245. package/dist/switch.js.map +1 -1
  246. package/dist/tab-list.js +35 -306
  247. package/dist/tab-list.js.map +1 -1
  248. package/dist/table.js +5 -32
  249. package/dist/table.js.map +1 -1
  250. package/dist/tabs.js +10 -150
  251. package/dist/tabs.js.map +1 -1
  252. package/dist/tag.d.ts +7 -6
  253. package/dist/tag.js +101 -97
  254. package/dist/tag.js.map +1 -1
  255. package/dist/testimonial-block.d.ts +34 -0
  256. package/dist/testimonial-block.js +377 -0
  257. package/dist/testimonial-block.js.map +1 -0
  258. package/dist/textarea.js +6 -73
  259. package/dist/textarea.js.map +1 -1
  260. package/dist/time-picker.js +119 -279
  261. package/dist/time-picker.js.map +1 -1
  262. package/dist/toast.js +27 -132
  263. package/dist/toast.js.map +1 -1
  264. package/dist/tooltip.d.ts +5 -5
  265. package/dist/tooltip.js +7 -90
  266. package/dist/tooltip.js.map +1 -1
  267. package/dist/tree-map.js +41 -414
  268. package/dist/tree-map.js.map +1 -1
  269. package/dist/waterfall-chart.d.ts +129 -0
  270. package/dist/waterfall-chart.js +577 -0
  271. package/dist/waterfall-chart.js.map +1 -0
  272. package/package.json +98 -28
  273. package/dist/base.css +0 -32
  274. package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
  275. package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
  276. package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
  277. package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
  278. package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
  279. package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
  280. package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
  281. package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
  282. package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
  283. package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
  284. package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
  285. package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
  286. package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
  287. package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
  288. package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
  289. package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
  290. package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
  291. package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
  292. package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
  293. package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
  294. package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
  295. package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
  296. package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
  297. package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
  298. package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
  299. package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
  300. package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
  301. package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
  302. package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
  303. package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
  304. package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
  305. package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
  306. package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
  307. package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
  308. package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
  309. package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
  310. package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
  311. package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
  312. package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
  313. package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
  314. package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
  315. package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
  316. package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
  317. package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
  318. package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
  319. package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
  320. package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
  321. package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
  322. package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
  323. package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
  324. package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
  325. package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
  326. package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
  327. package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
  328. package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
  329. package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
  330. package/dist/index.d.ts +0 -87
  331. package/dist/index.js +0 -10448
  332. package/dist/index.js.map +0 -1
  333. package/dist/red-hat-display.css +0 -2
  334. package/dist/theme/giddaa.css +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sheet.tsx"],"sourcesContent":["\"use client\";\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\";\nimport { cva } from \"class-variance-authority\";\nimport { XIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { Button } from \"./button\";\nimport { cn } from \"./lib/cn\";\nimport { type ComponentSize, SizeProvider } from \"./size-context\";\n\ntype SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n\treturn <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n\treturn <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n\treturn <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n\treturn <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n\treturn (\n\t\t<SheetPrimitive.Backdrop\n\t\t\tdata-slot=\"sheet-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t\"fixed inset-0 z-50 bg-black/55 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xl\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst sheetContentVariants = cva(\n\t\"group/sheet-content fixed z-50 flex flex-col gap-0 overflow-visible rounded-2xl border border-line-subtle bg-surface-overlay bg-clip-padding text-fg-primary shadow-(--elevation-e2-shadow) transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 [--sheet-padding-x:1rem] [--sheet-padding-top:1rem] data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:w-full data-[side=bottom]:rounded-b-none data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:w-full data-[side=top]:rounded-t-none data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:rounded-l-none data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:rounded-r-none data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] px-(--sheet-padding-x) **:data-[slot=tabs]:has-data-[variant=underline]:-mx-(--sheet-padding-x) **:has-data-[variant=underline]:*:px-(--sheet-padding-x)\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"sm:[--sheet-padding-top:1.5rem] sm:[--sheet-padding-x:1.5rem] w-90 max-w-[calc(100vw-2.5rem)] [--sheet-title:var(--text-gdt-h5)]\",\n\t\t\t\tmd: \"sm:[--sheet-padding-top:1.5rem] sm:[--sheet-padding-x:2rem] xl:[--sheet-padding-x:2.5rem] w-120 max-w-[calc(100vw-2.5rem)] [--sheet-title:var(--text-gdt-h4)]\",\n\t\t\t\tlg: \"sm:[--sheet-padding-top:1.5rem] sm:[--sheet-padding-x:2rem] xl:[--sheet-padding-x:2.5rem] w-160 max-w-[calc(100vw-2.5rem)] [--sheet-title:var(--text-gdt-h3)]\",\n\t\t\t\tfullscreen:\n\t\t\t\t\t\"sm:[--sheet-padding-top:2rem] sm:[--sheet-padding-x:2.5rem] xl:[--sheet-padding-x:5rem] [--sheet-title:var(--text-gdt-h2)] h-[calc(100lvh-3.5rem)] rounded:xl sm:rounded-2xl\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype SheetContentProps = SheetPrimitive.Popup.Props & {\n\tside?: SheetSide;\n\tshowCloseButton?: boolean;\n} & (\n\t\t| {\n\t\t\t\tside: \"top\" | \"bottom\";\n\t\t\t\tsize?: \"fullscreen\";\n\t\t }\n\t\t| {\n\t\t\t\tside?: \"left\" | \"right\";\n\t\t\t\tsize?: \"sm\" | \"md\" | \"lg\";\n\t\t }\n\t);\n\nfunction SheetContent({\n\tclassName,\n\tchildren,\n\tside = \"left\",\n\tsize = \"md\",\n\tshowCloseButton = true,\n\t...props\n}: SheetContentProps) {\n\tconst resolvedSize =\n\t\tside === \"top\" || side === \"bottom\"\n\t\t\t? \"fullscreen\"\n\t\t\t: size !== \"fullscreen\"\n\t\t\t\t? size\n\t\t\t\t: \"md\";\n\tconst contentSize: ComponentSize =\n\t\tresolvedSize === \"fullscreen\" ? \"lg\" : resolvedSize;\n\n\treturn (\n\t\t<SheetPortal>\n\t\t\t<SheetOverlay />\n\t\t\t<SizeProvider size={contentSize}>\n\t\t\t\t<SheetPrimitive.Popup\n\t\t\t\t\tdata-slot=\"sheet-content\"\n\t\t\t\t\tdata-side={side}\n\t\t\t\t\tdata-size={resolvedSize}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tsheetContentVariants({ size: resolvedSize }),\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t<SheetPrimitive.Close\n\t\t\t\t\t\t\tdata-slot=\"sheet-close\"\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\tclassName=\"absolute z-10 size-8 border border-line bg-surface p-0 text-fg-primary shadow-(--elevation-e1-shadow) hover:bg-surface-raised group-data-[side=bottom]/sheet-content:-top-10 group-data-[side=bottom]/sheet-content:right-4 group-data-[side=top]/sheet-content:-bottom-10 group-data-[side=top]/sheet-content:right-4 group-data-[side=left]/sheet-content:-right-10 group-data-[side=left]/sheet-content:top-4 group-data-[side=right]/sheet-content:-left-10 group-data-[side=right]/sheet-content:top-4\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</SheetPrimitive.Popup>\n\t\t\t</SizeProvider>\n\t\t</SheetPortal>\n\t);\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-header\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-col gap-1 -mx-(--sheet-padding-x) px-(--sheet-padding-x) pt-(--sheet-padding-top) pb-4 border-b border-line-subtle group-has-[[data-slot=tabs-list][data-variant=underline]]/sheet-content:border-b-0 group-has-[[data-slot=tabs-list][data-variant=underline]]/sheet-content:pb-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t\"mt-auto flex items-center justify-end gap-2 border-t border-line-subtle -mx-(--sheet-padding-x) px-(--sheet-padding-x) py-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n\treturn (\n\t\t<SheetPrimitive.Title\n\t\t\tdata-slot=\"sheet-title\"\n\t\t\tclassName={cn(\n\t\t\t\t\"font-extrabold text-fg-primary tracking-tight group-data-[size=fullscreen]/sheet-content:text-gdt-h2 group-data-[size=lg]/sheet-content:text-gdt-h3 group-data-[size=md]/sheet-content:text-gdt-h4 group-data-[size=sm]/sheet-content:text-gdt-h5\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SheetDescription({\n\tclassName,\n\t...props\n}: SheetPrimitive.Description.Props) {\n\treturn (\n\t\t<SheetPrimitive.Description\n\t\t\tdata-slot=\"sheet-description\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-fg-secondary group-data-[size=fullscreen]/sheet-content:text-gdt-lg group-data-[size=lg]/sheet-content:text-gdt-md group-data-[size=md]/sheet-content:text-gdt-sm group-data-[size=sm]/sheet-content:text-gdt-xs\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSheet,\n\tSheetTrigger,\n\tSheetClose,\n\tSheetContent,\n\tSheetHeader,\n\tSheetFooter,\n\tSheetTitle,\n\tSheetDescription,\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,122 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-Y4TTYVNE.js";
4
+
5
+ // src/avatar.tsx
6
+ import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function Avatar({
9
+ className,
10
+ size = "md",
11
+ ...props
12
+ }) {
13
+ return /* @__PURE__ */ jsx(
14
+ AvatarPrimitive.Root,
15
+ {
16
+ "data-slot": "avatar",
17
+ "data-size": size,
18
+ className: cn(
19
+ "group/avatar relative flex shrink-0 rounded-full select-none bg-surface-brand",
20
+ size === "sm" && "size-8",
21
+ size === "md" && "size-10",
22
+ size === "lg" && "size-14",
23
+ className
24
+ ),
25
+ ...props
26
+ }
27
+ );
28
+ }
29
+ function AvatarImage({ className, ...props }) {
30
+ return /* @__PURE__ */ jsx(
31
+ AvatarPrimitive.Image,
32
+ {
33
+ "data-slot": "avatar-image",
34
+ className: cn(
35
+ "aspect-square size-full rounded-full object-cover",
36
+ className
37
+ ),
38
+ ...props
39
+ }
40
+ );
41
+ }
42
+ function AvatarFallback({
43
+ className,
44
+ ...props
45
+ }) {
46
+ return /* @__PURE__ */ jsx(
47
+ AvatarPrimitive.Fallback,
48
+ {
49
+ "data-slot": "avatar-fallback",
50
+ className: cn(
51
+ "flex size-full items-center justify-center rounded-full",
52
+ "bg-surface-brand-subtle text-fg-brand font-semibold",
53
+ "group-data-[size=sm]/avatar:text-xs",
54
+ "group-data-[size=md]/avatar:text-sm",
55
+ "group-data-[size=lg]/avatar:text-base",
56
+ className
57
+ ),
58
+ ...props
59
+ }
60
+ );
61
+ }
62
+ function AvatarStatus({ className, ...props }) {
63
+ return /* @__PURE__ */ jsx(
64
+ "span",
65
+ {
66
+ "data-slot": "avatar-status",
67
+ className: cn(
68
+ "absolute right-0 bottom-0 z-10 rounded-full bg-status-success ring-2 ring-canvas",
69
+ "group-data-[size=sm]/avatar:size-2",
70
+ "group-data-[size=md]/avatar:size-2.5",
71
+ "group-data-[size=lg]/avatar:size-3.5",
72
+ className
73
+ ),
74
+ ...props
75
+ }
76
+ );
77
+ }
78
+ function AvatarGroup({ className, ...props }) {
79
+ return /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ "data-slot": "avatar-group",
83
+ className: cn(
84
+ "group/avatar-group flex -space-x-3",
85
+ "*:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-canvas",
86
+ className
87
+ ),
88
+ ...props
89
+ }
90
+ );
91
+ }
92
+ function AvatarGroupCount({
93
+ className,
94
+ ...props
95
+ }) {
96
+ return /* @__PURE__ */ jsx(
97
+ "div",
98
+ {
99
+ "data-slot": "avatar-group-count",
100
+ className: cn(
101
+ "relative flex shrink-0 items-center justify-center rounded-full",
102
+ "bg-action-tertiary text-fg-secondary text-xs font-semibold",
103
+ "ring-2 ring-canvas",
104
+ "size-10",
105
+ "group-has-data-[size=sm]/avatar-group:size-8",
106
+ "group-has-data-[size=lg]/avatar-group:size-14",
107
+ className
108
+ ),
109
+ ...props
110
+ }
111
+ );
112
+ }
113
+
114
+ export {
115
+ Avatar,
116
+ AvatarImage,
117
+ AvatarFallback,
118
+ AvatarStatus,
119
+ AvatarGroup,
120
+ AvatarGroupCount
121
+ };
122
+ //# sourceMappingURL=chunk-QKAQZ2GU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\";\nimport type * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\ntype AvatarSize = \"sm\" | \"md\" | \"lg\";\n\nfunction Avatar({\n\tclassName,\n\tsize = \"md\",\n\t...props\n}: AvatarPrimitive.Root.Props & {\n\tsize?: AvatarSize;\n}) {\n\treturn (\n\t\t<AvatarPrimitive.Root\n\t\t\tdata-slot=\"avatar\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/avatar relative flex shrink-0 rounded-full select-none bg-surface-brand\",\n\t\t\t\tsize === \"sm\" && \"size-8\",\n\t\t\t\tsize === \"md\" && \"size-10\",\n\t\t\t\tsize === \"lg\" && \"size-14\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n\treturn (\n\t\t<AvatarPrimitive.Image\n\t\t\tdata-slot=\"avatar-image\"\n\t\t\tclassName={cn(\n\t\t\t\t\"aspect-square size-full rounded-full object-cover\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction AvatarFallback({\n\tclassName,\n\t...props\n}: AvatarPrimitive.Fallback.Props) {\n\treturn (\n\t\t<AvatarPrimitive.Fallback\n\t\t\tdata-slot=\"avatar-fallback\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex size-full items-center justify-center rounded-full\",\n\t\t\t\t\"bg-surface-brand-subtle text-fg-brand font-semibold\",\n\t\t\t\t\"group-data-[size=sm]/avatar:text-xs\",\n\t\t\t\t\"group-data-[size=md]/avatar:text-sm\",\n\t\t\t\t\"group-data-[size=lg]/avatar:text-base\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction AvatarStatus({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"avatar-status\"\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute right-0 bottom-0 z-10 rounded-full bg-status-success ring-2 ring-canvas\",\n\t\t\t\t\"group-data-[size=sm]/avatar:size-2\",\n\t\t\t\t\"group-data-[size=md]/avatar:size-2.5\",\n\t\t\t\t\"group-data-[size=lg]/avatar:size-3.5\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"avatar-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group/avatar-group flex -space-x-3\",\n\t\t\t\t\"*:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-canvas\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction AvatarGroupCount({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"avatar-group-count\"\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex shrink-0 items-center justify-center rounded-full\",\n\t\t\t\t\"bg-action-tertiary text-fg-secondary text-xs font-semibold\",\n\t\t\t\t\"ring-2 ring-canvas\",\n\t\t\t\t\"size-10\",\n\t\t\t\t\"group-has-data-[size=sm]/avatar-group:size-8\",\n\t\t\t\t\"group-has-data-[size=lg]/avatar-group:size-14\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tAvatar,\n\tAvatarImage,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarStatus,\n\tAvatarStatus as AvatarBadge,\n};\n"],"mappings":";;;;;AAEA,SAAS,UAAU,uBAAuB;AAexC;AARF,SAAS,OAAO;AAAA,EACf;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACJ,GAEG;AACF,SACC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACV;AAAA,QACA,SAAS,QAAQ;AAAA,QACjB,SAAS,QAAQ;AAAA,QACjB,SAAS,QAAQ;AAAA,QACjB;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,eAAe;AAAA,EACvB;AAAA,EACA,GAAG;AACJ,GAAmC;AAClC,SACC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAiC;AAC5E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,GAAG;AACJ,GAAgC;AAC/B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -0,0 +1,26 @@
1
+ // src/lib/use-uncontrolled.ts
2
+ import { useState } from "react";
3
+ function useUncontrolled({
4
+ value,
5
+ defaultValue,
6
+ finalValue,
7
+ onChange = () => {
8
+ }
9
+ }) {
10
+ const [uncontrolledValue, setUncontrolledValue] = useState(
11
+ defaultValue !== void 0 ? defaultValue : finalValue
12
+ );
13
+ const handleUncontrolledChange = (nextValue, ...payload) => {
14
+ setUncontrolledValue(nextValue);
15
+ onChange?.(nextValue, ...payload);
16
+ };
17
+ if (value !== void 0) {
18
+ return [value, onChange, true];
19
+ }
20
+ return [uncontrolledValue, handleUncontrolledChange, false];
21
+ }
22
+
23
+ export {
24
+ useUncontrolled
25
+ };
26
+ //# sourceMappingURL=chunk-QZHSHSVV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/use-uncontrolled.ts"],"sourcesContent":["import { useState } from \"react\";\n\ninterface UseUncontrolledOptions<T> {\n\tvalue?: T;\n\tdefaultValue?: T;\n\tfinalValue?: T;\n\tonChange?: (value: T, ...payload: unknown[]) => void;\n}\n\ntype UseUncontrolledReturnValue<T> = [\n\tT,\n\t(value: T, ...payload: unknown[]) => void,\n\tboolean,\n];\n\nfunction useUncontrolled<T>({\n\tvalue,\n\tdefaultValue,\n\tfinalValue,\n\tonChange = () => {},\n}: UseUncontrolledOptions<T>): UseUncontrolledReturnValue<T> {\n\tconst [uncontrolledValue, setUncontrolledValue] = useState(\n\t\tdefaultValue !== undefined ? defaultValue : finalValue,\n\t);\n\n\tconst handleUncontrolledChange = (nextValue: T, ...payload: unknown[]) => {\n\t\tsetUncontrolledValue(nextValue);\n\t\tonChange?.(nextValue, ...payload);\n\t};\n\n\tif (value !== undefined) {\n\t\treturn [value as T, onChange, true];\n\t}\n\n\treturn [uncontrolledValue as T, handleUncontrolledChange, false];\n}\n\nexport { useUncontrolled };\nexport type { UseUncontrolledOptions, UseUncontrolledReturnValue };\n"],"mappings":";AAAA,SAAS,gBAAgB;AAezB,SAAS,gBAAmB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,MAAM;AAAA,EAAC;AACnB,GAA6D;AAC5D,QAAM,CAAC,mBAAmB,oBAAoB,IAAI;AAAA,IACjD,iBAAiB,SAAY,eAAe;AAAA,EAC7C;AAEA,QAAM,2BAA2B,CAAC,cAAiB,YAAuB;AACzE,yBAAqB,SAAS;AAC9B,eAAW,WAAW,GAAG,OAAO;AAAA,EACjC;AAEA,MAAI,UAAU,QAAW;AACxB,WAAO,CAAC,OAAY,UAAU,IAAI;AAAA,EACnC;AAEA,SAAO,CAAC,mBAAwB,0BAA0B,KAAK;AAChE;","names":[]}
@@ -0,0 +1,19 @@
1
+ // src/lib/use-mobile.ts
2
+ import * as React from "react";
3
+ var DEFAULT_MOBILE_BREAKPOINT = 1024;
4
+ function useIsMobile(breakpoint = DEFAULT_MOBILE_BREAKPOINT) {
5
+ const [isMobile, setIsMobile] = React.useState(false);
6
+ React.useEffect(() => {
7
+ const mediaQuery = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
8
+ const update = () => setIsMobile(window.innerWidth < breakpoint);
9
+ update();
10
+ mediaQuery.addEventListener("change", update);
11
+ return () => mediaQuery.removeEventListener("change", update);
12
+ }, [breakpoint]);
13
+ return isMobile;
14
+ }
15
+
16
+ export {
17
+ useIsMobile
18
+ };
19
+ //# sourceMappingURL=chunk-RBMK26XD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/use-mobile.ts"],"sourcesContent":["import * as React from \"react\";\n\nconst DEFAULT_MOBILE_BREAKPOINT = 1024;\n\nfunction useIsMobile(breakpoint = DEFAULT_MOBILE_BREAKPOINT) {\n\tconst [isMobile, setIsMobile] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tconst mediaQuery = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\n\t\tconst update = () => setIsMobile(window.innerWidth < breakpoint);\n\n\t\tupdate();\n\t\tmediaQuery.addEventListener(\"change\", update);\n\n\t\treturn () => mediaQuery.removeEventListener(\"change\", update);\n\t}, [breakpoint]);\n\n\treturn isMobile;\n}\n\nexport { DEFAULT_MOBILE_BREAKPOINT, useIsMobile };\n"],"mappings":";AAAA,YAAY,WAAW;AAEvB,IAAM,4BAA4B;AAElC,SAAS,YAAY,aAAa,2BAA2B;AAC5D,QAAM,CAAC,UAAU,WAAW,IAAU,eAAS,KAAK;AAEpD,EAAM,gBAAU,MAAM;AACrB,UAAM,aAAa,OAAO,WAAW,eAAe,aAAa,CAAC,KAAK;AACvE,UAAM,SAAS,MAAM,YAAY,OAAO,aAAa,UAAU;AAE/D,WAAO;AACP,eAAW,iBAAiB,UAAU,MAAM;AAE5C,WAAO,MAAM,WAAW,oBAAoB,UAAU,MAAM;AAAA,EAC7D,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AACR;","names":[]}
@@ -0,0 +1,262 @@
1
+ import {
2
+ SizeProvider,
3
+ useComponentSize
4
+ } from "./chunk-HL3ZSYES.js";
5
+ import {
6
+ cn
7
+ } from "./chunk-Y4TTYVNE.js";
8
+
9
+ // src/select.tsx
10
+ import { Select as SelectPrimitive } from "@base-ui/react/select";
11
+ import { cva } from "class-variance-authority";
12
+ import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
13
+ import * as React from "react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ var SelectSelectionContext = React.createContext({ multiple: false });
16
+ function Select({
17
+ multiple,
18
+ children,
19
+ size,
20
+ ...props
21
+ }) {
22
+ return /* @__PURE__ */ jsx(SizeProvider, { size, children: /* @__PURE__ */ jsx(SelectSelectionContext.Provider, { value: { multiple: multiple === true }, children: /* @__PURE__ */ jsx(SelectPrimitive.Root, { multiple, ...props, children }) }) });
23
+ }
24
+ var selectTriggerVariants = cva(
25
+ "group/select-trigger flex w-fit min-w-0 items-center justify-between rounded-full border border-line bg-canvas text-left font-normal whitespace-nowrap text-fg-primary shadow-none outline-none transition-[background-color,border-color,border-radius,box-shadow,color] select-none hover:border-line-strong focus-visible:border-line-focus focus-visible:inset-ring-1 focus-visible:inset-ring-line-focus data-focused:border-line-focus data-focused:inset-ring-1 data-focused:inset-ring-line-focus data-popup-open:rounded-2xl data-popup-open:border-line-focus data-popup-open:inset-ring-1 data-popup-open:inset-ring-line-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-line-subtle disabled:bg-surface disabled:text-fg-caption-placeholder data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:border-line-subtle data-disabled:bg-surface data-disabled:text-fg-caption-placeholder data-placeholder:text-fg-caption-placeholder aria-invalid:border-line-danger aria-invalid:text-fg-danger aria-invalid:shadow-none data-[invalid=true]:border-line-danger data-[invalid=true]:text-fg-danger *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:min-w-0 *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0",
26
+ {
27
+ variants: {
28
+ size: {
29
+ sm: "h-8 gap-2 px-3 text-gdt-xs [&_svg:not([class*='size-'])]:size-3.5",
30
+ md: "h-10 gap-2 px-3.5 text-gdt-sm [&_svg:not([class*='size-'])]:size-4",
31
+ lg: "h-12 gap-2.5 px-4 pr-5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ size: "md"
36
+ }
37
+ }
38
+ );
39
+ var selectContentVariants = cva(
40
+ "relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto border border-line-subtle bg-canvas text-fg-primary shadow-(--elevation-e1-shadow) duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
41
+ {
42
+ variants: {
43
+ size: {
44
+ sm: "rounded-lg p-1",
45
+ md: "rounded-xl p-1.5",
46
+ lg: "rounded-[18px] p-2"
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ size: "md"
51
+ }
52
+ }
53
+ );
54
+ var selectItemVariants = cva(
55
+ "group/select-item relative flex w-full cursor-pointer items-center font-normal text-fg-primary outline-none select-none data-highlighted:bg-surface data-disabled:pointer-events-none data-disabled:text-fg-caption-placeholder [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
56
+ {
57
+ variants: {
58
+ size: {
59
+ sm: "gap-1.5 rounded-md px-3 py-1.5 text-gdt-xs",
60
+ md: "gap-2 rounded-md px-4 py-2 text-gdt-sm",
61
+ lg: "gap-2.5 rounded-md px-4 py-2.5 text-gdt-md"
62
+ }
63
+ },
64
+ defaultVariants: {
65
+ size: "md"
66
+ }
67
+ }
68
+ );
69
+ function SelectGroup({ className, ...props }) {
70
+ return /* @__PURE__ */ jsx(
71
+ SelectPrimitive.Group,
72
+ {
73
+ "data-slot": "select-group",
74
+ className: cn("scroll-my-1 space-y-0.5", className),
75
+ ...props
76
+ }
77
+ );
78
+ }
79
+ function SelectValue({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx(
81
+ SelectPrimitive.Value,
82
+ {
83
+ "data-slot": "select-value",
84
+ className: cn("flex min-w-0 flex-1 text-left", className),
85
+ ...props
86
+ }
87
+ );
88
+ }
89
+ function SelectTrigger({
90
+ className,
91
+ children,
92
+ unstyled,
93
+ ...props
94
+ }) {
95
+ const resolvedSize = useComponentSize();
96
+ return /* @__PURE__ */ jsxs(
97
+ SelectPrimitive.Trigger,
98
+ {
99
+ "data-slot": "select-trigger",
100
+ "data-size": resolvedSize,
101
+ className: cn(
102
+ !unstyled && selectTriggerVariants({ size: resolvedSize }),
103
+ className
104
+ ),
105
+ ...props,
106
+ children: [
107
+ children,
108
+ /* @__PURE__ */ jsx(
109
+ SelectPrimitive.Icon,
110
+ {
111
+ render: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-line-strong transition-transform group-data-disabled/select-trigger:text-fg-caption-placeholder data-popup-open:rotate-180" })
112
+ }
113
+ )
114
+ ]
115
+ }
116
+ );
117
+ }
118
+ function SelectContent({
119
+ className,
120
+ children,
121
+ side = "bottom",
122
+ sideOffset = 8,
123
+ align = "center",
124
+ alignOffset = 0,
125
+ alignItemWithTrigger = false,
126
+ ...props
127
+ }) {
128
+ const resolvedSize = useComponentSize();
129
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx(
130
+ SelectPrimitive.Positioner,
131
+ {
132
+ side,
133
+ sideOffset,
134
+ align,
135
+ alignOffset,
136
+ alignItemWithTrigger,
137
+ className: "isolate z-50",
138
+ children: /* @__PURE__ */ jsxs(
139
+ SelectPrimitive.Popup,
140
+ {
141
+ "data-slot": "select-content",
142
+ "data-align-trigger": alignItemWithTrigger,
143
+ className: cn(
144
+ selectContentVariants({ size: resolvedSize }),
145
+ className
146
+ ),
147
+ ...props,
148
+ children: [
149
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
150
+ /* @__PURE__ */ jsx(SelectPrimitive.List, { className: "space-y-0.5", children }),
151
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
152
+ ]
153
+ }
154
+ )
155
+ }
156
+ ) });
157
+ }
158
+ function SelectLabel({
159
+ className,
160
+ ...props
161
+ }) {
162
+ return /* @__PURE__ */ jsx(
163
+ SelectPrimitive.GroupLabel,
164
+ {
165
+ "data-slot": "select-label",
166
+ className: cn("px-3 py-1 text-gdt-xs text-fg-secondary", className),
167
+ ...props
168
+ }
169
+ );
170
+ }
171
+ function SelectItem({
172
+ className,
173
+ children,
174
+ ...props
175
+ }) {
176
+ const { multiple } = React.useContext(SelectSelectionContext);
177
+ const resolvedSize = useComponentSize();
178
+ return /* @__PURE__ */ jsxs(
179
+ SelectPrimitive.Item,
180
+ {
181
+ "data-slot": "select-item",
182
+ className: cn(
183
+ selectItemVariants({ size: resolvedSize }),
184
+ !multiple && "data-selected:bg-surface-brand-subtle data-selected:font-medium data-selected:text-fg-brand",
185
+ className
186
+ ),
187
+ ...props,
188
+ children: [
189
+ multiple ? /* @__PURE__ */ jsx(
190
+ SelectPrimitive.ItemIndicator,
191
+ {
192
+ keepMounted: true,
193
+ className: "flex size-5 shrink-0 items-center justify-center rounded-sm border border-line bg-canvas text-transparent transition-[background-color,border-color,color] group-data-selected/select-item:border-action-primary group-data-selected/select-item:bg-action-primary group-data-selected/select-item:text-fg-on-brand group-data-disabled/select-item:border-line-subtle group-data-disabled/select-item:bg-surface group-data-disabled/select-item:text-fg-caption-placeholder [&>svg]:size-3",
194
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
195
+ }
196
+ ) : null,
197
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { className: "flex min-w-0 flex-1 shrink-0 gap-2 whitespace-nowrap", children })
198
+ ]
199
+ }
200
+ );
201
+ }
202
+ function SelectSeparator({
203
+ className,
204
+ ...props
205
+ }) {
206
+ return /* @__PURE__ */ jsx(
207
+ SelectPrimitive.Separator,
208
+ {
209
+ "data-slot": "select-separator",
210
+ className: cn("pointer-events-none my-1 h-px bg-line-subtle", className),
211
+ ...props
212
+ }
213
+ );
214
+ }
215
+ function SelectScrollUpButton({
216
+ className,
217
+ ...props
218
+ }) {
219
+ return /* @__PURE__ */ jsx(
220
+ SelectPrimitive.ScrollUpArrow,
221
+ {
222
+ "data-slot": "select-scroll-up-button",
223
+ className: cn(
224
+ "sticky top-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4",
225
+ className
226
+ ),
227
+ ...props,
228
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, {})
229
+ }
230
+ );
231
+ }
232
+ function SelectScrollDownButton({
233
+ className,
234
+ ...props
235
+ }) {
236
+ return /* @__PURE__ */ jsx(
237
+ SelectPrimitive.ScrollDownArrow,
238
+ {
239
+ "data-slot": "select-scroll-down-button",
240
+ className: cn(
241
+ "sticky bottom-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4",
242
+ className
243
+ ),
244
+ ...props,
245
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
246
+ }
247
+ );
248
+ }
249
+
250
+ export {
251
+ Select,
252
+ SelectGroup,
253
+ SelectValue,
254
+ SelectTrigger,
255
+ SelectContent,
256
+ SelectLabel,
257
+ SelectItem,
258
+ SelectSeparator,
259
+ SelectScrollUpButton,
260
+ SelectScrollDownButton
261
+ };
262
+ //# sourceMappingURL=chunk-SFNJGF6M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/select.tsx"],"sourcesContent":["\"use client\";\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport { cva } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\nimport {\n\ttype ComponentSize,\n\tSizeProvider,\n\tuseComponentSize,\n} from \"./size-context\";\n\nconst SelectSelectionContext = React.createContext({ multiple: false });\n\ntype SelectSize = ComponentSize;\n\nfunction Select<Value, Multiple extends boolean | undefined = false>({\n\tmultiple,\n\tchildren,\n\tsize,\n\t...props\n}: SelectPrimitive.Root.Props<Value, Multiple> & {\n\tsize?: SelectSize;\n}) {\n\treturn (\n\t\t<SizeProvider size={size}>\n\t\t\t<SelectSelectionContext.Provider value={{ multiple: multiple === true }}>\n\t\t\t\t<SelectPrimitive.Root multiple={multiple} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</SelectPrimitive.Root>\n\t\t\t</SelectSelectionContext.Provider>\n\t\t</SizeProvider>\n\t);\n}\n\nconst selectTriggerVariants = cva(\n\t\"group/select-trigger flex w-fit min-w-0 items-center justify-between rounded-full border border-line bg-canvas text-left font-normal whitespace-nowrap text-fg-primary shadow-none outline-none transition-[background-color,border-color,border-radius,box-shadow,color] select-none hover:border-line-strong focus-visible:border-line-focus focus-visible:inset-ring-1 focus-visible:inset-ring-line-focus data-focused:border-line-focus data-focused:inset-ring-1 data-focused:inset-ring-line-focus data-popup-open:rounded-2xl data-popup-open:border-line-focus data-popup-open:inset-ring-1 data-popup-open:inset-ring-line-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-line-subtle disabled:bg-surface disabled:text-fg-caption-placeholder data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:border-line-subtle data-disabled:bg-surface data-disabled:text-fg-caption-placeholder data-placeholder:text-fg-caption-placeholder aria-invalid:border-line-danger aria-invalid:text-fg-danger aria-invalid:shadow-none data-[invalid=true]:border-line-danger data-[invalid=true]:text-fg-danger *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:min-w-0 *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-8 gap-2 px-3 text-gdt-xs [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\tmd: \"h-10 gap-2 px-3.5 text-gdt-sm [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tlg: \"h-12 gap-2.5 px-4 pr-5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nconst selectContentVariants = cva(\n\t\"relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto border border-line-subtle bg-canvas text-fg-primary shadow-(--elevation-e1-shadow) duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"rounded-lg p-1\",\n\t\t\t\tmd: \"rounded-xl p-1.5\",\n\t\t\t\tlg: \"rounded-[18px] p-2\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nconst selectItemVariants = cva(\n\t\"group/select-item relative flex w-full cursor-pointer items-center font-normal text-fg-primary outline-none select-none data-highlighted:bg-surface data-disabled:pointer-events-none data-disabled:text-fg-caption-placeholder [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"gap-1.5 rounded-md px-3 py-1.5 text-gdt-xs\",\n\t\t\t\tmd: \"gap-2 rounded-md px-4 py-2 text-gdt-sm\",\n\t\t\t\tlg: \"gap-2.5 rounded-md px-4 py-2.5 text-gdt-md\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n\treturn (\n\t\t<SelectPrimitive.Group\n\t\t\tdata-slot=\"select-group\"\n\t\t\tclassName={cn(\"scroll-my-1 space-y-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n\treturn (\n\t\t<SelectPrimitive.Value\n\t\t\tdata-slot=\"select-value\"\n\t\t\tclassName={cn(\"flex min-w-0 flex-1 text-left\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectTrigger({\n\tclassName,\n\tchildren,\n\tunstyled,\n\t...props\n}: SelectPrimitive.Trigger.Props & { unstyled?: boolean }) {\n\tconst resolvedSize = useComponentSize();\n\n\treturn (\n\t\t<SelectPrimitive.Trigger\n\t\t\tdata-slot=\"select-trigger\"\n\t\t\tdata-size={resolvedSize}\n\t\t\tclassName={cn(\n\t\t\t\t!unstyled && selectTriggerVariants({ size: resolvedSize }),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<SelectPrimitive.Icon\n\t\t\t\trender={\n\t\t\t\t\t<ChevronDownIcon className=\"text-line-strong transition-transform group-data-disabled/select-trigger:text-fg-caption-placeholder data-popup-open:rotate-180\" />\n\t\t\t\t}\n\t\t\t/>\n\t\t</SelectPrimitive.Trigger>\n\t);\n}\n\nfunction SelectContent({\n\tclassName,\n\tchildren,\n\tside = \"bottom\",\n\tsideOffset = 8,\n\talign = \"center\",\n\talignOffset = 0,\n\talignItemWithTrigger = false,\n\t...props\n}: SelectPrimitive.Popup.Props &\n\tPick<\n\t\tSelectPrimitive.Positioner.Props,\n\t\t\"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n\t>) {\n\tconst resolvedSize = useComponentSize();\n\n\treturn (\n\t\t<SelectPrimitive.Portal>\n\t\t\t<SelectPrimitive.Positioner\n\t\t\t\tside={side}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\talign={align}\n\t\t\t\talignOffset={alignOffset}\n\t\t\t\talignItemWithTrigger={alignItemWithTrigger}\n\t\t\t\tclassName=\"isolate z-50\"\n\t\t\t>\n\t\t\t\t<SelectPrimitive.Popup\n\t\t\t\t\tdata-slot=\"select-content\"\n\t\t\t\t\tdata-align-trigger={alignItemWithTrigger}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tselectContentVariants({ size: resolvedSize }),\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<SelectScrollUpButton />\n\t\t\t\t\t<SelectPrimitive.List className=\"space-y-0.5\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</SelectPrimitive.List>\n\t\t\t\t\t<SelectScrollDownButton />\n\t\t\t\t</SelectPrimitive.Popup>\n\t\t\t</SelectPrimitive.Positioner>\n\t\t</SelectPrimitive.Portal>\n\t);\n}\n\nfunction SelectLabel({\n\tclassName,\n\t...props\n}: SelectPrimitive.GroupLabel.Props) {\n\treturn (\n\t\t<SelectPrimitive.GroupLabel\n\t\t\tdata-slot=\"select-label\"\n\t\t\tclassName={cn(\"px-3 py-1 text-gdt-xs text-fg-secondary\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectItem({\n\tclassName,\n\tchildren,\n\t...props\n}: SelectPrimitive.Item.Props) {\n\tconst { multiple } = React.useContext(SelectSelectionContext);\n\tconst resolvedSize = useComponentSize();\n\n\treturn (\n\t\t<SelectPrimitive.Item\n\t\t\tdata-slot=\"select-item\"\n\t\t\tclassName={cn(\n\t\t\t\tselectItemVariants({ size: resolvedSize }),\n\t\t\t\t!multiple &&\n\t\t\t\t\t\"data-selected:bg-surface-brand-subtle data-selected:font-medium data-selected:text-fg-brand\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{multiple ? (\n\t\t\t\t<SelectPrimitive.ItemIndicator\n\t\t\t\t\tkeepMounted\n\t\t\t\t\tclassName=\"flex size-5 shrink-0 items-center justify-center rounded-sm border border-line bg-canvas text-transparent transition-[background-color,border-color,color] group-data-selected/select-item:border-action-primary group-data-selected/select-item:bg-action-primary group-data-selected/select-item:text-fg-on-brand group-data-disabled/select-item:border-line-subtle group-data-disabled/select-item:bg-surface group-data-disabled/select-item:text-fg-caption-placeholder [&>svg]:size-3\"\n\t\t\t\t>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t\t) : null}\n\t\t\t<SelectPrimitive.ItemText className=\"flex min-w-0 flex-1 shrink-0 gap-2 whitespace-nowrap\">\n\t\t\t\t{children}\n\t\t\t</SelectPrimitive.ItemText>\n\t\t</SelectPrimitive.Item>\n\t);\n}\n\nfunction SelectSeparator({\n\tclassName,\n\t...props\n}: SelectPrimitive.Separator.Props) {\n\treturn (\n\t\t<SelectPrimitive.Separator\n\t\t\tdata-slot=\"select-separator\"\n\t\t\tclassName={cn(\"pointer-events-none my-1 h-px bg-line-subtle\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectScrollUpButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollUpArrow\n\t\t\tdata-slot=\"select-scroll-up-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"sticky top-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronUpIcon />\n\t\t</SelectPrimitive.ScrollUpArrow>\n\t);\n}\n\nfunction SelectScrollDownButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollDownArrow\n\t\t\tdata-slot=\"select-scroll-down-button\"\n\t\t\tclassName={cn(\n\t\t\t\t\"sticky bottom-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronDownIcon />\n\t\t</SelectPrimitive.ScrollDownArrow>\n\t);\n}\n\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectScrollDownButton,\n\tSelectScrollUpButton,\n\tSelectSeparator,\n\tSelectTrigger,\n\ttype SelectSize,\n\tSelectValue,\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,112 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-Y4TTYVNE.js";
4
+
5
+ // src/gallery-indicator.tsx
6
+ import { cva } from "class-variance-authority";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var galleryIndicatorVariants = cva(
9
+ "inline-flex w-fit shrink-0 items-center justify-center rounded-[100px] bg-black/40 px-3 font-bold leading-none whitespace-nowrap text-white shadow-[0px_0px_4px_0px_rgba(0,0,0,0.1)] backdrop-blur-[15px] sm:px-4",
10
+ {
11
+ variants: {
12
+ size: {
13
+ sm: "h-[35px] gap-2 text-gdt-xs sm:gap-4 [&>svg]:size-5",
14
+ md: "h-10 gap-2 text-gdt-sm sm:gap-4 [&>svg]:size-5",
15
+ lg: "h-10 gap-2 text-gdt-lg sm:h-[50px] sm:gap-4 [&>svg]:size-6"
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ size: "md"
20
+ }
21
+ }
22
+ );
23
+ function GalleryIndicatorIcon(props) {
24
+ return /* @__PURE__ */ jsxs(
25
+ "svg",
26
+ {
27
+ "aria-hidden": "true",
28
+ xmlns: "http://www.w3.org/2000/svg",
29
+ viewBox: "0 0 24 24",
30
+ fill: "none",
31
+ ...props,
32
+ children: [
33
+ /* @__PURE__ */ jsx(
34
+ "path",
35
+ {
36
+ d: "M5.75 17.5 3.63 7.62a2 2 0 0 1 1.53-2.37l9.66-2.07a2 2 0 0 1 2.37 1.53l.27 1.29",
37
+ stroke: "currentColor",
38
+ strokeLinecap: "round",
39
+ strokeLinejoin: "round",
40
+ strokeWidth: "2"
41
+ }
42
+ ),
43
+ /* @__PURE__ */ jsx(
44
+ "rect",
45
+ {
46
+ width: "14.5",
47
+ height: "12.5",
48
+ x: "7",
49
+ y: "7.5",
50
+ stroke: "currentColor",
51
+ strokeLinejoin: "round",
52
+ strokeWidth: "2",
53
+ rx: "2"
54
+ }
55
+ ),
56
+ /* @__PURE__ */ jsx(
57
+ "path",
58
+ {
59
+ d: "m8.75 17 3.31-3.31a1.25 1.25 0 0 1 1.77 0L17.25 17",
60
+ stroke: "currentColor",
61
+ strokeLinecap: "round",
62
+ strokeLinejoin: "round",
63
+ strokeWidth: "2"
64
+ }
65
+ ),
66
+ /* @__PURE__ */ jsx(
67
+ "path",
68
+ {
69
+ d: "m15.5 15.25.81-.81a1.25 1.25 0 0 1 1.77 0L20.5 16.86",
70
+ stroke: "currentColor",
71
+ strokeLinecap: "round",
72
+ strokeLinejoin: "round",
73
+ strokeWidth: "2"
74
+ }
75
+ ),
76
+ /* @__PURE__ */ jsx("circle", { cx: "17.25", cy: "11.25", r: "1.25", fill: "currentColor" })
77
+ ]
78
+ }
79
+ );
80
+ }
81
+ function GalleryIndicator({
82
+ className,
83
+ size = "md",
84
+ photoCount = 35,
85
+ currentPhoto,
86
+ totalPhotos = photoCount,
87
+ label,
88
+ children,
89
+ ...props
90
+ }) {
91
+ const resolvedLabel = children ?? label ?? (currentPhoto === void 0 ? `View All ${photoCount} Photos` : `${currentPhoto}/${totalPhotos}`);
92
+ return /* @__PURE__ */ jsxs(
93
+ "span",
94
+ {
95
+ "data-slot": "gallery-indicator",
96
+ "data-size": size,
97
+ className: cn(galleryIndicatorVariants({ size }), className),
98
+ ...props,
99
+ children: [
100
+ /* @__PURE__ */ jsx(GalleryIndicatorIcon, { className: "shrink-0 text-white" }),
101
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: resolvedLabel })
102
+ ]
103
+ }
104
+ );
105
+ }
106
+
107
+ export {
108
+ galleryIndicatorVariants,
109
+ GalleryIndicatorIcon,
110
+ GalleryIndicator
111
+ };
112
+ //# sourceMappingURL=chunk-UJJNLGTM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gallery-indicator.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\ntype GalleryIndicatorSize = \"sm\" | \"md\" | \"lg\";\n\nconst galleryIndicatorVariants = cva(\n\t\"inline-flex w-fit shrink-0 items-center justify-center rounded-[100px] bg-black/40 px-3 font-bold leading-none whitespace-nowrap text-white shadow-[0px_0px_4px_0px_rgba(0,0,0,0.1)] backdrop-blur-[15px] sm:px-4\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-[35px] gap-2 text-gdt-xs sm:gap-4 [&>svg]:size-5\",\n\t\t\t\tmd: \"h-10 gap-2 text-gdt-sm sm:gap-4 [&>svg]:size-5\",\n\t\t\t\tlg: \"h-10 gap-2 text-gdt-lg sm:h-[50px] sm:gap-4 [&>svg]:size-6\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype GalleryIndicatorProps = React.ComponentProps<\"span\"> &\n\tVariantProps<typeof galleryIndicatorVariants> & {\n\t\tphotoCount?: number;\n\t\tcurrentPhoto?: number;\n\t\ttotalPhotos?: number;\n\t\tlabel?: string;\n\t};\n\nfunction GalleryIndicatorIcon(props: React.SVGProps<SVGSVGElement>) {\n\treturn (\n\t\t<svg\n\t\t\taria-hidden=\"true\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M5.75 17.5 3.63 7.62a2 2 0 0 1 1.53-2.37l9.66-2.07a2 2 0 0 1 2.37 1.53l.27 1.29\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t\t<rect\n\t\t\t\twidth=\"14.5\"\n\t\t\t\theight=\"12.5\"\n\t\t\t\tx=\"7\"\n\t\t\t\ty=\"7.5\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\trx=\"2\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"m8.75 17 3.31-3.31a1.25 1.25 0 0 1 1.77 0L17.25 17\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"m15.5 15.25.81-.81a1.25 1.25 0 0 1 1.77 0L20.5 16.86\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t\t<circle cx=\"17.25\" cy=\"11.25\" r=\"1.25\" fill=\"currentColor\" />\n\t\t</svg>\n\t);\n}\n\nfunction GalleryIndicator({\n\tclassName,\n\tsize = \"md\",\n\tphotoCount = 35,\n\tcurrentPhoto,\n\ttotalPhotos = photoCount,\n\tlabel,\n\tchildren,\n\t...props\n}: GalleryIndicatorProps) {\n\tconst resolvedLabel =\n\t\tchildren ??\n\t\tlabel ??\n\t\t(currentPhoto === undefined\n\t\t\t? `View All ${photoCount} Photos`\n\t\t\t: `${currentPhoto}/${totalPhotos}`);\n\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"gallery-indicator\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(galleryIndicatorVariants({ size }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<GalleryIndicatorIcon className=\"shrink-0 text-white\" />\n\t\t\t<span className=\"min-w-0 truncate\">{resolvedLabel}</span>\n\t\t</span>\n\t);\n}\n\nexport { GalleryIndicator, GalleryIndicatorIcon, galleryIndicatorVariants };\nexport type { GalleryIndicatorProps, GalleryIndicatorSize };\n"],"mappings":";;;;;AAAA,SAAS,WAA8B;AAiCrC,SAOC,KAPD;AA1BF,IAAM,2BAA2B;AAAA,EAChC;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,MAAM;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAUA,SAAS,qBAAqB,OAAsC;AACnE,SACC;AAAA,IAAC;AAAA;AAAA,MACA,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,SAAQ;AAAA,MACR,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA,YACf,aAAY;AAAA;AAAA,QACb;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,OAAM;AAAA,YACN,QAAO;AAAA,YACP,GAAE;AAAA,YACF,GAAE;AAAA,YACF,QAAO;AAAA,YACP,gBAAe;AAAA,YACf,aAAY;AAAA,YACZ,IAAG;AAAA;AAAA,QACJ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA,YACf,aAAY;AAAA;AAAA,QACb;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA,YACf,aAAY;AAAA;AAAA,QACb;AAAA,QACA,oBAAC,YAAO,IAAG,SAAQ,IAAG,SAAQ,GAAE,QAAO,MAAK,gBAAe;AAAA;AAAA;AAAA,EAC5D;AAEF;AAEA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,EACP,aAAa;AAAA,EACb;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAA0B;AACzB,QAAM,gBACL,YACA,UACC,iBAAiB,SACf,YAAY,UAAU,YACtB,GAAG,YAAY,IAAI,WAAW;AAElC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW,GAAG,yBAAyB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC1D,GAAG;AAAA,MAEJ;AAAA,4BAAC,wBAAqB,WAAU,uBAAsB;AAAA,QACtD,oBAAC,UAAK,WAAU,oBAAoB,yBAAc;AAAA;AAAA;AAAA,EACnD;AAEF;","names":[]}