@giddaa-housing/ui 0.1.0 → 1.1.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 (315) 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.d.ts +9 -10
  10. package/dist/accordion.js +41 -117
  11. package/dist/activity-timeline.d.ts +29 -0
  12. package/dist/activity-timeline.js +97 -0
  13. package/dist/alert.d.ts +8 -9
  14. package/dist/alert.js +53 -141
  15. package/dist/auth-layout.d.ts +23 -0
  16. package/dist/auth-layout.js +153 -0
  17. package/dist/avatar.d.ts +6 -6
  18. package/dist/avatar.js +40 -142
  19. package/dist/badge.d.ts +12 -13
  20. package/dist/badge.js +66 -114
  21. package/dist/bar-chart.d.ts +136 -114
  22. package/dist/bar-chart.js +244 -297
  23. package/dist/breadcrumb.d.ts +5 -5
  24. package/dist/breadcrumb.js +56 -148
  25. package/dist/bullet-chart.d.ts +33 -33
  26. package/dist/bullet-chart.js +123 -183
  27. package/dist/button-BZIeyUw6.d.ts +17 -0
  28. package/dist/button-group.d.ts +13 -16
  29. package/dist/button-group.js +38 -163
  30. package/dist/button.d.ts +2 -19
  31. package/dist/button.js +90 -142
  32. package/dist/calendar.d.ts +6 -6
  33. package/dist/calendar.js +134 -288
  34. package/dist/card.d.ts +14 -16
  35. package/dist/card.js +58 -174
  36. package/dist/carousel.d.ts +34 -35
  37. package/dist/carousel.js +319 -378
  38. package/dist/chart.d.ts +58 -59
  39. package/dist/chart.js +350 -466
  40. package/dist/checkbox.d.ts +10 -12
  41. package/dist/checkbox.js +84 -84
  42. package/dist/cn-BI_4DMBf.js +23 -0
  43. package/dist/collapsible.d.ts +7 -8
  44. package/dist/collapsible.js +23 -77
  45. package/dist/combobox.d.ts +10 -10
  46. package/dist/combobox.js +220 -696
  47. package/dist/cta.d.ts +64 -0
  48. package/dist/cta.js +192 -0
  49. package/dist/currency-selector.d.ts +41 -0
  50. package/dist/currency-selector.js +114 -0
  51. package/dist/data-table.d.ts +164 -0
  52. package/dist/data-table.js +673 -0
  53. package/dist/date-picker.d.ts +27 -20
  54. package/dist/date-picker.js +122 -520
  55. package/dist/details-card.d.ts +19 -0
  56. package/dist/details-card.js +118 -0
  57. package/dist/dialog.d.ts +13 -14
  58. package/dist/dialog.js +117 -320
  59. package/dist/dropdown-menu.d.ts +14 -14
  60. package/dist/dropdown-menu.js +170 -365
  61. package/dist/dropzone.d.ts +55 -55
  62. package/dist/dropzone.js +328 -467
  63. package/dist/editorial-card.d.ts +27 -0
  64. package/dist/editorial-card.js +144 -0
  65. package/dist/empty-state.d.ts +8 -9
  66. package/dist/empty-state.js +48 -135
  67. package/dist/field.d.ts +23 -25
  68. package/dist/field.js +111 -327
  69. package/dist/filter.d.ts +118 -0
  70. package/dist/filter.js +775 -0
  71. package/dist/footer.d.ts +40 -0
  72. package/dist/footer.js +227 -0
  73. package/dist/funnel-chart.d.ts +38 -41
  74. package/dist/funnel-chart.js +168 -563
  75. package/dist/gallery-indicator.d.ts +17 -0
  76. package/dist/gallery-indicator.js +75 -0
  77. package/dist/heatmap-chart.d.ts +95 -0
  78. package/dist/heatmap-chart.js +197 -0
  79. package/dist/infotip.d.ts +10 -0
  80. package/dist/infotip.js +40 -0
  81. package/dist/input-CfoEJ8A6.d.ts +12 -0
  82. package/dist/input-group.d.ts +16 -19
  83. package/dist/input-group.js +92 -372
  84. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  85. package/dist/input-size-context.d.ts +2 -11
  86. package/dist/input-size-context.js +14 -20
  87. package/dist/input.d.ts +2 -13
  88. package/dist/input.js +23 -79
  89. package/dist/item.d.ts +7 -8
  90. package/dist/item.js +22 -89
  91. package/dist/kpi-card.d.ts +18 -20
  92. package/dist/kpi-card.js +84 -232
  93. package/dist/label.d.ts +6 -6
  94. package/dist/label.js +39 -66
  95. package/dist/line-chart.d.ts +88 -89
  96. package/dist/line-chart.js +143 -262
  97. package/dist/logo.d.ts +4 -4
  98. package/dist/logo.js +87 -141
  99. package/dist/map-indicator.d.ts +13 -0
  100. package/dist/map-indicator.js +83 -0
  101. package/dist/match.d.ts +15 -0
  102. package/dist/match.js +68 -0
  103. package/dist/media-gallery-hero.d.ts +58 -0
  104. package/dist/media-gallery-hero.js +201 -0
  105. package/dist/media-player.d.ts +60 -0
  106. package/dist/media-player.js +919 -0
  107. package/dist/multi-step-form.d.ts +56 -0
  108. package/dist/multi-step-form.js +342 -0
  109. package/dist/number-input.d.ts +34 -34
  110. package/dist/number-input.js +62 -413
  111. package/dist/page-header.d.ts +10 -11
  112. package/dist/page-header.js +34 -107
  113. package/dist/pagination.d.ts +17 -20
  114. package/dist/pagination.js +132 -341
  115. package/dist/password-input.d.ts +5 -12
  116. package/dist/password-input.js +32 -354
  117. package/dist/phone-input.d.ts +19 -19
  118. package/dist/phone-input.js +232 -561
  119. package/dist/photo-gallery.d.ts +20 -20
  120. package/dist/photo-gallery.js +314 -746
  121. package/dist/picker-lzgmsNfG.js +32 -0
  122. package/dist/pie-chart.d.ts +60 -60
  123. package/dist/pie-chart.js +141 -184
  124. package/dist/popover.d.ts +9 -9
  125. package/dist/popover.js +60 -156
  126. package/dist/price-tag.d.ts +34 -0
  127. package/dist/price-tag.js +118 -0
  128. package/dist/progress.d.ts +18 -16
  129. package/dist/progress.js +156 -300
  130. package/dist/property-listing-card.d.ts +29 -0
  131. package/dist/property-listing-card.js +117 -0
  132. package/dist/radar-chart.d.ts +108 -0
  133. package/dist/radar-chart.js +172 -0
  134. package/dist/radio-group.d.ts +11 -13
  135. package/dist/radio-group.js +47 -96
  136. package/dist/review-block.d.ts +18 -0
  137. package/dist/review-block.js +154 -0
  138. package/dist/rich-text-editor.d.ts +30 -14
  139. package/dist/rich-text-editor.js +594 -979
  140. package/dist/scatter-chart.d.ts +140 -0
  141. package/dist/scatter-chart.js +248 -0
  142. package/dist/search-input.d.ts +8 -15
  143. package/dist/search-input.js +58 -408
  144. package/dist/select.d.ts +8 -8
  145. package/dist/select.js +131 -291
  146. package/dist/separator.d.ts +8 -9
  147. package/dist/separator.js +31 -70
  148. package/dist/sheet.d.ts +11 -11
  149. package/dist/sheet.js +84 -262
  150. package/dist/sidebar.d.ts +32 -37
  151. package/dist/sidebar.js +380 -1055
  152. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  153. package/dist/size-context.d.ts +2 -11
  154. package/dist/size-context.js +14 -18
  155. package/dist/skeleton.d.ts +4 -5
  156. package/dist/skeleton.js +9 -45
  157. package/dist/slider.d.ts +27 -0
  158. package/dist/slider.js +81 -0
  159. package/dist/sparkline.d.ts +43 -46
  160. package/dist/sparkline.js +223 -561
  161. package/dist/stepper.d.ts +23 -24
  162. package/dist/stepper.js +149 -276
  163. package/dist/styles.css +9995 -2
  164. package/dist/switch.d.ts +10 -12
  165. package/dist/switch.js +49 -106
  166. package/dist/table-card.d.ts +35 -0
  167. package/dist/table-card.js +125 -0
  168. package/dist/table.d.ts +18 -14
  169. package/dist/table.js +114 -182
  170. package/dist/tabs.d.ts +23 -15
  171. package/dist/tabs.js +62 -149
  172. package/dist/tag.d.ts +22 -23
  173. package/dist/tag.js +104 -156
  174. package/dist/testimonial-block.d.ts +33 -0
  175. package/dist/testimonial-block.js +208 -0
  176. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  177. package/dist/textarea.d.ts +2 -12
  178. package/dist/textarea.js +20 -74
  179. package/dist/time-picker.d.ts +11 -11
  180. package/dist/time-picker.js +247 -464
  181. package/dist/toast.d.ts +16 -18
  182. package/dist/toast.js +154 -310
  183. package/dist/tooltip.d.ts +9 -10
  184. package/dist/tooltip.js +33 -91
  185. package/dist/tree-map.d.ts +54 -57
  186. package/dist/tree-map.js +231 -646
  187. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  188. package/dist/waterfall-chart.d.ts +126 -0
  189. package/dist/waterfall-chart.js +480 -0
  190. package/package.json +123 -34
  191. package/dist/accordion.js.map +0 -1
  192. package/dist/alert.js.map +0 -1
  193. package/dist/avatar.js.map +0 -1
  194. package/dist/badge.js.map +0 -1
  195. package/dist/bar-chart.js.map +0 -1
  196. package/dist/base.css +0 -32
  197. package/dist/breadcrumb.js.map +0 -1
  198. package/dist/bullet-chart.js.map +0 -1
  199. package/dist/button-group.js.map +0 -1
  200. package/dist/button.js.map +0 -1
  201. package/dist/calendar.js.map +0 -1
  202. package/dist/card.js.map +0 -1
  203. package/dist/carousel.js.map +0 -1
  204. package/dist/chart.js.map +0 -1
  205. package/dist/checkbox.js.map +0 -1
  206. package/dist/collapsible.js.map +0 -1
  207. package/dist/combobox.js.map +0 -1
  208. package/dist/date-picker.js.map +0 -1
  209. package/dist/dialog.js.map +0 -1
  210. package/dist/dropdown-menu.js.map +0 -1
  211. package/dist/dropzone.js.map +0 -1
  212. package/dist/empty-state.js.map +0 -1
  213. package/dist/field.js.map +0 -1
  214. package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
  215. package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
  216. package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
  217. package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
  218. package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
  219. package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
  220. package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
  221. package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
  222. package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
  223. package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
  224. package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
  225. package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
  226. package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
  227. package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
  228. package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
  229. package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
  230. package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
  231. package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
  232. package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
  233. package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
  234. package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
  235. package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
  236. package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
  237. package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
  238. package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
  239. package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
  240. package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
  241. package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
  242. package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
  243. package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
  244. package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
  245. package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
  246. package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
  247. package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
  248. package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
  249. package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
  250. package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
  251. package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
  252. package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
  253. package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
  254. package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
  255. package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
  256. package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
  257. package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
  258. package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
  259. package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
  260. package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
  261. package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
  262. package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
  263. package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
  264. package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
  265. package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
  266. package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
  267. package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
  268. package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
  269. package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
  270. package/dist/funnel-chart.js.map +0 -1
  271. package/dist/index.d.ts +0 -87
  272. package/dist/index.js +0 -10448
  273. package/dist/index.js.map +0 -1
  274. package/dist/input-group.js.map +0 -1
  275. package/dist/input-size-context.js.map +0 -1
  276. package/dist/input.js.map +0 -1
  277. package/dist/item.js.map +0 -1
  278. package/dist/kpi-card.js.map +0 -1
  279. package/dist/label.js.map +0 -1
  280. package/dist/line-chart.js.map +0 -1
  281. package/dist/logo.js.map +0 -1
  282. package/dist/number-input.js.map +0 -1
  283. package/dist/page-header.js.map +0 -1
  284. package/dist/pagination.js.map +0 -1
  285. package/dist/password-input.js.map +0 -1
  286. package/dist/phone-input.js.map +0 -1
  287. package/dist/photo-gallery.js.map +0 -1
  288. package/dist/pie-chart.js.map +0 -1
  289. package/dist/popover.js.map +0 -1
  290. package/dist/progress.js.map +0 -1
  291. package/dist/radio-group.js.map +0 -1
  292. package/dist/red-hat-display.css +0 -2
  293. package/dist/rich-text-editor.js.map +0 -1
  294. package/dist/search-input.js.map +0 -1
  295. package/dist/select.js.map +0 -1
  296. package/dist/separator.js.map +0 -1
  297. package/dist/sheet.js.map +0 -1
  298. package/dist/sidebar.js.map +0 -1
  299. package/dist/size-context.js.map +0 -1
  300. package/dist/skeleton.js.map +0 -1
  301. package/dist/sparkline.js.map +0 -1
  302. package/dist/stepper.js.map +0 -1
  303. package/dist/switch.js.map +0 -1
  304. package/dist/tab-list.d.ts +0 -38
  305. package/dist/tab-list.js +0 -394
  306. package/dist/tab-list.js.map +0 -1
  307. package/dist/table.js.map +0 -1
  308. package/dist/tabs.js.map +0 -1
  309. package/dist/tag.js.map +0 -1
  310. package/dist/textarea.js.map +0 -1
  311. package/dist/theme/giddaa.css +0 -2
  312. package/dist/time-picker.js.map +0 -1
  313. package/dist/toast.js.map +0 -1
  314. package/dist/tooltip.js.map +0 -1
  315. package/dist/tree-map.js.map +0 -1
