jfs-components 0.0.72 → 0.0.74

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 (158) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +239 -0
  3. package/lib/commonjs/components/AccountCard/AccountCard.js +247 -0
  4. package/lib/commonjs/components/AppBar/AppBar.js +17 -11
  5. package/lib/commonjs/components/BrandChip/BrandChip.js +149 -0
  6. package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +229 -0
  7. package/lib/commonjs/components/CardInsight/CardInsight.js +166 -0
  8. package/lib/commonjs/components/CheckboxGroup/CheckboxGroup.js +67 -0
  9. package/lib/commonjs/components/CheckboxItem/CheckboxItem.js +140 -0
  10. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +56 -9
  11. package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +272 -0
  12. package/lib/commonjs/components/CoverageRing/CoverageRing.js +141 -0
  13. package/lib/commonjs/components/DonutChart/DonutChart.js +309 -0
  14. package/lib/commonjs/components/DonutChartSummary/DonutChartSummary.js +155 -0
  15. package/lib/commonjs/components/Dropdown/Dropdown.js +214 -0
  16. package/lib/commonjs/components/DropdownInput/DropdownInput.js +542 -0
  17. package/lib/commonjs/components/FormField/FormField.js +328 -178
  18. package/lib/commonjs/components/LinearMeter/LinearMeter.js +9 -28
  19. package/lib/commonjs/components/LinearProgress/LinearProgress.js +68 -0
  20. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +150 -0
  21. package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +95 -0
  22. package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +286 -0
  23. package/lib/commonjs/components/OTP/OTP.js +381 -37
  24. package/lib/commonjs/components/PageHero/PageHero.js +153 -0
  25. package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +135 -0
  26. package/lib/commonjs/components/PoweredByLabel/finvu.png +0 -0
  27. package/lib/commonjs/components/ProductOverview/ProductOverview.js +147 -0
  28. package/lib/commonjs/components/RangeTrack/RangeTrack.js +269 -0
  29. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +181 -0
  30. package/lib/commonjs/components/SegmentedTrack/SegmentedTrack.js +171 -0
  31. package/lib/commonjs/components/StatGroup/StatGroup.js +128 -0
  32. package/lib/commonjs/components/StatItem/StatItem.js +65 -35
  33. package/lib/commonjs/components/StrengthIndicator/StrengthIndicator.js +157 -0
  34. package/lib/commonjs/components/SummaryTile/SummaryTile.js +150 -0
  35. package/lib/commonjs/components/Text/Text.js +9 -2
  36. package/lib/commonjs/components/Tooltip/Tooltip.js +34 -27
  37. package/lib/commonjs/components/index.js +231 -1
  38. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  39. package/lib/commonjs/icons/registry.js +1 -1
  40. package/lib/commonjs/utils/index.js +7 -0
  41. package/lib/commonjs/utils/number-utils.js +57 -0
  42. package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +233 -0
  43. package/lib/module/components/AccountCard/AccountCard.js +241 -0
  44. package/lib/module/components/AppBar/AppBar.js +17 -11
  45. package/lib/module/components/BrandChip/BrandChip.js +143 -0
  46. package/lib/module/components/CardBankAccount/CardBankAccount.js +223 -0
  47. package/lib/module/components/CardInsight/CardInsight.js +161 -0
  48. package/lib/module/components/CheckboxGroup/CheckboxGroup.js +62 -0
  49. package/lib/module/components/CheckboxItem/CheckboxItem.js +134 -0
  50. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +56 -9
  51. package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +266 -0
  52. package/lib/module/components/CoverageRing/CoverageRing.js +136 -0
  53. package/lib/module/components/DonutChart/DonutChart.js +303 -0
  54. package/lib/module/components/DonutChartSummary/DonutChartSummary.js +150 -0
  55. package/lib/module/components/Dropdown/Dropdown.js +206 -0
  56. package/lib/module/components/DropdownInput/DropdownInput.js +536 -0
  57. package/lib/module/components/FormField/FormField.js +330 -180
  58. package/lib/module/components/LinearMeter/LinearMeter.js +9 -28
  59. package/lib/module/components/LinearProgress/LinearProgress.js +63 -0
  60. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +144 -0
  61. package/lib/module/components/MetricLegendItem/MetricLegendItem.js +90 -0
  62. package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +281 -0
  63. package/lib/module/components/OTP/OTP.js +381 -38
  64. package/lib/module/components/PageHero/PageHero.js +147 -0
  65. package/lib/module/components/PoweredByLabel/PoweredByLabel.js +130 -0
  66. package/lib/module/components/PoweredByLabel/finvu.png +0 -0
  67. package/lib/module/components/ProductOverview/ProductOverview.js +142 -0
  68. package/lib/module/components/RangeTrack/RangeTrack.js +263 -0
  69. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +175 -0
  70. package/lib/module/components/SegmentedTrack/SegmentedTrack.js +166 -0
  71. package/lib/module/components/StatGroup/StatGroup.js +123 -0
  72. package/lib/module/components/StatItem/StatItem.js +66 -36
  73. package/lib/module/components/StrengthIndicator/StrengthIndicator.js +152 -0
  74. package/lib/module/components/SummaryTile/SummaryTile.js +145 -0
  75. package/lib/module/components/Text/Text.js +9 -2
  76. package/lib/module/components/Tooltip/Tooltip.js +34 -27
  77. package/lib/module/components/index.js +28 -2
  78. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  79. package/lib/module/icons/registry.js +1 -1
  80. package/lib/module/utils/index.js +2 -1
  81. package/lib/module/utils/number-utils.js +53 -0
  82. package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +71 -0
  83. package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +81 -0
  84. package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +43 -0
  85. package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +86 -0
  86. package/lib/typescript/src/components/CardInsight/CardInsight.d.ts +48 -0
  87. package/lib/typescript/src/components/CheckboxGroup/CheckboxGroup.d.ts +41 -0
  88. package/lib/typescript/src/components/CheckboxItem/CheckboxItem.d.ts +72 -0
  89. package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +11 -1
  90. package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +105 -0
  91. package/lib/typescript/src/components/CoverageRing/CoverageRing.d.ts +90 -0
  92. package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +117 -0
  93. package/lib/typescript/src/components/DonutChartSummary/DonutChartSummary.d.ts +103 -0
  94. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +62 -0
  95. package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +107 -0
  96. package/lib/typescript/src/components/FormField/FormField.d.ts +76 -19
  97. package/lib/typescript/src/components/LinearProgress/LinearProgress.d.ts +17 -0
  98. package/lib/typescript/src/components/LottieIntroBlock/LottieIntroBlock.d.ts +58 -0
  99. package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +37 -0
  100. package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +119 -0
  101. package/lib/typescript/src/components/OTP/OTP.d.ts +88 -2
  102. package/lib/typescript/src/components/PageHero/PageHero.d.ts +53 -0
  103. package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +70 -0
  104. package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +39 -0
  105. package/lib/typescript/src/components/RangeTrack/RangeTrack.d.ts +173 -0
  106. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +95 -0
  107. package/lib/typescript/src/components/SegmentedTrack/SegmentedTrack.d.ts +108 -0
  108. package/lib/typescript/src/components/StatGroup/StatGroup.d.ts +45 -0
  109. package/lib/typescript/src/components/StatItem/StatItem.d.ts +24 -7
  110. package/lib/typescript/src/components/StrengthIndicator/StrengthIndicator.d.ts +58 -0
  111. package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +60 -0
  112. package/lib/typescript/src/components/Text/Text.d.ts +12 -2
  113. package/lib/typescript/src/components/Tooltip/Tooltip.d.ts +13 -2
  114. package/lib/typescript/src/components/index.d.ts +29 -3
  115. package/lib/typescript/src/icons/registry.d.ts +1 -1
  116. package/lib/typescript/src/utils/index.d.ts +1 -0
  117. package/lib/typescript/src/utils/number-utils.d.ts +29 -0
  118. package/package.json +1 -3
  119. package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +323 -0
  120. package/src/components/AccountCard/AccountCard.tsx +376 -0
  121. package/src/components/AppBar/AppBar.tsx +25 -14
  122. package/src/components/BrandChip/BrandChip.tsx +235 -0
  123. package/src/components/CardBankAccount/CardBankAccount.tsx +321 -0
  124. package/src/components/CardInsight/CardInsight.tsx +239 -0
  125. package/src/components/CheckboxGroup/CheckboxGroup.tsx +86 -0
  126. package/src/components/CheckboxItem/CheckboxItem.tsx +209 -0
  127. package/src/components/CircularProgressBar/CircularProgressBar.tsx +74 -9
  128. package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +378 -0
  129. package/src/components/CoverageRing/CoverageRing.tsx +225 -0
  130. package/src/components/DonutChart/DonutChart.tsx +503 -0
  131. package/src/components/DonutChartSummary/DonutChartSummary.tsx +256 -0
  132. package/src/components/Dropdown/Dropdown.tsx +331 -0
  133. package/src/components/DropdownInput/DropdownInput.tsx +819 -0
  134. package/src/components/FormField/FormField.tsx +542 -215
  135. package/src/components/LinearMeter/LinearMeter.tsx +9 -39
  136. package/src/components/LinearProgress/LinearProgress.tsx +92 -0
  137. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +202 -0
  138. package/src/components/MetricLegendItem/MetricLegendItem.tsx +167 -0
  139. package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +438 -0
  140. package/src/components/OTP/OTP.tsx +476 -29
  141. package/src/components/PageHero/PageHero.tsx +200 -0
  142. package/src/components/PoweredByLabel/PoweredByLabel.tsx +221 -0
  143. package/src/components/PoweredByLabel/finvu.png +0 -0
  144. package/src/components/ProductOverview/ProductOverview.tsx +236 -0
  145. package/src/components/RangeTrack/RangeTrack.tsx +394 -0
  146. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +269 -0
  147. package/src/components/SegmentedTrack/SegmentedTrack.tsx +268 -0
  148. package/src/components/StatGroup/StatGroup.tsx +169 -0
  149. package/src/components/StatItem/StatItem.tsx +117 -40
  150. package/src/components/StrengthIndicator/StrengthIndicator.tsx +205 -0
  151. package/src/components/SummaryTile/SummaryTile.tsx +251 -0
  152. package/src/components/Text/Text.tsx +24 -3
  153. package/src/components/Tooltip/Tooltip.tsx +50 -25
  154. package/src/components/index.ts +47 -3
  155. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  156. package/src/icons/registry.ts +1 -1
  157. package/src/utils/index.ts +1 -0
  158. package/src/utils/number-utils.ts +60 -0
