jfs-components 0.0.2 → 0.0.4

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 (105) hide show
  1. package/lib/commonjs/components/Accordion/Accordion.js +217 -0
  2. package/lib/commonjs/components/Accordion/Accordion.js.map +1 -0
  3. package/lib/commonjs/components/Accordion/Accordion.mdx +122 -0
  4. package/lib/commonjs/components/ActionTile/ActionTile.js +93 -0
  5. package/lib/commonjs/components/ActionTile/ActionTile.js.map +1 -0
  6. package/lib/commonjs/components/ActionTile/ActionTile.mdx +54 -0
  7. package/lib/commonjs/components/ActionTile/index.js +14 -0
  8. package/lib/commonjs/components/ActionTile/index.js.map +1 -0
  9. package/lib/commonjs/components/CtaCard/CtaCard.js +122 -0
  10. package/lib/commonjs/components/CtaCard/CtaCard.js.map +1 -0
  11. package/lib/commonjs/components/CtaCard/CtaCard.mdx +66 -0
  12. package/lib/commonjs/components/CtaCard/index.js +14 -0
  13. package/lib/commonjs/components/CtaCard/index.js.map +1 -0
  14. package/lib/commonjs/components/MoneyValue/MoneyValue.js +36 -4
  15. package/lib/commonjs/components/MoneyValue/MoneyValue.js.map +1 -1
  16. package/lib/commonjs/components/ThreadHero/ThreadHero.js +114 -0
  17. package/lib/commonjs/components/ThreadHero/ThreadHero.js.map +1 -0
  18. package/lib/commonjs/components/ThreadHero/ThreadHero.mdx +69 -0
  19. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +101 -0
  20. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js.map +1 -0
  21. package/lib/commonjs/components/TransactionBubble/TransactionBubble.mdx +40 -0
  22. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +177 -0
  23. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js.map +1 -0
  24. package/lib/commonjs/components/TransactionDetails/TransactionDetails.mdx +98 -0
  25. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +82 -0
  26. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js.map +1 -0
  27. package/lib/commonjs/components/TransactionStatus/TransactionStatus.mdx +41 -0
  28. package/lib/commonjs/components/index.js +35 -0
  29. package/lib/commonjs/components/index.js.map +1 -1
  30. package/lib/commonjs/design-tokens/figma-variables-resolver.js +3 -9
  31. package/lib/commonjs/icons/registry.js +1 -1
  32. package/lib/module/components/Accordion/Accordion.js +212 -0
  33. package/lib/module/components/Accordion/Accordion.js.map +1 -0
  34. package/lib/module/components/Accordion/Accordion.mdx +122 -0
  35. package/lib/module/components/ActionTile/ActionTile.js +88 -0
  36. package/lib/module/components/ActionTile/ActionTile.js.map +1 -0
  37. package/lib/module/components/ActionTile/ActionTile.mdx +54 -0
  38. package/lib/module/components/ActionTile/index.js +4 -0
  39. package/lib/module/components/ActionTile/index.js.map +1 -0
  40. package/lib/module/components/CtaCard/CtaCard.js +117 -0
  41. package/lib/module/components/CtaCard/CtaCard.js.map +1 -0
  42. package/lib/module/components/CtaCard/CtaCard.mdx +66 -0
  43. package/lib/module/components/CtaCard/index.js +4 -0
  44. package/lib/module/components/CtaCard/index.js.map +1 -0
  45. package/lib/module/components/MoneyValue/MoneyValue.js +36 -4
  46. package/lib/module/components/MoneyValue/MoneyValue.js.map +1 -1
  47. package/lib/module/components/ThreadHero/ThreadHero.js +109 -0
  48. package/lib/module/components/ThreadHero/ThreadHero.js.map +1 -0
  49. package/lib/module/components/ThreadHero/ThreadHero.mdx +69 -0
  50. package/lib/module/components/TransactionBubble/TransactionBubble.js +96 -0
  51. package/lib/module/components/TransactionBubble/TransactionBubble.js.map +1 -0
  52. package/lib/module/components/TransactionBubble/TransactionBubble.mdx +40 -0
  53. package/lib/module/components/TransactionDetails/TransactionDetails.js +174 -0
  54. package/lib/module/components/TransactionDetails/TransactionDetails.js.map +1 -0
  55. package/lib/module/components/TransactionDetails/TransactionDetails.mdx +98 -0
  56. package/lib/module/components/TransactionStatus/TransactionStatus.js +77 -0
  57. package/lib/module/components/TransactionStatus/TransactionStatus.js.map +1 -0
  58. package/lib/module/components/TransactionStatus/TransactionStatus.mdx +41 -0
  59. package/lib/module/components/index.js +5 -0
  60. package/lib/module/components/index.js.map +1 -1
  61. package/lib/module/icons/registry.js +1 -1
  62. package/lib/typescript/components/Accordion/Accordion.d.ts +58 -0
  63. package/lib/typescript/components/Accordion/Accordion.d.ts.map +1 -0
  64. package/lib/typescript/components/ActionTile/ActionTile.d.ts +26 -0
  65. package/lib/typescript/components/ActionTile/ActionTile.d.ts.map +1 -0
  66. package/lib/typescript/components/ActionTile/index.d.ts +2 -0
  67. package/lib/typescript/components/ActionTile/index.d.ts.map +1 -0
  68. package/lib/typescript/components/CtaCard/CtaCard.d.ts +61 -0
  69. package/lib/typescript/components/CtaCard/CtaCard.d.ts.map +1 -0
  70. package/lib/typescript/components/CtaCard/index.d.ts +2 -0
  71. package/lib/typescript/components/CtaCard/index.d.ts.map +1 -0
  72. package/lib/typescript/components/MoneyValue/MoneyValue.d.ts +9 -2
  73. package/lib/typescript/components/MoneyValue/MoneyValue.d.ts.map +1 -1
  74. package/lib/typescript/components/ThreadHero/ThreadHero.d.ts +21 -0
  75. package/lib/typescript/components/ThreadHero/ThreadHero.d.ts.map +1 -0
  76. package/lib/typescript/components/TransactionBubble/TransactionBubble.d.ts +24 -0
  77. package/lib/typescript/components/TransactionBubble/TransactionBubble.d.ts.map +1 -0
  78. package/lib/typescript/components/TransactionDetails/TransactionDetails.d.ts +57 -0
  79. package/lib/typescript/components/TransactionDetails/TransactionDetails.d.ts.map +1 -0
  80. package/lib/typescript/components/TransactionStatus/TransactionStatus.d.ts +16 -0
  81. package/lib/typescript/components/TransactionStatus/TransactionStatus.d.ts.map +1 -0
  82. package/lib/typescript/components/index.d.ts +5 -0
  83. package/lib/typescript/components/index.d.ts.map +1 -1
  84. package/lib/typescript/icons/registry.d.ts +1 -1
  85. package/package.json +5 -2
  86. package/src/components/.token-metadata.json +161 -0
  87. package/src/components/Accordion/Accordion.mdx +122 -0
  88. package/src/components/Accordion/Accordion.tsx +279 -0
  89. package/src/components/ActionTile/ActionTile.mdx +54 -0
  90. package/src/components/ActionTile/ActionTile.tsx +100 -0
  91. package/src/components/ActionTile/index.ts +1 -0
  92. package/src/components/CtaCard/CtaCard.mdx +66 -0
  93. package/src/components/CtaCard/CtaCard.tsx +185 -0
  94. package/src/components/CtaCard/index.ts +1 -0
  95. package/src/components/MoneyValue/MoneyValue.tsx +39 -3
  96. package/src/components/ThreadHero/ThreadHero.mdx +69 -0
  97. package/src/components/ThreadHero/ThreadHero.tsx +124 -0
  98. package/src/components/TransactionBubble/TransactionBubble.mdx +40 -0
  99. package/src/components/TransactionBubble/TransactionBubble.tsx +113 -0
  100. package/src/components/TransactionDetails/TransactionDetails.mdx +98 -0
  101. package/src/components/TransactionDetails/TransactionDetails.tsx +236 -0
  102. package/src/components/TransactionStatus/TransactionStatus.mdx +41 -0
  103. package/src/components/TransactionStatus/TransactionStatus.tsx +94 -0
  104. package/src/components/index.ts +5 -0
  105. package/src/icons/registry.ts +1 -1
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text } from 'react-native';
5
+ import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
+
7
+ /**
8
+ * Helper function to recursively clone children and pass modes prop to components that accept it.
9
+ */
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function cloneChildrenWithModes(children, modes) {
12
+ const result = React.Children.map(children, child => {
13
+ if (! /*#__PURE__*/React.isValidElement(child)) {
14
+ return child;
15
+ }
16
+ const childChildren = child.props?.children;
17
+ const hasChildren = childChildren !== undefined && childChildren !== null;
18
+ const existingModes = child.props?.modes;
19
+ const mergedModes = existingModes ? {
20
+ ...modes,
21
+ ...existingModes
22
+ } : modes;
23
+ const processedChildren = hasChildren ? cloneChildrenWithModes(React.Children.toArray(childChildren), modes) : undefined;
24
+ return /*#__PURE__*/React.cloneElement(child, {
25
+ ...child.props,
26
+ modes: mergedModes
27
+ }, processedChildren);
28
+ });
29
+ return result || [];
30
+ }
31
+
32
+ // ===== Item Subcomponent =====
33
+
34
+ /**
35
+ * Item component that displays a label-value pair, used within TransactionDetails.
36
+ * Access via `TransactionDetails.Item`.
37
+ *
38
+ * @component
39
+ * @param {Object} props
40
+ * @param {string} [props.label='Label'] - The label text displayed above the value.
41
+ * @param {string} [props.value='Value'] - The value text displayed below the label.
42
+ * @param {Object} [props.modes={}] - Modes object passed to `getVariableByName` for design tokens.
43
+ * @param {Object} [props.style] - Optional container style overrides.
44
+ * @param {Object} [props.labelStyle] - Optional label text style overrides.
45
+ * @param {Object} [props.valueStyle] - Optional value text style overrides.
46
+ * @param {string} [props.accessibilityLabel] - Accessibility label for screen readers.
47
+ */
48
+ function Item({
49
+ label = 'Label',
50
+ value = 'Value',
51
+ modes = {},
52
+ style,
53
+ labelStyle,
54
+ valueStyle,
55
+ accessibilityLabel,
56
+ ...rest
57
+ }) {
58
+ // Resolve design tokens for Item
59
+ const gap = getVariableByName('detailItem/gap', modes) ?? 4;
60
+
61
+ // Label typography tokens
62
+ const labelColor = getVariableByName('detailItem/label/color', modes) || '#0c0d10';
63
+ const labelFontSize = getVariableByName('detailItem/label/fontSize', modes) || 14;
64
+ const labelFontFamily = getVariableByName('detailItem/label/fontFamily', modes) || 'System';
65
+ const labelLineHeight = getVariableByName('detailItem/label/lineHeight', modes) || 17;
66
+ const labelFontWeightRaw = getVariableByName('detailItem/label/fontWeight', modes) || 500;
67
+ const labelFontWeight = typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw;
68
+
69
+ // Value typography tokens
70
+ const valueColor = getVariableByName('detailItem/value/color', modes) || '#24262b';
71
+ const valueFontSize = getVariableByName('detailItem/value/fontSize', modes) || 14;
72
+ const valueFontFamily = getVariableByName('detailItem/value/fontFamily', modes) || 'System';
73
+ const valueLineHeight = getVariableByName('detailItem/value/lineHeight', modes) || 17;
74
+ const valueFontWeightRaw = getVariableByName('detailItem/value/fontWeight', modes) || 'Medium';
75
+ const valueFontWeight = typeof valueFontWeightRaw === 'number' ? valueFontWeightRaw.toString() : valueFontWeightRaw === 'Medium' ? '500' : valueFontWeightRaw;
76
+ const containerStyle = {
77
+ flexDirection: 'column',
78
+ alignItems: 'flex-start',
79
+ justifyContent: 'center',
80
+ gap
81
+ };
82
+ const labelTextStyle = {
83
+ color: labelColor,
84
+ fontSize: labelFontSize,
85
+ fontFamily: labelFontFamily,
86
+ lineHeight: labelLineHeight,
87
+ fontWeight: labelFontWeight
88
+ };
89
+ const valueTextStyle = {
90
+ color: valueColor,
91
+ fontSize: valueFontSize,
92
+ fontFamily: valueFontFamily,
93
+ lineHeight: valueLineHeight,
94
+ fontWeight: valueFontWeight
95
+ };
96
+ const defaultAccessibilityLabel = accessibilityLabel || `${label}: ${value}`;
97
+ return /*#__PURE__*/_jsxs(View, {
98
+ style: [containerStyle, style],
99
+ accessibilityRole: "text",
100
+ accessibilityLabel: defaultAccessibilityLabel,
101
+ ...rest,
102
+ children: [/*#__PURE__*/_jsx(Text, {
103
+ style: [labelTextStyle, labelStyle],
104
+ accessibilityElementsHidden: true,
105
+ importantForAccessibility: "no",
106
+ children: label
107
+ }), /*#__PURE__*/_jsx(Text, {
108
+ style: [valueTextStyle, valueStyle],
109
+ accessibilityElementsHidden: true,
110
+ importantForAccessibility: "no",
111
+ children: value
112
+ })]
113
+ });
114
+ }
115
+
116
+ // ===== TransactionDetails Component =====
117
+
118
+ /**
119
+ * TransactionDetails component that displays a list of transaction detail items.
120
+ *
121
+ * This component serves as a container for TransactionDetails.Item children, applying consistent
122
+ * spacing and padding as defined by Figma design tokens.
123
+ *
124
+ * @component
125
+ * @param {Object} props
126
+ * @param {React.ReactNode} [props.children] - TransactionDetails.Item children to render.
127
+ * @param {Object} [props.modes={}] - Modes object passed to `getVariableByName` for design tokens.
128
+ * @param {Object} [props.style] - Optional container style overrides.
129
+ * @param {string} [props.accessibilityLabel] - Accessibility label for screen readers.
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * <TransactionDetails modes={{ 'Color Mode': 'Light' }}>
134
+ * <TransactionDetails.Item label="UPI transaction ID" value="101674916166" />
135
+ * <TransactionDetails.Item label="From" value="JioFinance • shivashankar@okjio" />
136
+ * <TransactionDetails.Item label="To" value="JioFinance • shivashankar@okjio" />
137
+ * <TransactionDetails.Item label="Payment method" value="UPI" />
138
+ * </TransactionDetails>
139
+ * ```
140
+ */
141
+ function TransactionDetails({
142
+ children,
143
+ modes = {},
144
+ style,
145
+ accessibilityLabel,
146
+ ...rest
147
+ }) {
148
+ // Resolve design tokens for TransactionDetails
149
+ const gap = getVariableByName('transationDetails/gap', modes) ?? 16;
150
+ const paddingHorizontal = getVariableByName('transationDetails/padding/horizontal', modes) ?? 0;
151
+ const paddingVertical = getVariableByName('transationDetails/padding/vertical', modes) ?? 0;
152
+ const containerStyle = {
153
+ flexDirection: 'column',
154
+ alignItems: 'flex-start',
155
+ gap,
156
+ paddingHorizontal,
157
+ paddingVertical
158
+ };
159
+
160
+ // Process children to pass modes prop
161
+ const processedChildren = children ? cloneChildrenWithModes(React.Children.toArray(children), modes) : null;
162
+ return /*#__PURE__*/_jsx(View, {
163
+ style: [containerStyle, style],
164
+ accessibilityRole: "summary",
165
+ accessibilityLabel: accessibilityLabel || 'Transaction details',
166
+ ...rest,
167
+ children: processedChildren
168
+ });
169
+ }
170
+
171
+ // Attach Item as a static property for compound component pattern
172
+ TransactionDetails.Item = Item;
173
+ export default TransactionDetails;
174
+ //# sourceMappingURL=TransactionDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","getVariableByName","jsx","_jsx","jsxs","_jsxs","cloneChildrenWithModes","children","modes","result","Children","map","child","isValidElement","childChildren","props","hasChildren","undefined","existingModes","mergedModes","processedChildren","toArray","cloneElement","Item","label","value","style","labelStyle","valueStyle","accessibilityLabel","rest","gap","labelColor","labelFontSize","labelFontFamily","labelLineHeight","labelFontWeightRaw","labelFontWeight","toString","valueColor","valueFontSize","valueFontFamily","valueLineHeight","valueFontWeightRaw","valueFontWeight","containerStyle","flexDirection","alignItems","justifyContent","labelTextStyle","color","fontSize","fontFamily","lineHeight","fontWeight","valueTextStyle","defaultAccessibilityLabel","accessibilityRole","accessibilityElementsHidden","importantForAccessibility","TransactionDetails","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/TransactionDetails/TransactionDetails.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,98 @@
1
+ import { Meta, Story, Canvas, PureArgsTable as ArgsTable } from '@storybook/addon-docs/blocks';
2
+ import * as TransactionDetailsStories from './TransactionDetails.stories';
3
+ import TransactionDetails from './TransactionDetails';
4
+ import { AccessibilitySection, AnatomySection, UsageConstraintsSection } from '../docs/DocSections';
5
+
6
+ <Meta of={TransactionDetailsStories} />
7
+
8
+ # TransactionDetails
9
+
10
+ TransactionDetails is a container component that displays a list of transaction detail items, each showing a label-value pair. It uses design tokens from Figma for consistent styling.
11
+
12
+ ## Available Collections and Modes
13
+
14
+ This component does not use any design token collections with multiple modes.
15
+ ## Usage
16
+
17
+ <Canvas>
18
+ <Story of={TransactionDetailsStories.Default} />
19
+ </Canvas>
20
+
21
+ ## Usage Example
22
+
23
+ ```tsx
24
+ import TransactionDetails from 'jfs-components';
25
+
26
+ function PaymentConfirmation() {
27
+ return (
28
+ <TransactionDetails>
29
+ <TransactionDetails.Item label="UPI transaction ID" value="101674916166" />
30
+ <TransactionDetails.Item label="From: 5678 XXXX XXXX 1234" value="JioFinance • shivashankar@okjio" />
31
+ <TransactionDetails.Item label="To: SHIVASHANKAR RAJAN" value="JioFinance • shivashankar@okjio" />
32
+ <TransactionDetails.Item label="Payment method" value="UPI" />
33
+ </TransactionDetails>
34
+ );
35
+ }
36
+ ```
37
+
38
+ ## Single Item
39
+
40
+ <Canvas>
41
+ <Story of={TransactionDetailsStories.SingleItem} />
42
+ </Canvas>
43
+
44
+ <AccessibilitySection
45
+ items={[
46
+ 'TransactionDetails has role "summary" for screen readers to announce it as a summary section.',
47
+ 'Each DetailItem has role "text" with a combined label and value for clear reading.',
48
+ 'Use descriptive labels that clearly indicate what the value represents.',
49
+ 'Ensure sufficient color contrast between label and value text.',
50
+ ]}
51
+ />
52
+
53
+ <AnatomySection>
54
+ <ul>
55
+ <li><strong>TransactionDetails (Container)</strong> — Wraps all Item children with consistent gap and padding.</li>
56
+ <li><strong>TransactionDetails.Item</strong> — Individual label-value pair component.</li>
57
+ <li><strong>Label</strong> — Descriptive text above the value, using token typography.</li>
58
+ <li><strong>Value</strong> — The actual data/content text, using token typography.</li>
59
+ </ul>
60
+ </AnatomySection>
61
+
62
+ <UsageConstraintsSection
63
+ items={[
64
+ 'Always use TransactionDetails.Item as direct children of TransactionDetails for proper mode propagation.',
65
+ 'Keep label text concise and descriptive.',
66
+ 'Values can be longer but consider text wrapping on smaller screens.',
67
+ 'Use consistent date/time and number formatting across all detail items.',
68
+ ]}
69
+ />
70
+
71
+ ## TransactionDetails Props
72
+
73
+ <ArgsTable of={TransactionDetails} />
74
+
75
+ ## TransactionDetails.Item Props
76
+
77
+ <ArgsTable of={TransactionDetails.Item} />
78
+
79
+ ## Design Tokens
80
+
81
+ This component uses the following design tokens, resolved through `getVariableByName`:
82
+
83
+ - **`detailItem/gap`**
84
+ - **`detailItem/label/color`**
85
+ - **`detailItem/label/fontFamily`**
86
+ - **`detailItem/label/fontSize`**
87
+ - **`detailItem/label/fontWeight`**
88
+ - **`detailItem/label/lineHeight`**
89
+ - **`detailItem/value/color`**
90
+ - **`detailItem/value/fontFamily`**
91
+ - **`detailItem/value/fontSize`**
92
+ - **`detailItem/value/fontWeight`**
93
+ - **`detailItem/value/lineHeight`**
94
+ - **`transationDetails/gap`**
95
+ - **`transationDetails/padding/horizontal`**
96
+ - **`transationDetails/padding/vertical`**
97
+
98
+ All tokens support mode-based theming through the `modes` prop.
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text } from 'react-native';
5
+ import { Svg, Path } from 'react-native-svg';
6
+ import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
7
+
8
+ // --- Internal Icon Component ---
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const StatusIcon = ({
11
+ modes = {},
12
+ width = 15,
13
+ height = 15,
14
+ color
15
+ }) => {
16
+ const resolvedColor = color || getVariableByName('transactionStatus/icon/color', modes) || '#F06D0F';
17
+ return /*#__PURE__*/_jsx(Svg, {
18
+ width: width,
19
+ height: height,
20
+ viewBox: "0 0 15 15",
21
+ fill: "none",
22
+ children: /*#__PURE__*/_jsx(Path, {
23
+ d: "M7.5 0C6.01664 0 4.5666 0.439867 3.33323 1.26398C2.09986 2.08809 1.13856 3.25943 0.570907 4.62987C0.00324963 6.00032 -0.145275 7.50832 0.144114 8.96318C0.433503 10.418 1.14781 11.7544 2.1967 12.8033C3.2456 13.8522 4.58197 14.5665 6.03683 14.8559C7.49168 15.1453 8.99968 14.9968 10.3701 14.4291C11.7406 13.8614 12.9119 12.9001 13.736 11.6668C14.5601 10.4334 15 8.98336 15 7.5C15 6.51509 14.806 5.53982 14.4291 4.62987C14.0522 3.71993 13.4997 2.89314 12.8033 2.1967C12.1069 1.50026 11.2801 0.947814 10.3701 0.570904C9.46019 0.193993 8.48492 0 7.5 0V0ZM6.75 3.375C6.75 3.17609 6.82902 2.98532 6.96967 2.84467C7.11033 2.70402 7.30109 2.625 7.5 2.625C7.69892 2.625 7.88968 2.70402 8.03033 2.84467C8.17099 2.98532 8.25 3.17609 8.25 3.375V7.875C8.25 8.07391 8.17099 8.26468 8.03033 8.40533C7.88968 8.54598 7.69892 8.625 7.5 8.625C7.30109 8.625 7.11033 8.54598 6.96967 8.40533C6.82902 8.26468 6.75 8.07391 6.75 7.875V3.375ZM7.5 12.375C7.2775 12.375 7.05999 12.309 6.87499 12.1854C6.68998 12.0618 6.54579 11.8861 6.46064 11.6805C6.37549 11.475 6.35321 11.2488 6.39662 11.0305C6.44003 10.8123 6.54717 10.6118 6.70451 10.4545C6.86184 10.2972 7.0623 10.19 7.28053 10.1466C7.49876 10.1032 7.72496 10.1255 7.93052 10.2106C8.13609 10.2958 8.31179 10.44 8.43541 10.625C8.55902 10.81 8.625 11.0275 8.625 11.25C8.625 11.5484 8.50648 11.8345 8.2955 12.0455C8.08452 12.2565 7.79837 12.375 7.5 12.375Z",
24
+ fill: resolvedColor,
25
+ fillRule: "evenodd" // Added based on typical icon behavior, though Figma output said 'nonzero' default. SVG data usually needs checking.
26
+ })
27
+ });
28
+ };
29
+
30
+ // --- Main Component ---
31
+
32
+ /**
33
+ * TransactionStatus component displaying status icon, label, and date.
34
+ */
35
+ export default function TransactionStatus({
36
+ status = 'Expired',
37
+ date = '20 Mar 2025',
38
+ modes = {},
39
+ style
40
+ }) {
41
+ const gap = Number(getVariableByName('transactionBubble/statusWrap/gap', modes)) || 4;
42
+ // Using 'transactionStatus' tokens for text
43
+ const textColor = getVariableByName('transactionStatus/color', modes) || '#191b1e';
44
+ const fontSize = Number(getVariableByName('transactionStatus/fontSize', modes)) || 12;
45
+ const lineHeight = Number(getVariableByName('transactionStatus/lineHeight', modes)) || 16;
46
+ const fontFamily = getVariableByName('transactionStatus/fontFamily', modes) || 'System';
47
+ const fontWeight = getVariableByName('transactionStatus/fontWeight2', modes) || '500';
48
+ const iconColor = getVariableByName('transactionStatus/icon/color', modes) || '#f06d0f';
49
+ const iconSize = Number(getVariableByName('transactionStatus/iconSize', modes)) || 18;
50
+ const containerStyle = {
51
+ flexDirection: 'row',
52
+ alignItems: 'center',
53
+ gap,
54
+ ...style
55
+ };
56
+ const textStyle = {
57
+ color: textColor,
58
+ fontSize,
59
+ lineHeight,
60
+ fontFamily,
61
+ fontWeight: fontWeight
62
+ };
63
+ return /*#__PURE__*/_jsxs(View, {
64
+ style: containerStyle,
65
+ children: [/*#__PURE__*/_jsx(StatusIcon, {
66
+ width: iconSize,
67
+ height: iconSize,
68
+ color: iconColor,
69
+ modes: modes
70
+ }), /*#__PURE__*/_jsxs(Text, {
71
+ style: textStyle,
72
+ numberOfLines: 1,
73
+ children: [status, " \xB7 ", date]
74
+ })]
75
+ });
76
+ }
77
+ //# sourceMappingURL=TransactionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","Svg","Path","getVariableByName","jsx","_jsx","jsxs","_jsxs","StatusIcon","modes","width","height","color","resolvedColor","viewBox","fill","children","d","fillRule","TransactionStatus","status","date","style","gap","Number","textColor","fontSize","lineHeight","fontFamily","fontWeight","iconColor","iconSize","containerStyle","flexDirection","alignItems","textStyle","numberOfLines"],"sourceRoot":"../../../../src","sources":["components/TransactionStatus/TransactionStatus.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,GAAG,EAAEC,IAAI,QAAQ,kBAAkB;AAC5C,SAASC,iBAAiB,QAAQ,8CAA8C;;AAEhF;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQA,MAAMC,UAAU,GAAGA,CAAC;EAChBC,KAAK,GAAG,CAAC,CAAC;EACVC,KAAK,GAAG,EAAE;EACVC,MAAM,GAAG,EAAE;EACXC;AACa,CAAC,KAAK;EACnB,MAAMC,aAAa,GAAGD,KAAK,IAAIT,iBAAiB,CAAC,8BAA8B,EAAEM,KAAK,CAAC,IAAI,SAAS;EAEpG,oBACIJ,IAAA,CAACJ,GAAG;IACAS,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfG,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IAAAC,QAAA,eAEXX,IAAA,CAACH,IAAI;MACDe,CAAC,EAAC,s2CAAs2C;MACx2CF,IAAI,EAAEF,aAAc;MACpBK,QAAQ,EAAC,SAAS,CAAC;IAAA,CACtB;EAAC,CACD,CAAC;AAEd,CAAC;;AAED;;AAaA;AACA;AACA;AACA,eAAe,SAASC,iBAAiBA,CAAC;EACtCC,MAAM,GAAG,SAAS;EAClBC,IAAI,GAAG,aAAa;EACpBZ,KAAK,GAAG,CAAC,CAAC;EACVa;AACoB,CAAC,EAAE;EACvB,MAAMC,GAAG,GAAGC,MAAM,CAACrB,iBAAiB,CAAC,kCAAkC,EAAEM,KAAK,CAAC,CAAC,IAAI,CAAC;EACrF;EACA,MAAMgB,SAAS,GAAGtB,iBAAiB,CAAC,yBAAyB,EAAEM,KAAK,CAAC,IAAI,SAAS;EAClF,MAAMiB,QAAQ,GAAGF,MAAM,CAACrB,iBAAiB,CAAC,4BAA4B,EAAEM,KAAK,CAAC,CAAC,IAAI,EAAE;EACrF,MAAMkB,UAAU,GAAGH,MAAM,CAACrB,iBAAiB,CAAC,8BAA8B,EAAEM,KAAK,CAAC,CAAC,IAAI,EAAE;EACzF,MAAMmB,UAAU,GAAGzB,iBAAiB,CAAC,8BAA8B,EAAEM,KAAK,CAAC,IAAI,QAAQ;EACvF,MAAMoB,UAAU,GAAG1B,iBAAiB,CAAC,+BAA+B,EAAEM,KAAK,CAAC,IAAI,KAAK;EAErF,MAAMqB,SAAS,GAAG3B,iBAAiB,CAAC,8BAA8B,EAAEM,KAAK,CAAC,IAAI,SAAS;EACvF,MAAMsB,QAAQ,GAAGP,MAAM,CAACrB,iBAAiB,CAAC,4BAA4B,EAAEM,KAAK,CAAC,CAAC,IAAI,EAAE;EAErF,MAAMuB,cAAyB,GAAG;IAC9BC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBX,GAAG;IACH,GAAGD;EACP,CAAC;EAED,MAAMa,SAAoB,GAAG;IACzBvB,KAAK,EAAEa,SAAS;IAChBC,QAAQ;IACRC,UAAU;IACVC,UAAU;IACVC,UAAU,EAAEA;EAChB,CAAC;EAED,oBACItB,KAAA,CAACR,IAAI;IAACuB,KAAK,EAAEU,cAAe;IAAAhB,QAAA,gBACxBX,IAAA,CAACG,UAAU;MAACE,KAAK,EAAEqB,QAAS;MAACpB,MAAM,EAAEoB,QAAS;MAACnB,KAAK,EAAEkB,SAAU;MAACrB,KAAK,EAAEA;IAAM,CAAE,CAAC,eACjFF,KAAA,CAACP,IAAI;MAACsB,KAAK,EAAEa,SAAU;MAACC,aAAa,EAAE,CAAE;MAAApB,QAAA,GACpCI,MAAM,EAAC,QAAG,EAACC,IAAI;IAAA,CACd,CAAC;EAAA,CACL,CAAC;AAEf","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import { Meta, Story, Canvas, PureArgsTable as ArgsTable } from '@storybook/addon-docs/blocks';
2
+ import * as TransactionStatusStories from './TransactionStatus.stories';
3
+ import TransactionStatus from './TransactionStatus';
4
+
5
+ <Meta of={TransactionStatusStories} />
6
+
7
+ # TransactionStatus
8
+
9
+ TransactionStatus component with design-token-driven styling.
10
+
11
+ ## Available Collections and Modes
12
+
13
+ This component uses the following design token collections. Each collection supports multiple modes that can be configured via the `modes` prop.
14
+
15
+ ### Transaction Status
16
+ - **Modes:** Request | Paid | Declined | Expired
17
+ - **Default:** Request
18
+ ## Usage
19
+
20
+ <Canvas>
21
+ <Story of={TransactionStatusStories.Default} />
22
+ </Canvas>
23
+
24
+ ## Props
25
+
26
+ <ArgsTable of={TransactionStatus} />
27
+
28
+ ## Design Tokens
29
+
30
+ This component uses the following design tokens, resolved through `getVariableByName`:
31
+
32
+ - **`transactionBubble/statusWrap/gap`**
33
+ - **`transactionStatus/color`**
34
+ - **`transactionStatus/fontFamily`**
35
+ - **`transactionStatus/fontSize`**
36
+ - **`transactionStatus/fontWeight2`**
37
+ - **`transactionStatus/icon/color`**
38
+ - **`transactionStatus/iconSize`**
39
+ - **`transactionStatus/lineHeight`**
40
+
41
+ All tokens support mode-based theming through the `modes` prop.
@@ -13,6 +13,7 @@ export { default as CardFeedback } from './CardFeedback/CardFeedback';
13
13
  export { default as Disclaimer } from './Disclaimer/Disclaimer';
