@giddaa-housing/ui 1.0.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 (326) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/dist/accordion.d.ts +9 -10
  3. package/dist/accordion.js +41 -87
  4. package/dist/activity-timeline.d.ts +12 -16
  5. package/dist/activity-timeline.js +83 -198
  6. package/dist/alert.d.ts +8 -9
  7. package/dist/alert.js +53 -111
  8. package/dist/auth-layout.d.ts +4 -4
  9. package/dist/auth-layout.js +143 -294
  10. package/dist/avatar.d.ts +6 -6
  11. package/dist/avatar.js +49 -19
  12. package/dist/badge.d.ts +12 -14
  13. package/dist/badge.js +71 -11
  14. package/dist/bar-chart.d.ts +65 -67
  15. package/dist/bar-chart.js +232 -207
  16. package/dist/breadcrumb.d.ts +5 -5
  17. package/dist/breadcrumb.js +56 -118
  18. package/dist/bullet-chart.d.ts +33 -33
  19. package/dist/bullet-chart.js +121 -148
  20. package/dist/button-BZIeyUw6.d.ts +17 -0
  21. package/dist/button-group.d.ts +13 -16
  22. package/dist/button-group.js +39 -88
  23. package/dist/button.d.ts +2 -19
  24. package/dist/button.js +94 -13
  25. package/dist/calendar.d.ts +6 -6
  26. package/dist/calendar.js +138 -17
  27. package/dist/card.d.ts +14 -16
  28. package/dist/card.js +59 -145
  29. package/dist/carousel.d.ts +34 -35
  30. package/dist/carousel.js +335 -20
  31. package/dist/chart.d.ts +58 -59
  32. package/dist/chart.js +376 -28
  33. package/dist/checkbox.d.ts +10 -12
  34. package/dist/checkbox.js +82 -47
  35. package/dist/cn-BI_4DMBf.js +23 -0
  36. package/dist/collapsible.d.ts +7 -8
  37. package/dist/collapsible.js +22 -47
  38. package/dist/combobox.d.ts +10 -10
  39. package/dist/combobox.js +236 -44
  40. package/dist/cta.d.ts +12 -14
  41. package/dist/cta.js +175 -341
  42. package/dist/currency-selector.d.ts +31 -32
  43. package/dist/currency-selector.js +106 -184
  44. package/dist/data-table.d.ts +164 -0
  45. package/dist/data-table.js +673 -0
  46. package/dist/date-picker.d.ts +22 -23
  47. package/dist/date-picker.js +119 -192
  48. package/dist/details-card.d.ts +7 -7
  49. package/dist/details-card.js +104 -253
  50. package/dist/dialog.d.ts +13 -14
  51. package/dist/dialog.js +116 -209
  52. package/dist/dropdown-menu.d.ts +13 -13
  53. package/dist/dropdown-menu.js +180 -37
  54. package/dist/dropzone.d.ts +55 -55
  55. package/dist/dropzone.js +327 -439
  56. package/dist/editorial-card.d.ts +23 -25
  57. package/dist/editorial-card.js +129 -296
  58. package/dist/empty-state.d.ts +8 -9
  59. package/dist/empty-state.js +48 -105
  60. package/dist/field.d.ts +23 -25
  61. package/dist/field.js +110 -221
  62. package/dist/filter.d.ts +118 -0
  63. package/dist/filter.js +775 -0
  64. package/dist/footer.d.ts +8 -15
  65. package/dist/footer.js +197 -400
  66. package/dist/funnel-chart.d.ts +38 -41
  67. package/dist/funnel-chart.js +167 -189
  68. package/dist/gallery-indicator.d.ts +11 -12
  69. package/dist/gallery-indicator.js +75 -12
  70. package/dist/heatmap-chart.d.ts +47 -50
  71. package/dist/heatmap-chart.js +186 -237
  72. package/dist/infotip.d.ts +8 -9
  73. package/dist/infotip.js +33 -59
  74. package/dist/input-CfoEJ8A6.d.ts +12 -0
  75. package/dist/input-group.d.ts +16 -20
  76. package/dist/input-group.js +99 -23
  77. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  78. package/dist/input-size-context.d.ts +2 -11
  79. package/dist/input-size-context.js +17 -9
  80. package/dist/input.d.ts +2 -13
  81. package/dist/input.js +27 -11
  82. package/dist/item.d.ts +7 -8
  83. package/dist/item.js +22 -59
  84. package/dist/kpi-card.d.ts +18 -20
  85. package/dist/kpi-card.js +84 -192
  86. package/dist/label.d.ts +6 -6
  87. package/dist/label.js +40 -8
  88. package/dist/line-chart.d.ts +88 -89
  89. package/dist/line-chart.js +142 -104
  90. package/dist/logo.d.ts +4 -4
  91. package/dist/logo.js +92 -9
  92. package/dist/map-indicator.d.ts +7 -7
  93. package/dist/map-indicator.js +80 -106
  94. package/dist/match.d.ts +10 -11
  95. package/dist/match.js +62 -107
  96. package/dist/media-gallery-hero.d.ts +40 -42
  97. package/dist/media-gallery-hero.js +182 -343
  98. package/dist/media-player.d.ts +17 -17
  99. package/dist/media-player.js +873 -1348
  100. package/dist/multi-step-form.d.ts +56 -0
  101. package/dist/multi-step-form.js +342 -0
  102. package/dist/number-input.d.ts +34 -34
  103. package/dist/number-input.js +61 -117
  104. package/dist/page-header.d.ts +10 -11
  105. package/dist/page-header.js +34 -79
  106. package/dist/pagination.d.ts +17 -21
  107. package/dist/pagination.js +132 -207
  108. package/dist/password-input.d.ts +5 -13
  109. package/dist/password-input.js +31 -55
  110. package/dist/phone-input.d.ts +19 -20
  111. package/dist/phone-input.js +226 -344
  112. package/dist/photo-gallery.d.ts +19 -19
  113. package/dist/photo-gallery.js +313 -449
  114. package/dist/picker-lzgmsNfG.js +32 -0
  115. package/dist/pie-chart.d.ts +60 -60
  116. package/dist/pie-chart.js +140 -148
  117. package/dist/popover.d.ts +9 -9
  118. package/dist/popover.js +72 -23
  119. package/dist/price-tag.d.ts +26 -27
  120. package/dist/price-tag.js +113 -173
  121. package/dist/progress.d.ts +16 -17
  122. package/dist/progress.js +169 -24
  123. package/dist/property-listing-card.d.ts +14 -17
  124. package/dist/property-listing-card.js +102 -220
  125. package/dist/radar-chart.d.ts +29 -31
  126. package/dist/radar-chart.js +162 -137
  127. package/dist/radio-group.d.ts +11 -13
  128. package/dist/radio-group.js +46 -60
  129. package/dist/review-block.d.ts +14 -16
  130. package/dist/review-block.js +154 -10
  131. package/dist/rich-text-editor.d.ts +30 -14
  132. package/dist/rich-text-editor.js +592 -716
  133. package/dist/scatter-chart.d.ts +45 -47
  134. package/dist/scatter-chart.js +236 -240
  135. package/dist/search-input.d.ts +8 -16
  136. package/dist/search-input.js +57 -109
  137. package/dist/select.d.ts +8 -8
  138. package/dist/select.js +144 -27
  139. package/dist/separator.d.ts +8 -9
  140. package/dist/separator.js +32 -8
  141. package/dist/sheet.d.ts +11 -11
  142. package/dist/sheet.js +103 -24
  143. package/dist/sidebar.d.ts +32 -37
  144. package/dist/sidebar.js +364 -634
  145. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  146. package/dist/size-context.d.ts +2 -11
  147. package/dist/size-context.js +17 -9
  148. package/dist/skeleton.d.ts +4 -5
  149. package/dist/skeleton.js +12 -8
  150. package/dist/slider.d.ts +8 -9
  151. package/dist/slider.js +64 -135
  152. package/dist/sparkline.d.ts +43 -46
  153. package/dist/sparkline.js +221 -251
  154. package/dist/stepper.d.ts +23 -24
  155. package/dist/stepper.js +149 -246
  156. package/dist/styles.css +510 -108
  157. package/dist/switch.d.ts +10 -12
  158. package/dist/switch.js +48 -70
  159. package/dist/table-card.d.ts +35 -0
  160. package/dist/table-card.js +125 -0
  161. package/dist/table.d.ts +18 -14
  162. package/dist/table.js +113 -154
  163. package/dist/tabs.d.ts +23 -15
  164. package/dist/tabs.js +71 -18
  165. package/dist/tag.d.ts +21 -23
  166. package/dist/tag.js +103 -159
  167. package/dist/testimonial-block.d.ts +18 -19
  168. package/dist/testimonial-block.js +189 -358
  169. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  170. package/dist/textarea.d.ts +2 -12
  171. package/dist/textarea.js +24 -11
  172. package/dist/time-picker.d.ts +11 -11
  173. package/dist/time-picker.js +245 -302
  174. package/dist/toast.d.ts +16 -18
  175. package/dist/toast.js +154 -205
  176. package/dist/tooltip.d.ts +8 -9
  177. package/dist/tooltip.js +37 -12
  178. package/dist/tree-map.d.ts +54 -57
  179. package/dist/tree-map.js +227 -269
  180. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  181. package/dist/waterfall-chart.d.ts +94 -97
  182. package/dist/waterfall-chart.js +455 -552
  183. package/package.json +28 -9
  184. package/dist/accordion.js.map +0 -1
  185. package/dist/activity-timeline.js.map +0 -1
  186. package/dist/alert.js.map +0 -1
  187. package/dist/auth-layout.js.map +0 -1
  188. package/dist/avatar.js.map +0 -1
  189. package/dist/badge.js.map +0 -1
  190. package/dist/bar-chart.js.map +0 -1
  191. package/dist/breadcrumb.js.map +0 -1
  192. package/dist/bullet-chart.js.map +0 -1
  193. package/dist/button-group.js.map +0 -1
  194. package/dist/button.js.map +0 -1
  195. package/dist/calendar.js.map +0 -1
  196. package/dist/card.js.map +0 -1
  197. package/dist/carousel.js.map +0 -1
  198. package/dist/chart.js.map +0 -1
  199. package/dist/checkbox.js.map +0 -1
  200. package/dist/chunk-322YCNVL.js +0 -278
  201. package/dist/chunk-322YCNVL.js.map +0 -1
  202. package/dist/chunk-3ACQVT7A.js +0 -25
  203. package/dist/chunk-3ACQVT7A.js.map +0 -1
  204. package/dist/chunk-3T65TLJX.js +0 -334
  205. package/dist/chunk-3T65TLJX.js.map +0 -1
  206. package/dist/chunk-6ZSGQHH2.js +0 -192
  207. package/dist/chunk-6ZSGQHH2.js.map +0 -1
  208. package/dist/chunk-7TBMLFGW.js +0 -41
  209. package/dist/chunk-7TBMLFGW.js.map +0 -1
  210. package/dist/chunk-B4H6RNDH.js +0 -135
  211. package/dist/chunk-B4H6RNDH.js.map +0 -1
  212. package/dist/chunk-BUXCGZ6X.js +0 -219
  213. package/dist/chunk-BUXCGZ6X.js.map +0 -1
  214. package/dist/chunk-CHII2QHH.js +0 -58
  215. package/dist/chunk-CHII2QHH.js.map +0 -1
  216. package/dist/chunk-DMNOXRRW.js +0 -147
  217. package/dist/chunk-DMNOXRRW.js.map +0 -1
  218. package/dist/chunk-EFSOSSIC.js +0 -130
  219. package/dist/chunk-EFSOSSIC.js.map +0 -1
  220. package/dist/chunk-FZDSVMKY.js +0 -363
  221. package/dist/chunk-FZDSVMKY.js.map +0 -1
  222. package/dist/chunk-GJOFIJS3.js +0 -246
  223. package/dist/chunk-GJOFIJS3.js.map +0 -1
  224. package/dist/chunk-HL3ZSYES.js +0 -23
  225. package/dist/chunk-HL3ZSYES.js.map +0 -1
  226. package/dist/chunk-JVLUBAPB.js +0 -129
  227. package/dist/chunk-JVLUBAPB.js.map +0 -1
  228. package/dist/chunk-KDPYSOYZ.js +0 -64
  229. package/dist/chunk-KDPYSOYZ.js.map +0 -1
  230. package/dist/chunk-KSMDANKI.js +0 -43
  231. package/dist/chunk-KSMDANKI.js.map +0 -1
  232. package/dist/chunk-MEKCCOP5.js +0 -46
  233. package/dist/chunk-MEKCCOP5.js.map +0 -1
  234. package/dist/chunk-NOFXVRWL.js +0 -451
  235. package/dist/chunk-NOFXVRWL.js.map +0 -1
  236. package/dist/chunk-PC5MHNVA.js +0 -171
  237. package/dist/chunk-PC5MHNVA.js.map +0 -1
  238. package/dist/chunk-QKAQZ2GU.js +0 -122
  239. package/dist/chunk-QKAQZ2GU.js.map +0 -1
  240. package/dist/chunk-QZHSHSVV.js +0 -26
  241. package/dist/chunk-QZHSHSVV.js.map +0 -1
  242. package/dist/chunk-RBMK26XD.js +0 -19
  243. package/dist/chunk-RBMK26XD.js.map +0 -1
  244. package/dist/chunk-SFNJGF6M.js +0 -262
  245. package/dist/chunk-SFNJGF6M.js.map +0 -1
  246. package/dist/chunk-UJJNLGTM.js +0 -112
  247. package/dist/chunk-UJJNLGTM.js.map +0 -1
  248. package/dist/chunk-VGR4ZWJ3.js +0 -418
  249. package/dist/chunk-VGR4ZWJ3.js.map +0 -1
  250. package/dist/chunk-XG47P6D4.js +0 -99
  251. package/dist/chunk-XG47P6D4.js.map +0 -1
  252. package/dist/chunk-XZZAHNVM.js +0 -21
  253. package/dist/chunk-XZZAHNVM.js.map +0 -1
  254. package/dist/chunk-Y4TTYVNE.js +0 -36
  255. package/dist/chunk-Y4TTYVNE.js.map +0 -1
  256. package/dist/chunk-YDWIHW6Q.js +0 -69
  257. package/dist/chunk-YDWIHW6Q.js.map +0 -1
  258. package/dist/collapsible.js.map +0 -1
  259. package/dist/combobox.js.map +0 -1
  260. package/dist/cta.js.map +0 -1
  261. package/dist/currency-selector.js.map +0 -1
  262. package/dist/date-picker.js.map +0 -1
  263. package/dist/details-card.js.map +0 -1
  264. package/dist/dialog.js.map +0 -1
  265. package/dist/dropdown-menu.js.map +0 -1
  266. package/dist/dropzone.js.map +0 -1
  267. package/dist/editorial-card.js.map +0 -1
  268. package/dist/empty-state.js.map +0 -1
  269. package/dist/field.js.map +0 -1
  270. package/dist/footer.js.map +0 -1
  271. package/dist/funnel-chart.js.map +0 -1
  272. package/dist/gallery-indicator.js.map +0 -1
  273. package/dist/heatmap-chart.js.map +0 -1
  274. package/dist/infotip.js.map +0 -1
  275. package/dist/input-group.js.map +0 -1
  276. package/dist/input-size-context.js.map +0 -1
  277. package/dist/input.js.map +0 -1
  278. package/dist/item.js.map +0 -1
  279. package/dist/kpi-card.js.map +0 -1
  280. package/dist/label.js.map +0 -1
  281. package/dist/line-chart.js.map +0 -1
  282. package/dist/logo.js.map +0 -1
  283. package/dist/map-indicator.js.map +0 -1
  284. package/dist/match.js.map +0 -1
  285. package/dist/media-gallery-hero.js.map +0 -1
  286. package/dist/media-player.js.map +0 -1
  287. package/dist/number-input.js.map +0 -1
  288. package/dist/page-header.js.map +0 -1
  289. package/dist/pagination.js.map +0 -1
  290. package/dist/password-input.js.map +0 -1
  291. package/dist/phone-input.js.map +0 -1
  292. package/dist/photo-gallery.js.map +0 -1
  293. package/dist/pie-chart.js.map +0 -1
  294. package/dist/popover.js.map +0 -1
  295. package/dist/price-tag.js.map +0 -1
  296. package/dist/progress.js.map +0 -1
  297. package/dist/property-listing-card.js.map +0 -1
  298. package/dist/radar-chart.js.map +0 -1
  299. package/dist/radio-group.js.map +0 -1
  300. package/dist/review-block.js.map +0 -1
  301. package/dist/rich-text-editor.js.map +0 -1
  302. package/dist/scatter-chart.js.map +0 -1
  303. package/dist/search-input.js.map +0 -1
  304. package/dist/select.js.map +0 -1
  305. package/dist/separator.js.map +0 -1
  306. package/dist/sheet.js.map +0 -1
  307. package/dist/sidebar.js.map +0 -1
  308. package/dist/size-context.js.map +0 -1
  309. package/dist/skeleton.js.map +0 -1
  310. package/dist/slider.js.map +0 -1
  311. package/dist/sparkline.js.map +0 -1
  312. package/dist/stepper.js.map +0 -1
  313. package/dist/switch.js.map +0 -1
  314. package/dist/tab-list.d.ts +0 -38
  315. package/dist/tab-list.js +0 -123
  316. package/dist/tab-list.js.map +0 -1
  317. package/dist/table.js.map +0 -1
  318. package/dist/tabs.js.map +0 -1
  319. package/dist/tag.js.map +0 -1
  320. package/dist/testimonial-block.js.map +0 -1
  321. package/dist/textarea.js.map +0 -1
  322. package/dist/time-picker.js.map +0 -1
  323. package/dist/toast.js.map +0 -1
  324. package/dist/tooltip.js.map +0 -1
  325. package/dist/tree-map.js.map +0 -1
  326. package/dist/waterfall-chart.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ import * as React from "react";