package/dist/stepper.d.ts CHANGED
@@ -1,43 +1,42 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import { VariantProps } from 'class-variance-authority';
3
- import * as React from 'react';
4
-
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ //#region src/stepper.d.ts
5
4
  type StepperOrientation = "horizontal" | "vertical";
6
5
  type StepperState = "complete" | "active" | "upcoming";
7
6
  type StepperProps = React.ComponentProps<"div"> & {
8
- orientation?: StepperOrientation;
9
- /** Active step number (1-based). Items without an explicit `state` derive theirs from this. */
10
- value?: number;
7
+ orientation?: StepperOrientation;
8
+ /** Active step number (1-based). Items without an explicit `state` derive theirs from this. */
9
+ value?: number;
11
10
  };
12
11
  declare function Stepper({ orientation, value, className, children, ...props }: StepperProps): React.JSX.Element;
13
12
  type StepperItemProps = Omit<React.ComponentProps<"div">, "children"> & {
14
- /** Force a specific state instead of deriving it from the stepper `value`. */
15
- state?: StepperState;
16
- /** 1-based position. Injected by `Stepper`; only set this to override. */
17
- step?: number;
18
- /** Whether this is the last item (hides its connector). Injected by `Stepper`. */
19
- last?: boolean;
20
- /** Custom indicator node. Defaults to a numbered circle / checkmark. */
21
- indicator?: React.ReactNode;
22
- children?: React.ReactNode;
13
+ /** Force a specific state instead of deriving it from the stepper `value`. */
14
+ state?: StepperState;
15
+ /** 1-based position. Injected by `Stepper`; only set this to override. */
16
+ step?: number;
17
+ /** Whether this is the last item (hides its connector). Injected by `Stepper`. */
18
+ last?: boolean;
19
+ /** Custom indicator node. Defaults to a numbered circle / checkmark. */
20
+ indicator?: React.ReactNode;
21
+ children?: React.ReactNode;
23
22
  };