14
14
  export { default as Divider } from './Divider/Divider';
15
15
  export { default as Drawer } from './Drawer/Drawer';
16
+ export { default as CtaCard } from './CtaCard/CtaCard';
16
17
  export { default as FilterBar } from './FilterBar/FilterBar';
17
18
  export { default as IconButton } from './IconButton/IconButton';
18
19
  export { default as IconCapsule } from './IconCapsule/IconCapsule';
@@ -29,6 +30,10 @@ export { default as Stepper } from './Stepper/Stepper';
29
30
  export { Step } from './Stepper/Step';
30
31
  export { StepLabel } from './Stepper/StepLabel';
31
32
  export { default as TextInput } from './TextInput/TextInput';
33
+ export { default as ThreadHero } from './ThreadHero/ThreadHero';
32
34
  export { Tooltip } from './Tooltip/Tooltip';
35
+ export { default as TransactionBubble } from './TransactionBubble/TransactionBubble';
36
+ export { default as TransactionDetails } from './TransactionDetails/TransactionDetails';
37
+ export { default as TransactionStatus } from './TransactionStatus/TransactionStatus';
33
38
  export { default as UpiHandle } from './UpiHandle/UpiHandle';
34
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","ActionFooter","AppBar","Avatar","AvatarGroup","Badge","BottomNav","BottomNavItem","Button","Card","CardFeedback","Disclaimer","Divider","Drawer","FilterBar","IconButton","IconCapsule","LazyList","ListGroup","ListItem","MediaCard","MerchantProfile","MoneyValue","NavArrow","PageTitle","Section","Stepper","Step","StepLabel","TextInput","Tooltip","UpiHandle"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,YAAY,QAAgC,6BAA6B;AAC7F,SAASD,OAAO,IAAIE,MAAM,QAAQ,iBAAiB;AACnD,SAASF,OAAO,IAAIG,MAAM,QAA0B,iBAAiB;AACrE,SAASH,OAAO,IAAII,WAAW,QAAQ,2BAA2B;AAClE,SAASJ,OAAO,IAAIK,KAAK,QAAQ,eAAe;AAChD,SAASL,OAAO,IAAIM,SAAS,QAAQ,uBAAuB;AAC5D,SAASN,OAAO,IAAIO,aAAa,QAAQ,+BAA+B;AACxE,SAASP,OAAO,IAAIQ,MAAM,QAA0B,iBAAiB;AACrE,SAASR,OAAO,IAAIS,IAAI,QAAQ,aAAa;AAC7C,SAAST,OAAO,IAAIU,YAAY,QAAQ,6BAA6B;AACrE,SAASV,OAAO,IAAIW,UAAU,QAAQ,yBAAyB;AAC/D,SAASX,OAAO,IAAIY,OAAO,QAAkD,mBAAmB;AAChG,SAASZ,OAAO,IAAIa,MAAM,QAAQ,iBAAiB;AACnD,SAASb,OAAO,IAAIc,SAAS,QAAQ,uBAAuB;AAC5D,SAASd,OAAO,IAAIe,UAAU,QAAQ,yBAAyB;AAC/D,SAASf,OAAO,IAAIgB,WAAW,QAAQ,2BAA2B;AAClE,SAAShB,OAAO,IAAIiB,QAAQ,QAAQ,qBAAqB;AACzD,SAASjB,OAAO,IAAIkB,SAAS,QAAQ,uBAAuB;AAC5D,SAASlB,OAAO,IAAImB,QAAQ,QAAQ,qBAAqB;AACzD,SAASnB,OAAO,IAAIoB,SAAS,QAAQ,uBAAuB;AAC5D,SAASpB,OAAO,IAAIqB,eAAe,QAAmC,mCAAmC;AACzG,SAASrB,OAAO,IAAIsB,UAAU,QAAQ,yBAAyB;AAC/D,SAAStB,OAAO,IAAIuB,QAAQ,QAAQ,qBAAqB;AACzD,SAASvB,OAAO,IAAIwB,SAAS,QAAQ,uBAAuB;AAC5D,SAASxB,OAAO,IAAIyB,OAAO,QAAQ,mBAAmB;AACtD,SAASzB,OAAO,IAAI0B,OAAO,QAAQ,mBAAmB;AACtD,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAAS5B,OAAO,IAAI6B,SAAS,QAAQ,uBAAuB;AAC5D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAAS9B,OAAO,IAAI+B,SAAS,QAAQ,uBAAuB","ignoreList":[]}
1
+ {"version":3,"names":["default","ActionFooter","AppBar","Avatar","AvatarGroup","Badge","BottomNav","BottomNavItem","Button","Card","CardFeedback","Disclaimer","Divider","Drawer","CtaCard","FilterBar","IconButton","IconCapsule","LazyList","ListGroup","ListItem","MediaCard","MerchantProfile","MoneyValue","NavArrow","PageTitle","Section","Stepper","Step","StepLabel","TextInput","ThreadHero","Tooltip","TransactionBubble","TransactionDetails","TransactionStatus","UpiHandle"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,YAAY,QAAgC,6BAA6B;AAC7F,SAASD,OAAO,IAAIE,MAAM,QAAQ,iBAAiB;AACnD,SAASF,OAAO,IAAIG,MAAM,QAA0B,iBAAiB;AACrE,SAASH,OAAO,IAAII,WAAW,QAAQ,2BAA2B;AAClE,SAASJ,OAAO,IAAIK,KAAK,QAAQ,eAAe;AAChD,SAASL,OAAO,IAAIM,SAAS,QAAQ,uBAAuB;AAC5D,SAASN,OAAO,IAAIO,aAAa,QAAQ,+BAA+B;AACxE,SAASP,OAAO,IAAIQ,MAAM,QAA0B,iBAAiB;AACrE,SAASR,OAAO,IAAIS,IAAI,QAAQ,aAAa;AAC7C,SAAST,OAAO,IAAIU,YAAY,QAAQ,6BAA6B;AACrE,SAASV,OAAO,IAAIW,UAAU,QAAQ,yBAAyB;AAC/D,SAASX,OAAO,IAAIY,OAAO,QAAkD,mBAAmB;AAChG,SAASZ,OAAO,IAAIa,MAAM,QAAQ,iBAAiB;AACnD,SAASb,OAAO,IAAIc,OAAO,QAAQ,mBAAmB;AACtD,SAASd,OAAO,IAAIe,SAAS,QAAQ,uBAAuB;AAC5D,SAASf,OAAO,IAAIgB,UAAU,QAAQ,yBAAyB;AAC/D,SAAShB,OAAO,IAAIiB,WAAW,QAAQ,2BAA2B;AAClE,SAASjB,OAAO,IAAIkB,QAAQ,QAAQ,qBAAqB;AACzD,SAASlB,OAAO,IAAImB,SAAS,QAAQ,uBAAuB;AAC5D,SAASnB,OAAO,IAAIoB,QAAQ,QAAQ,qBAAqB;AACzD,SAASpB,OAAO,IAAIqB,SAAS,QAAQ,uBAAuB;AAC5D,SAASrB,OAAO,IAAIsB,eAAe,QAAmC,mCAAmC;AACzG,SAAStB,OAAO,IAAIuB,UAAU,QAAQ,yBAAyB;AAC/D,SAASvB,OAAO,IAAIwB,QAAQ,QAAQ,qBAAqB;AACzD,SAASxB,OAAO,IAAIyB,SAAS,QAAQ,uBAAuB;AAC5D,SAASzB,OAAO,IAAI0B,OAAO,QAAQ,mBAAmB;AACtD,SAAS1B,OAAO,IAAI2B,OAAO,QAAQ,mBAAmB;AACtD,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAAS7B,OAAO,IAAI8B,SAAS,QAAQ,uBAAuB;AAC5D,SAAS9B,OAAO,IAAI+B,UAAU,QAA8B,yBAAyB;AACrF,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAAShC,OAAO,IAAIiC,iBAAiB,QAAQ,uCAAuC;AACpF,SAASjC,OAAO,IAAIkC,kBAAkB,QAAQ,yCAAyC;AACvF,SAASlC,OAAO,IAAImC,iBAAiB,QAAQ,uCAAuC;AACpF,SAASnC,OAAO,IAAIoC,SAAS,QAAQ,uBAAuB","ignoreList":[]}