2
+ //#region src/multi-step-form.d.ts
3
+ type MultiStepFormDirection = "next" | "prev" | "jump";
4
+ type MultiStepFormStep<TValue extends string = string, TFields extends readonly string[] = readonly string[]> = {
5
+ value: TValue;
6
+ title: React.ReactNode;
7
+ description?: React.ReactNode;
8
+ fields?: TFields;
9
+ };
10
+ type MultiStepFormValue<TStep extends MultiStepFormStep> = TStep["value"];
11
+ type MultiStepFormValidate<TStep extends MultiStepFormStep> = (value: MultiStepFormValue<TStep>, direction: MultiStepFormDirection, targetValue: MultiStepFormValue<TStep>) => boolean | Promise<boolean>;
12
+ type MultiStepFormContextValue<TStep extends MultiStepFormStep> = {
13
+ steps: readonly TStep[];
14
+ value: MultiStepFormValue<TStep>;
15
+ currentStep: TStep;
16
+ currentIndex: number;
17
+ nextStep?: TStep;
18
+ previousStep?: TStep;
19
+ isFirstStep: boolean;
20
+ isLastStep: boolean;
21
+ isValidating: boolean;
22
+ goTo: (value: MultiStepFormValue<TStep>) => Promise<boolean>;
23
+ next: () => Promise<boolean>;
24
+ previous: () => Promise<boolean>;
25
+ };
26
+ type MultiStepFormProps<TStep extends MultiStepFormStep> = Omit<React.ComponentProps<"div">, "defaultValue" | "onChange"> & {
27
+ steps: readonly TStep[];
28
+ value?: MultiStepFormValue<TStep>;
29
+ defaultValue?: MultiStepFormValue<TStep>;
30
+ onValueChange?: (value: MultiStepFormValue<TStep>, step: TStep, meta: {
31
+ direction: MultiStepFormDirection;
32
+ previousValue: MultiStepFormValue<TStep>;
33
+ }) => void;
34
+ onValidate?: MultiStepFormValidate<TStep>;
35
+ };
36
+ type MultiStepFormIndicatorProps = React.ComponentProps<"div"> & {
37
+ type?: "stepper" | "progress";
38
+ progressValue?: number;
39
+ showNextLabel?: boolean;
40
+ currentStepAction?: React.ReactNode;
41
+ };
42
+ type MultiStepFormContentProps<TStep extends MultiStepFormStep> = React.ComponentProps<"div"> & {
43
+ value: MultiStepFormValue<TStep>;
44
+ forceMount?: boolean;
45
+ };
46
+ type MultiStepFormNavigationButtonProps = Omit<React.ComponentProps<"button">, "type"> & {
47
+ type?: "button" | "submit" | "reset";
48
+ };
49
+ declare function useMultiStepForm<TStep extends MultiStepFormStep = MultiStepFormStep>(): MultiStepFormContextValue<TStep>;
50
+ declare function MultiStepForm<TStep extends MultiStepFormStep>({ steps, value, defaultValue, onValueChange, onValidate, className, children, ...props }: MultiStepFormProps<TStep>): React.JSX.Element;
51
+ declare function MultiStepFormIndicator({ type, progressValue, showNextLabel, currentStepAction, className, ...props }: MultiStepFormIndicatorProps): React.JSX.Element;
52
+ declare function MultiStepFormContent<TStep extends MultiStepFormStep>({ value, forceMount, className, ...props }: MultiStepFormContentProps<TStep>): React.JSX.Element | null;
53
+ declare function MultiStepFormPrevious({ type, disabled, onClick, className, ...props }: MultiStepFormNavigationButtonProps): React.JSX.Element;
54
+ declare function MultiStepFormNext({ type, disabled, onClick, className, ...props }: MultiStepFormNavigationButtonProps): React.JSX.Element;
55
+ //#endregion
56
+ export { MultiStepForm, MultiStepFormContent, type MultiStepFormDirection, MultiStepFormIndicator, MultiStepFormNext, MultiStepFormPrevious, type MultiStepFormProps, type MultiStepFormStep, type MultiStepFormValidate, useMultiStepForm };
@@ -0,0 +1,342 @@
1
+ "use client";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
4
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select.js";
5
+ import { Progress, ProgressIndicator, ProgressTrack } from "./progress.js";
6
+ import { CheckIcon } from "lucide-react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import * as React from "react";
9
+ //#region src/multi-step-form.tsx
10
+ const MultiStepFormContext = React.createContext(null);
11
+ function useMultiStepForm() {
12
+ const context = React.useContext(MultiStepFormContext);
13
+ if (!context) throw new Error("MultiStepForm parts must be used within a <MultiStepForm />");
14
+ return context;
15
+ }
16
+ function getStepIndex(steps, value) {
17
+ return steps.findIndex((step) => step.value === value);
18
+ }
19
+ function getDirection(currentIndex, targetIndex) {
20
+ if (targetIndex > currentIndex) return "next";
21
+ if (targetIndex < currentIndex) return "prev";
22
+ return "jump";
23
+ }
24
+ function getProgressValue(currentIndex, totalSteps) {
25
+ if (totalSteps <= 0) return 0;
26
+ return Math.round((currentIndex + 1) / totalSteps * 100);
27
+ }
28
+ function getStepsToValidate(steps, currentIndex, targetIndex) {
29
+ if (targetIndex <= currentIndex) return [];
30
+ if (targetIndex === currentIndex + 1) return steps.slice(currentIndex, currentIndex + 1);
31
+ return steps.slice(0, targetIndex);
32
+ }
33
+ function MultiStepForm({ steps, value, defaultValue, onValueChange, onValidate, className, children, ...props }) {
34
+ const fallbackValue = steps[0]?.value;
35
+ const [currentValue, setCurrentValue] = useUncontrolled({
36
+ value,
37
+ defaultValue,
38
+ finalValue: fallbackValue,
39
+ onChange: (nextValue, ...payload) => {
40
+ const [step, meta] = payload;
41
+ onValueChange?.(nextValue, step, meta);
42
+ }
43
+ });
44
+ const [isValidating, setIsValidating] = React.useState(false);
45
+ const resolvedIndex = getStepIndex(steps, currentValue);
46
+ const currentIndex = resolvedIndex >= 0 ? resolvedIndex : 0;
47
+ const currentStep = steps[currentIndex];
48
+ const previousStep = steps[currentIndex - 1];
49
+ const nextStep = steps[currentIndex + 1];
50
+ const isFirstStep = currentIndex <= 0;
51
+ const isLastStep = currentIndex >= steps.length - 1;
52
+ const goTo = async (targetValue) => {
53
+ if (!currentStep) return false;
54
+ const targetIndex = getStepIndex(steps, targetValue);
55
+ if (targetIndex < 0) return false;
56
+ const direction = getDirection(currentIndex, targetIndex);
57
+ if (direction === "jump") return true;
58
+ setIsValidating(true);
59
+ try {
60
+ const stepsToValidate = getStepsToValidate(steps, currentIndex, targetIndex);
61
+ for (const step of stepsToValidate) if (!(await onValidate?.(step.value, direction, targetValue) ?? true)) return false;
62
+ const targetStep = steps[targetIndex];
63
+ if (!targetStep) return false;
64
+ setCurrentValue(targetValue, targetStep, {
65
+ direction,
66
+ previousValue: currentStep.value
67
+ });
68
+ return true;
69
+ } finally {
70
+ setIsValidating(false);
71
+ }
72
+ };
73
+ const next = () => {
74
+ if (!nextStep) return Promise.resolve(false);
75
+ return goTo(nextStep.value);
76
+ };
77
+ const previous = () => {
78
+ if (!previousStep) return Promise.resolve(false);
79
+ return goTo(previousStep.value);
80
+ };
81
+ const contextValue = {
82
+ steps,
83
+ value: currentStep?.value ?? currentValue,
84
+ currentStep,
85
+ currentIndex,
86
+ nextStep,
87
+ previousStep,
88
+ isFirstStep,
89
+ isLastStep,
90
+ isValidating,
91
+ goTo,
92
+ next,
93
+ previous
94
+ };
95
+ return /* @__PURE__ */ jsx(MultiStepFormContext.Provider, {
96
+ value: contextValue,
97
+ children: /* @__PURE__ */ jsx("div", {
98
+ "data-slot": "multi-step-form",
99
+ className: cn("flex flex-col gap-6", className),
100
+ ...props,
101
+ children
102
+ })
103
+ });
104
+ }
105
+ function MultiStepFormIndicator({ type = "stepper", progressValue, showNextLabel = true, currentStepAction, className, ...props }) {
106
+ const { steps, currentIndex, nextStep, goTo, isValidating } = useMultiStepForm();
107
+ const stepNumber = currentIndex + 1;
108
+ const totalSteps = steps.length;
109
+ const resolvedProgress = progressValue ?? getProgressValue(currentIndex, totalSteps);
110
+ if (type === "progress") return /* @__PURE__ */ jsxs("div", {
111
+ "data-slot": "multi-step-form-indicator",
112
+ "data-type": "progress",
113
+ className: cn("flex w-full flex-col gap-2.5", className),
114
+ ...props,
115
+ children: [
116
+ /* @__PURE__ */ jsxs("div", {
117
+ className: "flex items-start justify-between gap-4",
118
+ children: [/* @__PURE__ */ jsxs("div", {
119
+ className: "flex min-w-0 flex-col gap-1.5",
120
+ children: [/* @__PURE__ */ jsxs("p", {
121
+ className: "text-gdt-sm text-fg-caption-placeholder",
122
+ children: [
123
+ "Step ",
124
+ stepNumber,
125
+ " of ",
126
+ totalSteps
127
+ ]
128
+ }), /* @__PURE__ */ jsx(MultiStepFormStepSelect, {
129
+ trigger: "title",
130
+ currentStepAction
131
+ })]
132
+ }), /* @__PURE__ */ jsxs("p", {
133
+ className: "shrink-0 text-gdt-md font-extrabold text-status-info md:text-gdt-lg",
134
+ children: [resolvedProgress, "%"]
135
+ })]
136
+ }),
137
+ /* @__PURE__ */ jsx(Progress, {
138
+ value: resolvedProgress,
139
+ "aria-label": "Step progress",
140
+ children: /* @__PURE__ */ jsx(ProgressTrack, {
141
+ className: "h-2 bg-line",
142
+ children: /* @__PURE__ */ jsx(ProgressIndicator, { className: "bg-action-primary" })
143
+ })
144
+ }),
145
+ showNextLabel && nextStep ? /* @__PURE__ */ jsxs("p", {
146
+ className: "text-gdt-xs text-fg-caption-placeholder",
147
+ children: ["Next: ", nextStep.title]
148
+ }) : null
149
+ ]
150
+ });
151
+ return /* @__PURE__ */ jsxs("div", {
152
+ "data-slot": "multi-step-form-indicator",
153
+ "data-type": "stepper",
154
+ className: cn("w-full", className),
155
+ ...props,
156
+ children: [/* @__PURE__ */ jsx("div", {
157
+ className: "hidden w-full md:grid",
158
+ style: { gridTemplateColumns: `repeat(${totalSteps}, minmax(0, 1fr))` },
159
+ children: steps.map((step, index) => {
160
+ const state = index < currentIndex ? "complete" : index === currentIndex ? "active" : "upcoming";
161
+ const leftComplete = index > 0 && index <= currentIndex;
162
+ const rightComplete = index < currentIndex;
163
+ return /* @__PURE__ */ jsxs("div", {
164
+ "data-state": state,
165
+ className: "group/multi-step-form-step min-w-0",
166
+ children: [/* @__PURE__ */ jsxs("div", {
167
+ className: "flex items-center",
168
+ children: [
169
+ /* @__PURE__ */ jsx("span", {
170
+ "aria-hidden": "true",
171
+ className: cn("h-0.5 flex-1 rounded-full bg-line", index === 0 && "bg-transparent", leftComplete && "bg-status-success")
172
+ }),
173
+ /* @__PURE__ */ jsx("button", {
174
+ type: "button",
175
+ "aria-current": state === "active" ? "step" : void 0,
176
+ disabled: isValidating,
177
+ className: cn("flex size-10 shrink-0 items-center justify-center rounded-full border text-gdt-sm font-bold transition-[background-color,border-color,color,box-shadow] focus-visible:border-line-focus focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50", state === "complete" && "border-status-success bg-status-success text-fg-on-brand", state === "active" && "border-status-info bg-status-info text-fg-on-brand", state === "upcoming" && "border-line bg-canvas text-fg-caption-placeholder hover:border-line-strong hover:text-fg-primary"),
178
+ onClick: () => {
179
+ goTo(step.value);
180
+ },
181
+ children: state === "complete" ? /* @__PURE__ */ jsx(CheckIcon, {
182
+ className: "size-4.5",
183
+ strokeWidth: 2.5
184
+ }) : index + 1
185
+ }),
186
+ /* @__PURE__ */ jsx("span", {
187
+ "aria-hidden": "true",
188
+ className: cn("h-0.5 flex-1 rounded-full bg-line", index === totalSteps - 1 && "bg-transparent", rightComplete && "bg-status-success")
189
+ })
190
+ ]
191
+ }), /* @__PURE__ */ jsxs("button", {
192
+ type: "button",
193
+ disabled: isValidating,
194
+ className: cn("mx-auto mt-3 flex max-w-full flex-col items-center gap-1 px-2 text-center transition-colors hover:text-fg-primary disabled:pointer-events-none disabled:opacity-50", state === "complete" && "text-fg-primary", state === "active" && "text-status-info"),
195
+ onClick: () => {
196
+ goTo(step.value);
197
+ },
198
+ children: [/* @__PURE__ */ jsx("span", {
199
+ className: "max-w-full truncate text-gdt-sm font-semibold",
200
+ children: step.title
201
+ }), step.description ? /* @__PURE__ */ jsx("span", {
202
+ className: "max-w-full truncate text-gdt-xs font-normal text-fg-caption-placeholder",
203
+ children: step.description
204
+ }) : null]
205
+ })]
206
+ }, step.value);
207
+ })
208
+ }), /* @__PURE__ */ jsxs("div", {
209
+ className: "flex flex-col gap-4 md:hidden",
210
+ children: [/* @__PURE__ */ jsx(MultiStepFormStepSelect, {
211
+ trigger: "card",
212
+ currentStepAction
213
+ }), /* @__PURE__ */ jsx("div", {
214
+ className: "flex gap-1.5",
215
+ "aria-hidden": "true",
216
+ children: steps.map((step, index) => /* @__PURE__ */ jsx("span", { className: cn("h-1 flex-1 rounded-full bg-line transition-colors", index < currentIndex && "bg-status-success", index === currentIndex && "bg-status-info") }, step.value))
217
+ })]
218
+ })]
219
+ });
220
+ }
221
+ function MultiStepFormStepSelect({ trigger, currentStepAction }) {
222
+ const { steps, value, currentIndex, currentStep, goTo, isValidating } = useMultiStepForm();
223
+ const stepNumber = currentIndex + 1;
224
+ const totalSteps = steps.length;
225
+ return /* @__PURE__ */ jsxs(Select, {
226
+ value,
227
+ onValueChange: (nextValue) => {
228
+ if (typeof nextValue === "string") goTo(nextValue);
229
+ },
230
+ size: "md",
231
+ children: [/* @__PURE__ */ jsxs(SelectTrigger, {
232
+ unstyled: true,
233
+ disabled: isValidating,
234
+ className: cn("group/multi-step-form-select-trigger flex min-w-0 items-center justify-between gap-3 text-left outline-none transition-[border-color,box-shadow,color] focus-visible:border-line-focus focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:text-line-strong", trigger === "card" && "w-full rounded-xl border border-line bg-canvas px-4 py-3 shadow-sm", trigger === "title" && "w-fit max-w-full rounded-md text-fg-primary hover:text-fg-brand"),
235
+ children: [trigger === "card" ? /* @__PURE__ */ jsxs("div", {
236
+ className: "min-w-0",
237
+ children: [
238
+ /* @__PURE__ */ jsxs("p", {
239
+ className: "text-gdt-xs text-fg-caption-placeholder",
240
+ children: [
241
+ "Step ",
242
+ stepNumber,
243
+ " of ",
244
+ totalSteps
245
+ ]
246
+ }),
247
+ /* @__PURE__ */ jsx("p", {
248
+ className: "mt-1 truncate text-gdt-sm font-bold text-fg-primary",
249
+ children: currentStep.title
250
+ }),
251
+ currentStep.description ? /* @__PURE__ */ jsx("p", {
252
+ className: "mt-0.5 truncate text-gdt-xs text-fg-secondary",
253
+ children: currentStep.description
254
+ }) : null
255
+ ]
256
+ }) : /* @__PURE__ */ jsxs("div", {
257
+ className: "flex min-w-0 flex-col gap-0.5",
258
+ children: [/* @__PURE__ */ jsxs("div", {
259
+ className: "flex min-w-0 items-center gap-2",
260
+ children: [/* @__PURE__ */ jsx("p", {
261
+ className: "truncate text-gdt-md font-bold md:text-gdt-lg",
262
+ children: currentStep.title
263
+ }), currentStepAction]
264
+ }), currentStep.description ? /* @__PURE__ */ jsx("p", {
265
+ className: "truncate text-gdt-xs text-fg-secondary",
266
+ children: currentStep.description
267
+ }) : null]
268
+ }), /* @__PURE__ */ jsx(SelectValue, { className: "sr-only" })]
269
+ }), /* @__PURE__ */ jsx(SelectContent, {
270
+ align: "start",
271
+ alignItemWithTrigger: true,
272
+ className: "min-w-56",
273
+ children: steps.map((step, index) => /* @__PURE__ */ jsx(SelectItem, {
274
+ value: step.value,
275
+ children: /* @__PURE__ */ jsxs("span", {
276
+ className: "flex min-w-0 flex-col",
277
+ children: [
278
+ /* @__PURE__ */ jsxs("span", {
279
+ className: "text-gdt-xs text-fg-caption-placeholder",
280
+ children: [
281
+ "Step ",
282
+ index + 1,
283
+ " of ",
284
+ totalSteps
285
+ ]
286
+ }),
287
+ /* @__PURE__ */ jsx("span", {
288
+ className: "truncate",
289
+ children: step.title
290
+ }),
291
+ step.description ? /* @__PURE__ */ jsx("span", {
292
+ className: "truncate text-gdt-xs text-fg-secondary",
293
+ children: step.description
294
+ }) : null
295
+ ]
296
+ })
297
+ }, step.value))
298
+ })]
299
+ });
300
+ }
301
+ function MultiStepFormContent({ value, forceMount = false, className, ...props }) {
302
+ const { value: currentValue } = useMultiStepForm();
303
+ const isActive = currentValue === value;
304
+ if (!forceMount && !isActive) return null;
305
+ return /* @__PURE__ */ jsx("div", {
306
+ "data-slot": "multi-step-form-content",
307
+ "data-state": isActive ? "active" : "inactive",
308
+ hidden: !isActive,
309
+ className: cn("min-w-0", className),
310
+ ...props
311
+ });
312
+ }
313
+ function MultiStepFormPrevious({ type = "button", disabled, onClick, className, ...props }) {
314
+ const { previous, isFirstStep, isValidating } = useMultiStepForm();
315
+ return /* @__PURE__ */ jsx("button", {
316
+ "data-slot": "multi-step-form-previous",
317
+ type,
318
+ disabled: disabled || isFirstStep || isValidating,
319
+ className: cn("inline-flex h-10 items-center justify-center rounded-full border border-line-strong px-4.5 text-gdt-sm font-bold text-fg-primary transition-colors hover:bg-surface disabled:pointer-events-none disabled:opacity-50", className),
320
+ onClick: (event) => {
321
+ onClick?.(event);
322
+ if (!event.defaultPrevented) previous();
323
+ },
324
+ ...props
325
+ });
326
+ }
327
+ function MultiStepFormNext({ type = "button", disabled, onClick, className, ...props }) {
328
+ const { next, isLastStep, isValidating } = useMultiStepForm();
329
+ return /* @__PURE__ */ jsx("button", {
330
+ "data-slot": "multi-step-form-next",
331
+ type,
332
+ disabled: disabled || isLastStep || isValidating,
333
+ className: cn("inline-flex h-10 items-center justify-center rounded-full bg-action-primary px-4.5 text-gdt-sm font-bold text-fg-on-brand transition-colors hover:bg-action-primary-hover disabled:pointer-events-none disabled:opacity-50", className),
334
+ onClick: (event) => {
335
+ onClick?.(event);
336
+ if (!event.defaultPrevented) next();
337
+ },
338
+ ...props
339
+ });
340
+ }
341
+ //#endregion
342
+ export { MultiStepForm, MultiStepFormContent, MultiStepFormIndicator, MultiStepFormNext, MultiStepFormPrevious, useMultiStepForm };
@@ -1,41 +1,41 @@
1
- import { NumberFieldRootProps } from '@base-ui/react/number-field';
2
- import * as React from 'react';
3
- import { ComponentSize } from './size-context.js';
4
-
1
+ import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
2
+ import * as React from "react";
3
+ import { NumberFieldRootProps } from "@base-ui/react/number-field";
4
+ //#region src/number-input.d.ts
5
5
  declare const numberInputFormatPresets: {
6
- compact: {
7
- compactDisplay: "short";
8
- notation: "compact";
9
- };
10
- currencyNgn: {
11
- currency: string;
12
- currencyDisplay: "narrowSymbol";
13
- style: "currency";
14
- };
15
- decimal: {
16
- useGrouping: true;
17
- };
18
- integer: {
19
- maximumFractionDigits: number;
20
- useGrouping: true;
21
- };
22
- percent: {
23
- style: "percent";
24
- };
25
- plain: {
26
- useGrouping: false;
27
- };
6
+ compact: {
7
+ compactDisplay: "short";
8
+ notation: "compact";
9
+ };
10
+ currencyNgn: {
11
+ currency: string;
12
+ currencyDisplay: "narrowSymbol";
13
+ style: "currency";
14
+ };
15
+ decimal: {
16
+ useGrouping: true;
17
+ };
18
+ integer: {
19
+ maximumFractionDigits: number;
20
+ useGrouping: true;
21
+ };
22
+ percent: {
23
+ style: "percent";
24
+ };
25
+ plain: {
26
+ useGrouping: false;
27
+ };
28
28
  };
