@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/number-input.tsx","../src/lib/cn.ts","../src/components/ui/input-group.tsx","../src/components/ui/button.tsx","../src/components/ui/size-context.tsx","../src/components/ui/input.tsx","../src/components/ui/input-size-context.tsx"],"sourcesContent":["import {\n\tNumberField,\n\ttype NumberFieldRootProps,\n} from \"@base-ui/react/number-field\";\nimport { MinusIcon, PlusIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupInput,\n} from \"./input-group\";\nimport {\n\ttype ComponentSize,\n\tSizeProvider,\n\tuseComponentSize,\n} from \"./size-context\";\n\nconst numberInputFormatPresets = {\n\tcompact: {\n\t\tcompactDisplay: \"short\",\n\t\tnotation: \"compact\",\n\t},\n\tcurrencyNgn: {\n\t\tcurrency: \"NGN\",\n\t\tcurrencyDisplay: \"narrowSymbol\",\n\t\tstyle: \"currency\",\n\t},\n\tdecimal: {\n\t\tuseGrouping: true,\n\t},\n\tinteger: {\n\t\tmaximumFractionDigits: 0,\n\t\tuseGrouping: true,\n\t},\n\tpercent: {\n\t\tstyle: \"percent\",\n\t},\n\tplain: {\n\t\tuseGrouping: false,\n\t},\n} satisfies Record<string, Intl.NumberFormatOptions>;\n\ntype NumberInputFormatPreset = keyof typeof numberInputFormatPresets;\n\ntype NumberInputProps = Omit<NumberFieldRootProps, \"format\"> & {\n\tchildren?: React.ReactNode;\n\tformat?: Intl.NumberFormatOptions;\n\tformatPreset?: NumberInputFormatPreset;\n\tplaceholder?: string;\n\tsize?: ComponentSize;\n\tthousandSeparator?: boolean;\n};\n\nfunction NumberInput({\n\tchildren,\n\tformat,\n\tformatPreset,\n\tplaceholder,\n\tsize,\n\tthousandSeparator,\n\t...props\n}: NumberInputProps) {\n\tconst resolvedSize = useComponentSize(size);\n\tconst resolvedFormat =\n\t\tformat ??\n\t\t(formatPreset ? numberInputFormatPresets[formatPreset] : undefined) ??\n\t\t(thousandSeparator ? numberInputFormatPresets.decimal : undefined);\n\n\treturn (\n\t\t<SizeProvider size={resolvedSize}>\n\t\t\t<NumberField.Root format={resolvedFormat} {...props}>\n\t\t\t\t<NumberField.Group render={<InputGroup />}>\n\t\t\t\t\t<NumberField.Input\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\trender={<InputGroupInput />}\n\t\t\t\t\t/>\n\t\t\t\t\t{children}\n\t\t\t\t</NumberField.Group>\n\t\t\t</NumberField.Root>\n\t\t</SizeProvider>\n\t);\n}\n\nfunction NumberInputControl() {\n\tconst size = useComponentSize();\n\treturn (\n\t\t<InputGroupAddon\n\t\t\talign=\"inline-end\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex gap-0 flex-col h-[calc(100%-2px)] w-10 overflow-hidden rounded-r-full p-0! pr-1.5!\",\n\t\t\t\tsize === \"lg\" && \"w-12\",\n\t\t\t)}\n\t\t>\n\t\t\t<NumberField.Increment\n\t\t\t\tclassName=\"w-full flex-1 rounded-none rounded-tr-full\"\n\t\t\t\trender={<InputGroupButton variant=\"tertiary\" />}\n\t\t\t>\n\t\t\t\t<PlusIcon\n\t\t\t\t\tclassName={cn(\"size-1.5\", {\n\t\t\t\t\t\t\"size-3\": size === \"md\",\n\t\t\t\t\t\t\"size-3.5\": size === \"lg\",\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</NumberField.Increment>\n\t\t\t<NumberField.Decrement\n\t\t\t\tclassName=\"w-full flex-1 rounded-none rounded-br-full\"\n\t\t\t\trender={<InputGroupButton variant=\"tertiary\" />}\n\t\t\t>\n\t\t\t\t<MinusIcon\n\t\t\t\t\tclassName={cn(\"size-1.5\", {\n\t\t\t\t\t\t\"size-3\": size === \"md\",\n\t\t\t\t\t\t\"size-3.5\": size === \"lg\",\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</NumberField.Decrement>\n\t\t</InputGroupAddon>\n\t);\n}\n\nexport {\n\tNumberInput,\n\tNumberInputControl,\n\tnumberInputFormatPresets,\n\ttype NumberInputFormatPreset,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"./button\";\nimport { Input, type InputSize } from \"./input\";\nimport { InputSizeProvider } from \"./input-size-context\";\nimport {\n\ttype ComponentSize,\n\tSizeProvider,\n\tuseComponentSize,\n} from \"./size-context\";\nimport { Textarea, type TextareaSize } from \"./textarea\";\n\nconst inputGroupVariants = cva(\n\t\"group/input-group relative flex w-full min-w-0 items-center rounded-full has-[textarea]:rounded-xl has-data-[align=block-end]:rounded-xl has-data-[align=block-start]:rounded-xl border border-line bg-canvas transition-[background-color,border-color,box-shadow,color] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:border-line-subtle has-disabled:bg-surface has-disabled:text-fg-muted focus-within:border-line-focus focus-within:inset-ring-1 inset-ring-line-focus has-[[data-slot][aria-invalid=true]]:border-line-danger has-[[data-slot][aria-invalid=true]]:inset-shadow-none has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:group-data-[size=sm]/input-group:pl-2 has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:group-data-[size=md]/input-group:pl-2.5 has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:group-data-[size=lg]/input-group:pl-3 has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:group-data-[size=xl]/input-group:pl-3 has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:group-data-[size=sm]/input-group:pr-2 has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:group-data-[size=md]/input-group:pr-2.5 has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:group-data-[size=lg]/input-group:pr-3 has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:group-data-[size=xl]/input-group:pr-3\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-8\",\n\t\t\t\tmd: \"h-10\",\n\t\t\t\tlg: \"h-12\",\n\t\t\t\txl: \"h-14\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\nfunction InputGroup({\n\tclassName,\n\tsize,\n\t...props\n}: React.ComponentProps<\"div\"> & { size?: InputSize }) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize = size ?? inheritedSize;\n\tconst componentSize: ComponentSize | undefined =\n\t\tresolvedSize === \"xl\" ? undefined : resolvedSize;\n\n\treturn (\n\t\t<SizeProvider size={componentSize}>\n\t\t\t<InputSizeProvider size={resolvedSize}>\n\t\t\t\t{/* biome-ignore lint/a11y/useSemanticElements: this primitive groups composite controls without forcing fieldset semantics. */}\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"input-group\"\n\t\t\t\t\tdata-size={resolvedSize}\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\tclassName={cn(inputGroupVariants({ size: resolvedSize }), className)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</InputSizeProvider>\n\t\t</SizeProvider>\n\t);\n}\n\nconst inputGroupAddonVariants = cva(\n\t\"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-gdt-sm font-normal text-fg-secondary select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[size=lg]/input-group:[&>svg:not([class*='size-'])]:size-4.5 group-data-[size=xl]/input-group:[&>svg:not([class*='size-'])]:size-5 [&>svg:not([class*='size-'])]:size-4\",\n\t{\n\t\tvariants: {\n\t\t\talign: {\n\t\t\t\t\"inline-start\":\n\t\t\t\t\t\"order-first group-data-[size=sm]/input-group:pl-3 group-data-[size=md]/input-group:pl-3.5 group-data-[size=lg]/input-group:pl-4 group-data-[size=xl]/input-group:pl-4.5 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n\t\t\t\t\"inline-end\":\n\t\t\t\t\t\"order-last group-data-[size=sm]/input-group:pr-3 group-data-[size=md]/input-group:pr-3.5 group-data-[size=lg]/input-group:pr-4 group-data-[size=xl]/input-group:pr-4.5 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n\t\t\t\t\"block-start\":\n\t\t\t\t\t\"order-first w-full justify-start px-3 group-data-[size=md]/input-group:px-3.5 group-data-[size=lg]/input-group:px-4 group-data-[size=xl]/input-group:px-4.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n\t\t\t\t\"block-end\":\n\t\t\t\t\t\"order-last w-full justify-start px-3 group-data-[size=md]/input-group:px-3.5 group-data-[size=lg]/input-group:px-4 group-data-[size=xl]/input-group:px-4.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\talign: \"inline-start\",\n\t\t},\n\t},\n);\n\nfunction InputGroupAddon({\n\tclassName,\n\talign = \"inline-start\",\n\t...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n\treturn (\n\t\t// biome-ignore lint/a11y/useSemanticElements: addon is a structural wrapper for grouped input affordances.\n\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: click only forwards focus to the sibling input and is not a standalone action target.\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\tdata-slot=\"input-group-addon\"\n\t\t\tdata-align={align}\n\t\t\tclassName={cn(inputGroupAddonVariants({ align }), className)}\n\t\t\tonClick={(e) => {\n\t\t\t\tif ((e.target as HTMLElement).closest(\"button\")) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\te.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst inputGroupButtonVariants = cva(\n\t\"flex items-center gap-2 text-sm shadow-none rounded-full\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: \"h-6 gap-1 px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\tsm: \"\",\n\t\t\t\t\"icon-xs\": \"size-6 p-0 has-[>svg]:p-0\",\n\t\t\t\t\"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"xs\",\n\t\t},\n\t},\n);\n\nfunction InputGroupButton({\n\tclassName,\n\ttype = \"button\",\n\tvariant = \"ghost\",\n\tsize = \"xs\",\n\t...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n\tVariantProps<typeof inputGroupButtonVariants> & {\n\t\ttype?: \"button\" | \"submit\" | \"reset\";\n\t}) {\n\treturn (\n\t\t<Button\n\t\t\ttype={type}\n\t\t\tdata-size={size}\n\t\t\tvariant={variant}\n\t\t\tclassName={cn(inputGroupButtonVariants({ size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"flex items-center gap-2 text-gdt-sm text-fg-secondary [&_svg]:pointer-events-none [&_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);\n}\n\nfunction InputGroupInput({\n\tclassName,\n\tsize,\n\t...props\n}: Omit<React.ComponentProps<\"input\">, \"size\"> & { size?: InputSize }) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex-1 rounded-none border-0 bg-transparent shadow-none inset-shadow-none inset-ring-0 focus:border-transparent focus:shadow-none focus:inset-shadow-none focus-visible:border-transparent focus-visible:shadow-none focus-visible:ring-0 focus-visible:inset-ring-0 focus-visible:inset-shadow-none disabled:bg-transparent aria-invalid:ring-0 aria-invalid:inset-ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputGroupTextarea({\n\tclassName,\n\tsize,\n\t...props\n}: Omit<React.ComponentProps<\"textarea\">, \"size\"> & { size?: TextareaSize }) {\n\treturn (\n\t\t<Textarea\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex-1 resize-none rounded-none border-0 bg-transparent shadow-none inset-shadow-none inset-ring-0 focus:border-transparent focus:shadow-none focus:inset-shadow-none focus-visible:border-transparent focus-visible:shadow-none focus-visible:ring-0 focus-visible:inset-ring-0 focus-visible:inset-shadow-none disabled:bg-transparent aria-invalid:ring-0 aria-invalid:inset-ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupText,\n\tInputGroupInput,\n\tInputGroupTextarea,\n};\n","import { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport type * as React from \"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\t\"glass-overlay\": \"bg-surface-glass-overlay-button text-fg-on-brand\",\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 gap-2 px-3.5 text-gdt-xs has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\tmd: \"h-10 gap-2 px-4.5 text-gdt-sm has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4\",\n\t\t\t\tlg: \"h-12.5 gap-2.5 px-5.5 text-gdt-md has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5 [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\txl: \"h-14 gap-3 px-6.5 text-gdt-lg has-data-[icon=inline-end]:pr-6 has-data-[icon=inline-start]:pl-6 [&_svg:not([class*='size-'])]:size-5\",\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(buttonVariants({ variant, size: resolvedSize, className }))}\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 = Omit<React.ComponentProps<\"a\">, \"href\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tdisabled?: boolean;\n\t\thref: string;\n\t};\n\nfunction ButtonLink({\n\tclassName,\n\thref,\n\tvariant = \"primary\",\n\tsize,\n\tdisabled = false,\n\tonClick,\n\t...props\n}: ButtonLinkProps) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize: ButtonSize = size ?? inheritedSize;\n\n\treturn (\n\t\t<a\n\t\t\tdata-slot=\"button-link\"\n\t\t\thref={href}\n\t\t\taria-disabled={disabled}\n\t\t\ttabIndex={disabled ? -1 : props.tabIndex}\n\t\t\tclassName={cn(buttonVariants({ variant, size: resolvedSize, className }))}\n\t\t\tonClick={(event) => {\n\t\t\t\tif (disabled) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonClick?.(event);\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Button, ButtonLink, buttonVariants };\n","\"use client\";\n\nimport { createContext, type ReactNode, useContext } from \"react\";\n\ntype ComponentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SizeContext = createContext<ComponentSize | undefined>(undefined);\n\nfunction SizeProvider({\n\tchildren,\n\tsize,\n}: {\n\tchildren: ReactNode;\n\tsize?: ComponentSize | null;\n}) {\n\tif (!size) {\n\t\treturn <>{children}</>;\n\t}\n\n\treturn <SizeContext.Provider value={size}>{children}</SizeContext.Provider>;\n}\n\nfunction useComponentSize(\n\tsize?: ComponentSize | null,\n\tfallback: ComponentSize = \"md\",\n) {\n\tconst inheritedSize = useContext(SizeContext);\n\treturn size ?? inheritedSize ?? fallback;\n}\n\nexport { SizeProvider, useComponentSize, type ComponentSize };\n","import { Input as InputPrimitive } from \"@base-ui/react/input\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n\ttype InputComponentSize,\n\tuseInputComponentSize,\n} from \"./input-size-context\";\n\nconst inputVariants = cva(\n\t\"flex w-full min-w-0 rounded-full border border-line bg-canvas text-fg-primary transition-[background-color,border-color,box-shadow,color] outline-none file:inline-flex file:border-0 file:bg-transparent file:font-normal file:text-fg-primary placeholder:text-fg-muted hover:border-line-strong focus-visible:border-line-focus focus-visible:inset-ring-1 inset-ring-line-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-line-subtle disabled:bg-surface disabled:text-fg-muted disabled:placeholder:text-fg-muted aria-invalid:border-line-danger aria-invalid:text-fg-danger aria-invalid:placeholder:text-fg-danger aria-invalid:shadow-none\",\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-8 px-3 text-gdt-xs font-normal file:text-gdt-xs\",\n\t\t\t\tmd: \"h-10 px-3.5 text-gdt-sm font-normal file:text-gdt-sm\",\n\t\t\t\tlg: \"h-12 px-4 text-gdt-md font-normal file:text-gdt-md\",\n\t\t\t\txl: \"h-14 px-4.5 text-gdt-lg font-normal file:text-gdt-lg\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype InputProps = Omit<React.ComponentProps<\"input\">, \"size\"> &\n\tVariantProps<typeof inputVariants>;\n\ntype InputSize = InputComponentSize;\n\nfunction Input({ className, size, type, ...props }: InputProps) {\n\tconst resolvedSize = useInputComponentSize(size);\n\n\treturn (\n\t\t<InputPrimitive\n\t\t\ttype={type}\n\t\t\tdata-slot=\"input\"\n\t\t\tdata-size={resolvedSize}\n\t\t\tclassName={cn(inputVariants({ size: resolvedSize }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Input, inputVariants, type InputSize };\n","\"use client\";\n\nimport { createContext, type ReactNode, useContext } from \"react\";\n\ntype InputComponentSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nconst InputSizeContext = createContext<InputComponentSize | undefined>(\n\tundefined,\n);\n\nfunction InputSizeProvider({\n\tchildren,\n\tsize,\n}: {\n\tchildren: ReactNode;\n\tsize?: InputComponentSize | null;\n}) {\n\tif (!size) {\n\t\treturn <>{children}</>;\n\t}\n\n\treturn (\n\t\t<InputSizeContext.Provider value={size}>\n\t\t\t{children}\n\t\t</InputSizeContext.Provider>\n\t);\n}\n\nfunction useInputComponentSize(\n\tsize?: InputComponentSize | null,\n\tfallback: InputComponentSize = \"md\",\n) {\n\tconst inheritedSize = useContext(InputSizeContext);\n\treturn size ?? inheritedSize ?? fallback;\n}\n\nexport { InputSizeProvider, useInputComponentSize, type InputComponentSize };\n"],"mappings":"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","names":["cva","jsx","cva","createContext","useContext","Fragment","jsx","jsx","cva","jsx","cva","jsx","jsx","jsxs"]}
1
+ {"version":3,"sources":["../src/number-input.tsx"],"sourcesContent":["import {\n\tNumberField,\n\ttype NumberFieldRootProps,\n} from \"@base-ui/react/number-field\";\nimport { MinusIcon, PlusIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupInput,\n} from \"./input-group\";\nimport { cn } from \"./lib/cn\";\nimport {\n\ttype ComponentSize,\n\tSizeProvider,\n\tuseComponentSize,\n} from \"./size-context\";\n\nconst numberInputFormatPresets = {\n\tcompact: {\n\t\tcompactDisplay: \"short\",\n\t\tnotation: \"compact\",\n\t},\n\tcurrencyNgn: {\n\t\tcurrency: \"NGN\",\n\t\tcurrencyDisplay: \"narrowSymbol\",\n\t\tstyle: \"currency\",\n\t},\n\tdecimal: {\n\t\tuseGrouping: true,\n\t},\n\tinteger: {\n\t\tmaximumFractionDigits: 0,\n\t\tuseGrouping: true,\n\t},\n\tpercent: {\n\t\tstyle: \"percent\",\n\t},\n\tplain: {\n\t\tuseGrouping: false,\n\t},\n} satisfies Record<string, Intl.NumberFormatOptions>;\n\ntype NumberInputFormatPreset = keyof typeof numberInputFormatPresets;\n\ntype NumberInputProps = Omit<NumberFieldRootProps, \"format\"> & {\n\tchildren?: React.ReactNode;\n\tformat?: Intl.NumberFormatOptions;\n\tformatPreset?: NumberInputFormatPreset;\n\tplaceholder?: string;\n\tsize?: ComponentSize;\n\tthousandSeparator?: boolean;\n};\n\nfunction NumberInput({\n\tchildren,\n\tformat,\n\tformatPreset,\n\tplaceholder,\n\tsize,\n\tthousandSeparator,\n\t...props\n}: NumberInputProps) {\n\tconst resolvedSize = useComponentSize(size);\n\tconst resolvedFormat =\n\t\tformat ??\n\t\t(formatPreset ? numberInputFormatPresets[formatPreset] : undefined) ??\n\t\t(thousandSeparator ? numberInputFormatPresets.decimal : undefined);\n\n\treturn (\n\t\t<SizeProvider size={resolvedSize}>\n\t\t\t<NumberField.Root format={resolvedFormat} {...props}>\n\t\t\t\t<NumberField.Group render={<InputGroup />}>\n\t\t\t\t\t<NumberField.Input\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\trender={<InputGroupInput />}\n\t\t\t\t\t/>\n\t\t\t\t\t{children}\n\t\t\t\t</NumberField.Group>\n\t\t\t</NumberField.Root>\n\t\t</SizeProvider>\n\t);\n}\n\nfunction NumberInputControl() {\n\tconst size = useComponentSize();\n\treturn (\n\t\t<InputGroupAddon\n\t\t\talign=\"inline-end\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex gap-0 flex-col h-[calc(100%-2px)] w-10 overflow-hidden rounded-r-full p-0! pr-1.5!\",\n\t\t\t\tsize === \"lg\" && \"w-12\",\n\t\t\t)}\n\t\t>\n\t\t\t<NumberField.Increment\n\t\t\t\tclassName=\"w-full flex-1 rounded-none rounded-tr-full\"\n\t\t\t\trender={<InputGroupButton variant=\"tertiary\" />}\n\t\t\t>\n\t\t\t\t<PlusIcon\n\t\t\t\t\tclassName={cn(\"size-1.5\", {\n\t\t\t\t\t\t\"size-3\": size === \"md\",\n\t\t\t\t\t\t\"size-3.5\": size === \"lg\",\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</NumberField.Increment>\n\t\t\t<NumberField.Decrement\n\t\t\t\tclassName=\"w-full flex-1 rounded-none rounded-br-full\"\n\t\t\t\trender={<InputGroupButton variant=\"tertiary\" />}\n\t\t\t>\n\t\t\t\t<MinusIcon\n\t\t\t\t\tclassName={cn(\"size-1.5\", {\n\t\t\t\t\t\t\"size-3\": size === \"md\",\n\t\t\t\t\t\t\"size-3.5\": size === \"lg\",\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</NumberField.Decrement>\n\t\t</InputGroupAddon>\n\t);\n}\n\nexport {\n\tNumberInput,\n\tNumberInputControl,\n\tnumberInputFormatPresets,\n\ttype NumberInputFormatPreset,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACC;AAAA,OAEM;AACP,SAAS,WAAW,gBAAgB;AAqEhC,SAA2B,KAA3B;AAtDJ,IAAM,2BAA2B;AAAA,EAChC,SAAS;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,EACX;AAAA,EACA,aAAa;AAAA,IACZ,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACR,aAAa;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACR,uBAAuB;AAAA,IACvB,aAAa;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACR,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA,EACd;AACD;AAaA,SAAS,YAAY;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAqB;AACpB,QAAM,eAAe,iBAAiB,IAAI;AAC1C,QAAM,iBACL,WACC,eAAe,yBAAyB,YAAY,IAAI,YACxD,oBAAoB,yBAAyB,UAAU;AAEzD,SACC,oBAAC,gBAAa,MAAM,cACnB,8BAAC,YAAY,MAAZ,EAAiB,QAAQ,gBAAiB,GAAG,OAC7C,+BAAC,YAAY,OAAZ,EAAkB,QAAQ,oBAAC,cAAW,GACtC;AAAA;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QACA;AAAA,QACA,QAAQ,oBAAC,mBAAgB;AAAA;AAAA,IAC1B;AAAA,IACC;AAAA,KACF,GACD,GACD;AAEF;AAEA,SAAS,qBAAqB;AAC7B,QAAM,OAAO,iBAAiB;AAC9B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAM;AAAA,MACN,WAAW;AAAA,QACV;AAAA,QACA,SAAS,QAAQ;AAAA,MAClB;AAAA,MAEA;AAAA;AAAA,UAAC,YAAY;AAAA,UAAZ;AAAA,YACA,WAAU;AAAA,YACV,QAAQ,oBAAC,oBAAiB,SAAQ,YAAW;AAAA,YAE7C;AAAA,cAAC;AAAA;AAAA,gBACA,WAAW,GAAG,YAAY;AAAA,kBACzB,UAAU,SAAS;AAAA,kBACnB,YAAY,SAAS;AAAA,gBACtB,CAAC;AAAA;AAAA,YACF;AAAA;AAAA,QACD;AAAA,QACA;AAAA,UAAC,YAAY;AAAA,UAAZ;AAAA,YACA,WAAU;AAAA,YACV,QAAQ,oBAAC,oBAAiB,SAAQ,YAAW;AAAA,YAE7C;AAAA,cAAC;AAAA;AAAA,gBACA,WAAW,GAAG,YAAY;AAAA,kBACzB,UAAU,SAAS;AAAA,kBACnB,YAAY,SAAS;AAAA,gBACtB,CAAC;AAAA;AAAA,YACF;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EACD;AAEF;","names":[]}
@@ -1,36 +1,8 @@
1
- // src/lib/cn.ts
2
- import { clsx } from "clsx";
3
- import { extendTailwindMerge } from "tailwind-merge";
4
- var twMerge = extendTailwindMerge({
5
- extend: {
6
- classGroups: {
7
- "font-size": [
8
- {
9
- text: [
10
- "gdt-display",
11
- "gdt-h1",
12
- "gdt-h2",
13
- "gdt-h3",
14
- "gdt-h4",
15
- "gdt-h5",
16
- "gdt-xl",
17
- "gdt-lg",
18
- "gdt-md",
19
- "gdt-sm",
20
- "gdt-xs",
21
- "gdt-subtext",
22
- "gdt-capitalized"
23
- ]
24
- }
25
- ]
26
- }
27
- }
28
- });
29
- function cn(...inputs) {
30
- return twMerge(clsx(inputs));
31
- }
1
+ import {
2
+ cn
3
+ } from "./chunk-Y4TTYVNE.js";
32
4
 
33
- // src/components/ui/page-header.tsx
5
+ // src/page-header.tsx
34
6
  import { jsx } from "react/jsx-runtime";
35
7
  function DashboardHeader({
36
8
  border,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/cn.ts","../src/components/ui/page-header.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import { cn } from \"../../lib/cn\";\n\nfunction DashboardHeader({\n\tborder,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tborder?: boolean;\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderGroup({\n\tclassName,\n\torientation = \"vertical\",\n\t...props\n}: React.ComponentProps<\"div\"> & { orientation?: \"horizontal\" | \"vertical\" }) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"gap-4 md:gap-6 md:flex-row md:items-center\"\n\t\t\t\t\t: \"flex-col gap-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"h1\">) {\n\treturn (\n\t\t<h1\n\t\t\tdata-slot=\"dashboard-header-title\"\n\t\t\tclassName={cn(\"text-gdt-h3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"dashboard-header-description\"\n\t\t\tclassName={cn(\"text-gdt-sm text-fg-secondary\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderActions({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header-actions\"\n\t\t\tclassName={cn(\"flex flex-wrap items-center gap-2 md:gap-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// function DashboardHeaderBreadcrumbs({}) {}\n\nexport {\n\tDashboardHeader,\n\tDashboardHeaderGroup,\n\tDashboardHeaderTitle,\n\tDashboardHeaderDescription,\n\tDashboardHeaderActions,\n};\n"],"mappings":";AAAA,SAA0B,YAAY;AACtC,SAAS,2BAA2B;AAEpC,IAAM,UAAU,oBAAoB;AAAA,EACnC,QAAQ;AAAA,IACP,aAAa;AAAA,MACZ,aAAa;AAAA,QACZ;AAAA,UACC,MAAM;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;AAEM,SAAS,MAAM,QAAsB;AAC3C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC5B;;;ACrBE;AARF,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAEG;AACF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,uBAAuB,SAAS;AAAA,MAC7C,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,qBAAqB;AAAA,EAC7B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACJ,GAA8E;AAC7E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA,gBAAgB,eACb,+CACA;AAAA,QACH;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,qBAAqB;AAAA,EAC7B;AAAA,EACA,GAAG;AACJ,GAA+B;AAC9B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,eAAe,SAAS;AAAA,MACrC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,2BAA2B;AAAA,EACnC;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,uBAAuB;AAAA,EAC/B;AAAA,EACA,GAAG;AACJ,GAAgC;AAC/B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
1
+ {"version":3,"sources":["../src/page-header.tsx"],"sourcesContent":["import { cn } from \"./lib/cn\";\n\nfunction DashboardHeader({\n\tborder,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tborder?: boolean;\n}) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderGroup({\n\tclassName,\n\torientation = \"vertical\",\n\t...props\n}: React.ComponentProps<\"div\"> & { orientation?: \"horizontal\" | \"vertical\" }) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"gap-4 md:gap-6 md:flex-row md:items-center\"\n\t\t\t\t\t: \"flex-col gap-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"h1\">) {\n\treturn (\n\t\t<h1\n\t\t\tdata-slot=\"dashboard-header-title\"\n\t\t\tclassName={cn(\"text-gdt-h3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"dashboard-header-description\"\n\t\t\tclassName={cn(\"text-gdt-sm text-fg-secondary\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DashboardHeaderActions({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dashboard-header-actions\"\n\t\t\tclassName={cn(\"flex flex-wrap items-center gap-2 md:gap-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// function DashboardHeaderBreadcrumbs({}) {}\n\nexport {\n\tDashboardHeader,\n\tDashboardHeaderGroup,\n\tDashboardHeaderTitle,\n\tDashboardHeaderDescription,\n\tDashboardHeaderActions,\n};\n"],"mappings":";;;;;AAUE;AARF,SAAS,gBAAgB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAEG;AACF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,uBAAuB,SAAS;AAAA,MAC7C,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,qBAAqB;AAAA,EAC7B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACJ,GAA8E;AAC7E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA,gBAAgB,eACb,+CACA;AAAA,QACH;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,qBAAqB;AAAA,EAC7B;AAAA,EACA,GAAG;AACJ,GAA+B;AAC9B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,eAAe,SAAS;AAAA,MACrC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,2BAA2B;AAAA,EACnC;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,uBAAuB;AAAA,EAC/B;AAAA,EACA,GAAG;AACJ,GAAgC;AAC/B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { Button, ButtonLink } from './button.js';
3
3
  import 'class-variance-authority/types';
4
4
  import '@base-ui/react/button';
5
+ import '@base-ui/react/use-render';
5
6
  import 'class-variance-authority';
6
7
 
7
8
  declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
@@ -1,156 +1,22 @@
1
- // src/components/ui/pagination.tsx
2
- import { cva as cva2 } from "class-variance-authority";
1
+ import {
2
+ Button,
3
+ ButtonLink
4
+ } from "./chunk-B4H6RNDH.js";
5
+ import "./chunk-HL3ZSYES.js";
6
+ import {
7
+ cn
8
+ } from "./chunk-Y4TTYVNE.js";
9
+
10
+ // src/pagination.tsx
11
+ import { cva } from "class-variance-authority";
3
12
  import {
4
13
  ChevronLeftIcon,
5
14
  ChevronRightIcon,
6
15
  MoreHorizontalIcon
7
16
  } from "lucide-react";
8
-
9
- // src/lib/cn.ts
10
- import { clsx } from "clsx";
11
- import { extendTailwindMerge } from "tailwind-merge";
12
- var twMerge = extendTailwindMerge({
13
- extend: {
14
- classGroups: {
15
- "font-size": [
16
- {
17
- text: [
18
- "gdt-display",
19
- "gdt-h1",
20
- "gdt-h2",
21
- "gdt-h3",
22
- "gdt-h4",
23
- "gdt-h5",
24
- "gdt-xl",
25
- "gdt-lg",
26
- "gdt-md",
27
- "gdt-sm",
28
- "gdt-xs",
29
- "gdt-subtext",
30
- "gdt-capitalized"
31
- ]
32
- }
33
- ]
34
- }
35
- }
36
- });
37
- function cn(...inputs) {
38
- return twMerge(clsx(inputs));
39
- }
40
-
41
- // src/components/ui/button.tsx
42
- import { Button as ButtonPrimitive } from "@base-ui/react/button";
43
- import { cva } from "class-variance-authority";
44
- import { Loader } from "lucide-react";
45
-
46
- // src/components/ui/size-context.tsx
47
- import { createContext, useContext } from "react";
48
- import { Fragment, jsx } from "react/jsx-runtime";
49
- var SizeContext = createContext(void 0);
50
- function useComponentSize(size, fallback = "md") {
51
- const inheritedSize = useContext(SizeContext);
52
- return size ?? inheritedSize ?? fallback;
53
- }
54
-
55
- // src/components/ui/button.tsx
56
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
57
- var buttonVariants = cva(
58
- "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",
59
- {
60
- variants: {
61
- variant: {
62
- primary: "bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed",
63
- "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",
64
- 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",
65
- "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",
66
- 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",
67
- "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",
68
- ghost: "bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised",
69
- 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",
70
- "glass-overlay": "bg-surface-glass-overlay-button text-fg-on-brand",
71
- "link-brand": "border-transparent bg-transparent px-0 text-fg-brand hover:underline active:underline active:opacity-70",
72
- "link-neutral": "border-transparent bg-transparent px-0 text-fg-secondary hover:underline active:underline active:opacity-70"
73
- },
74
- size: {
75
- sm: "h-8 gap-2 px-3.5 text-gdt-xs has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 [&_svg:not([class*='size-'])]:size-3.5",
76
- md: "h-10 gap-2 px-4.5 text-gdt-sm has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4",
77
- lg: "h-12.5 gap-2.5 px-5.5 text-gdt-md has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5 [&_svg:not([class*='size-'])]:size-4.5",
78
- xl: "h-14 gap-3 px-6.5 text-gdt-lg has-data-[icon=inline-end]:pr-6 has-data-[icon=inline-start]:pl-6 [&_svg:not([class*='size-'])]:size-5",
79
- icon: "size-10",
80
- "icon-xs": "size-6 text-gdt-xs [&_svg:not([class*='size-'])]:size-3",
81
- "icon-sm": "size-8 text-gdt-sm [&_svg:not([class*='size-'])]:size-3.5",
82
- "icon-lg": "size-12.5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5",
83
- "icon-xl": "size-14 text-gdt-lg [&_svg:not([class*='size-'])]:size-5"
84
- }
85
- },
86
- defaultVariants: {
87
- variant: "primary",
88
- size: "md"
89
- }
90
- }
91
- );
92
- function Button({
93
- className,
94
- variant = "primary",
95
- size,
96
- isLoading = false,
97
- children,
98
- disabled = false,
99
- ...props
100
- }) {
101
- const inheritedSize = useComponentSize();
102
- const resolvedSize = size ?? inheritedSize;
103
- const _disabled = disabled || isLoading;
104
- return /* @__PURE__ */ jsxs(
105
- ButtonPrimitive,
106
- {
107
- "data-slot": "button",
108
- className: cn(buttonVariants({ variant, size: resolvedSize, className })),
109
- disabled: _disabled,
110
- ...props,
111
- children: [
112
- isLoading && /* @__PURE__ */ jsx2(Loader, { className: "size-4 animate-spin" }),
113
- " ",
114
- children
115
- ]
116
- }
117
- );
118
- }
119
- function ButtonLink({
120
- className,
121
- href,
122
- variant = "primary",
123
- size,
124
- disabled = false,
125
- onClick,
126
- ...props
127
- }) {
128
- const inheritedSize = useComponentSize();
129
- const resolvedSize = size ?? inheritedSize;
130
- return /* @__PURE__ */ jsx2(
131
- "a",
132
- {
133
- "data-slot": "button-link",
134
- href,
135
- "aria-disabled": disabled,
136
- tabIndex: disabled ? -1 : props.tabIndex,
137
- className: cn(buttonVariants({ variant, size: resolvedSize, className })),
138
- onClick: (event) => {
139
- if (disabled) {
140
- event.preventDefault();
141
- return;
142
- }
143
- onClick?.(event);
144
- },
145
- ...props
146
- }
147
- );
148
- }
149
-
150
- // src/components/ui/pagination.tsx
151
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
152
18
  function Pagination({ className, ...props }) {
153
- return /* @__PURE__ */ jsx3(
19
+ return /* @__PURE__ */ jsx(
154
20
  "nav",
155
21
  {
156
22
  "aria-label": "pagination",
@@ -164,7 +30,7 @@ function PaginationContent({
164
30
  className,
165
31
  ...props
166
32
  }) {
167
- return /* @__PURE__ */ jsx3(
33
+ return /* @__PURE__ */ jsx(
168
34
  "ul",
169
35
  {
170
36
  "data-slot": "pagination-content",
@@ -174,9 +40,9 @@ function PaginationContent({
174
40
  );
175
41
  }
176
42
  function PaginationItem({ ...props }) {
177
- return /* @__PURE__ */ jsx3("li", { "data-slot": "pagination-item", ...props });
43
+ return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
178
44
  }
179
- var paginationTriggerVariants = cva2(
45
+ var paginationTriggerVariants = cva(
180
46
  "rounded-md font-medium shadow-none transition-[background-color,border-color,color] focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
181
47
  {
182
48
  variants: {
@@ -228,7 +94,7 @@ function PaginationLink({
228
94
  ...props
229
95
  }) {
230
96
  const resolvedHref = href ?? getHref?.(page) ?? `?page=${page}`;
231
- return /* @__PURE__ */ jsx3(
97
+ return /* @__PURE__ */ jsx(
232
98
  ButtonLink,
233
99
  {
234
100
  href: resolvedHref,
@@ -256,7 +122,7 @@ function PaginationButton({
256
122
  page,
257
123
  ...props
258
124
  }) {
259
- return /* @__PURE__ */ jsx3(
125
+ return /* @__PURE__ */ jsx(
260
126
  Button,
261
127
  {
262
128
  type: "button",
@@ -284,7 +150,7 @@ function PaginationPrevious({
284
150
  text = "Previous",
285
151
  ...props
286
152
  }) {
287
- return /* @__PURE__ */ jsxs2(
153
+ return /* @__PURE__ */ jsxs(
288
154
  PaginationLink,
289
155
  {
290
156
  "aria-label": "Go to previous page",
@@ -292,8 +158,8 @@ function PaginationPrevious({
292
158
  className: cn(showLabel ? "pl-1.5!" : "", className),
293
159
  ...props,
294
160
  children: [
295
- /* @__PURE__ */ jsx3(ChevronLeftIcon, { "data-icon": "inline-start", className: "cn-rtl-flip" }),
296
- showLabel ? /* @__PURE__ */ jsx3("span", { className: "hidden sm:block", children: text }) : null
161
+ /* @__PURE__ */ jsx(ChevronLeftIcon, { "data-icon": "inline-start", className: "cn-rtl-flip" }),
162
+ showLabel ? /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text }) : null
297
163
  ]
298
164
  }
299
165
  );
@@ -304,7 +170,7 @@ function PaginationNext({
304
170
  text = "Next",
305
171
  ...props
306
172
  }) {
307
- return /* @__PURE__ */ jsxs2(
173
+ return /* @__PURE__ */ jsxs(
308
174
  PaginationLink,
309
175
  {
310
176
  "aria-label": "Go to next page",
@@ -312,8 +178,8 @@ function PaginationNext({
312
178
  className: cn(showLabel ? "pr-1.5!" : "", className),
313
179
  ...props,
314
180
  children: [
315
- showLabel ? /* @__PURE__ */ jsx3("span", { className: "hidden sm:block", children: text }) : null,
316
- /* @__PURE__ */ jsx3(ChevronRightIcon, { "data-icon": "inline-end", className: "cn-rtl-flip" })
181
+ showLabel ? /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: text }) : null,
182
+ /* @__PURE__ */ jsx(ChevronRightIcon, { "data-icon": "inline-end", className: "cn-rtl-flip" })
317
183
  ]
318
184
  }
319
185
  );
@@ -322,7 +188,7 @@ function PaginationEllipsis({
322
188
  className,
323
189
  ...props
324
190
  }) {
325
- return /* @__PURE__ */ jsxs2(
191
+ return /* @__PURE__ */ jsxs(
326
192
  "span",
327
193
  {
328
194
  "aria-hidden": true,
@@ -333,8 +199,8 @@ function PaginationEllipsis({
333
199
  ),
334
200
  ...props,
335
201
  children: [
336
- /* @__PURE__ */ jsx3(MoreHorizontalIcon, {}),
337
- /* @__PURE__ */ jsx3("span", { className: "sr-only", children: "More pages" })
202
+ /* @__PURE__ */ jsx(MoreHorizontalIcon, {}),
203
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
338
204
  ]
339
205
  }
340
206
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/pagination.tsx","../src/lib/cn.ts","../src/components/ui/button.tsx","../src/components/ui/size-context.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tMoreHorizontalIcon,\n} from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, ButtonLink } from \"./button\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\taria-label=\"pagination\"\n\t\t\tdata-slot=\"pagination\"\n\t\t\tclassName={cn(\"mx-auto flex w-full justify-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"pagination-content\"\n\t\t\tclassName={cn(\"flex flex-wrap items-center gap-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n\treturn <li data-slot=\"pagination-item\" {...props} />;\n}\n\nconst paginationTriggerVariants = cva(\n\t\"rounded-md font-medium shadow-none transition-[background-color,border-color,color] focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]\",\n\t{\n\t\tvariants: {\n\t\t\tappearance: {\n\t\t\t\tpage: \"px-0\",\n\t\t\t\ticon: \"border border-line bg-transparent px-0 hover:border-line-strong\",\n\t\t\t\tcontrol: \"border border-line bg-transparent hover:border-line-strong\",\n\t\t\t},\n\t\t\tisActive: {\n\t\t\t\ttrue: \"\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: true,\n\t\t\t\tclassName:\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},\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName:\n\t\t\t\t\t\"bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"icon\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"control\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t],\n\t\tdefaultVariants: {\n\t\t\tappearance: \"page\",\n\t\t\tisActive: false,\n\t\t},\n\t},\n);\n\ntype PaginationTriggerAppearance = \"page\" | \"icon\" | \"control\";\n\ntype PaginationLinkProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n\tgetHref?: (page: number) => string;\n\thref?: string;\n} & Omit<React.ComponentProps<typeof ButtonLink>, \"href\" | \"size\" | \"variant\">;\n\nfunction PaginationLink({\n\tclassName,\n\tappearance = \"page\",\n\tgetHref,\n\thref,\n\tisActive,\n\tpage,\n\t...props\n}: PaginationLinkProps) {\n\tconst resolvedHref = href ?? getHref?.(page) ?? `?page=${page}`;\n\n\treturn (\n\t\t<ButtonLink\n\t\t\thref={resolvedHref}\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-link\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype PaginationButtonProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n} & Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\" | \"variant\">;\n\nfunction PaginationButton({\n\tclassName,\n\tappearance = \"page\",\n\tisActive,\n\tpage,\n\t...props\n}: PaginationButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-button\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\tdata-page={page}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationPrevious({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Previous\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to previous page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pl-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationNext({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Next\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to next page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pr-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t\t<ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\taria-hidden\n\t\t\tdata-slot=\"pagination-ellipsis\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex size-8 items-center justify-center 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<MoreHorizontalIcon />\n\t\t\t<span className=\"sr-only\">More pages</span>\n\t\t</span>\n\t);\n}\n\nexport {\n\tPagination,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationButton,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport type * as React from \"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\t\"glass-overlay\": \"bg-surface-glass-overlay-button text-fg-on-brand\",\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 gap-2 px-3.5 text-gdt-xs has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\tmd: \"h-10 gap-2 px-4.5 text-gdt-sm has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4\",\n\t\t\t\tlg: \"h-12.5 gap-2.5 px-5.5 text-gdt-md has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5 [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\txl: \"h-14 gap-3 px-6.5 text-gdt-lg has-data-[icon=inline-end]:pr-6 has-data-[icon=inline-start]:pl-6 [&_svg:not([class*='size-'])]:size-5\",\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(buttonVariants({ variant, size: resolvedSize, className }))}\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 = Omit<React.ComponentProps<\"a\">, \"href\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tdisabled?: boolean;\n\t\thref: string;\n\t};\n\nfunction ButtonLink({\n\tclassName,\n\thref,\n\tvariant = \"primary\",\n\tsize,\n\tdisabled = false,\n\tonClick,\n\t...props\n}: ButtonLinkProps) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize: ButtonSize = size ?? inheritedSize;\n\n\treturn (\n\t\t<a\n\t\t\tdata-slot=\"button-link\"\n\t\t\thref={href}\n\t\t\taria-disabled={disabled}\n\t\t\ttabIndex={disabled ? -1 : props.tabIndex}\n\t\t\tclassName={cn(buttonVariants({ variant, size: resolvedSize, className }))}\n\t\t\tonClick={(event) => {\n\t\t\t\tif (disabled) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonClick?.(event);\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Button, ButtonLink, buttonVariants };\n","\"use client\";\n\nimport { createContext, type ReactNode, useContext } from \"react\";\n\ntype ComponentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SizeContext = createContext<ComponentSize | undefined>(undefined);\n\nfunction SizeProvider({\n\tchildren,\n\tsize,\n}: {\n\tchildren: ReactNode;\n\tsize?: ComponentSize | null;\n}) {\n\tif (!size) {\n\t\treturn <>{children}</>;\n\t}\n\n\treturn <SizeContext.Provider value={size}>{children}</SizeContext.Provider>;\n}\n\nfunction useComponentSize(\n\tsize?: ComponentSize | null,\n\tfallback: ComponentSize = \"md\",\n) {\n\tconst inheritedSize = useContext(SizeContext);\n\treturn size ?? inheritedSize ?? fallback;\n}\n\nexport { SizeProvider, useComponentSize, type ComponentSize };\n"],"mappings":"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","names":["cva","jsx","jsx","jsxs","cva"]}
1
+ {"version":3,"sources":["../src/pagination.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tMoreHorizontalIcon,\n} from \"lucide-react\";\nimport type * as React from \"react\";\nimport { Button, ButtonLink } from \"./button\";\nimport { cn } from \"./lib/cn\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\taria-label=\"pagination\"\n\t\t\tdata-slot=\"pagination\"\n\t\t\tclassName={cn(\"mx-auto flex w-full justify-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"pagination-content\"\n\t\t\tclassName={cn(\"flex flex-wrap items-center gap-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n\treturn <li data-slot=\"pagination-item\" {...props} />;\n}\n\nconst paginationTriggerVariants = cva(\n\t\"rounded-md font-medium shadow-none transition-[background-color,border-color,color] focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]\",\n\t{\n\t\tvariants: {\n\t\t\tappearance: {\n\t\t\t\tpage: \"px-0\",\n\t\t\t\ticon: \"border border-line bg-transparent px-0 hover:border-line-strong\",\n\t\t\t\tcontrol: \"border border-line bg-transparent hover:border-line-strong\",\n\t\t\t},\n\t\t\tisActive: {\n\t\t\t\ttrue: \"\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: true,\n\t\t\t\tclassName:\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},\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName:\n\t\t\t\t\t\"bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"icon\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"control\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t],\n\t\tdefaultVariants: {\n\t\t\tappearance: \"page\",\n\t\t\tisActive: false,\n\t\t},\n\t},\n);\n\ntype PaginationTriggerAppearance = \"page\" | \"icon\" | \"control\";\n\ntype PaginationLinkProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n\tgetHref?: (page: number) => string;\n\thref?: string;\n} & Omit<React.ComponentProps<typeof ButtonLink>, \"href\" | \"size\" | \"variant\">;\n\nfunction PaginationLink({\n\tclassName,\n\tappearance = \"page\",\n\tgetHref,\n\thref,\n\tisActive,\n\tpage,\n\t...props\n}: PaginationLinkProps) {\n\tconst resolvedHref = href ?? getHref?.(page) ?? `?page=${page}`;\n\n\treturn (\n\t\t<ButtonLink\n\t\t\thref={resolvedHref}\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-link\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype PaginationButtonProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n} & Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\" | \"variant\">;\n\nfunction PaginationButton({\n\tclassName,\n\tappearance = \"page\",\n\tisActive,\n\tpage,\n\t...props\n}: PaginationButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-button\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\tdata-page={page}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationPrevious({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Previous\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to previous page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pl-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationNext({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Next\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to next page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pr-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t\t<ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\taria-hidden\n\t\t\tdata-slot=\"pagination-ellipsis\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex size-8 items-center justify-center 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<MoreHorizontalIcon />\n\t\t\t<span className=\"sr-only\">More pages</span>\n\t\t</span>\n\t);\n}\n\nexport {\n\tPagination,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationButton,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n};\n"],"mappings":"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","names":[]}
@@ -4,6 +4,7 @@ import 'class-variance-authority/types';
4
4
  import 'class-variance-authority';
5
5
  import './button.js';
6
6
  import '@base-ui/react/button';
7
+ import '@base-ui/react/use-render';
7
8
  import './input.js';
8
9
  import './input-size-context.js';
9
10
  import './textarea.js';