@@ -0,0 +1,95 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ /**
4
+ * A single row in the savings-goal legend (current vs. target).
5
+ *
6
+ * `value` is a **numeric amount** (e.g. `240000`). It serves two purposes:
7
+ *
8
+ * 1. Display: rendered on the right side of the row using Indian numeric
9
+ * notation via {@link formatIndianNumber} and prefixed with `currency`
10
+ * (e.g. `240000` → `"₹2.4L"`).
11
+ * 2. Progress derivation: the bar fills to `current.value / target.value`
12
+ * automatically. There is no separate `progress` prop.
13
+ *
14
+ * Pass `value: undefined` to render a label-only row (the underlying
15
+ * {@link MetricLegendItem} hides the right slot in that case).
16
+ */
17
+ export type SavingsGoalSummaryItem = {
18
+ /** Label shown next to the indicator dot (e.g. "Current (4 months)"). */
19
+ label?: React.ReactNode;
20
+ /**
21
+ * Numeric amount used for both display formatting and progress derivation.
22
+ * Use `undefined` to render a label-only row.
23
+ */
24
+ value?: number;
25
+ /** Override the indicator dot colour. */
26
+ indicatorColor?: string;
27
+ };
28
+ export type SavingsGoalSummaryProps = {
29
+ /**
30
+ * Currency symbol (e.g. `'₹'`, `'$'`) prefixed to every legend value.
31
+ * Defaults to `'₹'`. The symbol is rendered as part of the formatted
32
+ * string — this component does not use `MoneyValue`.
33
+ */
34
+ currency?: string;
35
+ /**
36
+ * "Current" row in the legend. The indicator dot defaults to the
37
+ * `LinearProgress` indicator colour. Pass `null` to hide the row.
38
+ *
39
+ * `current.value` (numeric) drives both the displayed amount and — together
40
+ * with `target.value` — the progress bar fill.
41
+ */
42
+ current?: SavingsGoalSummaryItem | null;
43
+ /**
44
+ * "Target" / recommended row in the legend. The indicator dot defaults to
45
+ * the `LinearProgress` track colour. Pass `null` to hide the row.
46
+ */
47
+ target?: SavingsGoalSummaryItem | null;
48
+ /**
49
+ * Custom legend slot. When provided, replaces the default `current`/`target`
50
+ * rows entirely — pass any number of `MetricLegendItem`s (or any other
51
+ * nodes) to fully control the legend.
52
+ *
53
+ * Note: the progress bar is still derived from `current.value` / `target.value`,
54
+ * so pass them even when overriding the legend if you want a non-zero bar.
55
+ */
56
+ children?: React.ReactNode;
57
+ /**
58
+ * Design token modes for theming. Defaults to `{ 'LinearProgress Size': 'L' }`
59
+ * which renders the thicker progress bar from the Figma reference. Caller
60
+ * modes are merged on top and can override every default key.
61
+ */
62
+ modes?: Record<string, any>;
63
+ /** Override container styles. */
64
+ style?: StyleProp<ViewStyle>;
65
+ /**
66
+ * Override styles for the auto-generated percentage text. Useful for
67
+ * tweaking colour or alignment; the value (e.g. `"50%"`) is always
68
+ * computed from `current` / `target` and cannot be replaced.
69
+ */
70
+ titleStyle?: StyleProp<TextStyle>;
71
+ /** Override the inner legend container styles. */
72
+ legendStyle?: StyleProp<ViewStyle>;
73
+ };
74
+ /**
75
+ * `SavingsGoalSummary` visualises progress toward a savings goal as:
76
+ *
77
+ * 1. A `Title` showing the percentage — **computed automatically** from
78
+ * `current.value / target.value`. There is no `progress` prop; the
79
+ * component owns the calculation so the title, bar and legend are always
80
+ * in sync.
81
+ * 2. A `LinearProgress` bar driven by the same derived ratio.
82
+ * 3. A two-row legend comparing **current** vs. **target**, where each numeric
83
+ * `value` is auto-formatted with Indian notation
84
+ * ({@link formatIndianNumber}) and prefixed with the `currency` symbol.
85
+ *
86
+ * The component is intentionally narrow in scope — it is the body of a savings
87
+ * insight card. Wrap it in `CardInsight` (or any container of your choice) to
88
+ * add a heading, badge or footer.
89
+ *
90
+ * @component
91
+ * @param {SavingsGoalSummaryProps} props
92
+ */
93
+ declare function SavingsGoalSummary({ currency, current, target, children, modes, style, titleStyle, legendStyle, }: SavingsGoalSummaryProps): import("react/jsx-runtime").JSX.Element;
94
+ export default SavingsGoalSummary;
95
+ //# sourceMappingURL=SavingsGoalSummary.d.ts.map
@@ -0,0 +1,108 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ /**
4
+ * Per-segment data definition for the data-driven `segments` prop.
5
+ *
6
+ * Use `value` for proportional widths (segments share width by their value
7
+ * relative to the sum). When `value` is omitted, segments share the row
8
+ * equally (`flex: 1`).
9
+ *
10
+ * Use `modes` to override the per-segment design-token mode — typically the
11
+ * `Appearance / DataViz` mode for color theming, or `Emphasis / DataViz` to
12
+ * change the emphasis level. The parent already injects per-index defaults
13
+ * (segment 0 = High, 1 = Medium, 2 = Low, then cycling) so callers only need
14
+ * to pass `modes` when they want a different result.
15
+ */
16
+ export type SegmentedTrackSegmentData = {
17
+ /** Stable React key. */
18
+ key?: React.Key;
19
+ /**
20
+ * Optional explicit weight used for proportional width (`flex: value`).
21
+ * When omitted, the segment uses an equal share of the available row.
22
+ * Mixing values and undefined is supported — undefined falls back to 1.
23
+ */
24
+ value?: number;
25
+ /**
26
+ * Hard-override the segment color. Bypasses `dataViz/bg` token resolution
27
+ * entirely.
28
+ */
29
+ color?: string;
30
+ /**
31
+ * Per-segment design token mode overrides. Merged on top of the parent
32
+ * `modes` and the per-index Emphasis defaults.
33
+ */
34
+ modes?: Record<string, any>;
35
+ /** Override individual segment styles. */
36
+ style?: StyleProp<ViewStyle>;
37
+ /** Per-segment accessibility label. */
38
+ accessibilityLabel?: string;
39
+ };
40
+ export type SegmentedTrackProps = {
41
+ /**
42
+ * Data-driven segment list. Used when no `children` slot is provided.
43
+ * Defaults to three equal segments which receive per-index Emphasis
44
+ * defaults (`High`, `Medium`, `Low`).
45
+ */
46
+ segments?: SegmentedTrackSegmentData[];
47
+ /**
48
+ * Slot for fully custom segment children. Each top-level child is treated
49
+ * as one segment. The parent injects per-index Emphasis defaults and the
50
+ * shared `modes`, while child-level `modes` overrides win.
51
+ */
52
+ children?: React.ReactNode;
53
+ /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
54
+ modes?: Record<string, any>;
55
+ /** Override the container styles. */
56
+ style?: StyleProp<ViewStyle>;
57
+ /** Style applied to every segment (data-driven mode only). */
58
+ segmentStyle?: StyleProp<ViewStyle>;
59
+ /** Accessibility label announced for the whole distribution row. */
60
+ accessibilityLabel?: string;
61
+ };
62
+ type SegmentedTrackSegmentProps = {
63
+ /**
64
+ * Optional explicit weight used for proportional width (`flex: value`).
65
+ * Defaults to 1 (equal share within the parent row).
66
+ */
67
+ value?: number | undefined;
68
+ /**
69
+ * Hard-override the segment color. Bypasses `dataViz/bg` token resolution.
70
+ */
71
+ color?: string | undefined;
72
+ /**
73
+ * Design token modes for the segment. Merged with parent `modes` and the
74
+ * per-index Emphasis defaults injected by the parent `SegmentedTrack`.
75
+ */
76
+ modes?: Record<string, any> | undefined;
77
+ /** Override the segment styles. */
78
+ style?: StyleProp<ViewStyle> | undefined;
79
+ /** Per-segment accessibility label. */
80
+ accessibilityLabel?: string | undefined;
81
+ };
82
+ declare function SegmentedTrackSegment({ value, color, modes, style, accessibilityLabel, }: SegmentedTrackSegmentProps): import("react/jsx-runtime").JSX.Element;
83
+ /**
84
+ * `SegmentedTrack` renders a horizontal pill-shaped row of categorical
85
+ * segments. Use it for distribution / share-of breakdowns where each
86
+ * segment is a sibling category (not a directional or temporal progress).
87
+ *
88
+ * Defaults to three equal segments tinted at descending Emphasis levels
89
+ * (`High`, `Medium`, `Low`) so the shape reads as a single concept split
90
+ * three ways. Consumers can either pass the data-driven `segments` prop or
91
+ * a fully custom `children` slot of `SegmentedTrack.Segment`s.
92
+ *
93
+ * Each segment resolves its color through the `dataViz/bg` token, which
94
+ * cascades through `Emphasis / DataViz` and `Appearance / DataViz`. Pass
95
+ * `modes` per segment (or override `Appearance / DataViz` at the parent
96
+ * level via `modes`) to retheme the row without touching colors directly.
97
+ *
98
+ * @component
99
+ * @param {SegmentedTrackProps} props
100
+ */
101
+ declare function SegmentedTrack({ segments, children, modes: propModes, style, segmentStyle, accessibilityLabel, }: SegmentedTrackProps): import("react/jsx-runtime").JSX.Element;
102
+ declare namespace SegmentedTrack {
103
+ var Segment: typeof SegmentedTrackSegment;
104
+ }
105
+ export { SegmentedTrackSegment };
106
+ export type { SegmentedTrackSegmentProps };
107
+ export default SegmentedTrack;
108
+ //# sourceMappingURL=SegmentedTrack.d.ts.map
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type StatGroupItem = {
4
+ /** Stable key for the item. Falls back to the label / index. */
5
+ key?: React.Key;
6
+ /** The descriptive label shown beneath the value. */
7
+ label?: string;
8
+ /** The prominent value shown above the label. */
9
+ value?: string;
10
+ };
11
+ export type StatGroupProps = {
12
+ /**
13
+ * Array of stat items. Each item is rendered as a centered `StatItem`
14
+ * (`labelPosition="Bottom"`) with vertical dividers between them.
15
+ *
16
+ * Ignored when a `children` slot is provided.
17
+ */
18
+ items?: StatGroupItem[];
19
+ /**
20
+ * Custom slot content. When provided, the `items` prop is ignored. Each
21
+ * top-level child is wrapped to take an equal share of the available width
22
+ * and a vertical `Divider` is auto-inserted between siblings — matching the
23
+ * Figma `slot` behaviour. `modes` are propagated to all children.
24
+ */
25
+ children?: React.ReactNode;
26
+ /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
27
+ modes?: Record<string, any>;
28
+ /** Override container styles. */
29
+ style?: StyleProp<ViewStyle>;
30
+ };
31
+ /**
32
+ * StatGroup renders a card-style container holding a horizontal row of
33
+ * `StatItem`s separated by vertical dividers. It is typically used to surface
34
+ * 3–5 short metrics (e.g. validity, data range, storage) at a glance.
35
+ *
36
+ * Pass `items` for the simple data-driven case, or use the `children` slot
37
+ * for full control over the row contents (the component still auto-inserts
38
+ * vertical dividers between top-level children).
39
+ *
40
+ * @component
41
+ * @param {StatGroupProps} props
42
+ */
43
+ declare function StatGroup({ items, children, modes, style, }: StatGroupProps): import("react/jsx-runtime").JSX.Element;
44
+ export default StatGroup;
45
+ //# sourceMappingURL=StatGroup.d.ts.map
@@ -1,21 +1,38 @@
1
- import { type StyleProp, type ViewStyle } from 'react-native';
1
+ import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
2
+ export type StatItemLabelPosition = 'Top' | 'Bottom';
2
3
  export type StatItemProps = {
3
- /** The small descriptive label above the value. */
4
+ /** The small descriptive label. */
4
5
  label?: string;
5
- /** The large prominent value to display. */
6
+ /** The prominent value to display. */
6
7
  value?: string;
7
- /** Design token modes for theming. */
8
+ /**
9
+ * Whether the label is rendered above or below the value. Matches the
10
+ * Figma `labelPosition` variant. Defaults to `'Top'`.
11
+ *
12
+ * - `'Top'` — Label (12px medium) above large value (26px black). Left-aligned.
13
+ * - `'Bottom'` — Value (12px medium) above smaller label (10px regular). Center-aligned.
14
+ */
15
+ labelPosition?: StatItemLabelPosition;
16
+ /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
8
17
  modes?: Record<string, any>;
9
18
  /** Override container styles. */
10
19
  style?: StyleProp<ViewStyle>;
20
+ /** Override the label text styles. */
21
+ labelStyle?: StyleProp<TextStyle>;
22
+ /** Override the value text styles. */
23
+ valueStyle?: StyleProp<TextStyle>;
11
24
  };