24
23
  declare function StepperItem({ state: stateOverride, step, last, indicator, className, children, ...props }: StepperItemProps): React.JSX.Element;
25
24
  declare const indicatorVariants: (props?: ({
26
- state?: "active" | "complete" | "upcoming" | null | undefined;
27
- } & class_variance_authority_types.ClassProp) | undefined) => string;
25
+ state?: "active" | "complete" | "upcoming" | null | undefined;
26
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
28
27
  type StepperIndicatorProps = Omit<React.ComponentProps<"div">, "children"> & VariantProps<typeof indicatorVariants> & {
29
- /** Override the rendered glyph. Defaults to the step number / checkmark. */
30
- children?: React.ReactNode;
28
+ /** Override the rendered glyph. Defaults to the step number / checkmark. */
29
+ children?: React.ReactNode;
31
30
  };
32
31
  declare function StepperIndicator({ className, state: stateProp, children, ...props }: StepperIndicatorProps): React.JSX.Element;
33
32
  declare function StepperSeparator({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
34
33
  declare function StepperTitle({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
35
34
  declare function StepperDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
36
35
  type StepperMetaProps = Omit<React.ComponentProps<"div">, "children"> & {
37
- date?: React.ReactNode;
38
- time?: React.ReactNode;
36
+ date?: React.ReactNode;
37
+ time?: React.ReactNode;
39
38
  };
40
39
  /** Date / timestamp caption pair. Placeholder colour regardless of state. */
41
40
  declare function StepperMeta({ date, time, className, ...props }: StepperMetaProps): React.JSX.Element | null;
42
-
43
- export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperMeta, type StepperOrientation, StepperSeparator, type StepperState, StepperTitle };
41
+ //#endregion
42
+ export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperMeta, type StepperOrientation, StepperSeparator, type StepperState, StepperTitle };
package/dist/stepper.js CHANGED
@@ -1,296 +1,169 @@
1
- // src/components/ui/stepper.tsx
2
- import { cva } from "class-variance-authority";
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
2
  import { CheckIcon } from "lucide-react";
4
- import * as React from "react";
5
-
6
- // src/lib/cn.ts
7
- import { clsx } from "clsx";
8
- import { extendTailwindMerge } from "tailwind-merge";
9
- var twMerge = extendTailwindMerge({
10
- extend: {
11
- classGroups: {
12
- "font-size": [
13
- {
14
- text: [
15
- "gdt-display",
16
- "gdt-h1",
17
- "gdt-h2",
18
- "gdt-h3",
19
- "gdt-h4",
20
- "gdt-h5",
21
- "gdt-xl",
22
- "gdt-lg",
23
- "gdt-md",
24
- "gdt-sm",
25
- "gdt-xs",
26
- "gdt-subtext",
27
- "gdt-capitalized"
28
- ]
29
- }
30
- ]
31
- }
32
- }
33
- });
34
- function cn(...inputs) {
35
- return twMerge(clsx(inputs));
36
- }
37
-
38
- // src/components/ui/stepper.tsx
39
3
  import { jsx, jsxs } from "react/jsx-runtime";
40
- var StepperContext = React.createContext(null);
4
+ import { cva } from "class-variance-authority";
5
+ import * as React from "react";
6
+ //#region src/stepper.tsx
7
+ const StepperContext = React.createContext(null);
41
8
  function useStepper() {
42
- const context = React.useContext(StepperContext);
43
- if (!context) {
44
- throw new Error("Stepper parts must be used within a <Stepper />");
45
- }
46
- return context;
9
+ const context = React.useContext(StepperContext);
10
+ if (!context) throw new Error("Stepper parts must be used within a <Stepper />");
11
+ return context;
47
12
  }
48
- var StepperItemContext = React.createContext(
49
- null
50
- );
13
+ const StepperItemContext = React.createContext(null);
51
14
  function useStepperItem() {
52
- const context = React.useContext(StepperItemContext);
53
- if (!context) {
54
- throw new Error("Stepper item parts must be used within a <StepperItem />");
55
- }
56
- return context;
15
+ const context = React.useContext(StepperItemContext);
16
+ if (!context) throw new Error("Stepper item parts must be used within a <StepperItem />");
17
+ return context;
57
18
  }
58
19
  function resolveState(step, value, override) {
59
- if (override) return override;
60
- if (value == null) return "upcoming";
61
- if (step < value) return "complete";
62
- if (step === value) return "active";
63
- return "upcoming";
20
+ if (override) return override;
21
+ if (value == null) return "upcoming";
22
+ if (step < value) return "complete";
23
+ if (step === value) return "active";
24
+ return "upcoming";
64
25
  }
65
- function Stepper({
66
- orientation = "horizontal",
67
- value,
68
- className,
69
- children,
70
- ...props
71
- }) {
72
- const items = React.Children.toArray(children).filter(React.isValidElement);
73
- const contextValue = React.useMemo(
74
- () => ({ orientation, value }),
75
- [orientation, value]
76
- );
77
- return /* @__PURE__ */ jsx(StepperContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
78
- "div",
79
- {
80
- "data-slot": "stepper",
81
- "data-orientation": orientation,
82
- className: cn(
83
- "flex",
84
- orientation === "horizontal" ? "flex-row" : "flex-col",
85
- className
86
- ),
87
- ...props,
88
- children: items.map((child, index) => {
89
- if (!React.isValidElement(child)) return child;
90
- return React.cloneElement(child, {
91
- step: child.props.step ?? index + 1,
92
- last: child.props.last ?? index === items.length - 1
93
- });
94
- })
95
- }
96
- ) });
26
+ function Stepper({ orientation = "horizontal", value, className, children, ...props }) {
27
+ const items = React.Children.toArray(children).filter(React.isValidElement);
28
+ const contextValue = React.useMemo(() => ({
29
+ orientation,
30
+ value
31
+ }), [orientation, value]);
32
+ return /* @__PURE__ */ jsx(StepperContext.Provider, {
33
+ value: contextValue,
34
+ children: /* @__PURE__ */ jsx("div", {
35
+ "data-slot": "stepper",
36
+ "data-orientation": orientation,
37
+ className: cn("flex", orientation === "horizontal" ? "flex-row" : "flex-col", className),
38
+ ...props,
39
+ children: items.map((child, index) => {
40
+ if (!React.isValidElement(child)) return child;
41
+ return React.cloneElement(child, {
42
+ step: child.props.step ?? index + 1,
43
+ last: child.props.last ?? index === items.length - 1
44
+ });
45
+ })
46
+ })
47
+ });
97
48
  }
98
- function StepperItem({
99
- state: stateOverride,
100
- step = 1,
101
- last = false,
102
- indicator,
103
- className,
104
- children,
105
- ...props
106
- }) {
107
- const { orientation, value } = useStepper();
108
- const state = resolveState(step, value, stateOverride);
109
- const itemContext = React.useMemo(
110
- () => ({ state, step }),
111
- [state, step]
112
- );
113
- return /* @__PURE__ */ jsx(StepperItemContext.Provider, { value: itemContext, children: /* @__PURE__ */ jsxs(
114
- "div",
115
- {
116
- "data-slot": "stepper-item",
117
- "data-state": state,
118
- "data-orientation": orientation,
119
- className: cn(
120
- "group/stepper-item flex min-w-0",
121
- orientation === "horizontal" ? "flex-1 flex-col gap-3 last:flex-none" : "flex-row items-stretch gap-3",
122
- className
123
- ),
124
- ...props,
125
- children: [
126
- /* @__PURE__ */ jsxs(
127
- "div",
128
- {
129
- className: cn(
130
- "flex",
131
- orientation === "horizontal" ? "items-center" : "flex-col items-center"
132
- ),
133
- children: [
134
- indicator ?? /* @__PURE__ */ jsx(StepperIndicator, {}),
135
- !last && /* @__PURE__ */ jsx(StepperSeparator, {})
136
- ]
137
- }
138
- ),
139
- children != null && /* @__PURE__ */ jsx(
140
- "div",
141
- {
142
- className: cn(
143
- "flex min-w-0 flex-col gap-1",
144
- orientation === "horizontal" ? "pr-4" : cn("pt-1", !last && "pb-8")
145
- ),
146
- children
147
- }
148
- )
149
- ]
150
- }
151
- ) });
49
+ function StepperItem({ state: stateOverride, step = 1, last = false, indicator, className, children, ...props }) {
50
+ const { orientation, value } = useStepper();
51
+ const state = resolveState(step, value, stateOverride);
52
+ const itemContext = React.useMemo(() => ({
53
+ state,
54
+ step
55
+ }), [state, step]);
56
+ return /* @__PURE__ */ jsx(StepperItemContext.Provider, {
57
+ value: itemContext,
58
+ children: /* @__PURE__ */ jsxs("div", {
59
+ "data-slot": "stepper-item",
60
+ "data-state": state,
61
+ "data-orientation": orientation,
62
+ className: cn("group/stepper-item flex min-w-0", orientation === "horizontal" ? "flex-1 flex-col gap-3 last:flex-none" : "flex-row items-stretch gap-3", className),
63
+ ...props,
64
+ children: [/* @__PURE__ */ jsxs("div", {
65
+ className: cn("flex", orientation === "horizontal" ? "items-center" : "flex-col items-center"),
66
+ children: [indicator ?? /* @__PURE__ */ jsx(StepperIndicator, {}), !last && /* @__PURE__ */ jsx(StepperSeparator, {})]
67
+ }), children != null && /* @__PURE__ */ jsx("div", {
68
+ className: cn("flex min-w-0 flex-col gap-1", orientation === "horizontal" ? "pr-4" : cn("pt-1", !last && "pb-8")),
69
+ children
70
+ })]
71
+ })
72
+ });
152
73
  }
153
- var indicatorVariants = cva(
154
- "relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9",
155
- {
156
- variants: {
157
- state: {
158
- complete: "border border-transparent bg-action-primary text-fg-on-brand",
159
- active: "border-2 border-line-focus bg-canvas text-fg-brand",
160
- upcoming: "border border-line bg-surface text-fg-secondary"
161
- }
162
- },
163
- defaultVariants: {
164
- state: "upcoming"
165
- }
166
- }
167
- );
168
- function StepperIndicator({
169
- className,
170
- state: stateProp,
171
- children,
172
- ...props
173
- }) {
174
- const { state, step } = useStepperItem();
175
- const resolved = stateProp ?? state;
176
- return /* @__PURE__ */ jsx(
177
- "div",
178
- {
179
- "data-slot": "stepper-indicator",
180
- "data-state": resolved,
181
- className: cn(indicatorVariants({ state: resolved }), className),
182
- ...props,
183
- children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(CheckIcon, { className: "size-4 sm:size-4.5", strokeWidth: 2.5 }) : step)
184
- }
185
- );
74
+ const indicatorVariants = cva("relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9", {
75
+ variants: { state: {
76
+ complete: "border border-transparent bg-action-primary text-fg-on-brand",
77
+ active: "border-2 border-line-focus bg-canvas text-fg-brand",
78
+ upcoming: "border border-line bg-surface text-fg-secondary"
79
+ } },
80
+ defaultVariants: { state: "upcoming" }
81
+ });
82
+ function StepperIndicator({ className, state: stateProp, children, ...props }) {
83
+ const { state, step } = useStepperItem();
84
+ const resolved = stateProp ?? state;
85
+ return /* @__PURE__ */ jsx("div", {
86
+ "data-slot": "stepper-indicator",
87
+ "data-state": resolved,
88
+ className: cn(indicatorVariants({ state: resolved }), className),
89
+ ...props,
90
+ children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(CheckIcon, {
91
+ className: "size-4 sm:size-4.5",
92
+ strokeWidth: 2.5
93
+ }) : step)
94
+ });
186
95
  }
187
- var separatorVariants = cva("shrink-0 rounded-full transition-colors", {
188
- variants: {
189
- state: {
190
- complete: "bg-action-primary",
191
- active: "bg-line",
192
- upcoming: "bg-line"
193
- },
194
- orientation: {
195
- horizontal: "h-0.5 flex-1",
196
- vertical: "w-0.5 flex-1 min-h-8"
197
- }
198
- },
199
- defaultVariants: {
200
- state: "upcoming",
201
- orientation: "horizontal"
202
- }
96
+ const separatorVariants = cva("shrink-0 rounded-full transition-colors", {
97
+ variants: {
98
+ state: {
99
+ complete: "bg-action-primary",
100
+ active: "bg-line",
101
+ upcoming: "bg-line"
102
+ },
103
+ orientation: {
104
+ horizontal: "h-0.5 flex-1",
105
+ vertical: "w-0.5 flex-1 min-h-8"
106
+ }
107
+ },
108
+ defaultVariants: {
109
+ state: "upcoming",
110
+ orientation: "horizontal"
111
+ }
203
112
  });
204
- function StepperSeparator({
205
- className,
206
- ...props
207
- }) {
208
- const { orientation } = useStepper();
209
- const { state } = useStepperItem();
210
- return /* @__PURE__ */ jsx(
211
- "div",
212
- {
213
- "data-slot": "stepper-separator",
214
- "aria-hidden": "true",
215
- className: cn(separatorVariants({ state, orientation }), className),
216
- ...props
217
- }
218
- );
113
+ function StepperSeparator({ className, ...props }) {
114
+ const { orientation } = useStepper();
115
+ const { state } = useStepperItem();
116
+ return /* @__PURE__ */ jsx("div", {
117
+ "data-slot": "stepper-separator",
118
+ "aria-hidden": "true",
119
+ className: cn(separatorVariants({
120
+ state,
121
+ orientation
122
+ }), className),
123
+ ...props
124
+ });
219
125
  }
220
- var titleVariants = cva("text-gdt-sm font-bold", {
221
- variants: {
222
- state: {
223
- complete: "text-fg-primary",
224
- active: "text-fg-brand",
225
- upcoming: "text-fg-secondary"
226
- }
227
- },
228
- defaultVariants: {
229
- state: "upcoming"
230
- }
126
+ const titleVariants = cva("text-gdt-sm font-bold", {
127
+ variants: { state: {
128
+ complete: "text-fg-primary",
129
+ active: "text-fg-brand",
130
+ upcoming: "text-fg-secondary"
131
+ } },
132
+ defaultVariants: { state: "upcoming" }
231
133
  });
232
134
  function StepperTitle({ className, ...props }) {
233
- const { state } = useStepperItem();
234
- return /* @__PURE__ */ jsx(
235
- "p",
236
- {
237
- "data-slot": "stepper-title",
238
- className: cn(titleVariants({ state }), className),
239
- ...props
240
- }
241
- );
135
+ const { state } = useStepperItem();
136
+ return /* @__PURE__ */ jsx("p", {
137
+ "data-slot": "stepper-title",
138
+ className: cn(titleVariants({ state }), className),
139
+ ...props
140
+ });
242
141
  }
243
- var descriptionVariants = cva("text-gdt-sm", {
244
- variants: {
245
- state: {
246
- complete: "text-fg-secondary",
247
- active: "text-fg-secondary",
248
- upcoming: "text-fg-caption-placeholder"
249
- }
250
- },
251
- defaultVariants: {
252
- state: "upcoming"
253
- }
142
+ const descriptionVariants = cva("text-gdt-sm", {
143
+ variants: { state: {
144
+ complete: "text-fg-secondary",
145
+ active: "text-fg-secondary",
146
+ upcoming: "text-fg-caption-placeholder"
147
+ } },
148
+ defaultVariants: { state: "upcoming" }
254
149
  });
255
- function StepperDescription({
256
- className,
257
- ...props
258
- }) {
259
- const { state } = useStepperItem();
260
- return /* @__PURE__ */ jsx(
261
- "p",
262
- {
263
- "data-slot": "stepper-description",
264
- className: cn(descriptionVariants({ state }), className),
265
- ...props
266
- }
267
- );
150
+ function StepperDescription({ className, ...props }) {
151
+ const { state } = useStepperItem();
152
+ return /* @__PURE__ */ jsx("p", {
153
+ "data-slot": "stepper-description",
154
+ className: cn(descriptionVariants({ state }), className),
155
+ ...props
156
+ });
268
157
  }
158
+ /** Date / timestamp caption pair. Placeholder colour regardless of state. */
269
159
  function StepperMeta({ date, time, className, ...props }) {
270
- if (date == null && time == null) return null;
271
- return /* @__PURE__ */ jsxs(
272
- "div",
273
- {
274
- "data-slot": "stepper-meta",
275
- className: cn(
276
- "flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder",
277
- className
278
- ),
279
- ...props,
280
- children: [
281
- date != null && /* @__PURE__ */ jsx("span", { children: date }),
282
- time != null && /* @__PURE__ */ jsx("span", { children: time })
283
- ]
284
- }
285
- );
160
+ if (date == null && time == null) return null;
161
+ return /* @__PURE__ */ jsxs("div", {
162
+ "data-slot": "stepper-meta",
163
+ className: cn("flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder", className),
164
+ ...props,
165
+ children: [date != null && /* @__PURE__ */ jsx("span", { children: date }), time != null && /* @__PURE__ */ jsx("span", { children: time })]
166
+ });
286
167
  }
287
- export {
288
- Stepper,
289
- StepperDescription,
290
- StepperIndicator,
291
- StepperItem,
292
- StepperMeta,
293
- StepperSeparator,
294
- StepperTitle
295
- };
296
- //# sourceMappingURL=stepper.js.map
168
+ //#endregion
169
+ export { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperMeta, StepperSeparator, StepperTitle };