29
29
  type NumberInputFormatPreset = keyof typeof numberInputFormatPresets;
30
30
  type NumberInputProps = Omit<NumberFieldRootProps, "format"> & {
31
- children?: React.ReactNode;
32
- format?: Intl.NumberFormatOptions;
33
- formatPreset?: NumberInputFormatPreset;
34
- placeholder?: string;
35
- size?: ComponentSize;
36
- thousandSeparator?: boolean;
31
+ children?: React.ReactNode;
32
+ format?: Intl.NumberFormatOptions;
33
+ formatPreset?: NumberInputFormatPreset;
34
+ placeholder?: string;
35
+ size?: ComponentSize;
36
+ thousandSeparator?: boolean;
37
37
  };
38
38
  declare function NumberInput({ children, format, formatPreset, placeholder, size, thousandSeparator, ...props }: NumberInputProps): React.JSX.Element;
39
39
  declare function NumberInputControl(): React.JSX.Element;
40
-
41
- export { NumberInput, NumberInputControl, type NumberInputFormatPreset, numberInputFormatPresets };
40
+ //#endregion
41
+ export { NumberInput, NumberInputControl, type NumberInputFormatPreset, numberInputFormatPresets };
@@ -1,123 +1,67 @@
1
- import {
2
- InputGroup,
3
- InputGroupAddon,
4
- InputGroupButton,
5
- InputGroupInput
6
- } from "./chunk-6ZSGQHH2.js";
7
- import "./chunk-KSMDANKI.js";
8
- import "./chunk-MEKCCOP5.js";
9
- import "./chunk-3ACQVT7A.js";
10
- import "./chunk-B4H6RNDH.js";
11
- import {
12
- SizeProvider,
13
- useComponentSize
14
- } from "./chunk-HL3ZSYES.js";
15
- import {
16
- cn
17
- } from "./chunk-Y4TTYVNE.js";
18
-
19
- // src/number-input.tsx
20
- import {
21
- NumberField
22
- } from "@base-ui/react/number-field";
1
+ import { t as cn } from "./cn-BI_4DMBf.js";
2
+ import { SizeProvider, useComponentSize } from "./size-context.js";
3
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "./input-group.js";
23
4
  import { MinusIcon, PlusIcon } from "lucide-react";