12
25
  /**
13
- * StatItem displays a label/value pair with the value in a large, bold style.
14
- * Useful for metrics, product stats, or KPI callouts.
26
+ * StatItem displays a label/value pair, useful for product stats, metrics
27
+ * or KPI callouts.
28
+ *
29
+ * Supports two layouts via the `labelPosition` variant:
30
+ * - `'Top'` — Small label above a large prominent value (default).
31
+ * - `'Bottom'` — Value above a smaller label, content centered.
15
32
  *
16
33
  * @component
17
34
  * @param {StatItemProps} props
18
35
  */
19
- declare function StatItem({ label, value, modes, style, }: StatItemProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function StatItem({ label, value, labelPosition, modes, style, labelStyle, valueStyle, }: StatItemProps): import("react/jsx-runtime").JSX.Element;
20
37
  export default StatItem;
21
38
  //# sourceMappingURL=StatItem.d.ts.map
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import { View, type StyleProp, type ViewStyle } from 'react-native';
3
+ /**
4
+ * Confidence levels supported by the indicator. Mirrors the Figma `Confidence`
5
+ * mode collection exactly (`High` | `Medium` | `Low` | `None`).
6
+ */
7
+ export type StrengthIndicatorConfidence = 'High' | 'Medium' | 'Low' | 'None';
8
+ /**
9
+ * Accepted shape for the `confidence` prop. Either:
10
+ * - one of the named levels (`'High' | 'Medium' | 'Low' | 'None'`), or
11
+ * - a float in `[0, 1]`. Floats are bucketed to the nearest level using
12
+ * midpoint thresholds (1/6, 1/2, 5/6) so anchor values land squarely:
13
+ * `0` → `None`, `~0.33` → `Low`, `~0.66` → `Medium`, `1` → `High`.
14
+ * Values outside `[0, 1]` are clamped.
15
+ */
16
+ export type StrengthIndicatorConfidenceValue = StrengthIndicatorConfidence | number;
17
+ export type StrengthIndicatorProps = {
18
+ /**
19
+ * Overall confidence level. Accepts either the named enum value
20
+ * (`'High' | 'Medium' | 'Low' | 'None'`) or a float in `[0, 1]`:
21
+ *
22
+ * `1.0` (or `'High'`) → bars `[High, High, High]` (3/3 lit)
23
+ * `0.66` (or `'Medium'`) → bars `[Medium, Medium, None]` (2/3 lit)
24
+ * `0.33` (or `'Low'`) → bars `[Low, None, None]` (1/3 lit)
25
+ * `0.0` (or `'None'`) → bars `[None, None, None]` (0/3 lit)
26
+ *
27
+ * The component maps the resolved level to a per-bar confidence mode
28
+ * internally, so each bar's color resolves through the
29
+ * `strengthIndicator/bar/<size>/background` token using its own
30
+ * `Confidence` mode.
31
+ *
32
+ * Default: `'High'`.
33
+ */
34
+ confidence?: StrengthIndicatorConfidenceValue;
35
+ /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
36
+ modes?: Record<string, any>;
37
+ /** Override container styles. */
38
+ style?: StyleProp<ViewStyle>;
39
+ } & Omit<React.ComponentProps<typeof View>, 'style'>;
40
+ /**
41
+ * StrengthIndicator renders three fixed-size, ascending bars that
42
+ * communicate a discrete confidence/strength level — typically used to
43
+ * signal model confidence, signal quality, or password strength.
44
+ *
45
+ * Sizes are intentionally fixed (matching the Figma spec): 3px-wide bars
46
+ * 6/9/12px tall with a 2px gap and 2px container padding.
47
+ *
48
+ * Pass a single `confidence` value (named enum *or* float `[0, 1]`); the
49
+ * component normalizes it to a level, maps that level to a per-bar
50
+ * confidence mode, and resolves each bar's color through design tokens
51
+ * (`strengthIndicator/bar/<size>/background`).
52
+ *
53
+ * @component
54
+ * @param {StrengthIndicatorProps} props
55
+ */
56
+ declare function StrengthIndicator({ confidence, modes, style, ...rest }: StrengthIndicatorProps): import("react/jsx-runtime").JSX.Element;
57
+ export default StrengthIndicator;
58
+ //# sourceMappingURL=StrengthIndicator.d.ts.map
@@ -0,0 +1,60 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import { type StrengthIndicatorConfidenceValue } from '../StrengthIndicator/StrengthIndicator';
4
+ export type SummaryTileProps = {
5
+ /** Bold heading shown at the top-left of the tile. */
6
+ title?: string;
7
+ /** Smaller supporting copy rendered beneath the title. */
8
+ description?: string;
9
+ /**
10
+ * Confidence level for the inline `StrengthIndicator` next to the title.
11
+ * Defaults to `'None'` to match the Figma reference (all bars unlit).
12
+ * Pass `null` to hide the indicator entirely.
13
+ */
14
+ confidence?: StrengthIndicatorConfidenceValue | null;
15
+ /**
16
+ * When `true`, render a trailing forward chevron (`NavArrow`) — the
17
+ * convention for "tap the tile to drill in" affordance. Defaults to
18
+ * `false`.
19
+ */
20
+ chevron?: boolean;
21
+ /**
22
+ * Action slot rendered to the right of the text content. Defaults to a
23
+ * small `Button` (`Button / Size: 'S'`) labelled "Button" to match the
24
+ * Figma default. Pass `null` to render no action slot (typical for
25
+ * static tiles that want only a chevron).
26
+ */
27
+ children?: React.ReactNode;
28
+ /**
29
+ * Optional press handler for the entire tile. When provided, the tile
30
+ * is wrapped in a `Pressable`, gets `accessibilityRole="button"` and
31
+ * the default `Button` action slot is automatically suppressed so the
32
+ * rendered HTML doesn't contain a `<button>` inside another `<button>`
33
+ * (which would trigger a hydration warning on web). Pair this with
34
+ * `chevron` for the navigational tile pattern.
35
+ */
36
+ onPress?: () => void;
37
+ /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
38
+ modes?: Record<string, any>;
39
+ /** Override container styles. */
40
+ style?: StyleProp<ViewStyle>;
41
+ /** Override the title text styles. */
42
+ titleStyle?: StyleProp<TextStyle>;
43
+ /** Override the description text styles. */
44
+ descriptionStyle?: StyleProp<TextStyle>;
45
+ /** Accessibility label override (defaults to `title`). */
46
+ accessibilityLabel?: string;
47
+ };
48
+ /**
49
+ * SummaryTile composes a title (with an inline `StrengthIndicator`), a
50
+ * supporting description and an action slot into a compact horizontal row,
51
+ * commonly used at the top of dashboard cards (e.g. "Spending — know your
52
+ * spending and savings"). An optional trailing chevron and tile-level
53
+ * `onPress` handler turn the whole row into a navigational entry point.
54
+ *
55
+ * @component
56
+ * @param {SummaryTileProps} props
57
+ */
58
+ declare function SummaryTile({ title, description, confidence, chevron, children, onPress, modes, style, titleStyle, descriptionStyle, accessibilityLabel, }: SummaryTileProps): import("react/jsx-runtime").JSX.Element;
59
+ export default SummaryTile;
60
+ //# sourceMappingURL=SummaryTile.d.ts.map
@@ -1,7 +1,17 @@
1
+ import React from 'react';
1
2
  import { type TextStyle, type StyleProp } from 'react-native';
2
3
  export type TextProps = {
3
- /** The text content to display. */
4
+ /**
5
+ * The text content to display. You may also pass content as JSX children
6
+ * (e.g. `<Text>Hello</Text>`) — when both are provided, `children` wins.
7
+ */
4
8
  text?: string;
9
+ /**
10
+ * Child nodes (string, number, or nested <Text>/<RNText> elements). This
11
+ * mirrors the standard React Native `<Text>` API so the component is a
12
+ * near-drop-in replacement.
13
+ */
14
+ children?: React.ReactNode;
5
15
  /** Horizontal alignment of the text. */
6
16
  textAlign?: 'Left' | 'Center';
7
17
  /** Modes configuration for design token resolution. */
@@ -11,6 +21,6 @@ export type TextProps = {
11
21
  /** Number of lines to limit the text to. */
12
22
  numberOfLines?: number;
13
23
  };
14
- declare function Text({ text, textAlign, modes, style, numberOfLines, }: TextProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function Text({ text, children, textAlign, modes, style, numberOfLines, }: TextProps): import("react/jsx-runtime").JSX.Element;
15
25
  export default Text;
16
26
  //# sourceMappingURL=Text.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { Pressable } from 'react-native';
2
+ import { Pressable, ViewStyle } from 'react-native';
3
3
  export type Placement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
4
4
  export type TooltipProps = {
5
5
  children: ReactNode;
@@ -21,6 +21,17 @@ export declare function TooltipTrigger({ children, asChild, ...props }: TooltipT
21
21
  export type TooltipContentProps = {
22
22
  children: ReactNode;
23
23
  sideOffset?: number;
24
+ /**
25
+ * Vertical spacing between slot children, in pixels.
26
+ * The content area acts as a vertical slot: any children passed in
27
+ * (text, icons, custom views, etc.) are stacked top-to-bottom with this gap.
28
+ */
29
+ gap?: number;
30
+ /**
31
+ * Cross-axis alignment of slot children.
32
+ * Defaults to `flex-start` so multi-line/multi-element content lines up on the left.
33
+ */
34
+ alignItems?: ViewStyle['alignItems'];
24
35
  };
25
- export declare function TooltipContent({ children, sideOffset }: TooltipContentProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function TooltipContent({ children, sideOffset, gap, alignItems, }: TooltipContentProps): import("react/jsx-runtime").JSX.Element;
26
37
  //# sourceMappingURL=Tooltip.d.ts.map
@@ -1,3 +1,4 @@
1
+ export { default as AccountCard, type AccountCardProps, type AccountCardState } from './AccountCard/AccountCard';
1
2
  export { default as ActionFooter, type ActionFooterProps } from './ActionFooter/ActionFooter';
2
3
  export { default as AppBar } from './AppBar/AppBar';
3
4
  export { default as Avatar, type AvatarProps } from './Avatar/Avatar';
@@ -5,17 +6,24 @@ export { default as AvatarGroup } from './AvatarGroup/AvatarGroup';
5
6
  export { default as Badge } from './Badge/Badge';
6
7
  export { default as BottomNav } from './BottomNav/BottomNav';
7
8
  export { default as BottomNavItem } from './BottomNavItem/BottomNavItem';
9
+ export { default as BrandChip, type BrandChipProps } from './BrandChip/BrandChip';
8
10
  export { default as Button, type ButtonProps } from './Button/Button';
9
11
  export { default as Card } from './Card/Card';
10
12
  export { default as CardAdvisory, type CardAdvisoryProps } from './CardAdvisory/CardAdvisory';
13
+ export { default as CardBankAccount, type CardBankAccountProps, type CardBankAccountItem } from './CardBankAccount/CardBankAccount';
11
14
  export { default as Carousel } from './Carousel/Carousel';
12
15
  export type { CarouselProps, CarouselItemProps, PaginationProps } from './Carousel/Carousel';
13
16
  export { default as Checkbox, type CheckboxProps } from './Checkbox/Checkbox';
17
+ export { default as CheckboxItem, type CheckboxItemProps } from './CheckboxItem/CheckboxItem';
18
+ export { default as CheckboxGroup, type CheckboxGroupProps } from './CheckboxGroup/CheckboxGroup';
14
19
  export { default as CardFeedback, type CardFeedbackProps } from './CardFeedback/CardFeedback';
15
20
  export { default as CardFinancialCondition, type CardFinancialConditionProps } from './CardFinancialCondition/CardFinancialCondition';
21
+ export { default as CardInsight, type CardInsightProps } from './CardInsight/CardInsight';
16
22
  export { default as Disclaimer } from './Disclaimer/Disclaimer';
17
23
  export { default as Divider, type DividerProps, type DividerDirection } from './Divider/Divider';
18
24
  export { default as Drawer } from './Drawer/Drawer';
25
+ export { default as Dropdown, DropdownItem, type DropdownProps, type DropdownItemProps } from './Dropdown/Dropdown';
26
+ export { default as DropdownInput, type DropdownInputProps, type DropdownInputOption, type DropdownInputOptionValue } from './DropdownInput/DropdownInput';
19
27
  export { default as CardCTA, type CardCTAProps, type CardCTAType } from './CardCTA/CardCTA';
20
28
  export { default as DebitCard, type DebitCardProps } from './DebitCard/DebitCard';
21
29
  export { default as FilterBar } from './FilterBar/FilterBar';
@@ -25,6 +33,9 @@ export { default as FormField, type FormFieldProps, type FormFieldType } from '.
25
33
  export { default as CircularProgressBar, type CircularProgressBarProps } from './CircularProgressBar/CircularProgressBar';
26
34
  export { default as CircularProgressBarDoted, type CircularProgressBarDotedProps } from './CircularProgressBarDoted/CircularProgressBarDoted';
27
35
  export { default as CircularRating, type CircularRatingProps } from './CircularRating/CircularRating';
36
+ export { default as CoverageRing, type CoverageRingProps } from './CoverageRing/CoverageRing';
37
+ export { default as CoverageBarComparison, type CoverageBarComparisonProps, type CoverageBarComparisonItem } from './CoverageBarComparison/CoverageBarComparison';
38
+ export { default as MonthlyStatusGrid, CalendarGlyph, type MonthlyStatusGridProps, type MonthlyStatusGridMonth, type MonthlyStatus, type CalendarGlyphProps } from './MonthlyStatusGrid/MonthlyStatusGrid';
28
39
  export { default as Gauge, type GaugeProps } from './Gauge/Gauge';
29
40
  export { default as HoldingsCard, type HoldingsCardProps } from './HoldingsCard/HoldingsCard';
30
41
  export { default as HStack, type HStackProps } from './HStack/HStack';
@@ -33,10 +44,13 @@ export { default as IconCapsule } from './IconCapsule/IconCapsule';
33
44
  export { default as Image, type ImageProps } from './Image/Image';
34
45
  export { default as LazyList } from './LazyList/LazyList';
35
46
  export { default as LinearMeter, type LinearMeterProps } from './LinearMeter/LinearMeter';
47
+ export { default as LinearProgress, type LinearProgressProps } from './LinearProgress/LinearProgress';
36
48
  export { default as ListGroup } from './ListGroup/ListGroup';
49
+ export { default as LottieIntroBlock, type LottieIntroBlockProps } from './LottieIntroBlock/LottieIntroBlock';
37
50
  export { default as ListItem } from './ListItem/ListItem';
38
51
  export { default as MediaCard, type MediaCardProps } from './MediaCard/MediaCard';
39
52
  export { default as MerchantProfile, type MerchantProfileProps } from './MerchantProfile/MerchantProfile';
53
+ export { default as MetricLegendItem, type MetricLegendItemProps } from './MetricLegendItem/MetricLegendItem';
40
54
  export { default as MoneyValue } from './MoneyValue/MoneyValue';
41
55
  export { default as NoteInput, type NoteInputProps } from './NoteInput/NoteInput';
42
56
  export { default as Nudge, type NudgeProps } from './Nudge/Nudge';
@@ -51,7 +65,7 @@ export { StepLabel } from './Stepper/StepLabel';
51
65
  export { default as TextInput } from './TextInput/TextInput';
52
66
  export { default as StatusHero, type StatusHeroProps } from './StatusHero/StatusHero';
53
67
  export { default as ThreadHero, type ThreadHeroProps } from './ThreadHero/ThreadHero';
54
- export { Tooltip } from './Tooltip/Tooltip';
68
+ export { Tooltip, TooltipTrigger, TooltipContent, type TooltipProps, type TooltipTriggerProps, type TooltipContentProps, type Placement as TooltipPlacement, } from './Tooltip/Tooltip';
55
69
  export { default as TransactionDetails } from './TransactionDetails/TransactionDetails';
56
70
  export { default as TransactionStatus } from './TransactionStatus/TransactionStatus';
57
71
  export { default as TransactionBubble, type TransactionBubbleProps } from './TransactionBubble/TransactionBubble';
@@ -60,6 +74,7 @@ export { default as VStack, type VStackProps } from './VStack/VStack';
60
74
  export { default as ChipGroup, type ChipGroupProps } from './ChipGroup/ChipGroup';
61
75
  export { default as EmptyState, type EmptyStateProps } from './EmptyState/EmptyState';
62
76
  export { default as Accordion, type AccordionProps } from './Accordion/Accordion';
77
+ export { default as AccordionCheckbox, type AccordionCheckboxProps } from './AccordionCheckbox/AccordionCheckbox';
63
78
  export { default as ActionTile, type ActionTileProps } from './ActionTile/ActionTile';
64
79
  export { default as Balance, type BalanceProps } from './Balance/Balance';
65
80
  export { default as ButtonGroup, type ButtonGroupProps } from './ButtonGroup/ButtonGroup';
@@ -76,20 +91,31 @@ export { default as Radio, type RadioProps } from './Radio/Radio';
76
91
  */
77
92
  export { default as RadioButton, type RadioButtonProps } from './RadioButton/RadioButton';
78
93
  export { default as RechargeCard, type RechargeCardProps } from './RechargeCard/RechargeCard';
94
+ export { default as SavingsGoalSummary, type SavingsGoalSummaryProps, type SavingsGoalSummaryItem } from './SavingsGoalSummary/SavingsGoalSummary';
95
+ export { default as DonutChart, type DonutChartProps, type DonutChartSegmentData, type DonutChartSegmentProps, DonutChartSegment } from './DonutChart/DonutChart';
96
+ export { default as DonutChartSummary, type DonutChartSummaryProps, type DonutChartSummaryItem } from './DonutChartSummary/DonutChartSummary';
97
+ export { default as RangeTrack, type RangeTrackProps, type RangeTrackTab, type RangeTrackItem } from './RangeTrack/RangeTrack';
98
+ export { default as SegmentedTrack, type SegmentedTrackProps, type SegmentedTrackSegmentData, type SegmentedTrackSegmentProps, SegmentedTrackSegment } from './SegmentedTrack/SegmentedTrack';
79
99
  export { default as Tabs, type TabsProps } from './Tabs/Tabs';
80
100
  export { default as TabItem, type TabItemProps } from './Tabs/TabItem';
81
101
  export { default as Toast, type ToastProps } from './Toast/Toast';
82
102
  export { default as ToastProvider, type ToastProviderProps } from './Toast/ToastProvider';
83
103
  export { useToast, addToast, closeToast, closeAll, type ToastOptions, type ToastEntry, type ToastPlacement } from './Toast/useToast';
84
104
  export { default as AmountInput, type AmountInputProps } from './AmountInput/AmountInput';
105
+ export { default as PageHero, type PageHeroProps } from './PageHero/PageHero';
85
106
  export { default as Popup, type PopupProps, type PopupRef } from './Popup/Popup';
86
107
  export { default as PortfolioHero, type PortfolioHeroProps } from './PortfolioHero/PortfolioHero';
108
+ export { default as PoweredByLabel, type PoweredByLabelProps } from './PoweredByLabel/PoweredByLabel';
87
109
  export { default as ProductLabel, type ProductLabelProps } from './ProductLabel/ProductLabel';
110
+ export { default as ProductOverview, type ProductOverviewProps, type ProductOverviewStat } from './ProductOverview/ProductOverview';
88
111
  export { default as ProgressBadge, type ProgressBadgeProps } from './ProgressBadge/ProgressBadge';
89
112
  export { default as SwappableAmount, type SwappableAmountProps } from './SwappableAmount/SwappableAmount';
90
- export { default as OTP, type OTPProps } from './OTP/OTP';
113
+ export { default as OTP, OTPResend, useOtpResend, type OTPProps, type OTPResendProps, type OTPResendConfig, type UseOtpResendOptions, type UseOtpResendReturn, type OtpResendState, } from './OTP/OTP';
91
114
  export { default as PaymentFeedback, type PaymentFeedbackProps } from './PaymentFeedback/PaymentFeedback';
92
- export { default as StatItem, type StatItemProps } from './StatItem/StatItem';
115
+ export { default as StatItem, type StatItemProps, type StatItemLabelPosition } from './StatItem/StatItem';
116
+ export { default as StatGroup, type StatGroupProps, type StatGroupItem } from './StatGroup/StatGroup';
117
+ export { default as StrengthIndicator, type StrengthIndicatorProps, type StrengthIndicatorConfidence, type StrengthIndicatorConfidenceValue } from './StrengthIndicator/StrengthIndicator';
118
+ export { default as SummaryTile, type SummaryTileProps } from './SummaryTile/SummaryTile';
93
119
  export { default as Text, type TextProps } from './Text/Text';
94
120
  export { default as SegmentedControl, type SegmentedControlProps, type SegmentedControlItem } from './SegmentedControl/SegmentedControl';
95
121
  export { default as Toggle, type ToggleProps } from './Toggle/Toggle';
@@ -4,7 +4,7 @@
4
4
  * Auto-generated from SVG files in src/icons/
5
5
  * DO NOT EDIT MANUALLY - Run "npm run icons:generate" to regenerate
6
6
  *
7
- * Generated: 2026-05-04T12:27:11.660Z
7
+ * Generated: 2026-05-19T16:28:08.570Z
8
8
  */
9
9
  export declare const iconRegistry: Record<string, {
10
10
  path: string;
@@ -1,4 +1,5 @@
1
1
  export { cloneChildrenWithModes, flattenChildren } from './react-utils';
2
2
  export { default as MediaSource } from './MediaSource';
3
3
  export type { UnifiedSource, MediaSourceProps } from './MediaSource';
4
+ export { formatIndianNumber } from './number-utils';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Format a number using the Indian numeric system.
3
+ *
4
+ * - Below 1 lakh (100,000): standard Indian-locale comma grouping (e.g. `12,400`).
5
+ * - 1 lakh up to (but excluding) 1 crore: shorthand `L` (e.g. `2.4L`).
6
+ * - 1 crore and above: shorthand `Cr` (e.g. `1.2Cr`).
7
+ *
8
+ * Trailing zero decimals are trimmed, so `100000` becomes `1L` rather than `1.0L`.
9
+ * Negative values keep the sign (`-2.4L`). Non-finite inputs (`NaN`, `Infinity`)
10
+ * are returned via `String(value)` so callers can decide how to handle them.
11
+ *
12
+ * @example formatIndianNumber(240000) // "2.4L"
13
+ * @example formatIndianNumber(12400) // "12,400"
14
+ * @example formatIndianNumber(15000000) // "1.5Cr"
15
+ * @example formatIndianNumber(-100000) // "-1L"
16
+ * @example formatIndianNumber(99999) // "99,999"
17
+ *
18
+ * @param value The number to format.
19
+ * @param options Optional formatting overrides.
20
+ * @param options.decimals Maximum number of decimal places used in the
21
+ * shorthand `L` / `Cr` form. Defaults to `1`.
22
+ * @param options.prefix String to prefix the output with — useful for a
23
+ * currency symbol, e.g. `'₹'`. Defaults to `''`.
24
+ */
25
+ export declare function formatIndianNumber(value: number, options?: {
26
+ decimals?: number;
27
+ prefix?: string;
28
+ }): string;
29
+ //# sourceMappingURL=number-utils.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jfs-components",
3
- "version": "0.0.72",
3
+ "version": "0.0.74",
4
4
  "description": "React Native Jio Finance Components Library",
5
5
  "author": "sunshuaiqi@gmail.com",
6
6
  "license": "MIT",
@@ -36,8 +36,6 @@
36
36
  "storybook-web": "storybook dev -p 6006",
37
37
  "build:storybook-web": "storybook build",
38
38
  "deploy:storybook": "vercel --prod",
39
- "example": "yarn --cwd example start",
40
- "example:install": "yarn --cwd example install",
41
39
  "postinstall": "patch-package",
42
40
  "icons:generate": "node scripts/generate-icon-registry.js",
43
41
  "prepare": "bob build",