@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/stepper.tsx","../src/lib/cn.ts"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\ntype StepperOrientation = \"horizontal\" | \"vertical\";\ntype StepperState = \"complete\" | \"active\" | \"upcoming\";\n\ntype StepperContextValue = {\n\torientation: StepperOrientation;\n\t/** Active step number (1-based). Steps derive their state from this. */\n\tvalue?: number;\n};\n\nconst StepperContext = React.createContext<StepperContextValue | null>(null);\n\nfunction useStepper() {\n\tconst context = React.useContext(StepperContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper parts must be used within a <Stepper />\");\n\t}\n\n\treturn context;\n}\n\ntype StepperItemContextValue = {\n\tstate: StepperState;\n\t/** 1-based position of this step in the stepper. */\n\tstep: number;\n};\n\nconst StepperItemContext = React.createContext<StepperItemContextValue | null>(\n\tnull,\n);\n\nfunction useStepperItem() {\n\tconst context = React.useContext(StepperItemContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper item parts must be used within a <StepperItem />\");\n\t}\n\n\treturn context;\n}\n\nfunction resolveState(\n\tstep: number,\n\tvalue: number | undefined,\n\toverride: StepperState | undefined,\n): StepperState {\n\tif (override) return override;\n\tif (value == null) return \"upcoming\";\n\tif (step < value) return \"complete\";\n\tif (step === value) return \"active\";\n\treturn \"upcoming\";\n}\n\ntype StepperProps = React.ComponentProps<\"div\"> & {\n\torientation?: StepperOrientation;\n\t/** Active step number (1-based). Items without an explicit `state` derive theirs from this. */\n\tvalue?: number;\n};\n\nfunction Stepper({\n\torientation = \"horizontal\",\n\tvalue,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperProps) {\n\tconst items = React.Children.toArray(children).filter(React.isValidElement);\n\n\tconst contextValue = React.useMemo<StepperContextValue>(\n\t\t() => ({ orientation, value }),\n\t\t[orientation, value],\n\t);\n\n\treturn (\n\t\t<StepperContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"flex-row\" : \"flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{items.map((child, index) => {\n\t\t\t\t\tif (!React.isValidElement<StepperItemProps>(child)) return child;\n\n\t\t\t\t\treturn React.cloneElement(child, {\n\t\t\t\t\t\tstep: child.props.step ?? index + 1,\n\t\t\t\t\t\tlast: child.props.last ?? index === items.length - 1,\n\t\t\t\t\t});\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</StepperContext.Provider>\n\t);\n}\n\ntype StepperItemProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\t/** Force a specific state instead of deriving it from the stepper `value`. */\n\tstate?: StepperState;\n\t/** 1-based position. Injected by `Stepper`; only set this to override. */\n\tstep?: number;\n\t/** Whether this is the last item (hides its connector). Injected by `Stepper`. */\n\tlast?: boolean;\n\t/** Custom indicator node. Defaults to a numbered circle / checkmark. */\n\tindicator?: React.ReactNode;\n\tchildren?: React.ReactNode;\n};\n\nfunction StepperItem({\n\tstate: stateOverride,\n\tstep = 1,\n\tlast = false,\n\tindicator,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperItemProps) {\n\tconst { orientation, value } = useStepper();\n\tconst state = resolveState(step, value, stateOverride);\n\n\tconst itemContext = React.useMemo<StepperItemContextValue>(\n\t\t() => ({ state, step }),\n\t\t[state, step],\n\t);\n\n\treturn (\n\t\t<StepperItemContext.Provider value={itemContext}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper-item\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"group/stepper-item flex min-w-0\",\n\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t? \"flex-1 flex-col gap-3 last:flex-none\"\n\t\t\t\t\t\t: \"flex-row items-stretch gap-3\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"flex\",\n\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t? \"items-center\"\n\t\t\t\t\t\t\t: \"flex-col items-center\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{indicator ?? <StepperIndicator />}\n\t\t\t\t\t{!last && <StepperSeparator />}\n\t\t\t\t</div>\n\n\t\t\t\t{children != null && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex min-w-0 flex-col gap-1\",\n\t\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t\t? \"pr-4\"\n\t\t\t\t\t\t\t\t: cn(\"pt-1\", !last && \"pb-8\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</StepperItemContext.Provider>\n\t);\n}\n\nconst indicatorVariants = cva(\n\t\"relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9\",\n\t{\n\t\tvariants: {\n\t\t\tstate: {\n\t\t\t\tcomplete:\n\t\t\t\t\t\"border border-transparent bg-action-primary text-fg-on-brand\",\n\t\t\t\tactive: \"border-2 border-line-focus bg-canvas text-fg-brand\",\n\t\t\t\tupcoming: \"border border-line bg-surface text-fg-secondary\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tstate: \"upcoming\",\n\t\t},\n\t},\n);\n\ntype StepperIndicatorProps = Omit<React.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof indicatorVariants> & {\n\t\t/** Override the rendered glyph. Defaults to the step number / checkmark. */\n\t\tchildren?: React.ReactNode;\n\t};\n\nfunction StepperIndicator({\n\tclassName,\n\tstate: stateProp,\n\tchildren,\n\t...props\n}: StepperIndicatorProps) {\n\tconst { state, step } = useStepperItem();\n\tconst resolved = stateProp ?? state;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-indicator\"\n\t\t\tdata-state={resolved}\n\t\t\tclassName={cn(indicatorVariants({ state: resolved }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ??\n\t\t\t\t(resolved === \"complete\" ? (\n\t\t\t\t\t<CheckIcon className=\"size-4 sm:size-4.5\" strokeWidth={2.5} />\n\t\t\t\t) : (\n\t\t\t\t\tstep\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n\nconst separatorVariants = cva(\"shrink-0 rounded-full transition-colors\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"bg-action-primary\",\n\t\t\tactive: \"bg-line\",\n\t\t\tupcoming: \"bg-line\",\n\t\t},\n\t\torientation: {\n\t\t\thorizontal: \"h-0.5 flex-1\",\n\t\t\tvertical: \"w-0.5 flex-1 min-h-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t\torientation: \"horizontal\",\n\t},\n});\n\nfunction StepperSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useStepper();\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-separator\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(separatorVariants({ state, orientation }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst titleVariants = cva(\"text-gdt-sm font-bold\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-primary\",\n\t\t\tactive: \"text-fg-brand\",\n\t\t\tupcoming: \"text-fg-secondary\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-title\"\n\t\t\tclassName={cn(titleVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst descriptionVariants = cva(\"text-gdt-sm\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-secondary\",\n\t\t\tactive: \"text-fg-secondary\",\n\t\t\tupcoming: \"text-fg-caption-placeholder\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-description\"\n\t\t\tclassName={cn(descriptionVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype StepperMetaProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\tdate?: React.ReactNode;\n\ttime?: React.ReactNode;\n};\n\n/** Date / timestamp caption pair. Placeholder colour regardless of state. */\nfunction StepperMeta({ date, time, className, ...props }: StepperMetaProps) {\n\tif (date == null && time == null) return null;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-meta\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{date != null && <span>{date}</span>}\n\t\t\t{time != null && <span>{time}</span>}\n\t\t</div>\n\t);\n}\n\nexport {\n\tStepper,\n\tStepperItem,\n\tStepperIndicator,\n\tStepperSeparator,\n\tStepperTitle,\n\tStepperDescription,\n\tStepperMeta,\n\ttype StepperOrientation,\n\ttype StepperState,\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/stepper.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\ntype StepperOrientation = \"horizontal\" | \"vertical\";\ntype StepperState = \"complete\" | \"active\" | \"upcoming\";\n\ntype StepperContextValue = {\n\torientation: StepperOrientation;\n\t/** Active step number (1-based). Steps derive their state from this. */\n\tvalue?: number;\n};\n\nconst StepperContext = React.createContext<StepperContextValue | null>(null);\n\nfunction useStepper() {\n\tconst context = React.useContext(StepperContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper parts must be used within a <Stepper />\");\n\t}\n\n\treturn context;\n}\n\ntype StepperItemContextValue = {\n\tstate: StepperState;\n\t/** 1-based position of this step in the stepper. */\n\tstep: number;\n};\n\nconst StepperItemContext = React.createContext<StepperItemContextValue | null>(\n\tnull,\n);\n\nfunction useStepperItem() {\n\tconst context = React.useContext(StepperItemContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper item parts must be used within a <StepperItem />\");\n\t}\n\n\treturn context;\n}\n\nfunction resolveState(\n\tstep: number,\n\tvalue: number | undefined,\n\toverride: StepperState | undefined,\n): StepperState {\n\tif (override) return override;\n\tif (value == null) return \"upcoming\";\n\tif (step < value) return \"complete\";\n\tif (step === value) return \"active\";\n\treturn \"upcoming\";\n}\n\ntype StepperProps = React.ComponentProps<\"div\"> & {\n\torientation?: StepperOrientation;\n\t/** Active step number (1-based). Items without an explicit `state` derive theirs from this. */\n\tvalue?: number;\n};\n\nfunction Stepper({\n\torientation = \"horizontal\",\n\tvalue,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperProps) {\n\tconst items = React.Children.toArray(children).filter(React.isValidElement);\n\n\tconst contextValue = React.useMemo<StepperContextValue>(\n\t\t() => ({ orientation, value }),\n\t\t[orientation, value],\n\t);\n\n\treturn (\n\t\t<StepperContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"flex-row\" : \"flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{items.map((child, index) => {\n\t\t\t\t\tif (!React.isValidElement<StepperItemProps>(child)) return child;\n\n\t\t\t\t\treturn React.cloneElement(child, {\n\t\t\t\t\t\tstep: child.props.step ?? index + 1,\n\t\t\t\t\t\tlast: child.props.last ?? index === items.length - 1,\n\t\t\t\t\t});\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</StepperContext.Provider>\n\t);\n}\n\ntype StepperItemProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\t/** Force a specific state instead of deriving it from the stepper `value`. */\n\tstate?: StepperState;\n\t/** 1-based position. Injected by `Stepper`; only set this to override. */\n\tstep?: number;\n\t/** Whether this is the last item (hides its connector). Injected by `Stepper`. */\n\tlast?: boolean;\n\t/** Custom indicator node. Defaults to a numbered circle / checkmark. */\n\tindicator?: React.ReactNode;\n\tchildren?: React.ReactNode;\n};\n\nfunction StepperItem({\n\tstate: stateOverride,\n\tstep = 1,\n\tlast = false,\n\tindicator,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperItemProps) {\n\tconst { orientation, value } = useStepper();\n\tconst state = resolveState(step, value, stateOverride);\n\n\tconst itemContext = React.useMemo<StepperItemContextValue>(\n\t\t() => ({ state, step }),\n\t\t[state, step],\n\t);\n\n\treturn (\n\t\t<StepperItemContext.Provider value={itemContext}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper-item\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"group/stepper-item flex min-w-0\",\n\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t? \"flex-1 flex-col gap-3 last:flex-none\"\n\t\t\t\t\t\t: \"flex-row items-stretch gap-3\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"flex\",\n\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t? \"items-center\"\n\t\t\t\t\t\t\t: \"flex-col items-center\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{indicator ?? <StepperIndicator />}\n\t\t\t\t\t{!last && <StepperSeparator />}\n\t\t\t\t</div>\n\n\t\t\t\t{children != null && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex min-w-0 flex-col gap-1\",\n\t\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t\t? \"pr-4\"\n\t\t\t\t\t\t\t\t: cn(\"pt-1\", !last && \"pb-8\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</StepperItemContext.Provider>\n\t);\n}\n\nconst indicatorVariants = cva(\n\t\"relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9\",\n\t{\n\t\tvariants: {\n\t\t\tstate: {\n\t\t\t\tcomplete:\n\t\t\t\t\t\"border border-transparent bg-action-primary text-fg-on-brand\",\n\t\t\t\tactive: \"border-2 border-line-focus bg-canvas text-fg-brand\",\n\t\t\t\tupcoming: \"border border-line bg-surface text-fg-secondary\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tstate: \"upcoming\",\n\t\t},\n\t},\n);\n\ntype StepperIndicatorProps = Omit<React.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof indicatorVariants> & {\n\t\t/** Override the rendered glyph. Defaults to the step number / checkmark. */\n\t\tchildren?: React.ReactNode;\n\t};\n\nfunction StepperIndicator({\n\tclassName,\n\tstate: stateProp,\n\tchildren,\n\t...props\n}: StepperIndicatorProps) {\n\tconst { state, step } = useStepperItem();\n\tconst resolved = stateProp ?? state;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-indicator\"\n\t\t\tdata-state={resolved}\n\t\t\tclassName={cn(indicatorVariants({ state: resolved }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ??\n\t\t\t\t(resolved === \"complete\" ? (\n\t\t\t\t\t<CheckIcon className=\"size-4 sm:size-4.5\" strokeWidth={2.5} />\n\t\t\t\t) : (\n\t\t\t\t\tstep\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n\nconst separatorVariants = cva(\"shrink-0 rounded-full transition-colors\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"bg-action-primary\",\n\t\t\tactive: \"bg-line\",\n\t\t\tupcoming: \"bg-line\",\n\t\t},\n\t\torientation: {\n\t\t\thorizontal: \"h-0.5 flex-1\",\n\t\t\tvertical: \"w-0.5 flex-1 min-h-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t\torientation: \"horizontal\",\n\t},\n});\n\nfunction StepperSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useStepper();\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-separator\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(separatorVariants({ state, orientation }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst titleVariants = cva(\"text-gdt-sm font-bold\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-primary\",\n\t\t\tactive: \"text-fg-brand\",\n\t\t\tupcoming: \"text-fg-secondary\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-title\"\n\t\t\tclassName={cn(titleVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst descriptionVariants = cva(\"text-gdt-sm\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-secondary\",\n\t\t\tactive: \"text-fg-secondary\",\n\t\t\tupcoming: \"text-fg-caption-placeholder\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-description\"\n\t\t\tclassName={cn(descriptionVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype StepperMetaProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\tdate?: React.ReactNode;\n\ttime?: React.ReactNode;\n};\n\n/** Date / timestamp caption pair. Placeholder colour regardless of state. */\nfunction StepperMeta({ date, time, className, ...props }: StepperMetaProps) {\n\tif (date == null && time == null) return null;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-meta\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{date != null && <span>{date}</span>}\n\t\t\t{time != null && <span>{time}</span>}\n\t\t</div>\n\t);\n}\n\nexport {\n\tStepper,\n\tStepperItem,\n\tStepperIndicator,\n\tStepperSeparator,\n\tStepperTitle,\n\tStepperDescription,\n\tStepperMeta,\n\ttype StepperOrientation,\n\ttype StepperState,\n};\n"],"mappings":"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","names":[]}