24
5
  import { jsx, jsxs } from "react/jsx-runtime";
25
- var numberInputFormatPresets = {
26
- compact: {
27
- compactDisplay: "short",
28
- notation: "compact"
29
- },
30
- currencyNgn: {
31
- currency: "NGN",
32
- currencyDisplay: "narrowSymbol",
33
- style: "currency"
34
- },
35
- decimal: {
36
- useGrouping: true
37
- },
38
- integer: {
39
- maximumFractionDigits: 0,
40
- useGrouping: true
41
- },
42
- percent: {
43
- style: "percent"
44
- },
45
- plain: {
46
- useGrouping: false
47
- }
6
+ import { NumberField } from "@base-ui/react/number-field";
7
+ //#region src/number-input.tsx
8
+ const numberInputFormatPresets = {
9
+ compact: {
10
+ compactDisplay: "short",
11
+ notation: "compact"
12
+ },
13
+ currencyNgn: {
14
+ currency: "NGN",
15
+ currencyDisplay: "narrowSymbol",
16
+ style: "currency"
17
+ },
18
+ decimal: { useGrouping: true },
19
+ integer: {
20
+ maximumFractionDigits: 0,
21
+ useGrouping: true
22
+ },
23
+ percent: { style: "percent" },
24
+ plain: { useGrouping: false }
48
25
  };
49
- function NumberInput({
50
- children,
51
- format,
52
- formatPreset,
53
- placeholder,
54
- size,
55
- thousandSeparator,
56
- ...props
57
- }) {
58
- const resolvedSize = useComponentSize(size);
59
- const resolvedFormat = format ?? (formatPreset ? numberInputFormatPresets[formatPreset] : void 0) ?? (thousandSeparator ? numberInputFormatPresets.decimal : void 0);
60
- return /* @__PURE__ */ jsx(SizeProvider, { size: resolvedSize, children: /* @__PURE__ */ jsx(NumberField.Root, { format: resolvedFormat, ...props, children: /* @__PURE__ */ jsxs(NumberField.Group, { render: /* @__PURE__ */ jsx(InputGroup, {}), children: [
61
- /* @__PURE__ */ jsx(
62
- NumberField.Input,
63
- {
64
- placeholder,
65
- render: /* @__PURE__ */ jsx(InputGroupInput, {})
66
- }
67
- ),
68
- children
69
- ] }) }) });
26
+ function NumberInput({ children, format, formatPreset, placeholder, size, thousandSeparator, ...props }) {
27
+ const resolvedSize = useComponentSize(size);
28
+ const resolvedFormat = format ?? (formatPreset ? numberInputFormatPresets[formatPreset] : void 0) ?? (thousandSeparator ? numberInputFormatPresets.decimal : void 0);
29
+ return /* @__PURE__ */ jsx(SizeProvider, {
30
+ size: resolvedSize,
31
+ children: /* @__PURE__ */ jsx(NumberField.Root, {
32
+ format: resolvedFormat,
33
+ ...props,
34
+ children: /* @__PURE__ */ jsxs(NumberField.Group, {
35
+ render: /* @__PURE__ */ jsx(InputGroup, {}),
36
+ children: [/* @__PURE__ */ jsx(NumberField.Input, {
37
+ placeholder,
38
+ render: /* @__PURE__ */ jsx(InputGroupInput, {})
39
+ }), children]
40
+ })
41
+ })
42
+ });
70
43
  }
71
44
  function NumberInputControl() {
72
- const size = useComponentSize();
73
- return /* @__PURE__ */ jsxs(
74
- InputGroupAddon,
75
- {
76
- align: "inline-end",
77
- className: cn(
78
- "flex gap-0 flex-col h-[calc(100%-2px)] w-10 overflow-hidden rounded-r-full p-0! pr-1.5!",
79
- size === "lg" && "w-12"
80
- ),
81
- children: [
82
- /* @__PURE__ */ jsx(
83
- NumberField.Increment,
84
- {
85
- className: "w-full flex-1 rounded-none rounded-tr-full",
86
- render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
87
- children: /* @__PURE__ */ jsx(
88
- PlusIcon,
89
- {
90
- className: cn("size-1.5", {
91
- "size-3": size === "md",
92
- "size-3.5": size === "lg"
93
- })
94
- }
95
- )
96
- }
97
- ),
98
- /* @__PURE__ */ jsx(
99
- NumberField.Decrement,
100
- {
101
- className: "w-full flex-1 rounded-none rounded-br-full",
102
- render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
103
- children: /* @__PURE__ */ jsx(
104
- MinusIcon,
105
- {
106
- className: cn("size-1.5", {
107
- "size-3": size === "md",
108
- "size-3.5": size === "lg"
109
- })
110
- }
111
- )
112
- }
113
- )
114
- ]
115
- }
116
- );
45
+ const size = useComponentSize();
46
+ return /* @__PURE__ */ jsxs(InputGroupAddon, {
47
+ align: "inline-end",
48
+ className: cn("flex gap-0 flex-col h-[calc(100%-2px)] w-10 overflow-hidden rounded-r-full p-0! pr-1.5!", size === "lg" && "w-12"),
49
+ children: [/* @__PURE__ */ jsx(NumberField.Increment, {
50
+ className: "w-full flex-1 rounded-none rounded-tr-full",
51
+ render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
52
+ children: /* @__PURE__ */ jsx(PlusIcon, { className: cn("size-1.5", {
53
+ "size-3": size === "md",
54
+ "size-3.5": size === "lg"
55
+ }) })
56
+ }), /* @__PURE__ */ jsx(NumberField.Decrement, {
57
+ className: "w-full flex-1 rounded-none rounded-br-full",
58
+ render: /* @__PURE__ */ jsx(InputGroupButton, { variant: "tertiary" }),
59
+ children: /* @__PURE__ */ jsx(MinusIcon, { className: cn("size-1.5", {
60
+ "size-3": size === "md",
61
+ "size-3.5": size === "lg"
62
+ }) })
63
+ })]
64
+ });
117
65
  }
118
- export {
119
- NumberInput,
120
- NumberInputControl,
121
- numberInputFormatPresets
122
- };
123
- //# sourceMappingURL=number-input.js.map
66
+ //#endregion
67
+ export { NumberInput, NumberInputControl, numberInputFormatPresets };