@1money/component-ui 0.0.42 → 0.0.44
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.
- package/README.md +19 -24
- package/es/components/Dropdown/Dropdown.js +11 -3
- package/es/components/Icons/interface.d.ts +3 -0
- package/es/components/Input/FieldShell/FieldShell.css +1 -1
- package/es/components/Input/FieldShell/FieldShell.js +2 -3
- package/es/components/Select/Select.js +130 -91
- package/es/components/Select/SelectCustom.d.ts +6 -0
- package/es/components/Select/SelectCustom.js +232 -0
- package/es/components/Select/SelectFieldShell.d.ts +2 -0
- package/es/components/Select/SelectFieldShell.js +12 -4
- package/es/components/Select/SelectOptionContent.d.ts +8 -0
- package/es/components/Select/SelectOptionContent.js +20 -11
- package/es/components/Select/SelectSearchControl.d.ts +3 -0
- package/es/components/Select/SelectSearchControl.js +9 -4
- package/es/components/Select/index.d.ts +5 -2
- package/es/components/Select/index.js +8 -3
- package/es/components/Select/interface.d.ts +147 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Select/useSelectShell.d.ts +34 -0
- package/es/components/Select/useSelectShell.js +106 -0
- package/es/components/Trigger/Trigger.js +33 -8
- package/es/components/Trigger/interface.d.ts +25 -2
- package/es/components/Upload/interface.d.ts +2 -0
- package/es/hooks/index.d.ts +2 -0
- package/es/hooks/index.js +2 -0
- package/es/hooks/useFloatingAnimation.d.ts +24 -0
- package/es/hooks/useFloatingAnimation.js +45 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +1 -1
- package/es/stories/docs/ComponentDocsPage.js +2 -2
- package/es/stories/docs/componentDocMeta.js +1 -4
- package/lib/components/Dropdown/Dropdown.js +11 -3
- package/lib/components/Icons/interface.d.ts +3 -0
- package/lib/components/Input/FieldShell/FieldShell.css +1 -1
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Select/Select.js +129 -90
- package/lib/components/Select/SelectCustom.d.ts +6 -0
- package/lib/components/Select/SelectCustom.js +242 -0
- package/lib/components/Select/SelectFieldShell.d.ts +2 -0
- package/lib/components/Select/SelectFieldShell.js +12 -4
- package/lib/components/Select/SelectOptionContent.d.ts +8 -0
- package/lib/components/Select/SelectOptionContent.js +21 -12
- package/lib/components/Select/SelectSearchControl.d.ts +3 -0
- package/lib/components/Select/SelectSearchControl.js +9 -4
- package/lib/components/Select/index.d.ts +5 -2
- package/lib/components/Select/index.js +9 -17
- package/lib/components/Select/interface.d.ts +147 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Select/useSelectShell.d.ts +34 -0
- package/lib/components/Select/useSelectShell.js +114 -0
- package/lib/components/Trigger/Trigger.js +32 -7
- package/lib/components/Trigger/interface.d.ts +25 -2
- package/lib/components/Upload/interface.d.ts +2 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.js +13 -0
- package/lib/hooks/useFloatingAnimation.d.ts +24 -0
- package/lib/hooks/useFloatingAnimation.js +51 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +2 -2
- package/lib/stories/docs/componentDocMeta.js +1 -4
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +549 -519
- package/scripts/mcp-server/index.generated.json +887 -583
|
@@ -37,12 +37,6 @@
|
|
|
37
37
|
"source": "readme",
|
|
38
38
|
"compilable": true
|
|
39
39
|
},
|
|
40
|
-
"02eb41ce0715973b9fe2fb88cf59851f0fa8962318df7f86a9405a50cfe907b2": {
|
|
41
|
-
"title": "Canonical usage",
|
|
42
|
-
"code": "import { Checkbox } from '@1money/components-ui';\n// or\nimport { Checkbox } from '@1money/components-ui/Checkbox';",
|
|
43
|
-
"source": "canonical",
|
|
44
|
-
"compilable": true
|
|
45
|
-
},
|
|
46
40
|
"034773bdaca67ca0d5a236ca92c3d84403ca823cb8249eacea2414545523ab3d": {
|
|
47
41
|
"title": "Grouped",
|
|
48
42
|
"code": "{\n const [value, setValue] = useState<string | number | undefined>('usdt');\n\n return (\n <Select\n {...args}\n value={value}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n );\n }",
|
|
@@ -67,18 +61,18 @@
|
|
|
67
61
|
"source": "stories",
|
|
68
62
|
"compilable": false
|
|
69
63
|
},
|
|
70
|
-
"0438a4317a7d7a552850cb51936a9650a74930e6c8b9e8a6f8c36de31ab885a0": {
|
|
71
|
-
"title": "Canonical usage",
|
|
72
|
-
"code": "import { Trigger } from '@1money/components-ui';\n// or\nimport { Trigger } from '@1money/components-ui/Trigger';",
|
|
73
|
-
"source": "canonical",
|
|
74
|
-
"compilable": true
|
|
75
|
-
},
|
|
76
64
|
"047c2f9b4e0f29aa1bfa1d29f631e05af609d686dc8ddcf1ab8a44f3838c16a5": {
|
|
77
65
|
"title": "Default",
|
|
78
66
|
"code": "<DashboardTemplate />",
|
|
79
67
|
"source": "stories",
|
|
80
68
|
"compilable": true
|
|
81
69
|
},
|
|
70
|
+
"059d700d7a0e1ac3f3128b3461d9f1e718e140448690ccb50db0915c49cd7461": {
|
|
71
|
+
"title": "Canonical usage",
|
|
72
|
+
"code": "import { Alert } from '@1money/component-ui';\n// or\nimport { Alert } from '@1money/component-ui/Alert';",
|
|
73
|
+
"source": "canonical",
|
|
74
|
+
"compilable": true
|
|
75
|
+
},
|
|
82
76
|
"06b3a8e6513382a6e7d5bd530b625d83a008bbb52aa5f05cb2812e54e8854b3a": {
|
|
83
77
|
"title": "Api Examples",
|
|
84
78
|
"code": "<div style={DEMO_SECTION_STYLE}>\n <Row\n gutter={GRID_GUTTER_SPACED}\n align={GRID_ALIGN.middle}\n justify={GRID_JUSTIFY.spaceBetween}\n wrap={WRAP_DISABLED}\n prefixCls={GRID_ROW_PREFIX}\n >\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}><div style={DEMO_BOX_STYLE}>Span</div></Col>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}><div style={DEMO_BOX_STYLE}>Span</div></Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_COMPACT} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_QUARTER} offset={OFFSET_SMALL} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Offset</div>\n </Col>\n <Col span={SPAN_QUARTER} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Offset</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_COMPACT} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_QUARTER} push={PUSH_SMALL} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Push</div>\n </Col>\n <Col span={SPAN_QUARTER} pull={PULL_SMALL} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Pull</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_RESPONSIVE} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Responsive Gutter</div>\n </Col>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Responsive Gutter</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_REM} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>String Gutter</div>\n </Col>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>String Gutter</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_COMPACT} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_QUARTER} order={ORDER_LAST} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Order</div>\n </Col>\n <Col span={SPAN_QUARTER} order={ORDER_FIRST} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Order</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_COMPACT} prefixCls={GRID_ROW_PREFIX}>\n <Col flex={FLEX_ONE} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Flex 1</div>\n </Col>\n <Col flex={FLEX_TWO} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Flex 2</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED} wrap={WRAP_ENABLED} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_BASE} sm={SPAN_SM} md={{ span: SPAN_MD, offset: OFFSET_SMALL }} lg={SPAN_LG} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Responsive</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED} justify={JUSTIFY_RESPONSIVE} prefixCls={GRID_ROW_PREFIX}>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Justify Responsive</div>\n </Col>\n <Col span={SPAN_HALF} prefixCls={GRID_COL_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Justify Responsive</div>\n </Col>\n </Row>\n\n </div>",
|
|
@@ -103,21 +97,27 @@
|
|
|
103
97
|
"source": "stories",
|
|
104
98
|
"compilable": true
|
|
105
99
|
},
|
|
100
|
+
"07987ce3193833ae5e02466d3b7ea1e51372a52d41cdafaa11450f4bab575130": {
|
|
101
|
+
"title": "Canonical usage",
|
|
102
|
+
"code": "import { Dropdown } from '@1money/component-ui';\n// or\nimport { Dropdown } from '@1money/component-ui/Dropdown';",
|
|
103
|
+
"source": "canonical",
|
|
104
|
+
"compilable": true
|
|
105
|
+
},
|
|
106
106
|
"07a4236cc3c96aa1a14a8ab647fef5e00704b05042314ec5815451b3dd3b5ba0": {
|
|
107
107
|
"title": "Usage",
|
|
108
108
|
"code": "<Typography.Display size=\"lg\">Account Overview</Typography.Display>\n\n<Typography.Headline size=\"md\">Settlement Timeline</Typography.Headline>\n\n<Typography.Title size=\"sm\" strong>\n Customer Details\n</Typography.Title>\n\n<Typography.Body size=\"md\" as=\"p\">\n Semantic body copy keeps product text aligned with the shared typography scale.\n</Typography.Body>\n\n<Typography.Body size=\"md\" ellipsis={{ tooltip: true }} copyable>\n 0x814f0d3a9b2c7e1f5d6a8b4c3e2f1a0d9c8b7a6f749f\n</Typography.Body>\n\n<Typography.Label size=\"sm\" htmlFor=\"email\">\n Email\n</Typography.Label>\n\n<Typography.Link size=\"md\" href=\"https://ant.design/components/typography/\" target=\"_blank\">\n Typography reference\n</Typography.Link>",
|
|
109
109
|
"source": "readme",
|
|
110
110
|
"compilable": true
|
|
111
111
|
},
|
|
112
|
-
"
|
|
113
|
-
"title": "
|
|
114
|
-
"code": "import {
|
|
115
|
-
"source": "
|
|
112
|
+
"07cacb15e560cfbe8f05e93459b5f0d51faf5fd0a01b0995368a360610e18d30": {
|
|
113
|
+
"title": "Import",
|
|
114
|
+
"code": "import {\n ProForm,\n ProFormText,\n ProFormSelect,\n DialogForm,\n QueryFilter,\n} from '@1money/component-ui';\n// or\nimport { ProForm, ProFormText } from '@1money/component-ui/ProForm';",
|
|
115
|
+
"source": "readme",
|
|
116
116
|
"compilable": true
|
|
117
117
|
},
|
|
118
|
-
"
|
|
118
|
+
"08616eb7b07c701d8cd3872fb1e802eac207a2cf2a3a802b28360fc7112d1ca8": {
|
|
119
119
|
"title": "Import",
|
|
120
|
-
"code": "import {
|
|
120
|
+
"code": "import { Calendar } from '@1money/component-ui';\n// or\nimport { Calendar } from '@1money/component-ui/Calendar';",
|
|
121
121
|
"source": "readme",
|
|
122
122
|
"compilable": true
|
|
123
123
|
},
|
|
@@ -133,10 +133,10 @@
|
|
|
133
133
|
"source": "stories",
|
|
134
134
|
"compilable": true
|
|
135
135
|
},
|
|
136
|
-
"
|
|
137
|
-
"title": "
|
|
138
|
-
"code": "import {
|
|
139
|
-
"source": "
|
|
136
|
+
"0af966e9349f745d71c776d3f6e0547aecbbb0d12fb0a9964b1ec02d8a61baae": {
|
|
137
|
+
"title": "Import",
|
|
138
|
+
"code": "import { Dialog } from '@1money/component-ui';\n// or\nimport { Dialog } from '@1money/component-ui/Dialog';",
|
|
139
|
+
"source": "readme",
|
|
140
140
|
"compilable": true
|
|
141
141
|
},
|
|
142
142
|
"0c7c04366337519cd94b38f5358dfa8f9eec80c8f289ba172def5f00e1a89ba3": {
|
|
@@ -145,30 +145,48 @@
|
|
|
145
145
|
"source": "stories",
|
|
146
146
|
"compilable": false
|
|
147
147
|
},
|
|
148
|
+
"0c865e04e29af2a17146034e78e156e8271e4c6700f4b8d431d67f0ba04a6d6a": {
|
|
149
|
+
"title": "Canonical usage",
|
|
150
|
+
"code": "import {\n ProForm,\n ProFormText,\n ProFormSelect,\n DialogForm,\n QueryFilter,\n} from '@1money/component-ui';\n// or\nimport { ProForm, ProFormText } from '@1money/component-ui/ProForm';",
|
|
151
|
+
"source": "canonical",
|
|
152
|
+
"compilable": true
|
|
153
|
+
},
|
|
148
154
|
"0caa8e66489f540fb7f7969ee8d11091048124739a3d26ddcbc22e6ba567048f": {
|
|
149
155
|
"title": "No Submitter",
|
|
150
156
|
"code": "<ProForm {...args} submitter={false}>\n <ProFormText name=\"search\" label=\"Search\" placeholder=\"Type to search...\" />\n </ProForm>",
|
|
151
157
|
"source": "stories",
|
|
152
158
|
"compilable": false
|
|
153
159
|
},
|
|
160
|
+
"0cda435f1e77eae5e9d6a2c883f7b45f34643b77a9a4f8ca3d23ea33a09b9a01": {
|
|
161
|
+
"title": "Responsive Usage",
|
|
162
|
+
"code": "const GRID_GUTTER = { sm: 8, md: 16, lg: 24 };\nconst SPAN_BASE = 12;\nconst SPAN_SM = 6;\nconst SPAN_MD = 4;\nconst OFFSET_MD = 2;\nconst SPAN_LARGE = 3;\n\nimport { GRID_JUSTIFY } from '@1money/component-ui/Grid';\n\nconst GRID_JUSTIFY_RESPONSIVE = {\n sm: GRID_JUSTIFY.start,\n md: GRID_JUSTIFY.spaceBetween,\n lg: GRID_JUSTIFY.end\n};\nconst PUSH_COL = 1;\nconst PULL_COL = 1;\n\n<Grid gutter={GRID_GUTTER}>\n <Grid.Col span={SPAN_BASE} sm={SPAN_SM} md={{ span: SPAN_MD, offset: OFFSET_MD }} lg={SPAN_LARGE} />\n</Grid>\n\n<Grid gutter={GRID_GUTTER} justify={GRID_JUSTIFY_RESPONSIVE}>\n <Grid.Col span={SPAN_BASE} sm={SPAN_SM} md={{ span: SPAN_MD, offset: OFFSET_MD }} lg={SPAN_LARGE} />\n <Grid.Col span={SPAN_BASE} push={PUSH_COL} pull={PULL_COL} />\n</Grid>",
|
|
163
|
+
"source": "readme",
|
|
164
|
+
"compilable": true
|
|
165
|
+
},
|
|
154
166
|
"0df7d43ad53f6a66386ebad5a61eaaf088d0b9200a5fb97e51f6c4964aefd05e": {
|
|
155
167
|
"title": "Usage",
|
|
156
168
|
"code": "<Switch label=\"Notifications\" onChange={(checked) => console.log(checked)} />\n\n<Switch\n label=\"Dark Mode\"\n description=\"Enable dark theme across the app\"\n defaultChecked\n/>",
|
|
157
169
|
"source": "readme",
|
|
158
170
|
"compilable": true
|
|
159
171
|
},
|
|
172
|
+
"10c3dc4b995524ead942626d1a9e7ef96f11e52235700d42ddbf138090b3a9ad": {
|
|
173
|
+
"title": "Canonical usage",
|
|
174
|
+
"code": "import { Slider } from '@1money/component-ui';\n// or\nimport { Slider } from '@1money/component-ui/Slider';",
|
|
175
|
+
"source": "canonical",
|
|
176
|
+
"compilable": true
|
|
177
|
+
},
|
|
178
|
+
"11a75effde4de419507479c188f4208bc45d4e54ee6928476375f622ea51f29d": {
|
|
179
|
+
"title": "Canonical usage",
|
|
180
|
+
"code": "import { ResizeObserver, useResizeObserver } from '@1money/component-ui';\n// or\nimport { ResizeObserver, Collection, useResizeObserver } from '@1money/component-ui/ResizeObserver';",
|
|
181
|
+
"source": "canonical",
|
|
182
|
+
"compilable": true
|
|
183
|
+
},
|
|
160
184
|
"11f60c018746e51bd823c5ce8039341a2200f2e132e62e58f99f23cfe2166cbd": {
|
|
161
185
|
"title": "All Variants",
|
|
162
186
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n {PROGRESS_COLORS.map(color => (\n <div key={color} style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <h3 style={{ margin: 0 }}>{color}</h3>\n {PROGRESS_PLACEMENTS.map(placement => (\n <div key={`${color}-${placement}`} style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <h4 style={{ margin: 0 }}>{placement}</h4>\n {PROGRESS_STATES.map(state => (\n <Progress\n {...args}\n key={`${color}-${placement}-${state}`}\n color={color}\n placement={placement}\n state={state}\n percent={state === 'success' ? 100 : state === 'not-started' ? 0 : 25}\n feedback={state === 'error' ? 'Feedback' : undefined}\n />\n ))}\n </div>\n ))}\n </div>\n ))}\n </div>",
|
|
163
187
|
"source": "stories",
|
|
164
188
|
"compilable": false
|
|
165
189
|
},
|
|
166
|
-
"121fd04bd739e98c6ccc312a1be13069715c343ad66bcbd8e3b076ee2611f60a": {
|
|
167
|
-
"title": "Canonical usage",
|
|
168
|
-
"code": "import type { IconsProps } from '@1money/component-ui';",
|
|
169
|
-
"source": "canonical",
|
|
170
|
-
"compilable": true
|
|
171
|
-
},
|
|
172
190
|
"123291e7b1b33126adc91e8204e4002c37c71a74eb5bfca67a4da71b9aec2f6a": {
|
|
173
191
|
"title": "Default",
|
|
174
192
|
"code": "{\n const [value, setValue] = useState<string | number | undefined>('btc');\n\n return (\n <Select\n {...args}\n value={value}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n );\n }",
|
|
@@ -181,18 +199,24 @@
|
|
|
181
199
|
"source": "stories",
|
|
182
200
|
"compilable": false
|
|
183
201
|
},
|
|
184
|
-
"124abe44040ddcd13aa6aad8f0dd237bae86b652e64005957c39324a2182b934": {
|
|
185
|
-
"title": "Import",
|
|
186
|
-
"code": "import { Typography } from '@1money/components-ui';\n// or\nimport { Typography } from '@1money/components-ui/Typography';",
|
|
187
|
-
"source": "readme",
|
|
188
|
-
"compilable": true
|
|
189
|
-
},
|
|
190
202
|
"144e248f0e0e1f5a681bdd8625add8d71643d3cca3f40bd840d914b057970d9a": {
|
|
191
203
|
"title": "All Variants",
|
|
192
204
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <div>\n <p style={{ marginBottom: 8 }}>Default</p>\n <Copy {...args} contained/>\n </div>\n <div>\n <Copy {...args} contained={false} />\n </div>\n </div>",
|
|
193
205
|
"source": "stories",
|
|
194
206
|
"compilable": false
|
|
195
207
|
},
|
|
208
|
+
"1673418288f034d6e46db906f3b2fb8a2079625c30f15ed4c7c35c0e4568f940": {
|
|
209
|
+
"title": "Basic Usage",
|
|
210
|
+
"code": "import { Grid } from '@1money/component-ui';\nimport { GRID_ALIGN, GRID_JUSTIFY } from '@1money/component-ui/Grid';\n\nconst GRID_GUTTER: [number, number] = [16, 8];\nconst SPAN_HALF = 6;\n\n<Grid gutter={GRID_GUTTER} justify={GRID_JUSTIFY.spaceBetween} align={GRID_ALIGN.middle}>\n <Grid.Col span={SPAN_HALF}>Left</Grid.Col>\n <Grid.Col span={SPAN_HALF}>Right</Grid.Col>\n</Grid>",
|
|
211
|
+
"source": "readme",
|
|
212
|
+
"compilable": true
|
|
213
|
+
},
|
|
214
|
+
"17a413d259fae192ca2f0c09fc23af856852b5f5ca65c1efa9dcb95480776ede": {
|
|
215
|
+
"title": "Disabled Vs Read Only",
|
|
216
|
+
"code": "<div style={{ display: 'flex', gap: 24 }}>\n <div style={storyContainerStyle}>\n <Select\n label=\"Disabled\"\n options={OPTIONS}\n value=\"btc\"\n disabled\n />\n </div>\n <div style={storyContainerStyle}>\n <Select\n label=\"Read only\"\n options={OPTIONS}\n value=\"btc\"\n readOnly\n />\n </div>\n </div>",
|
|
217
|
+
"source": "stories",
|
|
218
|
+
"compilable": true
|
|
219
|
+
},
|
|
196
220
|
"17aad2a9b23bb7f9a4768f770a9b9b5b06d74dab24c5200037505b0047ec2391": {
|
|
197
221
|
"title": "Controlled",
|
|
198
222
|
"code": "{\n const [open, setOpen] = useState(false);\n return (\n <div style={ANCHOR_WRAPPER_STYLE}>\n <button id=\"tooltip-controlled\">Anchor</button>\n <div style={CONTROL_ROW_STYLE}>\n <button onClick={() => setOpen(true)}>Open</button>\n <button onClick={() => setOpen(false)}>Close</button>\n <button onClick={() => setOpen((v) => !v)}>Toggle</button>\n </div>\n <Tooltip\n anchorSelect=\"#tooltip-controlled\"\n title=\"Controlled\"\n body=\"This tooltip is controlled externally.\"\n open={open}\n onOpenChange={setOpen}\n />\n </div>\n );\n }",
|
|
@@ -205,12 +229,36 @@
|
|
|
205
229
|
"source": "readme",
|
|
206
230
|
"compilable": true
|
|
207
231
|
},
|
|
232
|
+
"19d1f168d6381a52a225b4e4518a55b8dec5b0305e036f4c57f63a77465435b2": {
|
|
233
|
+
"title": "Import",
|
|
234
|
+
"code": "import { Step } from '@1money/component-ui';\n// or\nimport { Step } from '@1money/component-ui/Step';",
|
|
235
|
+
"source": "readme",
|
|
236
|
+
"compilable": true
|
|
237
|
+
},
|
|
208
238
|
"1ad3863a7ccae5d72cf0b223899e03501462831ed16ae711d9f497c103c00008": {
|
|
209
239
|
"title": "Group Cell Options",
|
|
210
240
|
"code": "{\n const [value, setValue] = React.useState<string | number>('swift');\n\n const handleChange = (event: RadioChangeEvent) => {\n if (event.target.value !== undefined) {\n setValue(event.target.value);\n }\n };\n\n return (\n <RadioGroup\n value={value}\n variant=\"cell\"\n size=\"large\"\n alignment=\"left\"\n direction=\"horizontal\"\n onChange={handleChange}\n options={[\n {\n value: 'swift',\n label: 'SWIFT',\n description: 'Receive via bank rails',\n icon: 'swift',\n },\n {\n value: 'global',\n label: 'Global account',\n description: 'International settlement',\n icon: 'language',\n },\n ]}\n />\n );\n }",
|
|
211
241
|
"source": "stories",
|
|
212
242
|
"compilable": true
|
|
213
243
|
},
|
|
244
|
+
"1b3e0014243a3c2fc49f18ec95bf7915a97bf89be93ea39221e905dc26aa7035": {
|
|
245
|
+
"title": "Import",
|
|
246
|
+
"code": "import { Portal } from '@1money/component-ui';\n// or\nimport { Portal } from '@1money/component-ui/Portal';",
|
|
247
|
+
"source": "readme",
|
|
248
|
+
"compilable": true
|
|
249
|
+
},
|
|
250
|
+
"1b62b166b8cc556e31e7ffa0b7d5ea66b965e65e6bf73b737499332aa8b0ce15": {
|
|
251
|
+
"title": "Canonical usage",
|
|
252
|
+
"code": "import { Tooltip } from '@1money/component-ui';\n// or\nimport { Tooltip } from '@1money/component-ui/Tooltip';",
|
|
253
|
+
"source": "canonical",
|
|
254
|
+
"compilable": true
|
|
255
|
+
},
|
|
256
|
+
"1cc244bf13712c43e79b378e25198234696ed488d0a147473327f0eb16c461bc": {
|
|
257
|
+
"title": "Searchable Sizes",
|
|
258
|
+
"code": "{\n const [largeValue, setLargeValue] = useState<string | number | undefined>('usdt');\n const [smallValue, setSmallValue] = useState<string | number | undefined>('usdt');\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 24, width: 320 }}>\n <Select\n {...args}\n size=\"large\"\n label=\"Large\"\n value={largeValue}\n onChange={(nextValue, option) => {\n setLargeValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n <Select\n {...args}\n size=\"small\"\n label=\"Small\"\n filterInputAutoFocus={false}\n value={smallValue}\n onChange={(nextValue, option) => {\n setSmallValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
259
|
+
"source": "stories",
|
|
260
|
+
"compilable": false
|
|
261
|
+
},
|
|
214
262
|
"1d0cc410e4f667fa13d9ad249ca801acda6fd51fc78c87c3b00209163c48df6b": {
|
|
215
263
|
"title": "Range Selection",
|
|
216
264
|
"code": "<Calendar\n label=\"Date Range\"\n selectionMode=\"range\"\n numberOfMonths={2}\n/>",
|
|
@@ -241,30 +289,42 @@
|
|
|
241
289
|
"source": "stories",
|
|
242
290
|
"compilable": false
|
|
243
291
|
},
|
|
292
|
+
"1f1b7a95b5907a8f4904dcc20ae03f7dd509d1e5ea1570f9fd663a0d8baf1f2a": {
|
|
293
|
+
"title": "Canonical usage",
|
|
294
|
+
"code": "import { Input } from '@1money/component-ui';\n// or\nimport { Input } from '@1money/component-ui/Input';",
|
|
295
|
+
"source": "canonical",
|
|
296
|
+
"compilable": true
|
|
297
|
+
},
|
|
298
|
+
"1f2928ec0a947db2a5fec3cc4241fef3b241c19c1d121bfc46c37aec0af0edbe": {
|
|
299
|
+
"title": "Usage",
|
|
300
|
+
"code": "import { Button } from '@1money/component-ui';\n\n<Dropdown\n content={({ close }) => (\n <button type=\"button\" onClick={close}>\n Close\n </button>\n )}\n placement=\"bottom-start\"\n>\n <Button>Open menu</Button>\n</Dropdown>",
|
|
301
|
+
"source": "readme",
|
|
302
|
+
"compilable": true
|
|
303
|
+
},
|
|
244
304
|
"1f944ea3bc1de41179d6d298524b5c3604ace798b878bacd31dc65416b264e80": {
|
|
245
305
|
"title": "Brand Spinner with Message",
|
|
246
306
|
"code": "<Spinner\n type=\"brand\"\n size={56}\n title=\"Hang tight\"\n body=\"We're processing your request\"\n/>",
|
|
247
307
|
"source": "readme",
|
|
248
308
|
"compilable": true
|
|
249
309
|
},
|
|
310
|
+
"20d57203520c799fa33716a33d4bc15c62ab5180b8628139aa313d443bf3c802": {
|
|
311
|
+
"title": "Import",
|
|
312
|
+
"code": "import { Tooltip } from '@1money/component-ui';\n// or\nimport { Tooltip } from '@1money/component-ui/Tooltip';",
|
|
313
|
+
"source": "readme",
|
|
314
|
+
"compilable": true
|
|
315
|
+
},
|
|
316
|
+
"20ec463b0b6df55a2fa2c5df4836735067151eb22ca13e76ea7b7795465b3141": {
|
|
317
|
+
"title": "Without Portal",
|
|
318
|
+
"code": "{\n const [value, setValue] = useState<string | number | undefined>('btc');\n\n return (\n <div style={{ position: 'relative' }}>\n <Select\n {...args}\n portal={false}\n value={value}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
319
|
+
"source": "stories",
|
|
320
|
+
"compilable": false
|
|
321
|
+
},
|
|
250
322
|
"216b625401b1ee29a2c8f02427f776e18dd670858e53fd87ea414473832ba9c9": {
|
|
251
323
|
"title": "With Title",
|
|
252
324
|
"code": "<div style={ANCHOR_WRAPPER_STYLE}>\n <button id=\"tooltip-title\">Hover me</button>\n <Tooltip {...args} anchorSelect=\"#tooltip-title\" />\n </div>",
|
|
253
325
|
"source": "stories",
|
|
254
326
|
"compilable": false
|
|
255
327
|
},
|
|
256
|
-
"2179af6a270bc4891095e10b5a182d62e7767a442d309c3641e1cfea330c5d5f": {
|
|
257
|
-
"title": "Import",
|
|
258
|
-
"code": "import { Popconfirm } from '@1money/components-ui';\nimport '@1money/components-ui/index.css';",
|
|
259
|
-
"source": "readme",
|
|
260
|
-
"compilable": true
|
|
261
|
-
},
|
|
262
|
-
"21cf92888ecabc84d2f36ba71a1b5a30b1fc75a963b72b6bd4ad911c20be6142": {
|
|
263
|
-
"title": "Canonical usage",
|
|
264
|
-
"code": "import type { IconName } from '@1money/component-ui';",
|
|
265
|
-
"source": "canonical",
|
|
266
|
-
"compilable": true
|
|
267
|
-
},
|
|
268
328
|
"21e145efeaada4cb2c7e716099dd9261f34d38e9df00905994175c1a5e9aabb5": {
|
|
269
329
|
"title": "Dynamic Data",
|
|
270
330
|
"code": "{\n const [count, setCount] = useState(100);\n const data = generateData(count);\n\n return (\n <div>\n <div style={{ marginBottom: 12, display: 'flex', gap: 8 }}>\n <button style={btnStyle} onClick={() => setCount((c) => c + 100)}>\n Add 100 items ({count} total)\n </button>\n <button style={btnStyle} onClick={() => setCount((c) => Math.max(0, c - 100))}>\n Remove 100 items\n </button>\n <button style={btnStyle} onClick={() => setCount(0)}>\n Clear\n </button>\n </div>\n <div style={containerStyle}>\n <VirtualList\n data={data}\n height={300}\n itemHeight={30}\n itemKey=\"id\"\n >\n {(item: Item) => (\n <div style={itemStyle(item.height)}>\n <span>Item {item.id}</span>\n </div>\n )}\n </VirtualList>\n </div>\n </div>\n );\n }",
|
|
@@ -283,12 +343,6 @@
|
|
|
283
343
|
"source": "stories",
|
|
284
344
|
"compilable": false
|
|
285
345
|
},
|
|
286
|
-
"226ab361064aae3c8c8f47bb5d32f8dd315bb5427d7c7a1e8cf5d4f10a0d325c": {
|
|
287
|
-
"title": "Canonical usage",
|
|
288
|
-
"code": "import { VirtualList } from '@1money/components-ui';\n// or\nimport { VirtualList } from '@1money/components-ui/VirtualList';",
|
|
289
|
-
"source": "canonical",
|
|
290
|
-
"compilable": true
|
|
291
|
-
},
|
|
292
346
|
"22701739de59f3ff8757908dd59dec110a126e3b95861d3ad523cb1552deeed7": {
|
|
293
347
|
"title": "All Variants",
|
|
294
348
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n {VARIANTS.map((variant) => (\n <div key={variant}>\n <h3 style={{ marginBottom: 12 }}>{variant}</h3>\n <Empty {...args} variant={variant} />\n </div>\n ))}\n </div>",
|
|
@@ -307,6 +361,18 @@
|
|
|
307
361
|
"source": "stories",
|
|
308
362
|
"compilable": true
|
|
309
363
|
},
|
|
364
|
+
"231cba24b4a9f1ba3a3ac60ae9526c919f6067a6a5e5147a00bec11fd9e57067": {
|
|
365
|
+
"title": "Import",
|
|
366
|
+
"code": "import { Grid, Row, Col } from '@1money/component-ui';\n// or\nimport { Grid, Row, Col } from '@1money/component-ui/Grid';\nimport { GRID_ALIGN, GRID_JUSTIFY } from '@1money/component-ui/Grid';",
|
|
367
|
+
"source": "readme",
|
|
368
|
+
"compilable": true
|
|
369
|
+
},
|
|
370
|
+
"23592116b9596d1493aa1b0ad242483fc2358a83e24e126eb5db3a4265391b98": {
|
|
371
|
+
"title": "Canonical usage",
|
|
372
|
+
"code": "import { CoachMark } from '@1money/component-ui';\n// or\nimport { CoachMark } from '@1money/component-ui/CoachMark';",
|
|
373
|
+
"source": "canonical",
|
|
374
|
+
"compilable": true
|
|
375
|
+
},
|
|
310
376
|
"23bda2a849d16045cdaa73e374c204db1099cbca913ff14a7ef5f02f346f50b6": {
|
|
311
377
|
"title": "Usage",
|
|
312
378
|
"code": "// Basic\n<Button color=\"primary\" size=\"medium\">Submit</Button>\n\n// With icons\n<Button color=\"secondary\" iconStart={<Icons name=\"add\" size={16} />}>\n Add Item\n</Button>\n\n<Button color=\"grey\" iconEnd={<Icons name=\"arrowRight\" size={16} />}>\n Next\n</Button>\n\n// Loading state\n<Button loading>Processing...</Button>\n\n// Disabled\n<Button disabled>Unavailable</Button>",
|
|
@@ -373,39 +439,33 @@
|
|
|
373
439
|
"source": "stories",
|
|
374
440
|
"compilable": false
|
|
375
441
|
},
|
|
376
|
-
"285dd42c2ca63f8f2eb21d39bf4dd6649d9b1383834a94ba626d242b9acc24a1": {
|
|
377
|
-
"title": "Import",
|
|
378
|
-
"code": "import { Upload, UploadFileBar } from '@1money/components-ui';\n// or\nimport { Upload, UploadFileBar } from '@1money/components-ui/Upload';",
|
|
379
|
-
"source": "readme",
|
|
380
|
-
"compilable": true
|
|
381
|
-
},
|
|
382
442
|
"28a4918e2bb83aaa273cf3846c84c67dca51a5280decbef71e82f997dda9baac": {
|
|
383
443
|
"title": "Usage",
|
|
384
444
|
"code": "<ResizeObserver\n onResize={(size, element) => {\n console.log(size.width, element);\n }}\n>\n <div>Measured content</div>\n</ResizeObserver>",
|
|
385
445
|
"source": "readme",
|
|
386
446
|
"compilable": true
|
|
387
447
|
},
|
|
448
|
+
"28d655b4312a50e5d20bbbf1d018d4583bd377ee502b3ffee72ca3f17a1bb072": {
|
|
449
|
+
"title": "Import",
|
|
450
|
+
"code": "import { Progress } from '@1money/component-ui';\n// or\nimport { Progress } from '@1money/component-ui/Progress';",
|
|
451
|
+
"source": "readme",
|
|
452
|
+
"compilable": true
|
|
453
|
+
},
|
|
388
454
|
"28dcbb40d407a6c3c48dcdb51a06d11466a26d831324f8c583ab6b877bc5eb7d": {
|
|
389
455
|
"title": "Vertical Layout",
|
|
390
456
|
"code": "<Space direction={SPACE_DIRECTION.vertical} size={SPACE_SIZE.large}>\n <div>Top</div>\n <div>Bottom</div>\n</Space>",
|
|
391
457
|
"source": "readme",
|
|
392
458
|
"compilable": true
|
|
393
459
|
},
|
|
394
|
-
"
|
|
460
|
+
"29453274a03adf14b66bc942588fe73c83d286a864658c26536b67a996236cc7": {
|
|
395
461
|
"title": "Canonical usage",
|
|
396
|
-
"code": "import {
|
|
462
|
+
"code": "import { Radio, RadioGroup } from '@1money/component-ui';\n// or tree-shakeable\nimport { Radio, RadioGroup } from '@1money/component-ui/Radio';",
|
|
397
463
|
"source": "canonical",
|
|
398
464
|
"compilable": true
|
|
399
465
|
},
|
|
400
|
-
"
|
|
401
|
-
"title": "Import",
|
|
402
|
-
"code": "import {\n ProForm,\n ProFormText,\n ProFormSelect,\n DialogForm,\n QueryFilter,\n} from '@1money/components-ui';\n// or\nimport { ProForm, ProFormText } from '@1money/components-ui/ProForm';",
|
|
403
|
-
"source": "readme",
|
|
404
|
-
"compilable": true
|
|
405
|
-
},
|
|
406
|
-
"2a00b4740e301b8a7ac79f978053cc5d0d9e28704a3496719ce12b34448697d2": {
|
|
466
|
+
"2982842534ed88247ac07099dc694a4b0087d1d1ed1f59eda5d9efaaf888f40c": {
|
|
407
467
|
"title": "Import",
|
|
408
|
-
"code": "import {
|
|
468
|
+
"code": "import { Upload, UploadFileBar } from '@1money/component-ui';\n// or\nimport { Upload, UploadFileBar } from '@1money/component-ui/Upload';",
|
|
409
469
|
"source": "readme",
|
|
410
470
|
"compilable": true
|
|
411
471
|
},
|
|
@@ -415,36 +475,54 @@
|
|
|
415
475
|
"source": "stories",
|
|
416
476
|
"compilable": true
|
|
417
477
|
},
|
|
478
|
+
"2cca976a647db275dfb45ce8bb53bc85d304e49c3d91f76e5987d11e95b604c1": {
|
|
479
|
+
"title": "Import",
|
|
480
|
+
"code": "import { Cell } from '@1money/component-ui';\n// or\nimport { Cell } from '@1money/component-ui/Cell';",
|
|
481
|
+
"source": "readme",
|
|
482
|
+
"compilable": true
|
|
483
|
+
},
|
|
418
484
|
"2db7958f91085606312d3dea5983e6a87724bdaaaeb755893810034b5be459a2": {
|
|
419
485
|
"title": "Copyable",
|
|
420
486
|
"code": "<Typography.Link\n size=\"md\"\n href=\"https://example.com/reference\"\n copyable={{ text: 'https://example.com/reference' }}\n>\n https://example.com/reference\n</Typography.Link>",
|
|
421
487
|
"source": "readme",
|
|
422
488
|
"compilable": true
|
|
423
489
|
},
|
|
490
|
+
"2f014c8b7fe8bf6d1251bf341df8d93d7b3d3d66a185b95d0cabfa7328259e4b": {
|
|
491
|
+
"title": "Canonical usage",
|
|
492
|
+
"code": "import { Tabs } from '@1money/component-ui';\n// or\nimport { Tabs } from '@1money/component-ui/Tabs';",
|
|
493
|
+
"source": "canonical",
|
|
494
|
+
"compilable": true
|
|
495
|
+
},
|
|
424
496
|
"2f65549d43490603034b9f30beadb2efd27c2c0f454242a54f434f213d051491": {
|
|
425
497
|
"title": "Omit Nil",
|
|
426
498
|
"code": "<ProForm\n {...args}\n omitNil\n initialValues={{ name: '', email: '', note: null }}\n onFinish={(values) => {\n alert('Nil values stripped:\\n' + JSON.stringify(values, null, 2));\n }}\n >\n <ProFormText name=\"name\" label=\"Name (leave empty to omit)\" />\n <ProFormText name=\"email\" label=\"Email (leave empty to omit)\" />\n <ProFormText name=\"note\" label=\"Note (null → omitted)\" />\n </ProForm>",
|
|
427
499
|
"source": "stories",
|
|
428
500
|
"compilable": false
|
|
429
501
|
},
|
|
502
|
+
"31040a7ff19f27a25e9ba2a3b39168650944f1c7a3f0056e5b2b51ee4581d1af": {
|
|
503
|
+
"title": "Import",
|
|
504
|
+
"code": "import { Popconfirm } from '@1money/component-ui';\nimport '@1money/component-ui/index.css';",
|
|
505
|
+
"source": "readme",
|
|
506
|
+
"compilable": true
|
|
507
|
+
},
|
|
430
508
|
"31dd5c9e926c0deeefba1a4028848b13ee819e42fbdf5ba0438329ffa1907e66": {
|
|
431
509
|
"title": "Width Presets",
|
|
432
510
|
"code": "<ProForm {...args}>\n <ProFormText name=\"sm\" label=\"Small (sm = 160px)\" width=\"sm\" />\n <ProFormText name=\"md\" label=\"Medium (md = 240px)\" width=\"md\" />\n <ProFormText name=\"lg\" label=\"Large (lg = 320px)\" width=\"lg\" />\n <ProFormText name=\"xl\" label=\"XL (xl = 420px)\" width=\"xl\" />\n <ProFormText name=\"custom\" label=\"Custom (200px)\" width={200} />\n </ProForm>",
|
|
433
511
|
"source": "stories",
|
|
434
512
|
"compilable": false
|
|
435
513
|
},
|
|
436
|
-
"323997b5e7fbded862fcafd3b54089dd9dfae28d4b7c04fbe3d26f612a7b2406": {
|
|
437
|
-
"title": "Canonical usage",
|
|
438
|
-
"code": "import { Tooltip } from '@1money/components-ui';\n// or\nimport { Tooltip } from '@1money/components-ui/Tooltip';",
|
|
439
|
-
"source": "canonical",
|
|
440
|
-
"compilable": true
|
|
441
|
-
},
|
|
442
514
|
"3298cc00509da7da73ca2da525874e520a453a289a0c4985f6f11249b5768dba": {
|
|
443
515
|
"title": "Full Width",
|
|
444
516
|
"code": "<Tabs items={DEFAULT_ITEMS} fullWidth />",
|
|
445
517
|
"source": "stories",
|
|
446
518
|
"compilable": true
|
|
447
519
|
},
|
|
520
|
+
"339afc4bf7df571a14ddee5065e32a46b5493ab19978ace33f336a5c7a504234": {
|
|
521
|
+
"title": "Import",
|
|
522
|
+
"code": "import { Clipboard } from '@1money/component-ui';\n// or\nimport { Clipboard } from '@1money/component-ui/Copy';",
|
|
523
|
+
"source": "readme",
|
|
524
|
+
"compilable": true
|
|
525
|
+
},
|
|
448
526
|
"34536f5f5abc20bc7255387d21700a4725ea8d6f9806b09cb947375f7afde43c": {
|
|
449
527
|
"title": "Label Right",
|
|
450
528
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <Switch {...args} label=\"Label\" description=\"Description\" labelPlacement=\"right\" />\n <Switch {...args} label=\"Label\" description=\"Description\" labelPlacement=\"right\" defaultChecked />\n </div>",
|
|
@@ -487,16 +565,10 @@
|
|
|
487
565
|
"source": "readme",
|
|
488
566
|
"compilable": true
|
|
489
567
|
},
|
|
490
|
-
"
|
|
491
|
-
"title": "
|
|
492
|
-
"code": "import {
|
|
493
|
-
"source": "
|
|
494
|
-
"compilable": true
|
|
495
|
-
},
|
|
496
|
-
"36cbaf7aab4a01a5e1c94430f29c9f8881ec84e60dac84ca5c2e32cb25e14ae5": {
|
|
497
|
-
"title": "Usage",
|
|
498
|
-
"code": "// Basic usage with icon name\n<Empty\n icon=\"transactions\"\n title=\"No record found\"\n description=\"Try adjusting your filters to find the record you are looking for\"\n/>\n\n// With custom icon component\n<Empty\n icon={<MyCustomIcon />}\n description=\"No data available\"\n/>\n\n// With action button\n<Empty\n variant=\"stroke\"\n icon=\"bank\"\n description=\"You don't have any bank accounts linked\"\n action={<Button>Add new bank account</Button>}\n/>",
|
|
499
|
-
"source": "readme",
|
|
568
|
+
"36788273238e85e65bbc04aade71ec57ec93c9371eb2414aa4bbac932afe4cc8": {
|
|
569
|
+
"title": "Canonical usage",
|
|
570
|
+
"code": "import { Spinner } from '@1money/component-ui';\n// or\nimport { Spinner } from '@1money/component-ui/Spinner';",
|
|
571
|
+
"source": "canonical",
|
|
500
572
|
"compilable": true
|
|
501
573
|
},
|
|
502
574
|
"36f868d28259a7ebb3c6decbe9768b0ac838fd1617e57e32bace1c0dde27546d": {
|
|
@@ -511,18 +583,18 @@
|
|
|
511
583
|
"source": "stories",
|
|
512
584
|
"compilable": false
|
|
513
585
|
},
|
|
586
|
+
"388bcf7888091d287918f2abfe24285c3cfff0239bf53bd18a57521a4d44c8e1": {
|
|
587
|
+
"title": "Custom",
|
|
588
|
+
"code": "{\n const [selected, setSelected] = useState<Array<string | number>>(['btc', 'eth', 'sol']);\n const [open, setOpen] = useState(false);\n\n const toggle = (value: string | number) => {\n setSelected((prev) =>\n prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],\n );\n };\n\n const triggerLabel = selected.length > 0\n ? `${selected.length} selected`\n : null;\n\n return (\n <div style={storyContainerStyle}>\n <Select.Custom\n label=\"Assets\"\n placeholder=\"Select assets\"\n open={open}\n onOpenChange={setOpen}\n selectedTemplate={triggerLabel}\n >\n {() => (\n <>\n <div style={customPanelHeaderStyle}>\n <span style={customPanelTitleStyle}>\n {selected.length} selected\n </span>\n <button\n type=\"button\"\n style={customClearAllStyle}\n onClick={() => setSelected([])}\n >\n <Icons name=\"cross\" size={14} color=\"currentColor\" />\n Clear all\n </button>\n </div>\n {ASSET_OPTIONS.map((option) => {\n const isSelected = selected.includes(option.value);\n return (\n <button\n key={option.value}\n type=\"button\"\n style={customRowStyle}\n onClick={() => toggle(option.value)}\n >\n <AssetMark value={option.value} />\n <span style={assetOptionLabelStyle}>{option.label}</span>\n <span style={customCheckboxStyle(isSelected)}>\n {isSelected && <Icons name=\"check\" size={14} color=\"currentColor\" />}\n </span>\n </button>\n );\n })}\n </>\n )}\n </Select.Custom>\n </div>\n );\n }",
|
|
589
|
+
"source": "stories",
|
|
590
|
+
"compilable": true
|
|
591
|
+
},
|
|
514
592
|
"38cc049b002ef2643d573c3ed8ec40bd44f8aadbccbeea471bedd8ace0207adb": {
|
|
515
593
|
"title": "Group Basic",
|
|
516
594
|
"code": "{\n const [value, setValue] = React.useState<string | number>('a');\n const handleChange = (event: RadioChangeEvent) => {\n if (event.target.value !== undefined) {\n setValue(event.target.value);\n }\n };\n\n return (\n <RadioGroup value={value} onChange={handleChange}>\n <Radio value=\"a\" label=\"Option A\" />\n <Radio value=\"b\" label=\"Option B\" />\n <Radio value=\"c\" label=\"Option C\" />\n </RadioGroup>\n );\n }",
|
|
517
595
|
"source": "stories",
|
|
518
596
|
"compilable": true
|
|
519
597
|
},
|
|
520
|
-
"38d85a62962bcd59b02127b7cf4808c8cb8ffe3d72866928828846cb5adb5e77": {
|
|
521
|
-
"title": "Basic Usage",
|
|
522
|
-
"code": "<Popconfirm\n title=\"Delete transfer rule?\"\n body=\"This action removes the rule immediately and cannot be undone.\"\n cancelText=\"Keep rule\"\n confirmText=\"Delete\"\n onConfirm={() => {\n // perform delete\n }}\n>\n <Button color=\"danger\">Delete rule</Button>\n</Popconfirm>",
|
|
523
|
-
"source": "readme",
|
|
524
|
-
"compilable": true
|
|
525
|
-
},
|
|
526
598
|
"390cabc2f23e7ce30b17814c2a5b8202b8da33904affa60c9bcf5e26fadd9d2f": {
|
|
527
599
|
"title": "Orientation Margin",
|
|
528
600
|
"code": "<div>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"left\" orientationMargin=\"0\">Left (margin 0)</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"left\" orientationMargin={50}>Left (margin 50)</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"right\" orientationMargin={0}>Right (margin 0)</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n </div>",
|
|
@@ -547,18 +619,18 @@
|
|
|
547
619
|
"source": "stories",
|
|
548
620
|
"compilable": false
|
|
549
621
|
},
|
|
550
|
-
"3c554437f7534e672da53194827c88c647b2091520a4db816184c1ffdc84c59a": {
|
|
551
|
-
"title": "Canonical usage",
|
|
552
|
-
"code": "import type { IconWrapperProps } from '@1money/component-ui';",
|
|
553
|
-
"source": "canonical",
|
|
554
|
-
"compilable": true
|
|
555
|
-
},
|
|
556
622
|
"3c5bbd0e70d50121131f70e69229d2badab6a0c4ce56c9343804fac5db4cc85d": {
|
|
557
623
|
"title": "Cell Centered",
|
|
558
624
|
"code": "<div style={{ display: 'flex', gap: 12, alignItems: 'flex-start', flexWrap: 'wrap' }}>\n <Radio\n checked\n variant=\"cell\"\n size=\"large\"\n alignment=\"center\"\n icon=\"language\"\n tag=\"Tag\"\n label=\"Global account\"\n description=\"International transfers\"\n style={{ width: 200 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"medium\"\n alignment=\"center\"\n icon=\"usd\"\n label=\"USD1\"\n style={{ width: 200 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"small\"\n alignment=\"center\"\n icon=\"usd\"\n label=\"USD1\"\n style={{ width: 200 }}\n />\n </div>",
|
|
559
625
|
"source": "stories",
|
|
560
626
|
"compilable": true
|
|
561
627
|
},
|
|
628
|
+
"3c96cd1309b8343e68775a3eb2807b574c01d500cd61c0aefff0e9007f042175": {
|
|
629
|
+
"title": "Import",
|
|
630
|
+
"code": "import { Icons, IconWrapper, IconHover } from '@1money/component-ui';\n// or\nimport { Icons, IconWrapper, IconHover } from '@1money/component-ui/Icons';\n\n// Type imports\nimport type { IconName, SortIconStatus } from '@1money/component-ui';",
|
|
631
|
+
"source": "readme",
|
|
632
|
+
"compilable": true
|
|
633
|
+
},
|
|
562
634
|
"3e868fc7054ec26b6d612e345cd084dcdbb6a51b7d290eae2fa333509e0c9b33": {
|
|
563
635
|
"title": "Canonical usage",
|
|
564
636
|
"code": "<Popconfirm />",
|
|
@@ -571,27 +643,21 @@
|
|
|
571
643
|
"source": "stories",
|
|
572
644
|
"compilable": false
|
|
573
645
|
},
|
|
574
|
-
"3f7947a62ea88c98ba7ab12c99856262c9bcfbce67805459f690e130f0d6920e": {
|
|
575
|
-
"title": "Canonical usage",
|
|
576
|
-
"code": "import { Space } from '@1money/components-ui';\n// or\nimport { Space } from '@1money/components-ui/Space';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/components-ui/Space';",
|
|
577
|
-
"source": "canonical",
|
|
578
|
-
"compilable": true
|
|
579
|
-
},
|
|
580
|
-
"40a22244886d5bdbd3ed0c2eeccc5859897c73c7f35ce9d0b27a7a9547709f28": {
|
|
581
|
-
"title": "Import",
|
|
582
|
-
"code": "import { Tag } from '@1money/components-ui';\n// or\nimport { Tag } from '@1money/components-ui/Tag';",
|
|
583
|
-
"source": "readme",
|
|
584
|
-
"compilable": true
|
|
585
|
-
},
|
|
586
646
|
"40b55a924e580ca4161d97e698db47fb342eae5c804b2bfbaab1f5eb64a58e09": {
|
|
587
647
|
"title": "Basic",
|
|
588
648
|
"code": "<div style={containerStyle}>\n <VirtualList\n data={data1000}\n height={300}\n itemHeight={30}\n itemKey=\"id\"\n >\n {(item: Item) => (\n <div style={itemStyle(item.height)}>\n <span>Item {item.id}</span>\n <span style={{ color: '#999', fontSize: 12 }}>h: {item.height}px</span>\n </div>\n )}\n </VirtualList>\n </div>",
|
|
589
649
|
"source": "stories",
|
|
590
650
|
"compilable": true
|
|
591
651
|
},
|
|
592
|
-
"
|
|
652
|
+
"41af856d1d6a822e2c95f25c337807c0d18d1e445d318d07621beba85ce3e926": {
|
|
653
|
+
"title": "Searchable Small",
|
|
654
|
+
"code": "{\n const [value, setValue] = useState<string | number | undefined>('usdt');\n\n return (\n <div style={storyContainerStyle}>\n <Select\n {...args}\n value={value}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
655
|
+
"source": "stories",
|
|
656
|
+
"compilable": false
|
|
657
|
+
},
|
|
658
|
+
"42725955e8eb348643a00cbbd15d1485475e1917d44f5e685f6f2a094fa6a4a5": {
|
|
593
659
|
"title": "Canonical usage",
|
|
594
|
-
"code": "import {
|
|
660
|
+
"code": "import { Space } from '@1money/component-ui';\n// or\nimport { Space } from '@1money/component-ui/Space';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/component-ui/Space';",
|
|
595
661
|
"source": "canonical",
|
|
596
662
|
"compilable": true
|
|
597
663
|
},
|
|
@@ -601,24 +667,12 @@
|
|
|
601
667
|
"source": "stories",
|
|
602
668
|
"compilable": false
|
|
603
669
|
},
|
|
604
|
-
"433e2ddc78741578443b854668e9b0bc02f7196c44580c8b913bf9d7d68c08ae": {
|
|
605
|
-
"title": "Canonical usage",
|
|
606
|
-
"code": "import { CoachMark } from '@1money/components-ui';\n// or\nimport { CoachMark } from '@1money/components-ui/CoachMark';",
|
|
607
|
-
"source": "canonical",
|
|
608
|
-
"compilable": true
|
|
609
|
-
},
|
|
610
670
|
"43cb69594b17d8f71ddb9912efb8eea26ee52cf45990ef9f7a2212c0694b0811": {
|
|
611
671
|
"title": "Dashed",
|
|
612
672
|
"code": "<div>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider variant=\"dashed\" />\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider variant=\"dashed\">Dashed</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n </div>",
|
|
613
673
|
"source": "stories",
|
|
614
674
|
"compilable": true
|
|
615
675
|
},
|
|
616
|
-
"43cd04ae4cce4b5299321d915077358a92a0a5000ab402da2f9ba9ccac91ef84": {
|
|
617
|
-
"title": "Canonical usage",
|
|
618
|
-
"code": "import { Spinner } from '@1money/components-ui';\n// or\nimport { Spinner } from '@1money/components-ui/Spinner';",
|
|
619
|
-
"source": "canonical",
|
|
620
|
-
"compilable": true
|
|
621
|
-
},
|
|
622
676
|
"44c4b25e35236d2eaf4d26824badf330c6495194077c815a662b000591be91be": {
|
|
623
677
|
"title": "Multiple Collapsed",
|
|
624
678
|
"code": "{\n const [value, setValue] = useState<Array<string | number>>([\n 'btc',\n 'eth',\n 'usdt',\n 'usdc',\n 'sol',\n 'doge',\n ]);\n\n return (\n <div style={{ width: 320 }}>\n <Select\n {...args}\n multiple\n value={value}\n onChange={(nextValue, option) => {\n setValue((nextValue as Array<string | number>) ?? []);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
@@ -655,6 +709,12 @@
|
|
|
655
709
|
"source": "stories",
|
|
656
710
|
"compilable": true
|
|
657
711
|
},
|
|
712
|
+
"48c240723515be69d8de101f9bfe1d2ff596d82504645cc07dfb281c0a6a8ca5": {
|
|
713
|
+
"title": "Canonical usage",
|
|
714
|
+
"code": "import { Typography } from '@1money/component-ui';\n// or\nimport {\n Typography,\n TypographyBody,\n TypographyDisplay,\n TypographyHeadline,\n TypographyLabel,\n TypographyLink,\n TypographyTitle,\n} from '@1money/component-ui/Typography';",
|
|
715
|
+
"source": "canonical",
|
|
716
|
+
"compilable": true
|
|
717
|
+
},
|
|
658
718
|
"48f6ebde7546d7db844b0cd43bd6e6ec6956746f93c55167fda6a2cd84599a3e": {
|
|
659
719
|
"title": "No Animation",
|
|
660
720
|
"code": "<Segment items={DEFAULT_ITEMS} animated={false} />",
|
|
@@ -709,24 +769,12 @@
|
|
|
709
769
|
"source": "stories",
|
|
710
770
|
"compilable": false
|
|
711
771
|
},
|
|
712
|
-
"4cc41ff919669138b7ad66655a256cd5a3885bd739764784d8a5de068b87beb3": {
|
|
713
|
-
"title": "Import",
|
|
714
|
-
"code": "import { Drawer } from '@1money/components-ui';\n// or\nimport { Drawer } from '@1money/components-ui/Drawer';",
|
|
715
|
-
"source": "readme",
|
|
716
|
-
"compilable": true
|
|
717
|
-
},
|
|
718
772
|
"4d9f3593600e6013d369532a23201039bffa9c7463d467180f93c3e95fc48c1b": {
|
|
719
773
|
"title": "Inline Button Loading",
|
|
720
774
|
"code": "<button disabled={loading}>\n {loading ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <Spinner size={16} />\n <span>Submitting…</span>\n </div>\n ) : (\n 'Submit'\n )}\n</button>",
|
|
721
775
|
"source": "readme",
|
|
722
776
|
"compilable": true
|
|
723
777
|
},
|
|
724
|
-
"4e47a5538f745fc8cf26d22a91bc3e95fda46600baf715b49e208804b00e3049": {
|
|
725
|
-
"title": "Canonical usage",
|
|
726
|
-
"code": "import { Table, VirtualTable } from '@1money/components-ui';\n// or\nimport { Table, VirtualTable } from '@1money/components-ui/Table';",
|
|
727
|
-
"source": "canonical",
|
|
728
|
-
"compilable": true
|
|
729
|
-
},
|
|
730
778
|
"4eb35f906280d6f50e93ee158c0792dc740933db4705b831c71d24aadf3e2de7": {
|
|
731
779
|
"title": "All Variants",
|
|
732
780
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n {TAG_SIZES.map((size) => (\n <div key={size}>\n <h3 style={{ marginBottom: 12 }}>{size}</h3>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: 12, alignItems: 'center' }}>\n {TAG_COLORS.map((color) => (\n <Tag\n {...args}\n key={`${size}-${color}`}\n size={size}\n color={color}\n label={color}\n />\n ))}\n </div>\n </div>\n ))}\n </div>",
|
|
@@ -739,10 +787,10 @@
|
|
|
739
787
|
"source": "readme",
|
|
740
788
|
"compilable": true
|
|
741
789
|
},
|
|
742
|
-
"
|
|
743
|
-
"title": "
|
|
744
|
-
"code": "import {
|
|
745
|
-
"source": "
|
|
790
|
+
"4f8d5b3c517bceedb0df6dc7f1b762de0f1625cd80d3cd006b7cd6725c693561": {
|
|
791
|
+
"title": "Import",
|
|
792
|
+
"code": "import { Checkbox } from '@1money/component-ui';\n// or\nimport { Checkbox } from '@1money/component-ui/Checkbox';",
|
|
793
|
+
"source": "readme",
|
|
746
794
|
"compilable": true
|
|
747
795
|
},
|
|
748
796
|
"52e49c0728ddadda69ef98366ad789e66211d87acbb7ca43af959df87ec0767b": {
|
|
@@ -751,15 +799,9 @@
|
|
|
751
799
|
"source": "readme",
|
|
752
800
|
"compilable": true
|
|
753
801
|
},
|
|
754
|
-
"
|
|
755
|
-
"title": "CheckboxGroup",
|
|
756
|
-
"code": "import { Checkbox, CheckboxGroup } from '@1money/components-ui';\n// or\nimport { Checkbox, CheckboxGroup } from '@1money/components-ui/Checkbox';\n\n<CheckboxGroup\n name=\"fruits\"\n options={[\n { label: 'Apple', value: 'apple' },\n { label: 'Pear', value: 'pear' },\n ]}\n value={selectedValues}\n onChange={setSelectedValues}\n/>\n\n<Checkbox.Group defaultValue={['alpha']}>\n <Checkbox value=\"alpha\" label=\"Alpha\" />\n <Checkbox value=\"beta\" label=\"Beta\" />\n</Checkbox.Group>",
|
|
757
|
-
"source": "readme",
|
|
758
|
-
"compilable": true
|
|
759
|
-
},
|
|
760
|
-
"5366737d28dd367f234fcb03fbbe9b966ae9baf9f4d4d05ad628e2c16c5a4e3c": {
|
|
802
|
+
"56434ea344c01f25a04ecb3cdf55d35d04a2631937c4fdecac6e4bb577a69175": {
|
|
761
803
|
"title": "Canonical usage",
|
|
762
|
-
"code": "
|
|
804
|
+
"code": "import { Switch } from '@1money/component-ui';\n// or\nimport { Switch } from '@1money/component-ui/Switch';",
|
|
763
805
|
"source": "canonical",
|
|
764
806
|
"compilable": true
|
|
765
807
|
},
|
|
@@ -787,15 +829,21 @@
|
|
|
787
829
|
"source": "stories",
|
|
788
830
|
"compilable": false
|
|
789
831
|
},
|
|
832
|
+
"57e6a47e5312d937d88aebeb098d4786684b38e5e6953da1f4dbcb0bee035b70": {
|
|
833
|
+
"title": "Import",
|
|
834
|
+
"code": "import { Flex } from '@1money/component-ui';\n// or\nimport { Flex } from '@1money/component-ui/Flex';\nimport { FLEX_ALIGN, FLEX_GAP, FLEX_JUSTIFY, FLEX_WRAP } from '@1money/component-ui/Flex';",
|
|
835
|
+
"source": "readme",
|
|
836
|
+
"compilable": true
|
|
837
|
+
},
|
|
790
838
|
"58bad3562da4a5152857d932ada3b06876ddf701e0bc5b396abc799cfee00ff8": {
|
|
791
839
|
"title": "All Variants",
|
|
792
840
|
"code": "<div style={columnStyle}>\n {LABEL_PLACEMENTS.map((placement) => (\n <div key={placement}>\n <h3 style={sectionHeaderStyle}>Label Placement: {placement}</h3>\n <div style={sectionBodyStyle}>\n {/* Default states */}\n <div style={rowStyle}>\n <Checkbox\n {...args}\n labelPlacement={placement}\n label=\"Unchecked\"\n />\n <Checkbox\n {...args}\n labelPlacement={placement}\n defaultChecked\n label=\"Checked\"\n />\n <Checkbox\n {...args}\n labelPlacement={placement}\n indeterminate\n label=\"Indeterminate\"\n />\n </div>\n {/* Disabled states */}\n <div style={rowStyle}>\n <Checkbox\n {...args}\n labelPlacement={placement}\n disabled\n label=\"Disabled\"\n />\n <Checkbox\n {...args}\n labelPlacement={placement}\n checked\n disabled\n label=\"Disabled Checked\"\n />\n <Checkbox\n {...args}\n labelPlacement={placement}\n indeterminate\n disabled\n label=\"Disabled Indeterminate\"\n />\n </div>\n </div>\n </div>\n ))}\n </div>",
|
|
793
841
|
"source": "stories",
|
|
794
842
|
"compilable": false
|
|
795
843
|
},
|
|
796
|
-
"
|
|
797
|
-
"title": "
|
|
798
|
-
"code": "
|
|
844
|
+
"5a4df64ed15fd8845be815f9f67cd01c0f22d1a22431c653c972f7ab6cff60f7": {
|
|
845
|
+
"title": "Import",
|
|
846
|
+
"code": "import { Slider } from '@1money/component-ui';\n// or\nimport { Slider } from '@1money/component-ui/Slider';",
|
|
799
847
|
"source": "readme",
|
|
800
848
|
"compilable": true
|
|
801
849
|
},
|
|
@@ -811,12 +859,6 @@
|
|
|
811
859
|
"source": "stories",
|
|
812
860
|
"compilable": true
|
|
813
861
|
},
|
|
814
|
-
"5c2d27af4dbbbbbab8df84b3717712bc8ef7522b3f93eb8d20540a1db723e8e9": {
|
|
815
|
-
"title": "Import",
|
|
816
|
-
"code": "import { VirtualList } from '@1money/components-ui';\n// or\nimport { VirtualList } from '@1money/components-ui/VirtualList';",
|
|
817
|
-
"source": "readme",
|
|
818
|
-
"compilable": true
|
|
819
|
-
},
|
|
820
862
|
"5c8961675725144291340a7560c3c798389ce24d786783dedd6ffcac93193a0d": {
|
|
821
863
|
"title": "Batch Resize",
|
|
822
864
|
"code": "{\n const [batchInfo, setBatchInfo] = useState<string>('');\n\n return (\n <div>\n <p style={{ marginBottom: 8, color: '#666' }}>\n Collection batches resize events from multiple children into a single callback:\n </p>\n <ResizeObserver.Collection\n onBatchResize={(infos) => {\n setBatchInfo(\n `Batch: ${infos.length} resize(s) — ${infos.map((i) => `${i.data}: ${i.size.width}×${i.size.height}`).join(', ')}`,\n );\n }}\n >\n <div style={{ display: 'flex', gap: 16 }}>\n {['First', 'Second'].map((name) => (\n <ResizeObserver key={name} data={name}>\n <div style={{ ...boxStyle, minWidth: 150 }}>\n {name}\n </div>\n </ResizeObserver>\n ))}\n </div>\n </ResizeObserver.Collection>\n {batchInfo && <div style={infoStyle}>{batchInfo}</div>}\n </div>\n );\n }",
|
|
@@ -835,6 +877,12 @@
|
|
|
835
877
|
"source": "stories",
|
|
836
878
|
"compilable": true
|
|
837
879
|
},
|
|
880
|
+
"5e00edd3637d6c6dc07726e8869358c272f4f3f102f4e7323b4dc71d74647a93": {
|
|
881
|
+
"title": "Canonical usage",
|
|
882
|
+
"code": "import { Clipboard } from '@1money/component-ui';\n\n<Clipboard\n label=\"Setup Key\"\n content=\"GWKLDLVE25dfLIJOHUD578JPIHD24JLJGHGOUH27HLIHOUGOLIKHJ547HOU\"\n onSuccess={(v) => console.log(v)}\n/>",
|
|
883
|
+
"source": "canonical",
|
|
884
|
+
"compilable": true
|
|
885
|
+
},
|
|
838
886
|
"5f3b6d99f2f042d7c984a9f73cb179167b6c80cfbd3c106d1c96ecc86ba1a888": {
|
|
839
887
|
"title": "Cell States",
|
|
840
888
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <Radio\n checked\n variant=\"cell\"\n size=\"large\"\n alignment=\"left\"\n icon=\"swift\"\n label=\"Checked\"\n description=\"Primary selection\"\n style={{ width: 300 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"medium\"\n alignment=\"left\"\n icon=\"swift\"\n label=\"Medium\"\n style={{ width: 180 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"small\"\n alignment=\"left\"\n icon=\"swift\"\n label=\"Small\"\n style={{ width: 180 }}\n />\n <Radio\n checked\n disabled\n variant=\"cell\"\n size=\"large\"\n alignment=\"left\"\n icon=\"swift\"\n label=\"Disabled checked\"\n description=\"Disabled state\"\n style={{ width: 300 }}\n />\n </div>",
|
|
@@ -847,21 +895,21 @@
|
|
|
847
895
|
"source": "stories",
|
|
848
896
|
"compilable": true
|
|
849
897
|
},
|
|
850
|
-
"5f4e0a0d85f2ecaf7434a70622e83ab0495c984cb44a41abe7be980b68b4274e": {
|
|
851
|
-
"title": "Import",
|
|
852
|
-
"code": "import { Space } from '@1money/components-ui';\n// or\nimport { Space } from '@1money/components-ui/Space';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/components-ui/Space';",
|
|
853
|
-
"source": "readme",
|
|
854
|
-
"compilable": true
|
|
855
|
-
},
|
|
856
898
|
"605adda93170929ef763469422e3708f248624774e5274b6053c7aa0c53b9680": {
|
|
857
899
|
"title": "Action And Close",
|
|
858
900
|
"code": "<Alert\n {...args}\n status=\"warning\"\n title=\"New compliance checklist\"\n body=\"A new checklist item is required before the next outbound transfer can be approved.\"\n link={{ label: 'Open checklist', onClick: fn() }}\n action={<Button onClick={fn()}>Review now</Button>}\n closable\n onClose={fn()}\n />",
|
|
859
901
|
"source": "stories",
|
|
860
902
|
"compilable": false
|
|
861
903
|
},
|
|
862
|
-
"
|
|
904
|
+
"6100fc2a8e5223e9cb058946bfa868735653b13a46dbde6901ba88436958f7b9": {
|
|
863
905
|
"title": "Canonical usage",
|
|
864
|
-
"code": "import {
|
|
906
|
+
"code": "import { Navigation, Nav, NavigationStepper } from '@1money/component-ui';\n// or\nimport { Navigation, Nav, NavigationStepper } from '@1money/component-ui/Navigation';",
|
|
907
|
+
"source": "canonical",
|
|
908
|
+
"compilable": true
|
|
909
|
+
},
|
|
910
|
+
"611d0250c7741a20c80e73d193b80a1b7ef07db189ce51a592525843432117af": {
|
|
911
|
+
"title": "Canonical usage",
|
|
912
|
+
"code": "import { Carousel } from '@1money/component-ui';\n// or\nimport { Carousel } from '@1money/component-ui/Carousel';",
|
|
865
913
|
"source": "canonical",
|
|
866
914
|
"compilable": true
|
|
867
915
|
},
|
|
@@ -877,6 +925,18 @@
|
|
|
877
925
|
"source": "canonical",
|
|
878
926
|
"compilable": true
|
|
879
927
|
},
|
|
928
|
+
"62b5efe615c2669f474d5e6b4b89e9548d25b067decf9570da5994151f8c3d63": {
|
|
929
|
+
"title": "Import",
|
|
930
|
+
"code": "import { Radio, RadioGroup } from '@1money/component-ui';\n// or tree-shakeable\nimport { Radio, RadioGroup } from '@1money/component-ui/Radio';",
|
|
931
|
+
"source": "readme",
|
|
932
|
+
"compilable": true
|
|
933
|
+
},
|
|
934
|
+
"63391782d107e1289c88ced32f63afa3f0c14adfed71d7eec78de19097260755": {
|
|
935
|
+
"title": "Navigation (sidebar with collapse)",
|
|
936
|
+
"code": "import { useRef } from 'react';\nimport type { NavigationHandlers } from '@1money/component-ui';\n\nconst ref = useRef<NavigationHandlers>(null);\n\nfunction CompanySelector() {\n return <button type=\"button\">Acme Treasury</button>;\n}\n\nfunction SettingsLink() {\n return <a href=\"/settings\">Settings</a>;\n}\n\n<Navigation\n ref={ref}\n items={[\n { key: 'home', label: 'Home', icon: 'home', active: true },\n { key: 'portfolio', label: 'Portfolio', icon: 'portfolio' },\n {\n key: 'transactions',\n label: 'Transactions',\n icon: 'transactions',\n children: [\n { key: 'deposits', label: 'Deposits' },\n { key: 'withdrawals', label: 'Withdrawals' },\n ],\n },\n ]}\n collapsible\n onCollapse={(collapsed) => console.log(collapsed)}\n selector={<CompanySelector />}\n>\n {/* rendered at the bottom of the sidebar */}\n <SettingsLink />\n</Navigation>\n\n// Imperative control\nref.current?.toggle();\nref.current?.collapse(true);",
|
|
937
|
+
"source": "readme",
|
|
938
|
+
"compilable": true
|
|
939
|
+
},
|
|
880
940
|
"63dbd5aa5b4f9b648a7f6152b99058966f4b36ade7cece4b750f71e4389a4dea": {
|
|
881
941
|
"title": "Usage",
|
|
882
942
|
"code": "<Carousel count={4} defaultActiveIndex={0} onChange={(index) => console.log(index)} />",
|
|
@@ -889,12 +949,6 @@
|
|
|
889
949
|
"source": "stories",
|
|
890
950
|
"compilable": true
|
|
891
951
|
},
|
|
892
|
-
"65c3343037038d0c10d4369de3281ebadf175b42ba5afe9bf9ae5c490d587003": {
|
|
893
|
-
"title": "Import",
|
|
894
|
-
"code": "import { Pagination, usePagination } from '@1money/components-ui';\n// or\nimport { Pagination, usePagination } from '@1money/components-ui/Pagination';",
|
|
895
|
-
"source": "readme",
|
|
896
|
-
"compilable": true
|
|
897
|
-
},
|
|
898
952
|
"66d442fc9388c014800dbcc672d9dae750c1529fd05f0b26e8f4dbf091abd20b": {
|
|
899
953
|
"title": "Visual Spec",
|
|
900
954
|
"code": "<div style={PREVIEW_GRID_STYLE}>\n <TooltipPreviewCard label=\"Title + body / left aligned\" title=\"Title\" body=\"Body text\" />\n <TooltipPreviewCard label=\"Minimum width 48px\" body=\"Hi\" />\n <TooltipPreviewCard label=\"Maximum width 400px on web\" title=\"Long title\" body={LONG_BODY} />\n </div>",
|
|
@@ -913,54 +967,24 @@
|
|
|
913
967
|
"source": "stories",
|
|
914
968
|
"compilable": false
|
|
915
969
|
},
|
|
916
|
-
"69f29e0647a74609f6aaa9ea3dc6ffa3559143861f405d2fd72e046abddd390a": {
|
|
917
|
-
"title": "Import",
|
|
918
|
-
"code": "import { Clipboard } from '@1money/components-ui';\n// or\nimport { Clipboard } from '@1money/components-ui/Copy';",
|
|
919
|
-
"source": "readme",
|
|
920
|
-
"compilable": true
|
|
921
|
-
},
|
|
922
970
|
"6a4d77a29ff76bfcd465b53ac79952fae765bb337ef3ca2affc7781ce487a74f": {
|
|
923
971
|
"title": "With Icon End",
|
|
924
972
|
"code": "<Button {...args} iconEnd={<Icons name=\"arrowRight\" />}>\n Icon End\n </Button>",
|
|
925
973
|
"source": "stories",
|
|
926
974
|
"compilable": false
|
|
927
975
|
},
|
|
928
|
-
"
|
|
976
|
+
"6bf195e98d5a455cd0e5d43c58373b8311a4178b49a2f00f1f029af3e4b24447": {
|
|
929
977
|
"title": "Canonical usage",
|
|
930
|
-
"code": "import {
|
|
978
|
+
"code": "import { Empty } from '@1money/component-ui';\n// or\nimport { Empty } from '@1money/component-ui/Empty';",
|
|
931
979
|
"source": "canonical",
|
|
932
980
|
"compilable": true
|
|
933
981
|
},
|
|
934
|
-
"
|
|
982
|
+
"6cdbf053120c0759e352f165296a9e509b2a7f994d1bf58da3b65dd4e3603553": {
|
|
935
983
|
"title": "Import",
|
|
936
|
-
"code": "import {
|
|
937
|
-
"source": "readme",
|
|
938
|
-
"compilable": true
|
|
939
|
-
},
|
|
940
|
-
"6ccfe4f2a1e0923b5c6ee03d7662c164882ad513d3e32a35a1ea7b9500f17169": {
|
|
941
|
-
"title": "Responsive Usage",
|
|
942
|
-
"code": "const GRID_GUTTER = { sm: 8, md: 16, lg: 24 };\nconst SPAN_BASE = 12;\nconst SPAN_SM = 6;\nconst SPAN_MD = 4;\nconst OFFSET_MD = 2;\nconst SPAN_LARGE = 3;\n\nimport { GRID_JUSTIFY } from '@1money/components-ui/Grid';\n\nconst GRID_JUSTIFY_RESPONSIVE = {\n sm: GRID_JUSTIFY.start,\n md: GRID_JUSTIFY.spaceBetween,\n lg: GRID_JUSTIFY.end\n};\nconst PUSH_COL = 1;\nconst PULL_COL = 1;\n\n<Grid gutter={GRID_GUTTER}>\n <Grid.Col span={SPAN_BASE} sm={SPAN_SM} md={{ span: SPAN_MD, offset: OFFSET_MD }} lg={SPAN_LARGE} />\n</Grid>\n\n<Grid gutter={GRID_GUTTER} justify={GRID_JUSTIFY_RESPONSIVE}>\n <Grid.Col span={SPAN_BASE} sm={SPAN_SM} md={{ span: SPAN_MD, offset: OFFSET_MD }} lg={SPAN_LARGE} />\n <Grid.Col span={SPAN_BASE} push={PUSH_COL} pull={PULL_COL} />\n</Grid>",
|
|
984
|
+
"code": "import { Segment } from '@1money/component-ui';\n// or\nimport { Segment } from '@1money/component-ui/Segment';",
|
|
943
985
|
"source": "readme",
|
|
944
986
|
"compilable": true
|
|
945
987
|
},
|
|
946
|
-
"6d1aac6219f8d395eb9f6c5c13da9f51970c30059c74d6faeb7ddc895bc2af19": {
|
|
947
|
-
"title": "Canonical usage",
|
|
948
|
-
"code": "import type { IconHoverProps } from '@1money/component-ui';",
|
|
949
|
-
"source": "canonical",
|
|
950
|
-
"compilable": true
|
|
951
|
-
},
|
|
952
|
-
"6dadb9a4d982338ee8398025f4cea4aa2ed33dba5303e56b6a65b1f23cb93bf0": {
|
|
953
|
-
"title": "Canonical usage",
|
|
954
|
-
"code": "import { Select } from '@1money/components-ui';\n// or\nimport { Select } from '@1money/components-ui/Select';",
|
|
955
|
-
"source": "canonical",
|
|
956
|
-
"compilable": true
|
|
957
|
-
},
|
|
958
|
-
"6e80043b40836c60acfd06f4f79316dc3655e1d82fbc77f8f04b8126862001af": {
|
|
959
|
-
"title": "Canonical usage",
|
|
960
|
-
"code": "import {\n ProForm,\n ProFormText,\n ProFormSelect,\n DialogForm,\n QueryFilter,\n} from '@1money/components-ui';\n// or\nimport { ProForm, ProFormText } from '@1money/components-ui/ProForm';",
|
|
961
|
-
"source": "canonical",
|
|
962
|
-
"compilable": true
|
|
963
|
-
},
|
|
964
988
|
"6ea2fa87fa2050f0e9e5f271bfbcac33d12cf62034f24d55257ec9955430ef59": {
|
|
965
989
|
"title": "Usage",
|
|
966
990
|
"code": "<Clipboard\n label=\"Setup Key\"\n content=\"GWKLDLVE25dfLIJOHUD578JPIHD24JLJGHGOUH27HLIHOUGOLIKHJ547HOU\"\n onSuccess={(val) => console.log('Copied:', val)}\n onError={(val) => console.log('Failed:', val)}\n/>",
|
|
@@ -973,28 +997,34 @@
|
|
|
973
997
|
"source": "stories",
|
|
974
998
|
"compilable": false
|
|
975
999
|
},
|
|
1000
|
+
"6fdf08048e1bed84d748f8d5d2fb86efe525926a026aaa4917f514fc855777b2": {
|
|
1001
|
+
"title": "Canonical usage",
|
|
1002
|
+
"code": "import { ProForm } from '@1money/component-ui';\n\n<ProForm onFinish={(values) => console.log(values)}>\n <ProForm.Text name=\"name\" label=\"Name\" />\n</ProForm>",
|
|
1003
|
+
"source": "canonical",
|
|
1004
|
+
"compilable": true
|
|
1005
|
+
},
|
|
976
1006
|
"701f468e63d72f0fe836f011aae7941f7202835fe80f43ae13f529a130c5a505": {
|
|
977
1007
|
"title": "Semantic Tags",
|
|
978
1008
|
"code": "<div style={STORY_LAYOUT_STYLE}>\n <Typography.Display size=\"sm\" as=\"h1\">\n Display rendered as h1\n </Typography.Display>\n <Typography.Headline size=\"md\" as=\"h2\">\n Headline rendered as h2\n </Typography.Headline>\n <Typography.Title size=\"lg\" as=\"h3\">\n Title rendered as h3\n </Typography.Title>\n <Typography.Body size=\"md\" as=\"p\">\n Body rendered as p for longer narrative content.\n </Typography.Body>\n <Typography.Label size=\"sm\" htmlFor=\"typography-story-input\">\n Email address\n </Typography.Label>\n <input id=\"typography-story-input\" placeholder=\"Input target for label\" />\n </div>",
|
|
979
1009
|
"source": "stories",
|
|
980
1010
|
"compilable": true
|
|
981
1011
|
},
|
|
982
|
-
"71d241ed07b5a8c1aaa432bcff2fb9f72af207e1c7f5aa4023ac2359f926be9e": {
|
|
983
|
-
"title": "Usage",
|
|
984
|
-
"code": "<Drawer\n open={open}\n title=\"Transfer details\"\n placement=\"right\"\n onClose={() => setOpen(false)}\n footer={<Button onClick={() => setOpen(false)}>Done</Button>}\n>\n Drawer content\n</Drawer>",
|
|
985
|
-
"source": "readme",
|
|
986
|
-
"compilable": true
|
|
987
|
-
},
|
|
988
1012
|
"71f7aeb8fd7bb546bc7d562a717683681d8eccf7f2beeee86e3196121d6656f1": {
|
|
989
1013
|
"title": "With Icon Start",
|
|
990
1014
|
"code": "<Button {...args} iconStart={<Icons name=\"add\" />}>\n Icon Start\n </Button>",
|
|
991
1015
|
"source": "stories",
|
|
992
1016
|
"compilable": false
|
|
993
1017
|
},
|
|
994
|
-
"
|
|
995
|
-
"title": "
|
|
996
|
-
"code": "
|
|
997
|
-
"source": "
|
|
1018
|
+
"72f524de604ba1db3308d0b8f5131b0204abf6a3e411be78f4f61d0fc2081eb7": {
|
|
1019
|
+
"title": "Render Option Content",
|
|
1020
|
+
"code": "{\n const [value, setValue] = useState<string | number | undefined>('usdt');\n\n return (\n <div style={storyContainerStyle}>\n <Select\n {...args}\n value={value}\n renderOptionContent={renderAssetOptionContent}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
1021
|
+
"source": "stories",
|
|
1022
|
+
"compilable": false
|
|
1023
|
+
},
|
|
1024
|
+
"7318e5e19b35c2334284717d2b44382c3f0aa456d1d61c6892e3211c2c77135d": {
|
|
1025
|
+
"title": "Canonical usage",
|
|
1026
|
+
"code": "import { Pagination, usePagination } from '@1money/component-ui';\n// or\nimport { Pagination, usePagination } from '@1money/component-ui/Pagination';",
|
|
1027
|
+
"source": "canonical",
|
|
998
1028
|
"compilable": true
|
|
999
1029
|
},
|
|
1000
1030
|
"7374135a0f5702e8c0e689b3ce2576b5c15b47c90d9fffe7c2bcff8693acd9ef": {
|
|
@@ -1003,6 +1033,12 @@
|
|
|
1003
1033
|
"source": "stories",
|
|
1004
1034
|
"compilable": true
|
|
1005
1035
|
},
|
|
1036
|
+
"73c34dcab340dfc36bb0f4e928f6911b25f7f3d6d590dfb72c3c1226a9c573fe": {
|
|
1037
|
+
"title": "Canonical usage",
|
|
1038
|
+
"code": "import { Tag } from '@1money/component-ui';\n// or\nimport { Tag } from '@1money/component-ui/Tag';",
|
|
1039
|
+
"source": "canonical",
|
|
1040
|
+
"compilable": true
|
|
1041
|
+
},
|
|
1006
1042
|
"73da19095cdcbe4a8b8d7ec782967002cf9da27f5638d7ec08e376a8d777aeda": {
|
|
1007
1043
|
"title": "Controlled and Uncontrolled",
|
|
1008
1044
|
"code": "// Standalone controlled\n<Radio\n label=\"Controlled\"\n checked={value}\n onChange={(event) => setValue(event.target.checked)}\n/>\n\n// Standalone uncontrolled\n<Radio label=\"Uncontrolled\" defaultChecked />\n\n// Group controlled\n<RadioGroup value={selected} onChange={handleChange}>\n <Radio value=\"a\" label=\"Option A\" />\n <Radio value=\"b\" label=\"Option B\" />\n</RadioGroup>\n\n// Group uncontrolled\n<RadioGroup defaultValue=\"a\">\n <Radio value=\"a\" label=\"Option A\" />\n <Radio value=\"b\" label=\"Option B\" />\n</RadioGroup>",
|
|
@@ -1021,18 +1057,6 @@
|
|
|
1021
1057
|
"source": "stories",
|
|
1022
1058
|
"compilable": false
|
|
1023
1059
|
},
|
|
1024
|
-
"75fc55f93a5502c927a0f7967cd25465c98417b3afe02ec8880531efc12a3362": {
|
|
1025
|
-
"title": "Canonical usage",
|
|
1026
|
-
"code": "import { Clipboard } from '@1money/components-ui';\n\n<Clipboard\n label=\"Setup Key\"\n content=\"GWKLDLVE25dfLIJOHUD578JPIHD24JLJGHGOUH27HLIHOUGOLIKHJ547HOU\"\n onSuccess={(v) => console.log(v)}\n/>",
|
|
1027
|
-
"source": "canonical",
|
|
1028
|
-
"compilable": true
|
|
1029
|
-
},
|
|
1030
|
-
"76052e611a155b488f8eee38973e3b050274bc58b0a974f66b8c9a55e77e28b6": {
|
|
1031
|
-
"title": "Canonical usage",
|
|
1032
|
-
"code": "import { Typography } from '@1money/components-ui';\n// or\nimport { Typography } from '@1money/components-ui/Typography';",
|
|
1033
|
-
"source": "canonical",
|
|
1034
|
-
"compilable": true
|
|
1035
|
-
},
|
|
1036
1060
|
"76302edb4c36b3507a837c478a5be477379f78f3e0093f51d2c5874f610a1fb5": {
|
|
1037
1061
|
"title": "Detail Panel Spacing",
|
|
1038
1062
|
"code": "<div style={DEMO_PAGE_STYLE}>\n <Space size={SPACE_SIZE.large} align={SPACE_ALIGN.start} style={{ width: '100%' }}>\n <Space direction={SPACE_DIRECTION.vertical} size={SPACE_SIZE.middle} style={DEMO_COLUMN_STYLE}>\n <div style={DEMO_INLINE_ITEM_STYLE}>Business Name</div>\n <div style={DEMO_INLINE_ITEM_STYLE}>Registration Number</div>\n <div style={DEMO_INLINE_ITEM_STYLE}>Country</div>\n <div style={DEMO_INLINE_ITEM_STYLE}>Created At</div>\n </Space>\n\n <Space direction={SPACE_DIRECTION.vertical} size={SPACE_SIZE.middle} style={DEMO_COLUMN_STYLE}>\n <Space split={<span>|</span>} size={SPACE_SIZE.small}>\n <span>Risk: Medium</span>\n <span>KYB: Reviewing</span>\n <span>AML: Passed</span>\n </Space>\n <div style={DEMO_INLINE_ITEM_STYLE}>Operator: Derrick</div>\n <div style={DEMO_INLINE_ITEM_STYLE}>Last Updated: 2026-02-09</div>\n </Space>\n </Space>\n </div>",
|
|
@@ -1045,12 +1069,6 @@
|
|
|
1045
1069
|
"source": "readme",
|
|
1046
1070
|
"compilable": true
|
|
1047
1071
|
},
|
|
1048
|
-
"770c9ef1e8d4b176e14cf2288788ed37782cbbee674dbb3f3017c1714e81a200": {
|
|
1049
|
-
"title": "Import",
|
|
1050
|
-
"code": "import { Switch } from '@1money/components-ui';\n// or\nimport { Switch } from '@1money/components-ui/Switch';",
|
|
1051
|
-
"source": "readme",
|
|
1052
|
-
"compilable": true
|
|
1053
|
-
},
|
|
1054
1072
|
"7880909af758a291affc6ba2a56af087c012f00945684528454d55e9faffbb53": {
|
|
1055
1073
|
"title": "Sidebar Content Layout",
|
|
1056
1074
|
"code": "<div style={DEMO_PAGE_STYLE}>\n <Flex gap={GAP_MIDDLE} align={FLEX_ALIGN.start} justify={FLEX_JUSTIFY.start} wrap={WRAP_DISABLED}>\n <Flex vertical gap={GAP_SMALL} style={{ ...DEMO_PANEL_STYLE, minWidth: 220 }}>\n <div style={DEMO_ITEM_STYLE}>Menu Group A</div>\n <div style={DEMO_ITEM_STYLE}>Menu Group B</div>\n <div style={DEMO_ITEM_STYLE}>Menu Group C</div>\n </Flex>\n\n <Flex vertical gap={GAP_MIDDLE} style={{ ...DEMO_PANEL_STYLE, flex: 1 }}>\n <Flex align={FLEX_ALIGN.center} justify={FLEX_JUSTIFY.spaceBetween}>\n <div style={DEMO_ITEM_STYLE}>Page Title</div>\n <Flex gap={GAP_SMALL}>\n <div style={DEMO_ITEM_STYLE}>Export</div>\n <div style={DEMO_ITEM_STYLE}>Create</div>\n </Flex>\n </Flex>\n <div style={DEMO_PANEL_STYLE}>Main Content</div>\n <Flex align={FLEX_ALIGN.center} justify={FLEX_JUSTIFY.end} gap={GAP_SMALL}>\n <div style={DEMO_ITEM_STYLE}>Cancel</div>\n <div style={DEMO_ITEM_STYLE}>Save</div>\n </Flex>\n </Flex>\n </Flex>\n </div>",
|
|
@@ -1063,6 +1081,18 @@
|
|
|
1063
1081
|
"source": "readme",
|
|
1064
1082
|
"compilable": true
|
|
1065
1083
|
},
|
|
1084
|
+
"79ba9feac95c34ef9c471c31ca2e8d612dd9da173b384f413f52916a485d6065": {
|
|
1085
|
+
"title": "Canonical usage",
|
|
1086
|
+
"code": "import { Calendar } from '@1money/component-ui';\n// or\nimport { Calendar } from '@1money/component-ui/Calendar';",
|
|
1087
|
+
"source": "canonical",
|
|
1088
|
+
"compilable": true
|
|
1089
|
+
},
|
|
1090
|
+
"7a25185c2f84fe20e85c2806cd7c4a624a5062225c528477beb49e950592f87c": {
|
|
1091
|
+
"title": "Usage",
|
|
1092
|
+
"code": "import { Icons } from '@1money/component-ui';\n\nconst steps = [\n {\n icon: <Icons name=\"dashboard\" size={24} />,\n heading: 'Welcome to Dashboard',\n body: 'Here you can see an overview of your finances.',\n },\n {\n heading: 'Track Your Spending',\n body: 'Use the charts to monitor transactions by category.',\n },\n {\n heading: \"You're all set!\",\n body: 'Explore the rest of the app at your own pace.',\n },\n];\n\n<CoachMark\n steps={steps}\n defaultActiveStep={0}\n placement=\"top\"\n onFinish={() => console.log('Tour complete')}\n onDismiss={() => console.log('Tour dismissed')}\n/>",
|
|
1093
|
+
"source": "readme",
|
|
1094
|
+
"compilable": true
|
|
1095
|
+
},
|
|
1066
1096
|
"7a3a92935f0b863855900ffe5295cb58ad8e6a2f83cdf8ae82ea0a93ff8b829b": {
|
|
1067
1097
|
"title": "Description And Feedback",
|
|
1068
1098
|
"code": "<ProForm\n {...args}\n initialValues={{ username: '', email: '', bio: '', agree: false }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n description=\"Only letters, numbers, and underscores. 3-20 characters.\"\n placeholder=\"Enter username\"\n feedback=\"This will be your public display name.\"\n rules={[\n { required: true, message: 'Username is required' },\n { min: 3, message: 'At least 3 characters' },\n ]}\n />\n <ProFormText\n name=\"email\"\n label=\"Email\"\n description=\"We'll never share your email with anyone else.\"\n placeholder=\"Enter email\"\n rules={[\n { required: true, message: 'Email is required' },\n { type: 'email', message: 'Invalid email format' },\n ]}\n />\n <ProFormTextArea\n name=\"bio\"\n label=\"Bio\"\n description=\"Markdown is supported. Max 500 characters.\"\n placeholder=\"Tell us about yourself\"\n />\n <ProFormPassword\n name=\"password\"\n label=\"Password\"\n description=\"Must contain at least 8 characters, one uppercase and one number.\"\n rules={[{ required: true, message: 'Password is required' }]}\n />\n <ProFormCheckbox\n name=\"agree\"\n label=\"I accept the terms\"\n feedback=\"You must agree before submitting.\"\n />\n </ProForm>",
|
|
@@ -1087,6 +1117,12 @@
|
|
|
1087
1117
|
"source": "stories",
|
|
1088
1118
|
"compilable": true
|
|
1089
1119
|
},
|
|
1120
|
+
"7d415c46958e4b98092da361ef3a5b5a788b71628f8dfaa3a8ee1021b6871cee": {
|
|
1121
|
+
"title": "Import",
|
|
1122
|
+
"code": "import { Button, Icons } from '@1money/component-ui';\n// or\nimport { Button } from '@1money/component-ui/Button';\nimport { Icons } from '@1money/component-ui/Icons';",
|
|
1123
|
+
"source": "readme",
|
|
1124
|
+
"compilable": true
|
|
1125
|
+
},
|
|
1090
1126
|
"7decc20ca0112ca8b497a08d1131565c7fc9d060ebdee8a34422d6f60b1a5c00": {
|
|
1091
1127
|
"title": "Non Virtual",
|
|
1092
1128
|
"code": "{\n const smallData = generateData(20);\n return (\n <div style={containerStyle}>\n <VirtualList\n data={smallData}\n height={300}\n itemHeight={30}\n itemKey=\"id\"\n virtual={false}\n >\n {(item: Item) => (\n <div style={itemStyle(item.height)}>\n <span>Item {item.id} (non-virtual)</span>\n </div>\n )}\n </VirtualList>\n </div>\n );\n }",
|
|
@@ -1105,12 +1141,6 @@
|
|
|
1105
1141
|
"source": "stories",
|
|
1106
1142
|
"compilable": true
|
|
1107
1143
|
},
|
|
1108
|
-
"7e423f9896eb2bcccdb051f9cae6f76f83c431686da59f2d1c5a3d6a8ce51474": {
|
|
1109
|
-
"title": "Canonical usage",
|
|
1110
|
-
"code": "import { Carousel } from '@1money/components-ui';\n// or\nimport { Carousel } from '@1money/components-ui/Carousel';",
|
|
1111
|
-
"source": "canonical",
|
|
1112
|
-
"compilable": true
|
|
1113
|
-
},
|
|
1114
1144
|
"7f54085ee6892564556d190e01d8e809af4cd0841f2c8c6876faeb511fbe8834": {
|
|
1115
1145
|
"title": "All Field Types",
|
|
1116
1146
|
"code": "<ProForm\n {...args}\n initialValues={{\n text: 'Hello',\n textWithButton: '',\n password: 'secret123',\n textarea: 'Multi-line\\ncontent',\n agree: true,\n options: [],\n darkMode: false,\n role: 'admin',\n volume: 60,\n date: null,\n }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText name=\"text\" label=\"Text Input\" placeholder=\"Type here...\" />\n <ProFormText\n name=\"textWithButton\"\n label=\"Text with Button\"\n placeholder=\"Enter verification code\"\n fieldProps={{\n suffix: (\n <Button color=\"primary\" size=\"small\" style={{ marginRight: -4 }}>\n Send Code\n </Button>\n ),\n }}\n />\n <ProFormPassword name=\"password\" label=\"Password\" placeholder=\"Password\" />\n <ProFormTextArea name=\"textarea\" label=\"Text Area\" placeholder=\"Enter long text\" />\n <ProFormCheckbox name=\"agree\" label=\"I agree to the terms\" />\n <ProFormCheckboxGroup\n name=\"options\"\n label=\"Pick options\"\n fieldProps={{\n options: [\n { label: 'Option A', value: 'a' },\n { label: 'Option B', value: 'b' },\n { label: 'Option C', value: 'c' },\n ],\n }}\n />\n <ProFormSwitch name=\"darkMode\" label=\"Dark Mode\" />\n <ProFormRadioGroup\n name=\"role\"\n label=\"Role\"\n fieldProps={{\n direction: 'horizontal',\n options: [\n { label: 'Admin', value: 'admin' },\n { label: 'Editor', value: 'editor' },\n { label: 'Viewer', value: 'viewer' },\n ],\n }}\n />\n <ProFormSlider\n name=\"volume\"\n label=\"Volume\"\n fieldProps={{ min: 0, max: 100 }}\n />\n <ProFormDatePicker\n name=\"date\"\n label=\"Date\"\n fieldProps={{ dateFormat: 'yy-mm-dd' }}\n />\n </ProForm>",
|
|
@@ -1135,12 +1165,6 @@
|
|
|
1135
1165
|
"source": "stories",
|
|
1136
1166
|
"compilable": false
|
|
1137
1167
|
},
|
|
1138
|
-
"8129a087395157c8e93b214d9f280f542658a37d2d8aa6ea5e2561bf7d128925": {
|
|
1139
|
-
"title": "Navigation (sidebar with collapse)",
|
|
1140
|
-
"code": "import { useRef } from 'react';\nimport type { NavigationHandlers } from '@1money/components-ui';\n\nconst ref = useRef<NavigationHandlers>(null);\n\n<Navigation\n ref={ref}\n items={[\n { key: 'home', label: 'Home', icon: 'home', active: true },\n { key: 'portfolio', label: 'Portfolio', icon: 'portfolio' },\n {\n key: 'transactions',\n label: 'Transactions',\n icon: 'transactions',\n children: [\n { key: 'deposits', label: 'Deposits' },\n { key: 'withdrawals', label: 'Withdrawals' },\n ],\n },\n ]}\n collapsible\n onCollapse={(collapsed) => console.log(collapsed)}\n selector={<CompanySelector />}\n>\n {/* rendered at the bottom of the sidebar */}\n <SettingsLink />\n</Navigation>\n\n// Imperative control\nref.current?.toggle();\nref.current?.collapse(true);",
|
|
1141
|
-
"source": "readme",
|
|
1142
|
-
"compilable": true
|
|
1143
|
-
},
|
|
1144
1168
|
"81fa795ca4a1acae4ec31efda3c21167df7e3f24ad1461056a90469ff70b835a": {
|
|
1145
1169
|
"title": "Multi Select With Checkbox",
|
|
1146
1170
|
"code": "{\n const [selected, setSelected] = useState<string[]>(['Banana', 'Date']);\n\n const toggle = (item: string) => {\n setSelected((prev) =>\n prev.includes(item) ? prev.filter((v) => v !== item) : [...prev, item],\n );\n };\n\n return (\n <Dropdown\n {...args}\n overlayStyle={{ minWidth: 260 }}\n content={\n <div style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>\n {selected.length > 0 && (\n <div style={selectedBarStyle}>\n <span style={{ fontSize: 14, fontWeight: 500, color: '#131313' }}>\n {selected.length} selected\n </span>\n <button\n type=\"button\"\n style={clearAllBtnStyle}\n onClick={() => setSelected([])}\n >\n <Icons name=\"cross\" size={16} color=\"#ae0000\" />\n Clear all\n </button>\n </div>\n )}\n <div style={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {SIMPLE_ITEMS.map((item) => (\n <div\n key={item}\n style={{\n padding: '6px 12px',\n borderRadius: 8,\n fontSize: 14,\n backgroundColor: selected.includes(item) ? '#f8f8f8' : 'transparent',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 8, cursor: 'pointer' }} onClick={() => toggle(item)}>\n <Checkbox\n checked={selected.includes(item)}\n onChange={() => toggle(item)}\n />\n <TypographyBody>{item}</TypographyBody>\n </div>\n\n </div>\n ))}\n </div>\n </div>\n }\n >\n <Button>\n {selected.length > 0 ? `${selected.length} selected` : 'Select items'}\n </Button>\n </Dropdown>\n );\n }",
|
|
@@ -1177,39 +1201,51 @@
|
|
|
1177
1201
|
"source": "readme",
|
|
1178
1202
|
"compilable": true
|
|
1179
1203
|
},
|
|
1180
|
-
"
|
|
1181
|
-
"title": "
|
|
1182
|
-
"code": "import {
|
|
1204
|
+
"83a40b3d42ffa56ab725f6babf7cfa8029b002fa72a6a9debc106e51292cd840": {
|
|
1205
|
+
"title": "Basic Usage",
|
|
1206
|
+
"code": "import { Flex } from '@1money/component-ui';\nimport { FLEX_ALIGN, FLEX_GAP, FLEX_JUSTIFY } from '@1money/component-ui/Flex';\n\n<Flex gap={FLEX_GAP.middle} align={FLEX_ALIGN.center} justify={FLEX_JUSTIFY.spaceBetween}>\n <div>Left</div>\n <div>Right</div>\n</Flex>",
|
|
1183
1207
|
"source": "readme",
|
|
1184
1208
|
"compilable": true
|
|
1185
1209
|
},
|
|
1186
|
-
"83a7f14ec7ad74308dcc340c21d3a1bd3bfae1a54793a236229c65619188361f": {
|
|
1187
|
-
"title": "Canonical usage",
|
|
1188
|
-
"code": "import { Input } from '@1money/components-ui';\n// or\nimport { Input } from '@1money/components-ui/Input';",
|
|
1189
|
-
"source": "canonical",
|
|
1190
|
-
"compilable": true
|
|
1191
|
-
},
|
|
1192
1210
|
"842244e70f89e2aaf6941718de836ab3a6e08d642a4d4bb2e80cee160158470f": {
|
|
1193
1211
|
"title": "Default",
|
|
1194
1212
|
"code": "{\n const sizes = ['large', 'small'] as const;\n const statuses = ['default', 'error'] as const;\n const valueTypes = ['Placeholder', 'Filled'] as const;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 40 }}>\n {sizes.map((size) => (\n <div key={size}>\n <h3 style={{ margin: '0 0 16px', textTransform: 'capitalize' }}>{size}</h3>\n <div style={{ display: 'flex', gap: 24, flexWrap: 'wrap' }}>\n {statuses.map((status) =>\n valueTypes.map((vt) => (\n <div key={`${status}-${vt}`} style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>\n {status} / {vt}\n </p>\n <Input\n size={size}\n status={status}\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={status === 'error' ? <Icons name=\"error\" size={16} /> : <Icons name=\"info\" size={16} />}\n placeholder=\"Value\"\n allowClear\n defaultValue={vt === 'Filled' ? 'Input value' : undefined}\n />\n </div>\n )),\n )}\n {/* Read-Only */}\n {valueTypes.map((vt) => (\n <div key={`readonly-${vt}`} style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>\n read-only / {vt}\n </p>\n <Input\n size={size}\n readOnly\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n placeholder=\"Value\"\n defaultValue={vt === 'Filled' ? 'Read-only value' : undefined}\n />\n </div>\n ))}\n {/* Disabled */}\n {valueTypes.map((vt) => (\n <div key={`disabled-${vt}`} style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>\n disabled / {vt}\n </p>\n <Input\n size={size}\n disabled\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n placeholder=\"Value\"\n defaultValue={vt === 'Filled' ? 'Disabled value' : undefined}\n />\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {/* ── With Prefix / Suffix ── */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>With Prefix / Suffix</h3>\n <div style={{ display: 'flex', gap: 24, flexWrap: 'wrap' }}>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Prefix + Suffix</p>\n <Input\n label=\"Label\"\n defaultValue=\"100\"\n prefix={<span>USD</span>}\n suffix={<span>Max</span>}\n allowClear\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Prefix only</p>\n <Input\n label=\"Label\"\n placeholder=\"Enter amount\"\n prefix={<span>$</span>}\n allowClear\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Suffix only</p>\n <Input\n label=\"Label\"\n placeholder=\"Enter email\"\n suffix={<span>@gmail.com</span>}\n />\n </div>\n </div>\n </div>\n\n {/* ── Required / Info ── */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>Required / Info</h3>\n <div style={{ display: 'flex', gap: 24, flexWrap: 'wrap' }}>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Required</p>\n <Input\n label=\"Label\"\n required\n placeholder=\"Required field\"\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Optional (required=false)</p>\n <Input\n label=\"Label\"\n required={false}\n placeholder=\"Optional field\"\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>With Info</p>\n <Input\n label=\"Label\"\n info=\"Optional hint\"\n placeholder=\"Value\"\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>With Tip</p>\n <Input\n label=\"Label\"\n tip=\"This is a helpful tooltip\"\n placeholder=\"Value\"\n />\n </div>\n <div style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>Optional + Info + Tip</p>\n <Input\n label=\"Label\"\n required={false}\n info=\"Optional hint\"\n tip=\"This is a helpful tooltip\"\n placeholder=\"Value\"\n />\n </div>\n </div>\n </div>\n </div>\n );\n }",
|
|
1195
1213
|
"source": "stories",
|
|
1196
1214
|
"compilable": true
|
|
1197
1215
|
},
|
|
1216
|
+
"8585bff0f1eb7ff6a28f523eb07a2fe420a92d4ab2b329724362d75b08df00d5": {
|
|
1217
|
+
"title": "Import",
|
|
1218
|
+
"code": "import { Typography } from '@1money/component-ui';\n// or\nimport {\n Typography,\n TypographyBody,\n TypographyDisplay,\n TypographyHeadline,\n TypographyLabel,\n TypographyLink,\n TypographyTitle,\n} from '@1money/component-ui/Typography';",
|
|
1219
|
+
"source": "readme",
|
|
1220
|
+
"compilable": true
|
|
1221
|
+
},
|
|
1198
1222
|
"85a3e1ad39461a191a1fdd7c9e26a2810d6e3f39e4304aad3029d5eec043b3d8": {
|
|
1199
1223
|
"title": "RadioGroup With Options",
|
|
1200
1224
|
"code": "const [selected, setSelected] = useState<string | number>('email');\n\n<RadioGroup\n value={selected}\n onChange={(event) => {\n if (event.target.value !== undefined) {\n setSelected(event.target.value);\n }\n }}\n options={[\n { value: 'email', label: 'Email', description: 'Receive via email' },\n { value: 'sms', label: 'SMS', description: 'Receive via text message' },\n { value: 'push', label: 'Push', description: 'Receive on your device' },\n ]}\n/>",
|
|
1201
1225
|
"source": "readme",
|
|
1202
1226
|
"compilable": true
|
|
1203
1227
|
},
|
|
1228
|
+
"85a8f18e9db777e582613af812e91ae876d4cb2d7b0ce8feef546c53672a32e8": {
|
|
1229
|
+
"title": "Canonical usage",
|
|
1230
|
+
"code": "import { Copy } from '@1money/component-ui';\n// or\nimport { Copy } from '@1money/component-ui/Copy';",
|
|
1231
|
+
"source": "canonical",
|
|
1232
|
+
"compilable": true
|
|
1233
|
+
},
|
|
1204
1234
|
"8635e5203dcc0ffc85bde3edc3cafc477676635bb31ab8c71a82f13a90c00b5d": {
|
|
1205
1235
|
"title": "Error",
|
|
1206
1236
|
"code": "<div style={wrapperStyle}>\n <Step\n {...args}\n items={[\n {\n key: STEP_ITEM_KEYS.start,\n title: STEP_SAMPLE_COPY.title,\n description: STEP_SAMPLE_COPY.description,\n status: STEP_STATUS.error,\n tag: STEP_SAMPLE_COPY.tag,\n },\n {\n key: STEP_ITEM_KEYS.complete,\n title: STEP_SAMPLE_COPY.title,\n description: STEP_SAMPLE_COPY.description,\n status: STEP_STATUS.error,\n tag: STEP_SAMPLE_COPY.tag,\n },\n {\n key: STEP_ITEM_KEYS.error,\n title: STEP_SAMPLE_COPY.title,\n description: STEP_SAMPLE_COPY.description,\n status: STEP_STATUS.default,\n tag: STEP_SAMPLE_COPY.tag,\n },\n ]}\n />\n </div>",
|
|
1207
1237
|
"source": "stories",
|
|
1208
1238
|
"compilable": false
|
|
1209
1239
|
},
|
|
1210
|
-
"
|
|
1240
|
+
"87093dabc20e5f57b2b6778e44b86a15161814292c77dcf8ff8ee67b5416b71b": {
|
|
1241
|
+
"title": "Canonical usage",
|
|
1242
|
+
"code": "import { Dialog } from '@1money/component-ui';\n// or\nimport { Dialog } from '@1money/component-ui/Dialog';",
|
|
1243
|
+
"source": "canonical",
|
|
1244
|
+
"compilable": true
|
|
1245
|
+
},
|
|
1246
|
+
"870e2b31b3b9f07f3c86e4a3d972ce2ac8d52ccfec472c80ef17614db549d99c": {
|
|
1211
1247
|
"title": "Canonical usage",
|
|
1212
|
-
"code": "import {
|
|
1248
|
+
"code": "import { Grid, Row, Col } from '@1money/component-ui';\n// or\nimport { Grid, Row, Col } from '@1money/component-ui/Grid';\nimport { GRID_ALIGN, GRID_JUSTIFY } from '@1money/component-ui/Grid';",
|
|
1213
1249
|
"source": "canonical",
|
|
1214
1250
|
"compilable": true
|
|
1215
1251
|
},
|
|
@@ -1219,27 +1255,33 @@
|
|
|
1219
1255
|
"source": "stories",
|
|
1220
1256
|
"compilable": false
|
|
1221
1257
|
},
|
|
1222
|
-
"
|
|
1223
|
-
"title": "
|
|
1224
|
-
"code": "
|
|
1225
|
-
"source": "
|
|
1258
|
+
"87da44f303a10795fdc48405385400573d6df57d3902450fd80820b207063783": {
|
|
1259
|
+
"title": "Import",
|
|
1260
|
+
"code": "import { Tour } from '@1money/component-ui';\n// or\nimport { Tour } from '@1money/component-ui/Tour';",
|
|
1261
|
+
"source": "readme",
|
|
1226
1262
|
"compilable": true
|
|
1227
1263
|
},
|
|
1228
|
-
"
|
|
1264
|
+
"881749c8a1a24d971f731a3a711abd8ca83a3db2291db92d41114f4df6b2b380": {
|
|
1229
1265
|
"title": "Canonical usage",
|
|
1230
|
-
"code": "import {
|
|
1266
|
+
"code": "import { Progress } from '@1money/component-ui';\n// or\nimport { Progress } from '@1money/component-ui/Progress';",
|
|
1231
1267
|
"source": "canonical",
|
|
1232
1268
|
"compilable": true
|
|
1233
1269
|
},
|
|
1270
|
+
"88a98229b741820a7e0d61f5e3e8e51340ac8d1cc2eb5332be8189a42f43b6ff": {
|
|
1271
|
+
"title": "No Animation",
|
|
1272
|
+
"code": "<Tabs items={DEFAULT_ITEMS} animated={false} />",
|
|
1273
|
+
"source": "stories",
|
|
1274
|
+
"compilable": true
|
|
1275
|
+
},
|
|
1234
1276
|
"89acd530e5d3ac4d2f2cdc50085c98fc8d6ee5a3f488a16486455a35460bb354": {
|
|
1235
1277
|
"title": "Long Text",
|
|
1236
1278
|
"code": "<div style={PREVIEW_GRID_STYLE}>\n <TooltipPreviewCard\n label=\"Long body only\"\n body={EXTRA_LONG_TEXT}\n />\n <TooltipPreviewCard\n label=\"Long title + long body\"\n title=\"This is a very long tooltip title that might wrap to multiple lines\"\n body={EXTRA_LONG_TEXT}\n />\n <TooltipPreviewCard\n label=\"Long body with placement right\"\n body={EXTRA_LONG_TEXT}\n placement=\"right\"\n />\n </div>",
|
|
1237
1279
|
"source": "stories",
|
|
1238
1280
|
"compilable": true
|
|
1239
1281
|
},
|
|
1240
|
-
"
|
|
1241
|
-
"title": "
|
|
1242
|
-
"code": "
|
|
1282
|
+
"8a5806fc588c223301f3b8050939aef03b37dac957c426887998aa3f4423697e": {
|
|
1283
|
+
"title": "Vertical",
|
|
1284
|
+
"code": "<span>\n Text <Divider type=\"vertical\" /> Text\n</span>",
|
|
1243
1285
|
"source": "readme",
|
|
1244
1286
|
"compilable": true
|
|
1245
1287
|
},
|
|
@@ -1249,6 +1291,12 @@
|
|
|
1249
1291
|
"source": "stories",
|
|
1250
1292
|
"compilable": false
|
|
1251
1293
|
},
|
|
1294
|
+
"8cc002e0e73f335fa1d9b738bc68bc5e35dc521d869efddbfd4aac0399ee81b8": {
|
|
1295
|
+
"title": "Canonical usage",
|
|
1296
|
+
"code": "import { Portal } from '@1money/component-ui';\n// or\nimport { Portal } from '@1money/component-ui/Portal';",
|
|
1297
|
+
"source": "canonical",
|
|
1298
|
+
"compilable": true
|
|
1299
|
+
},
|
|
1252
1300
|
"8d9b4b816f395924fb061a9384e54b2fc8e97a3bfd441367d6c70ff5397f23ec": {
|
|
1253
1301
|
"title": "Text With Icon",
|
|
1254
1302
|
"code": "<Button {...args} variant={BUTTON_VARIANT.text} iconEnd={<Icons name=\"arrowRight\" />}>\n Learn More\n </Button>",
|
|
@@ -1261,45 +1309,21 @@
|
|
|
1261
1309
|
"source": "stories",
|
|
1262
1310
|
"compilable": true
|
|
1263
1311
|
},
|
|
1264
|
-
"
|
|
1312
|
+
"8f3224780dc7035f24c1a9a5e7915be84f23695cd953df669bb6e54afce4ff90": {
|
|
1265
1313
|
"title": "Canonical usage",
|
|
1266
|
-
"code": "import {
|
|
1314
|
+
"code": "import { Icons } from '@1money/component-ui';\n\n<Icons name=\"arrowRight\" size={24} />",
|
|
1267
1315
|
"source": "canonical",
|
|
1268
1316
|
"compilable": true
|
|
1269
1317
|
},
|
|
1270
|
-
"8ee4eda344b62edf1015fe21cd52d4f5a5dd71cc3afca58644d9f941978f4f08": {
|
|
1271
|
-
"title": "Canonical usage",
|
|
1272
|
-
"code": "import { Tag } from '@1money/components-ui';\n// or\nimport { Tag } from '@1money/components-ui/Tag';",
|
|
1273
|
-
"source": "canonical",
|
|
1274
|
-
"compilable": true
|
|
1275
|
-
},
|
|
1276
|
-
"8f2d97b44cca3977d39ba134e5981f875d9e8cf9cff20b301aed559b8870665b": {
|
|
1277
|
-
"title": "Vertical",
|
|
1278
|
-
"code": "Text <Divider type=\"vertical\" /> Text",
|
|
1279
|
-
"source": "readme",
|
|
1280
|
-
"compilable": true
|
|
1281
|
-
},
|
|
1282
|
-
"8ffb7323c737a0cc1f4c296336b8763bf0acdafb29eb029b4046496aaa1b4d27": {
|
|
1283
|
-
"title": "Import",
|
|
1284
|
-
"code": "import { Alert } from '@1money/components-ui';\n// or\nimport { Alert } from '@1money/components-ui/Alert';",
|
|
1285
|
-
"source": "readme",
|
|
1286
|
-
"compilable": true
|
|
1287
|
-
},
|
|
1288
1318
|
"90bea0eac958ff92526a0901cd2515a8694e96039b3d056e709ede70bd1b4678": {
|
|
1289
1319
|
"title": "Search Only Filtered",
|
|
1290
1320
|
"code": "{\n const [value, setValue] = useState<string | number | undefined>(undefined);\n const [searchValue, setSearchValue] = useState('');\n\n const trimmed = searchValue.trim().toLowerCase();\n const filteredOptions = trimmed\n ? ASSET_OPTIONS.filter((option) => {\n const label = String(option.label).toLowerCase();\n const description = String(option.description ?? '').toLowerCase();\n const optionValue = String(option.value).toLowerCase();\n return (\n label.includes(trimmed) ||\n description.includes(trimmed) ||\n optionValue.includes(trimmed)\n );\n })\n : [];\n\n return (\n <div style={storyContainerStyle}>\n <Select\n {...args}\n value={value}\n options={filteredOptions}\n searchValue={searchValue}\n emptyContent={trimmed ? 'No matches' : 'Type to search assets'}\n onSearchChange={(next) => {\n setSearchValue(next);\n args.onSearchChange?.(next);\n }}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n </div>\n );\n }",
|
|
1291
1321
|
"source": "stories",
|
|
1292
1322
|
"compilable": false
|
|
1293
1323
|
},
|
|
1294
|
-
"
|
|
1324
|
+
"920c6084b0c74e8e6ccd8e98e3afd2477bffb820950ef10b1e933c2597cd446f": {
|
|
1295
1325
|
"title": "Canonical usage",
|
|
1296
|
-
"code": "import {
|
|
1297
|
-
"source": "canonical",
|
|
1298
|
-
"compilable": true
|
|
1299
|
-
},
|
|
1300
|
-
"93b8b9acce6685bc6f00a21f857fc812e41fb754d3e946d7576e2543f056f1c0": {
|
|
1301
|
-
"title": "Canonical usage",
|
|
1302
|
-
"code": "import { Upload, UploadFileBar } from '@1money/components-ui';\n// or\nimport { Upload, UploadFileBar } from '@1money/components-ui/Upload';",
|
|
1326
|
+
"code": "import { Icons, IconWrapper, IconHover } from '@1money/component-ui';\n// or\nimport { Icons, IconWrapper, IconHover } from '@1money/component-ui/Icons';\n\n// Type imports\nimport type { IconName, SortIconStatus } from '@1money/component-ui';",
|
|
1303
1327
|
"source": "canonical",
|
|
1304
1328
|
"compilable": true
|
|
1305
1329
|
},
|
|
@@ -1309,9 +1333,9 @@
|
|
|
1309
1333
|
"source": "stories",
|
|
1310
1334
|
"compilable": false
|
|
1311
1335
|
},
|
|
1312
|
-
"
|
|
1313
|
-
"title": "
|
|
1314
|
-
"code": "import {
|
|
1336
|
+
"93d92a4c2994ad24677ef5800318b556bdd570a6f6547fe359586b7898bbffa0": {
|
|
1337
|
+
"title": "Import",
|
|
1338
|
+
"code": "import { Navigation, Nav, NavigationStepper } from '@1money/component-ui';\n// or\nimport { Navigation, Nav, NavigationStepper } from '@1money/component-ui/Navigation';",
|
|
1315
1339
|
"source": "readme",
|
|
1316
1340
|
"compilable": true
|
|
1317
1341
|
},
|
|
@@ -1327,15 +1351,9 @@
|
|
|
1327
1351
|
"source": "stories",
|
|
1328
1352
|
"compilable": false
|
|
1329
1353
|
},
|
|
1330
|
-
"
|
|
1354
|
+
"96a4fb49627068cd32df95bce74ab746a2901c627dcd70fa9bf9c9247f21b7a3": {
|
|
1331
1355
|
"title": "Canonical usage",
|
|
1332
|
-
"code": "import {
|
|
1333
|
-
"source": "canonical",
|
|
1334
|
-
"compilable": true
|
|
1335
|
-
},
|
|
1336
|
-
"96811d7b0b7448138a55d8b001aae58595a2e5201ba8bc5ef5ca1cf1a79a8524": {
|
|
1337
|
-
"title": "Canonical usage",
|
|
1338
|
-
"code": "import { Segment } from '@1money/components-ui';\n// or\nimport { Segment } from '@1money/components-ui/Segment';",
|
|
1356
|
+
"code": "import { Trigger } from '@1money/component-ui';\n// or\nimport { Trigger } from '@1money/component-ui/Trigger';",
|
|
1339
1357
|
"source": "canonical",
|
|
1340
1358
|
"compilable": true
|
|
1341
1359
|
},
|
|
@@ -1345,9 +1363,9 @@
|
|
|
1345
1363
|
"source": "stories",
|
|
1346
1364
|
"compilable": false
|
|
1347
1365
|
},
|
|
1348
|
-
"
|
|
1366
|
+
"972760bf5ab84d11fe02c95be34c823bc9ee3d6e0009ebd7bee036df4a721356": {
|
|
1349
1367
|
"title": "Import",
|
|
1350
|
-
"code": "import {
|
|
1368
|
+
"code": "import { Dropdown } from '@1money/component-ui';\n// or\nimport { Dropdown } from '@1money/component-ui/Dropdown';",
|
|
1351
1369
|
"source": "readme",
|
|
1352
1370
|
"compilable": true
|
|
1353
1371
|
},
|
|
@@ -1369,6 +1387,12 @@
|
|
|
1369
1387
|
"source": "stories",
|
|
1370
1388
|
"compilable": true
|
|
1371
1389
|
},
|
|
1390
|
+
"985b12a88fa482e6b7ff9230128c385166aa202ba56916e9d048bcb83046081b": {
|
|
1391
|
+
"title": "Canonical usage",
|
|
1392
|
+
"code": "import { Input } from '@1money/component-ui';\n\n<Input label=\"Amount\" placeholder=\"Value\" />",
|
|
1393
|
+
"source": "canonical",
|
|
1394
|
+
"compilable": true
|
|
1395
|
+
},
|
|
1372
1396
|
"991d316ea63cfd7ffbebf14b3b1e27e44442737febab245a5576b67e01d3af2a": {
|
|
1373
1397
|
"title": "All Variants",
|
|
1374
1398
|
"code": "<div style={{ display: 'flex', gap: 48 }}>\n <div style={{ flex: 1, display: 'flex', flexDirection: 'column', gap: 16 }}>\n <h3>Rectangle</h3>\n <Skeleton />\n <Skeleton width=\"10rem\" />\n <Skeleton width=\"5rem\" />\n <Skeleton height=\"2rem\" />\n <Skeleton width=\"10rem\" height=\"4rem\" />\n\n <h3 style={{ marginTop: 8 }}>Rounded</h3>\n <Skeleton borderRadius=\"16px\" />\n <Skeleton width=\"10rem\" borderRadius=\"16px\" />\n <Skeleton width=\"5rem\" borderRadius=\"16px\" />\n <Skeleton height=\"2rem\" borderRadius=\"16px\" />\n <Skeleton width=\"10rem\" height=\"4rem\" borderRadius=\"16px\" />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <h3>Square</h3>\n <div style={{ display: 'flex', gap: 8 }}>\n <Skeleton size=\"2rem\" />\n <Skeleton size=\"3rem\" />\n <Skeleton size=\"4rem\" />\n <Skeleton size=\"5rem\" />\n </div>\n\n <h3 style={{ marginTop: 8 }}>Circle</h3>\n <div style={{ display: 'flex', gap: 8 }}>\n <Skeleton shape=\"circle\" size=\"2rem\" />\n <Skeleton shape=\"circle\" size=\"3rem\" />\n <Skeleton shape=\"circle\" size=\"4rem\" />\n <Skeleton shape=\"circle\" size=\"5rem\" />\n </div>\n </div>\n </div>",
|
|
@@ -1381,15 +1405,9 @@
|
|
|
1381
1405
|
"source": "stories",
|
|
1382
1406
|
"compilable": true
|
|
1383
1407
|
},
|
|
1384
|
-
"
|
|
1385
|
-
"title": "
|
|
1386
|
-
"code": "import {
|
|
1387
|
-
"source": "readme",
|
|
1388
|
-
"compilable": true
|
|
1389
|
-
},
|
|
1390
|
-
"9a6b2f4b0ce1fdea4c73f1f9ea0d1471dc97d3dd7783c798b6b99ddc7f3bf15c": {
|
|
1391
|
-
"title": "Import",
|
|
1392
|
-
"code": "import { Skeleton } from '@1money/components-ui';\n// or\nimport { Skeleton } from '@1money/components-ui/Skeleton';",
|
|
1408
|
+
"9971f4d638cacc647af1a34ef98beb3f2aaf11c08d3a3f8f21fd0fd5bdef0dde": {
|
|
1409
|
+
"title": "CheckboxGroup Props",
|
|
1410
|
+
"code": "import { Checkbox, CheckboxGroup } from '@1money/component-ui';\n// or\nimport { Checkbox, CheckboxGroup } from '@1money/component-ui/Checkbox';\n\n<CheckboxGroup\n name=\"fruits\"\n options={[\n { label: 'Apple', value: 'apple' },\n { label: 'Pear', value: 'pear' },\n ]}\n value={selectedValues}\n onChange={setSelectedValues}\n/>\n\n<Checkbox.Group defaultValue={['alpha']}>\n <Checkbox value=\"alpha\" label=\"Alpha\" />\n <Checkbox value=\"beta\" label=\"Beta\" />\n</Checkbox.Group>",
|
|
1393
1411
|
"source": "readme",
|
|
1394
1412
|
"compilable": true
|
|
1395
1413
|
},
|
|
@@ -1399,22 +1417,10 @@
|
|
|
1399
1417
|
"source": "stories",
|
|
1400
1418
|
"compilable": true
|
|
1401
1419
|
},
|
|
1402
|
-
"
|
|
1403
|
-
"title": "
|
|
1404
|
-
"code": "import {
|
|
1405
|
-
"source": "
|
|
1406
|
-
"compilable": true
|
|
1407
|
-
},
|
|
1408
|
-
"9d095c31abb7ac97c40b817bfca40bcb706f8b8572f9a6af7218643f08b7464b": {
|
|
1409
|
-
"title": "Import",
|
|
1410
|
-
"code": "import { Flex } from '@1money/components-ui';\n// or\nimport { Flex } from '@1money/components-ui/Flex';\nimport { FLEX_ALIGN, FLEX_GAP, FLEX_JUSTIFY, FLEX_WRAP } from '@1money/components-ui/Flex';",
|
|
1411
|
-
"source": "readme",
|
|
1412
|
-
"compilable": true
|
|
1413
|
-
},
|
|
1414
|
-
"9d9e13198adcfe9df9f475bcf7d1fcef492fbd98892daaddb28d65ca2e213a74": {
|
|
1415
|
-
"title": "Import",
|
|
1416
|
-
"code": "import { ResizeObserver, useResizeObserver } from '@1money/components-ui';\n// or\nimport { ResizeObserver, useResizeObserver } from '@1money/components-ui/ResizeObserver';",
|
|
1417
|
-
"source": "readme",
|
|
1420
|
+
"9bb4d9b6b7856693e7c803e925d729a969cf39ccee9c6e08327e6e60305ca0f3": {
|
|
1421
|
+
"title": "Canonical usage",
|
|
1422
|
+
"code": "import { Step } from '@1money/component-ui';\n// or\nimport { Step } from '@1money/component-ui/Step';",
|
|
1423
|
+
"source": "canonical",
|
|
1418
1424
|
"compilable": true
|
|
1419
1425
|
},
|
|
1420
1426
|
"9eae41b47da6d3b07d6bfdb98fe407b6be85aa68db3fe695699cf9588b65eda8": {
|
|
@@ -1435,18 +1441,24 @@
|
|
|
1435
1441
|
"source": "stories",
|
|
1436
1442
|
"compilable": true
|
|
1437
1443
|
},
|
|
1438
|
-
"a0eaa77614f8bc2563173aa4c68d578c2a7d2957ec1696516c9656d43737f7e2": {
|
|
1439
|
-
"title": "Import",
|
|
1440
|
-
"code": "import { Segment } from '@1money/components-ui';\n// or\nimport { Segment } from '@1money/components-ui/Segment';",
|
|
1441
|
-
"source": "readme",
|
|
1442
|
-
"compilable": true
|
|
1443
|
-
},
|
|
1444
1444
|
"a148c8eb1938e582f665219c3d3266bc21931e8547a0e516ec73f3a420387ec3": {
|
|
1445
1445
|
"title": "Usage",
|
|
1446
1446
|
"code": "<Link disabled>Read more</Link>",
|
|
1447
1447
|
"source": "readme",
|
|
1448
1448
|
"compilable": true
|
|
1449
1449
|
},
|
|
1450
|
+
"a273142732c4077af48c520b0e9fbec1fcae48b0f012545bcb951e9554b1e0ef": {
|
|
1451
|
+
"title": "Canonical usage",
|
|
1452
|
+
"code": "import { Flex } from '@1money/component-ui';\n// or\nimport { Flex } from '@1money/component-ui/Flex';\nimport { FLEX_ALIGN, FLEX_GAP, FLEX_JUSTIFY, FLEX_WRAP } from '@1money/component-ui/Flex';",
|
|
1453
|
+
"source": "canonical",
|
|
1454
|
+
"compilable": true
|
|
1455
|
+
},
|
|
1456
|
+
"a2e7aabc10ff9cc33437fbe0878251394c4112f7a174a23577d895a7249bba3b": {
|
|
1457
|
+
"title": "Canonical usage",
|
|
1458
|
+
"code": "import { Button, Icons } from '@1money/component-ui';\n// or\nimport { Button } from '@1money/component-ui/Button';\nimport { Icons } from '@1money/component-ui/Icons';",
|
|
1459
|
+
"source": "canonical",
|
|
1460
|
+
"compilable": true
|
|
1461
|
+
},
|
|
1450
1462
|
"a304a3d6b1220502a36e9ed2e198e53f9ce51219f0ff9f64776058c9f3798045": {
|
|
1451
1463
|
"title": "Copyable Text",
|
|
1452
1464
|
"code": "<div style={STORY_LAYOUT_STYLE}>\n <Typography.Body size=\"md\" copyable>\n Plain text with copy action\n </Typography.Body>\n <Typography.Body size=\"md\" copyable={{ text: 'custom-override-value' }}>\n Copy uses a different value\n </Typography.Body>\n </div>",
|
|
@@ -1459,6 +1471,12 @@
|
|
|
1459
1471
|
"source": "readme",
|
|
1460
1472
|
"compilable": true
|
|
1461
1473
|
},
|
|
1474
|
+
"a3c2924a769ad563b93cde498367ce69f6fe286064bae9dd22799a8733aebea6": {
|
|
1475
|
+
"title": "Import",
|
|
1476
|
+
"code": "import { Empty } from '@1money/component-ui';\n// or\nimport { Empty } from '@1money/component-ui/Empty';",
|
|
1477
|
+
"source": "readme",
|
|
1478
|
+
"compilable": true
|
|
1479
|
+
},
|
|
1462
1480
|
"a441ef91fd2695501c12b9a749acb9e33886f02b78b6e77d818f5c11c7a23fe7": {
|
|
1463
1481
|
"title": "Group With Options",
|
|
1464
1482
|
"code": "{\n const [value, setValue] = React.useState<string | number>('email');\n const handleChange = (event: RadioChangeEvent) => {\n if (event.target.value !== undefined) {\n setValue(event.target.value);\n }\n };\n\n return (\n <RadioGroup\n value={value}\n onChange={handleChange}\n options={[\n { value: 'email', label: 'Email', description: 'Receive via email' },\n { value: 'sms', label: 'SMS', description: 'Receive via text message' },\n { value: 'push', label: 'Push notification', description: 'Receive on your device' },\n ]}\n />\n );\n }",
|
|
@@ -1477,21 +1495,39 @@
|
|
|
1477
1495
|
"source": "stories",
|
|
1478
1496
|
"compilable": true
|
|
1479
1497
|
},
|
|
1498
|
+
"a5ae14150d1724de4984c10921713734e86d15771efe397f3015a01c77d13676": {
|
|
1499
|
+
"title": "Canonical usage",
|
|
1500
|
+
"code": "import { Cell } from '@1money/component-ui';\n// or\nimport { Cell } from '@1money/component-ui/Cell';",
|
|
1501
|
+
"source": "canonical",
|
|
1502
|
+
"compilable": true
|
|
1503
|
+
},
|
|
1504
|
+
"a5e7bfca00eae7d485a875832679ab34d67e3c8ef781d04913386ca1185eb822": {
|
|
1505
|
+
"title": "Basic Usage",
|
|
1506
|
+
"code": "import { Button } from '@1money/component-ui';\n\n<Popconfirm\n title=\"Delete transfer rule?\"\n body=\"This action removes the rule immediately and cannot be undone.\"\n cancelText=\"Keep rule\"\n confirmText=\"Delete\"\n onConfirm={() => {\n // perform delete\n }}\n>\n <Button color=\"danger\">Delete rule</Button>\n</Popconfirm>",
|
|
1507
|
+
"source": "readme",
|
|
1508
|
+
"compilable": true
|
|
1509
|
+
},
|
|
1480
1510
|
"a823300963fcf8c4ccf8e531c42aa78d7ab59841b405c471d5c0c0d6ac0b9b22": {
|
|
1481
1511
|
"title": "Text Area",
|
|
1482
1512
|
"code": "{\n const states = ['default', 'error'] as const;\n const valueTypes = ['Placeholder', 'Filled'] as const;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 40 }}>\n {/* ── Large ── */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>Large</h3>\n <div style={{ display: 'flex', gap: 24, flexWrap: 'wrap' }}>\n {states.map((status) =>\n valueTypes.map((vt) => (\n <div key={`${status}-${vt}`} style={{ width: 400 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>\n {status} / {vt}\n </p>\n <Input.TextArea\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={status === 'error' ? <Icons name=\"error\" size={16} /> : <Icons name=\"info\" size={16} />}\n status={status}\n placeholder=\"Value\"\n defaultValue={vt === 'Filled' ? 'Longer memo value that spans multiple lines to demonstrate the filled state of the textarea component' : undefined}\n rows={4}\n showCount\n maxLength={250}\n />\n </div>\n )),\n )}\n {/* Disabled */}\n {valueTypes.map((vt) => (\n <div key={`disabled-${vt}`} style={{ width: 400 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>\n disabled / {vt}\n </p>\n <Input.TextArea\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n disabled\n placeholder=\"Value\"\n defaultValue={vt === 'Filled' ? 'Disabled filled value' : undefined}\n rows={4}\n showCount\n maxLength={250}\n />\n </div>\n ))}\n </div>\n </div>\n\n {/* ── Small ── */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>Small</h3>\n <div style={{ display: 'flex', gap: 24, flexWrap: 'wrap' }}>\n <div style={{ width: 400 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>default / Placeholder</p>\n <Input.TextArea\n size=\"small\"\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n placeholder=\"Value\"\n rows={3}\n showCount\n maxLength={250}\n />\n </div>\n <div style={{ width: 400 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>default / Filled</p>\n <Input.TextArea\n size=\"small\"\n label=\"Label\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n placeholder=\"Value\"\n defaultValue=\"Small filled value\"\n rows={3}\n showCount\n maxLength={250}\n />\n </div>\n </div>\n </div>\n </div>\n );\n }",
|
|
1483
1513
|
"source": "stories",
|
|
1484
1514
|
"compilable": true
|
|
1485
1515
|
},
|
|
1486
|
-
"
|
|
1487
|
-
"title": "
|
|
1488
|
-
"code": "
|
|
1516
|
+
"a93b112762fa56f6d4b7725a0370a6f2c175f1458d13fc08c07ee10a2ca4ab6c": {
|
|
1517
|
+
"title": "Import",
|
|
1518
|
+
"code": "import { Copy } from '@1money/component-ui';\n// or\nimport { Copy } from '@1money/component-ui/Copy';",
|
|
1489
1519
|
"source": "readme",
|
|
1490
1520
|
"compilable": true
|
|
1491
1521
|
},
|
|
1492
|
-
"
|
|
1493
|
-
"title": "
|
|
1494
|
-
"code": "import {
|
|
1522
|
+
"a9c090e5b6baf8fbf540fa9467f4b5fa43e6cc9de869c162084bb5262534e1d6": {
|
|
1523
|
+
"title": "Canonical usage",
|
|
1524
|
+
"code": "import { Skeleton } from '@1money/component-ui';\n// or\nimport { Skeleton } from '@1money/component-ui/Skeleton';",
|
|
1525
|
+
"source": "canonical",
|
|
1526
|
+
"compilable": true
|
|
1527
|
+
},
|
|
1528
|
+
"aa0e9842f54e521f7ff371e51003e26ed69263bef1d5d37baaa5fd6fa189e32c": {
|
|
1529
|
+
"title": "Split Example",
|
|
1530
|
+
"code": "<Space split={<span>|</span>} size={SPACE_SIZE.small}>\n <span>Alpha</span>\n <span>Beta</span>\n <span>Gamma</span>\n</Space>",
|
|
1495
1531
|
"source": "readme",
|
|
1496
1532
|
"compilable": true
|
|
1497
1533
|
},
|
|
@@ -1513,21 +1549,45 @@
|
|
|
1513
1549
|
"source": "readme",
|
|
1514
1550
|
"compilable": true
|
|
1515
1551
|
},
|
|
1552
|
+
"ad2d08fce81c4f209ec3c8897be49561183e09a4a4a0c1d763fa85e0837255db": {
|
|
1553
|
+
"title": "Import",
|
|
1554
|
+
"code": "import { Carousel } from '@1money/component-ui';\n// or\nimport { Carousel } from '@1money/component-ui/Carousel';",
|
|
1555
|
+
"source": "readme",
|
|
1556
|
+
"compilable": true
|
|
1557
|
+
},
|
|
1558
|
+
"adc02f7e653e00211d2f727e3ef895d626db0f7ff0da6436a51e52ecddefc1ec": {
|
|
1559
|
+
"title": "Canonical usage",
|
|
1560
|
+
"code": "import { VirtualList } from '@1money/component-ui';\n// or\nimport { VirtualList } from '@1money/component-ui/VirtualList';",
|
|
1561
|
+
"source": "canonical",
|
|
1562
|
+
"compilable": true
|
|
1563
|
+
},
|
|
1516
1564
|
"ae23f0d9349157c952b7752e33ea302d85c3d3f09654ece8ddf9107f7b194b68": {
|
|
1517
1565
|
"title": "Usage",
|
|
1518
1566
|
"code": "{/* Hover trigger (default) */}\n<button id=\"my-trigger\">Hover me</button>\n<Tooltip anchorSelect=\"#my-trigger\" body=\"Simple tooltip\" />\n\n{/* With title */}\n<button id=\"info-trigger\">Info</button>\n<Tooltip anchorSelect=\"#info-trigger\" title=\"Heading\" body=\"Detailed text\" placement=\"bottom\" />\n\n{/* Controlled */}\n<button id=\"ctrl-trigger\">Controlled</button>\n<Tooltip anchorSelect=\"#ctrl-trigger\" body=\"Controlled tooltip\" open={isOpen} onOpenChange={setIsOpen} />\n\n{/* Click trigger */}\n<button id=\"click-trigger\">Click me</button>\n<Tooltip\n anchorSelect=\"#click-trigger\"\n body=\"Click tooltip\"\n openEvents={{ click: true, mouseover: false, mouseenter: false, focus: false }}\n closeEvents={{ click: true, mouseleave: false, mouseout: false, blur: false }}\n/>",
|
|
1519
1567
|
"source": "readme",
|
|
1520
1568
|
"compilable": true
|
|
1521
1569
|
},
|
|
1570
|
+
"ae246cd51ebca22cef4c68e015452c7db50311c6425bddfe634ace9ce667fe11": {
|
|
1571
|
+
"title": "Import",
|
|
1572
|
+
"code": "import { CoachMark } from '@1money/component-ui';\n// or\nimport { CoachMark } from '@1money/component-ui/CoachMark';",
|
|
1573
|
+
"source": "readme",
|
|
1574
|
+
"compilable": true
|
|
1575
|
+
},
|
|
1522
1576
|
"af6172fd099200e93181aeb231c5d69c5b4b4d057a1f32935aa2f35ed86ffebe": {
|
|
1523
1577
|
"title": "Search",
|
|
1524
1578
|
"code": "{\n const onSearch = fn();\n const sizes = ['large', 'small'] as const;\n const columns = [\n { label: 'Default', props: {} },\n { label: 'Disabled', props: { disabled: true } },\n ];\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 40 }}>\n {sizes.map((size) => (\n <div key={size}>\n <h3 style={{ margin: '0 0 16px', textTransform: 'capitalize' }}>{size}</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>\n {/* Placeholder row */}\n <div>\n <p style={{ margin: '0 0 8px', color: '#666', fontSize: 13 }}>Placeholder</p>\n <div style={{ display: 'flex', gap: 16, flexWrap: 'wrap' }}>\n {columns.map((col) => (\n <div key={col.label} style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>{col.label}</p>\n <Input.Search\n size={size}\n placeholder=\"Search\"\n onSearch={onSearch}\n {...col.props}\n />\n </div>\n ))}\n </div>\n </div>\n {/* Filled row */}\n <div>\n <p style={{ margin: '0 0 8px', color: '#666', fontSize: 13 }}>Filled</p>\n <div style={{ display: 'flex', gap: 16, flexWrap: 'wrap' }}>\n {columns.map((col) => (\n <div key={col.label} style={{ width: 310 }}>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>{col.label}</p>\n <Input.Search\n size={size}\n placeholder=\"Search\"\n defaultValue=\"Search\"\n allowClear\n onSearch={onSearch}\n {...col.props}\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n ))}\n {/* Loading */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>Loading</h3>\n <div style={{ display: 'flex', gap: 16 }}>\n <div style={{ width: 310 }}>\n <Input.Search\n placeholder=\"Search\"\n defaultValue=\"Search\"\n loading\n onSearch={onSearch}\n />\n </div>\n </div>\n </div>\n </div>\n );\n }",
|
|
1525
1579
|
"source": "stories",
|
|
1526
1580
|
"compilable": false
|
|
1527
1581
|
},
|
|
1528
|
-
"
|
|
1582
|
+
"af88d73f705cf2f7bb20f21e3b6bf5469ae3683b129dc3b5e6b59966449452b9": {
|
|
1583
|
+
"title": "Import",
|
|
1584
|
+
"code": "import { Alert } from '@1money/component-ui';\n// or\nimport { Alert } from '@1money/component-ui/Alert';",
|
|
1585
|
+
"source": "readme",
|
|
1586
|
+
"compilable": true
|
|
1587
|
+
},
|
|
1588
|
+
"afe811bb04937c81da684427fdc40982aa6f4b50d676e876710f3e22bc71404a": {
|
|
1529
1589
|
"title": "Import",
|
|
1530
|
-
"code": "import {
|
|
1590
|
+
"code": "import { Switch } from '@1money/component-ui';\n// or\nimport { Switch } from '@1money/component-ui/Switch';",
|
|
1531
1591
|
"source": "readme",
|
|
1532
1592
|
"compilable": true
|
|
1533
1593
|
},
|
|
@@ -1573,6 +1633,12 @@
|
|
|
1573
1633
|
"source": "stories",
|
|
1574
1634
|
"compilable": false
|
|
1575
1635
|
},
|
|
1636
|
+
"b5122ab00632d0b9f9f205345094b8cc87d3de0e265bfa06f77f8c0538a72a4a": {
|
|
1637
|
+
"title": "Import",
|
|
1638
|
+
"code": "import { Link } from '@1money/component-ui';\n// or\nimport { Link } from '@1money/component-ui/Link';",
|
|
1639
|
+
"source": "readme",
|
|
1640
|
+
"compilable": true
|
|
1641
|
+
},
|
|
1576
1642
|
"b53d16f186c5371a04bc88eb4e5f48d69652f711a0b9596a5b520eea56fd12b7": {
|
|
1577
1643
|
"title": "Usage",
|
|
1578
1644
|
"code": "<Link href=\"https://docs.1money.com\" target=\"_blank\">\n Documentation\n</Link>",
|
|
@@ -1585,6 +1651,24 @@
|
|
|
1585
1651
|
"source": "readme",
|
|
1586
1652
|
"compilable": true
|
|
1587
1653
|
},
|
|
1654
|
+
"b5cf05bb6a8f45cfcd470fe1172b358fbd92178d3eece19d966999aa3f077105": {
|
|
1655
|
+
"title": "Canonical usage",
|
|
1656
|
+
"code": "import { Link } from '@1money/component-ui';\n// or\nimport { Link } from '@1money/component-ui/Link';",
|
|
1657
|
+
"source": "canonical",
|
|
1658
|
+
"compilable": true
|
|
1659
|
+
},
|
|
1660
|
+
"b618a5ec89d3703e8bf3f9b88fa9987155c51787adb5c7b017064afc3b3fdb0b": {
|
|
1661
|
+
"title": "Canonical usage",
|
|
1662
|
+
"code": "import { Accordion } from '@1money/component-ui';\n// or\nimport { Accordion } from '@1money/component-ui/Accordion';",
|
|
1663
|
+
"source": "canonical",
|
|
1664
|
+
"compilable": true
|
|
1665
|
+
},
|
|
1666
|
+
"b642ec44c242139bb5d0c19cff727d2e2c036e30ec3c4597eebd7e533c3252ed": {
|
|
1667
|
+
"title": "Import",
|
|
1668
|
+
"code": "import { Input } from '@1money/component-ui';\n// or\nimport { Input } from '@1money/component-ui/Input';",
|
|
1669
|
+
"source": "readme",
|
|
1670
|
+
"compilable": true
|
|
1671
|
+
},
|
|
1588
1672
|
"b6bf8d1eebcfbb2bb8d4eef7f3fbb26233d5abe1febad432c6cb4d4af6ad7a79": {
|
|
1589
1673
|
"title": "Multiple Children",
|
|
1590
1674
|
"code": "{\n const [sizes, setSizes] = useState<Record<string, SizeInfo>>({});\n\n const handleResize = (key: string) => (sizeInfo: SizeInfo) => {\n setSizes((prev) => ({ ...prev, [key]: sizeInfo }));\n };\n\n return (\n <div>\n <p style={{ marginBottom: 8, color: '#666' }}>\n Each box independently reports its size:\n </p>\n <div style={{ display: 'flex', gap: 16 }}>\n {['A', 'B', 'C'].map((key) => (\n <ResizeObserver key={key} onResize={handleResize(key)}>\n <div\n style={{\n ...boxStyle,\n minWidth: 120,\n width: 120 + ['A', 'B', 'C'].indexOf(key) * 40,\n }}\n >\n Box {key}\n {sizes[key] && (\n <div style={{ fontSize: 12, color: '#999', marginTop: 8 }}>\n {sizes[key].width} × {sizes[key].height}\n </div>\n )}\n </div>\n </ResizeObserver>\n ))}\n </div>\n </div>\n );\n }",
|
|
@@ -1597,9 +1681,9 @@
|
|
|
1597
1681
|
"source": "stories",
|
|
1598
1682
|
"compilable": false
|
|
1599
1683
|
},
|
|
1600
|
-
"
|
|
1601
|
-
"title": "
|
|
1602
|
-
"code": "import {
|
|
1684
|
+
"b89885447fe4270b68a9a64c1a3c6664144939f977fd39aee5bb7e7334679a38": {
|
|
1685
|
+
"title": "Basic Usage",
|
|
1686
|
+
"code": "import { Space } from '@1money/component-ui';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/component-ui/Space';\n\n<Space size={SPACE_SIZE.middle} align={SPACE_ALIGN.center}>\n <span>Left</span>\n <span>Right</span>\n</Space>",
|
|
1603
1687
|
"source": "readme",
|
|
1604
1688
|
"compilable": true
|
|
1605
1689
|
},
|
|
@@ -1609,12 +1693,24 @@
|
|
|
1609
1693
|
"source": "stories",
|
|
1610
1694
|
"compilable": false
|
|
1611
1695
|
},
|
|
1696
|
+
"ba4d7fb2d83dc29cedcc36d923e7baf16aa5872c15a1e5b5a369f188cd1c1bd8": {
|
|
1697
|
+
"title": "Import",
|
|
1698
|
+
"code": "import { Drawer } from '@1money/component-ui';\n// or\nimport { Drawer } from '@1money/component-ui/Drawer';",
|
|
1699
|
+
"source": "readme",
|
|
1700
|
+
"compilable": true
|
|
1701
|
+
},
|
|
1612
1702
|
"bad68aaa47c4d8c9f976f817b5edbef7ff8573f469f9a1bc5bc53482ff65b38e": {
|
|
1613
1703
|
"title": "Usage",
|
|
1614
1704
|
"code": "<Alert\n status=\"info\"\n title=\"Information\"\n body=\"This is an informational message.\"\n link={{ label: 'Learn more', href: '/docs' }}\n closable\n onClose={() => console.log('closed')}\n/>",
|
|
1615
1705
|
"source": "readme",
|
|
1616
1706
|
"compilable": true
|
|
1617
1707
|
},
|
|
1708
|
+
"badf3cdf64f8d773268d54275bd790f16a3357210a7bd056f4637100b7746845": {
|
|
1709
|
+
"title": "Import",
|
|
1710
|
+
"code": "import { Divider } from '@1money/component-ui';",
|
|
1711
|
+
"source": "readme",
|
|
1712
|
+
"compilable": true
|
|
1713
|
+
},
|
|
1618
1714
|
"bda0a33c638ce6212b4a0c6a592ef4de615a792af4360935f5c256a31d3c2bfc": {
|
|
1619
1715
|
"title": "Controlled",
|
|
1620
1716
|
"code": "{\n const [open, setOpen] = useState(false);\n\n return (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n <Dropdown\n {...args}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n args.onOpenChange?.(nextOpen);\n }}\n content={<MenuContent onClose={() => setOpen(false)} />}\n >\n <Button>Controlled</Button>\n </Dropdown>\n <Button color=\"grey\" size=\"small\" onClick={() => setOpen((prev) => !prev)}>\n Toggle: {open ? 'Open' : 'Closed'}\n </Button>\n </div>\n );\n }",
|
|
@@ -1657,6 +1753,12 @@
|
|
|
1657
1753
|
"source": "stories",
|
|
1658
1754
|
"compilable": true
|
|
1659
1755
|
},
|
|
1756
|
+
"c2c42c200e9bad53b274260619d36029e7257a5f80b73408ffe619abdf14a9d9": {
|
|
1757
|
+
"title": "Canonical usage",
|
|
1758
|
+
"code": "import { Drawer } from '@1money/component-ui';\n// or\nimport { Drawer } from '@1money/component-ui/Drawer';",
|
|
1759
|
+
"source": "canonical",
|
|
1760
|
+
"compilable": true
|
|
1761
|
+
},
|
|
1660
1762
|
"c2d0e5c92e119088561656cca130e7fe6d43a492895329f41b30087cb4f987a7": {
|
|
1661
1763
|
"title": "Sizes",
|
|
1662
1764
|
"code": "<div style={{ display: 'flex', gap: 12, alignItems: 'center' }}>\n {TAG_SIZES.map((size) => (\n <Tag {...args} key={size} size={size} label={size} />\n ))}\n </div>",
|
|
@@ -1675,34 +1777,22 @@
|
|
|
1675
1777
|
"source": "stories",
|
|
1676
1778
|
"compilable": false
|
|
1677
1779
|
},
|
|
1678
|
-
"c37dda6e47f4681c24203fbf4f154801673c331d4394707e6c12c5b07eb3953b": {
|
|
1679
|
-
"title": "Import",
|
|
1680
|
-
"code": "import { Cell } from '@1money/components-ui';\n// or\nimport { Cell } from '@1money/components-ui/Cell';",
|
|
1681
|
-
"source": "readme",
|
|
1682
|
-
"compilable": true
|
|
1683
|
-
},
|
|
1684
1780
|
"c3aaf0098db4c77ba5af727f8c2eb70a9969be6ea15dcba309d583137cfe6e21": {
|
|
1685
1781
|
"title": "Nested List",
|
|
1686
1782
|
"code": "<ProForm\n {...args}\n initialValues={{\n groups: [\n { title: 'Group A', items: [{ name: 'Item 1' }] },\n ],\n }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormList name=\"groups\" label=\"Groups\">\n {(fields) =>\n fields.map(({ name, key }) => (\n <div key={key} style={{ border: '1px solid #eee', padding: 12, marginBottom: 8, borderRadius: 4 }}>\n <ProFormText name={`${name}.title`} label=\"Group Title\" />\n <ProFormList name=\"items\" label=\"Items\">\n {(subFields) =>\n subFields.map((sf) => (\n <ProFormText key={sf.key} name={`${sf.name}.name`} label=\"Item Name\" />\n ))\n }\n </ProFormList>\n </div>\n ))\n }\n </ProFormList>\n </ProForm>",
|
|
1687
1783
|
"source": "stories",
|
|
1688
1784
|
"compilable": false
|
|
1689
1785
|
},
|
|
1690
|
-
"
|
|
1691
|
-
"title": "With Text",
|
|
1692
|
-
"code": "<div>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider>Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"left\">Left Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"right\">Right Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n </div>",
|
|
1693
|
-
"source": "stories",
|
|
1694
|
-
"compilable": true
|
|
1695
|
-
},
|
|
1696
|
-
"c53ede8df4b95ea3a84f4272cdde631bf1281322de0a44bfa5d9f4ac16ed9618": {
|
|
1786
|
+
"c44b0833c259afe028af9e6fd0d572e5cdf883c9fe8f8701cc2f2199f6fa82a0": {
|
|
1697
1787
|
"title": "Canonical usage",
|
|
1698
|
-
"code": "import {
|
|
1788
|
+
"code": "import { Checkbox } from '@1money/component-ui';\n// or\nimport { Checkbox } from '@1money/component-ui/Checkbox';",
|
|
1699
1789
|
"source": "canonical",
|
|
1700
1790
|
"compilable": true
|
|
1701
1791
|
},
|
|
1702
|
-
"
|
|
1703
|
-
"title": "
|
|
1704
|
-
"code": "
|
|
1705
|
-
"source": "
|
|
1792
|
+
"c4dc11bc9b4b9698e931dc881cc580895c8626b71430d09eec8f7054d49c46f0": {
|
|
1793
|
+
"title": "With Text",
|
|
1794
|
+
"code": "<div>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider>Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"left\">Left Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider orientation=\"right\">Right Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n </div>",
|
|
1795
|
+
"source": "stories",
|
|
1706
1796
|
"compilable": true
|
|
1707
1797
|
},
|
|
1708
1798
|
"c6c6006c18fc013fe133931a21d10e19d9263c424b639dbe5b1038884729bb32": {
|
|
@@ -1717,12 +1807,6 @@
|
|
|
1717
1807
|
"source": "stories",
|
|
1718
1808
|
"compilable": false
|
|
1719
1809
|
},
|
|
1720
|
-
"c708d9a68618a957abae65c03f9ebb38fd38b515889a38cdc4abedf031315725": {
|
|
1721
|
-
"title": "Basic Usage",
|
|
1722
|
-
"code": "import { Space } from '@1money/components-ui';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/components-ui/Space';\n\n<Space size={SPACE_SIZE.middle} align={SPACE_ALIGN.center}>\n <span>Left</span>\n <span>Right</span>\n</Space>",
|
|
1723
|
-
"source": "readme",
|
|
1724
|
-
"compilable": true
|
|
1725
|
-
},
|
|
1726
1810
|
"c7adce2c978836debb618dc91c44c12df9f50836e6ff9994fe3822dd48caef5a": {
|
|
1727
1811
|
"title": "Nav (flat / grouped navigation)",
|
|
1728
1812
|
"code": "<Nav\n items={[\n {\n key: 'group-accounts',\n label: 'Accounts',\n icon: 'wallet',\n children: [\n { key: 'checking', label: 'Checking', active: true },\n { key: 'savings', label: 'Savings' },\n ],\n },\n { key: 'settings', label: 'Settings' },\n ]}\n/>",
|
|
@@ -1735,12 +1819,24 @@
|
|
|
1735
1819
|
"source": "stories",
|
|
1736
1820
|
"compilable": false
|
|
1737
1821
|
},
|
|
1738
|
-
"
|
|
1822
|
+
"c816f5980daf6d897749e81e8bcb52963fb9584ae3d56cc2d6d73194bb1a655a": {
|
|
1823
|
+
"title": "Import",
|
|
1824
|
+
"code": "import { Tag } from '@1money/component-ui';\n// or\nimport { Tag } from '@1money/component-ui/Tag';",
|
|
1825
|
+
"source": "readme",
|
|
1826
|
+
"compilable": true
|
|
1827
|
+
},
|
|
1828
|
+
"c8bb2acc504d9189611763df8eebcb47062fe8c1c4ae3990fe6d9495cac88285": {
|
|
1739
1829
|
"title": "Canonical usage",
|
|
1740
|
-
"code": "import {
|
|
1830
|
+
"code": "import { Table, VirtualTable } from '@1money/component-ui';\n// or\nimport { Table, VirtualTable } from '@1money/component-ui/Table';",
|
|
1741
1831
|
"source": "canonical",
|
|
1742
1832
|
"compilable": true
|
|
1743
1833
|
},
|
|
1834
|
+
"c8d370c232d30e9b0ca6730c9b632d0a84550b0b8fe84019b58ac0de6a712d40": {
|
|
1835
|
+
"title": "Import",
|
|
1836
|
+
"code": "import { Spinner } from '@1money/component-ui';\n// or\nimport { Spinner } from '@1money/component-ui/Spinner';",
|
|
1837
|
+
"source": "readme",
|
|
1838
|
+
"compilable": true
|
|
1839
|
+
},
|
|
1744
1840
|
"c9055581e81ec06997b903da8cf3dc5446cb9767423cb2fd80762ede31063176": {
|
|
1745
1841
|
"title": "Disabled",
|
|
1746
1842
|
"code": "{\n const [disabled, setDisabled] = useState(false);\n const [resizeCount, setResizeCount] = useState(0);\n\n return (\n <div>\n <div style={{ marginBottom: 12 }}>\n <label>\n <input\n type=\"checkbox\"\n checked={disabled}\n onChange={(e) => setDisabled(e.target.checked)}\n />\n {' '}Disable observer\n </label>\n <span style={{ marginLeft: 12, color: '#666' }}>\n Resize events received: {resizeCount}\n </span>\n </div>\n <ResizeObserver\n disabled={disabled}\n onResize={() => setResizeCount((c) => c + 1)}\n >\n <div style={boxStyle}>\n {disabled ? 'Observer disabled — resize events paused' : 'Resize me to trigger events'}\n </div>\n </ResizeObserver>\n </div>\n );\n }",
|
|
@@ -1759,30 +1855,24 @@
|
|
|
1759
1855
|
"source": "stories",
|
|
1760
1856
|
"compilable": true
|
|
1761
1857
|
},
|
|
1762
|
-
"cb112d23d742e359bb073b630230b53ccd7362c90ce29f033223143742f4687a": {
|
|
1763
|
-
"title": "Canonical usage",
|
|
1764
|
-
"code": "import { Drawer } from '@1money/components-ui';\n// or\nimport { Drawer } from '@1money/components-ui/Drawer';",
|
|
1765
|
-
"source": "canonical",
|
|
1766
|
-
"compilable": true
|
|
1767
|
-
},
|
|
1768
|
-
"cc0a911d74a5939f71b3e713aed21e4a2dd1adc41fcc547aa40a60cf82549caa": {
|
|
1769
|
-
"title": "Import",
|
|
1770
|
-
"code": "import { Radio, RadioGroup } from '@1money/components-ui';\n// or tree-shakeable\nimport { Radio, RadioGroup } from '@1money/components-ui/Radio';",
|
|
1771
|
-
"source": "readme",
|
|
1772
|
-
"compilable": true
|
|
1773
|
-
},
|
|
1774
1858
|
"ccaa3cb3e660ea38beaa59a26d94e5aa6bcd8ea3fb8449f82d28e13875c9c05e": {
|
|
1775
1859
|
"title": "Group Disabled",
|
|
1776
1860
|
"code": "<RadioGroup value=\"a\" disabled>\n <Radio value=\"a\" label=\"Option A\" />\n <Radio value=\"b\" label=\"Option B\" />\n <Radio value=\"c\" label=\"Option C\" />\n </RadioGroup>",
|
|
1777
1861
|
"source": "stories",
|
|
1778
1862
|
"compilable": true
|
|
1779
1863
|
},
|
|
1780
|
-
"
|
|
1864
|
+
"ce159c0e7bfe1dd2cc4a5af7ae9f34a34970888e35d8d9350afa752f3b6ee2b6": {
|
|
1781
1865
|
"title": "Import",
|
|
1782
|
-
"code": "import {
|
|
1866
|
+
"code": "import { Select } from '@1money/component-ui';\n// or\nimport { Select } from '@1money/component-ui/Select';",
|
|
1783
1867
|
"source": "readme",
|
|
1784
1868
|
"compilable": true
|
|
1785
1869
|
},
|
|
1870
|
+
"ce52fe36100d5fa98b9745a1baf1b08d615fed812bf0a8c9022f4e95e68f2f13": {
|
|
1871
|
+
"title": "Canonical usage",
|
|
1872
|
+
"code": "import { Select } from '@1money/component-ui';\n// or\nimport { Select } from '@1money/component-ui/Select';",
|
|
1873
|
+
"source": "canonical",
|
|
1874
|
+
"compilable": true
|
|
1875
|
+
},
|
|
1786
1876
|
"ce5a29cdd05e46095aa4e0495f15de25d4e29a8772e83863f793f174d89170df": {
|
|
1787
1877
|
"title": "Trade",
|
|
1788
1878
|
"code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32, maxWidth: 660 }}>\n <div>\n <h3 style={{ margin: '0 0 8px' }}>Default (Placeholder)</h3>\n <Input.Trade\n currencySymbol=\"$\"\n currencyUnit=\"USD\"\n showMax\n onMax={fn()}\n onSwap={fn()}\n exchangeText=\"0 USDT\"\n />\n </div>\n <div>\n <h3 style={{ margin: '0 0 8px' }}>Default (Filled)</h3>\n <Input.Trade\n currencySymbol=\"$\"\n currencyUnit=\"USD\"\n defaultValue=\"123,456,789\"\n showMax\n onMax={fn()}\n onSwap={fn()}\n exchangeText=\"123,456,789 USDT\"\n />\n </div>\n <div>\n <h3 style={{ margin: '0 0 8px' }}>Error</h3>\n <Input.Trade\n currencySymbol=\"$\"\n currencyUnit=\"USD\"\n defaultValue=\"123,456,789\"\n status=\"error\"\n showMax\n onMax={fn()}\n onSwap={fn()}\n exchangeText=\"123,456,789 USDT\"\n feedback=\"Insufficient balance\"\n />\n </div>\n <div>\n <h3 style={{ margin: '0 0 8px' }}>Disabled</h3>\n <Input.Trade\n currencySymbol=\"$\"\n currencyUnit=\"USD\"\n defaultValue=\"123,456,789\"\n disabled\n showMax\n onSwap={fn()}\n exchangeText=\"123,456,789 USDT\"\n />\n </div>\n </div>",
|
|
@@ -1801,6 +1891,12 @@
|
|
|
1801
1891
|
"source": "stories",
|
|
1802
1892
|
"compilable": false
|
|
1803
1893
|
},
|
|
1894
|
+
"d073f561eaa33f59872ba1277c04ad853f99cb24d2f6e75ac36d0c33e12a9d40": {
|
|
1895
|
+
"title": "Import",
|
|
1896
|
+
"code": "import { VirtualList } from '@1money/component-ui';\n// or\nimport { VirtualList } from '@1money/component-ui/VirtualList';",
|
|
1897
|
+
"source": "readme",
|
|
1898
|
+
"compilable": true
|
|
1899
|
+
},
|
|
1804
1900
|
"d17ae919d30d1b43236c52018609c72e725c0e22e47938fa2bed04cae70b2542": {
|
|
1805
1901
|
"title": "Usage",
|
|
1806
1902
|
"code": "<Tag label=\"Active\" color=\"success\" />\n<Tag label=\"Warning\" color=\"warning\" icon=\"add\" removable onRemove={() => {}} />\n<Tag label=\"Medium\" size=\"medium\" color=\"recommended\" />\n<Tag label=\"Small\" size=\"small\" color=\"negative\" />",
|
|
@@ -1813,54 +1909,24 @@
|
|
|
1813
1909
|
"source": "stories",
|
|
1814
1910
|
"compilable": false
|
|
1815
1911
|
},
|
|
1816
|
-
"d2d7be30524d06f99a66b1ee9375fa33501fcff7421d697bce934b4c6a79e4c1": {
|
|
1817
|
-
"title": "Canonical usage",
|
|
1818
|
-
"code": "import { Dropdown } from '@1money/components-ui';\n// or\nimport { Dropdown } from '@1money/components-ui/Dropdown';",
|
|
1819
|
-
"source": "canonical",
|
|
1820
|
-
"compilable": true
|
|
1821
|
-
},
|
|
1822
|
-
"d2edd9eacbc07e5e229da3827b202d5da1fe8f4ca569e59c8162ce3927cbf36e": {
|
|
1823
|
-
"title": "Import",
|
|
1824
|
-
"code": "import { Input } from '@1money/components-ui';\n// or\nimport { Input } from '@1money/components-ui/Input';",
|
|
1825
|
-
"source": "readme",
|
|
1826
|
-
"compilable": true
|
|
1827
|
-
},
|
|
1828
1912
|
"d41dbb44d3d8769c1d0adb9e207bae7aeb9410730ab9e50b3897b5913c110ee7": {
|
|
1829
1913
|
"title": "Field Dependencies",
|
|
1830
1914
|
"code": "<ProForm\n {...args}\n initialValues={{ country: '', city: '' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormSelect\n name=\"country\"\n label=\"Country\"\n valueEnum={{ us: 'United States', cn: 'China', jp: 'Japan' }}\n />\n <ProFormSelect\n name=\"city\"\n label=\"City (auto-loads based on Country)\"\n dependencies={['country']}\n request={async (params) => {\n await new Promise((r) => setTimeout(r, 500));\n const cities: Record<string, Array<{ label: string; value: string }>> = {\n us: [{ label: 'New York', value: 'ny' }, { label: 'Los Angeles', value: 'la' }],\n cn: [{ label: 'Beijing', value: 'bj' }, { label: 'Shanghai', value: 'sh' }],\n jp: [{ label: 'Tokyo', value: 'tk' }, { label: 'Osaka', value: 'os' }],\n };\n return cities[params?.country as string] ?? [];\n }}\n />\n </ProForm>",
|
|
1831
1915
|
"source": "stories",
|
|
1832
1916
|
"compilable": false
|
|
1833
1917
|
},
|
|
1834
|
-
"
|
|
1918
|
+
"d85ceae6b6d298d1080aa6deb8853caf2818436e1ea75064e79bc43b28cc3223": {
|
|
1835
1919
|
"title": "Import",
|
|
1836
|
-
"code": "import {
|
|
1920
|
+
"code": "import { ResizeObserver, useResizeObserver } from '@1money/component-ui';\n// or\nimport { ResizeObserver, Collection, useResizeObserver } from '@1money/component-ui/ResizeObserver';",
|
|
1837
1921
|
"source": "readme",
|
|
1838
1922
|
"compilable": true
|
|
1839
1923
|
},
|
|
1840
|
-
"d7d5f601f2bc6d68fdd1f9092792a1ead79d09392794c0de5c6a6f08ae2fcd2b": {
|
|
1841
|
-
"title": "Canonical usage",
|
|
1842
|
-
"code": "import { ResizeObserver, useResizeObserver } from '@1money/components-ui';\n// or\nimport { ResizeObserver, useResizeObserver } from '@1money/components-ui/ResizeObserver';",
|
|
1843
|
-
"source": "canonical",
|
|
1844
|
-
"compilable": true
|
|
1845
|
-
},
|
|
1846
|
-
"d8541ce54f9d19430978dbd976d464fbc05c5ff5c9d4b33b03a2e25d6b11992c": {
|
|
1847
|
-
"title": "Canonical usage",
|
|
1848
|
-
"code": "import { Button } from '@1money/components-ui';\n// or\nimport { Button } from '@1money/components-ui/Button';",
|
|
1849
|
-
"source": "canonical",
|
|
1850
|
-
"compilable": true
|
|
1851
|
-
},
|
|
1852
1924
|
"d91c28bb6a118b26bb8a54276fb59ec8a840474d47297b0ab6537c738cb98876": {
|
|
1853
1925
|
"title": "Canonical usage",
|
|
1854
1926
|
"code": "import type { PopconfirmTrigger } from '@1money/component-ui';",
|
|
1855
1927
|
"source": "canonical",
|
|
1856
1928
|
"compilable": true
|
|
1857
1929
|
},
|
|
1858
|
-
"d928a76793b3297d721487249b48aafd40ba72f0698c1706a33e4291c542d9ba": {
|
|
1859
|
-
"title": "Canonical usage",
|
|
1860
|
-
"code": "import { Step } from '@1money/components-ui';\n// or\nimport { Step } from '@1money/components-ui/Step';",
|
|
1861
|
-
"source": "canonical",
|
|
1862
|
-
"compilable": true
|
|
1863
|
-
},
|
|
1864
1930
|
"d9882ee38a2bc32f9e2590509a569226bc8b174cfe3c16f5a1bdfbbc7662bf62": {
|
|
1865
1931
|
"title": "Placement",
|
|
1866
1932
|
"code": "{\n const [open, setOpen] = useState(false);\n const [placement, setPlacement] = useState<DrawerPlacement>('right');\n\n const openDrawer = (p: DrawerPlacement) => {\n setPlacement(p);\n setOpen(true);\n };\n\n return (\n <div style={{ display: 'flex', gap: 8 }}>\n <Button onClick={() => openDrawer('top')}>Top</Button>\n <Button onClick={() => openDrawer('right')}>Right</Button>\n <Button onClick={() => openDrawer('bottom')}>Bottom</Button>\n <Button onClick={() => openDrawer('left')}>Left</Button>\n <Drawer\n open={open}\n placement={placement}\n title={`${placement} drawer`}\n onClose={() => setOpen(false)}\n width={360}\n height={300}\n >\n <p>Drawer slides in from the {placement}.</p>\n </Drawer>\n </div>\n );\n }",
|
|
@@ -1897,12 +1963,6 @@
|
|
|
1897
1963
|
"source": "stories",
|
|
1898
1964
|
"compilable": true
|
|
1899
1965
|
},
|
|
1900
|
-
"dba235303ebe08452940ff868113324fc00c1a8ed5461ca69aaf6113382b9f6b": {
|
|
1901
|
-
"title": "Canonical usage",
|
|
1902
|
-
"code": "import { Pagination, usePagination } from '@1money/components-ui';\n// or\nimport { Pagination, usePagination } from '@1money/components-ui/Pagination';",
|
|
1903
|
-
"source": "canonical",
|
|
1904
|
-
"compilable": true
|
|
1905
|
-
},
|
|
1906
1966
|
"dbdf57d8d45ba16d7872023c8baa1986123e9011100cd6332a0023a7d8d2a832": {
|
|
1907
1967
|
"title": "All Variants",
|
|
1908
1968
|
"code": "<div style={columnStyle}>\n {BUTTON_SIZES.map((size) => (\n <div key={size}>\n <h3 style={sectionHeaderStyle}>{size}</h3>\n <div style={rowStyle}>\n {BUTTON_COLORS.map((color) => (\n <Button {...args} key={`${size}-${color}`} size={size} color={color}>\n {color}\n </Button>\n ))}\n </div>\n <div style={{ ...rowStyle, marginTop: 8 }}>\n {BUTTON_COLORS.map((color) => (\n <Button {...args} key={`${size}-${color}-disabled`} size={size} color={color} disabled>\n {color}\n </Button>\n ))}\n </div>\n <div style={{ ...rowStyle, marginTop: 8 }}>\n {BUTTON_COLORS.map((color) => (\n <Button {...args} key={`${size}-${color}-loading`} size={size} color={color} loading>\n {color}\n </Button>\n ))}\n </div>\n </div>\n ))}\n </div>",
|
|
@@ -1921,22 +1981,16 @@
|
|
|
1921
1981
|
"source": "stories",
|
|
1922
1982
|
"compilable": false
|
|
1923
1983
|
},
|
|
1924
|
-
"
|
|
1925
|
-
"title": "Render Props",
|
|
1926
|
-
"code": "{\n const [size, setSize] = useState<SizeInfo | null>(null);\n\n return (\n <div>\n <p style={{ marginBottom: 8, color: '#666' }}>\n Using render-props pattern for ref forwarding:\n </p>\n <ResizeObserver onResize={(sizeInfo) => setSize(sizeInfo)}>\n {(ref) => (\n <div ref={ref as React.RefObject<HTMLDivElement>} style={boxStyle}>\n Render-props child\n {size && (\n <div style={{ fontSize: 12, color: '#999', marginTop: 8 }}>\n {size.width} × {size.height}\n </div>\n )}\n </div>\n )}\n </ResizeObserver>\n </div>\n );\n }",
|
|
1927
|
-
"source": "stories",
|
|
1928
|
-
"compilable": true
|
|
1929
|
-
},
|
|
1930
|
-
"dd93657d7534b2334888be68dade1a1eb682df7f98475406bbe3c8f36ca64ba0": {
|
|
1984
|
+
"dc46329177b98e36ae4cf9980b57021028eb5648f1e6420be16ea3d209de6d10": {
|
|
1931
1985
|
"title": "Import",
|
|
1932
|
-
"code": "import {
|
|
1986
|
+
"code": "import { Accordion } from '@1money/component-ui';\n// or\nimport { Accordion } from '@1money/component-ui/Accordion';",
|
|
1933
1987
|
"source": "readme",
|
|
1934
1988
|
"compilable": true
|
|
1935
1989
|
},
|
|
1936
|
-
"
|
|
1937
|
-
"title": "
|
|
1938
|
-
"code": "
|
|
1939
|
-
"source": "
|
|
1990
|
+
"dd0dc5a0741ff7e4495ca9fb3eb3072f77d4f1b84be6af9dda1675475566cbcf": {
|
|
1991
|
+
"title": "Render Props",
|
|
1992
|
+
"code": "{\n const [size, setSize] = useState<SizeInfo | null>(null);\n\n return (\n <div>\n <p style={{ marginBottom: 8, color: '#666' }}>\n Using render-props pattern for ref forwarding:\n </p>\n <ResizeObserver onResize={(sizeInfo) => setSize(sizeInfo)}>\n {(ref) => (\n <div ref={ref as React.RefObject<HTMLDivElement>} style={boxStyle}>\n Render-props child\n {size && (\n <div style={{ fontSize: 12, color: '#999', marginTop: 8 }}>\n {size.width} × {size.height}\n </div>\n )}\n </div>\n )}\n </ResizeObserver>\n </div>\n );\n }",
|
|
1993
|
+
"source": "stories",
|
|
1940
1994
|
"compilable": true
|
|
1941
1995
|
},
|
|
1942
1996
|
"ddba2f9ed531e8d41eb802983744dee6f9a543308278efec1b7cbab638caf0e5": {
|
|
@@ -1969,6 +2023,12 @@
|
|
|
1969
2023
|
"source": "stories",
|
|
1970
2024
|
"compilable": true
|
|
1971
2025
|
},
|
|
2026
|
+
"df33210419a98aec37dfae90fbea2a1d1a5b7daf39ed1b4eee00184821d2f944": {
|
|
2027
|
+
"title": "Import",
|
|
2028
|
+
"code": "import { Space } from '@1money/component-ui';\n// or\nimport { Space } from '@1money/component-ui/Space';\nimport { SPACE_ALIGN, SPACE_DIRECTION, SPACE_SIZE } from '@1money/component-ui/Space';",
|
|
2029
|
+
"source": "readme",
|
|
2030
|
+
"compilable": true
|
|
2031
|
+
},
|
|
1972
2032
|
"df516870a4f3b627969e2e1b0c6fc40fccc4ccb0fb7c04a34e5e169a928de479": {
|
|
1973
2033
|
"title": "Usage",
|
|
1974
2034
|
"code": "<Cell iconStart=\"security\" iconEnd=\"arrowRight\" active>\n Authenticator app\n</Cell>",
|
|
@@ -1981,30 +2041,6 @@
|
|
|
1981
2041
|
"source": "stories",
|
|
1982
2042
|
"compilable": false
|
|
1983
2043
|
},
|
|
1984
|
-
"e12204d81d25fedea606df0af41590ad6f951ad6a9c87fbb04b46d113a83c01c": {
|
|
1985
|
-
"title": "Canonical usage",
|
|
1986
|
-
"code": "import { Dialog } from '@1money/components-ui';\n// or\nimport { Dialog } from '@1money/components-ui/Dialog';",
|
|
1987
|
-
"source": "canonical",
|
|
1988
|
-
"compilable": true
|
|
1989
|
-
},
|
|
1990
|
-
"e1bc6906c5f00092c88e4e750bb2591d4397c214fe2ba32646792273d03f9942": {
|
|
1991
|
-
"title": "Canonical usage",
|
|
1992
|
-
"code": "<IconHover />",
|
|
1993
|
-
"source": "canonical",
|
|
1994
|
-
"compilable": true
|
|
1995
|
-
},
|
|
1996
|
-
"e26c609980f32c5d66ccd1ee1a5d53d3cf09e63f85e94f7adf9acc57bfdc7276": {
|
|
1997
|
-
"title": "Canonical usage",
|
|
1998
|
-
"code": "import { Navigation, Nav } from '@1money/components-ui';\n// or\nimport { Navigation, Nav } from '@1money/components-ui/Navigation';",
|
|
1999
|
-
"source": "canonical",
|
|
2000
|
-
"compilable": true
|
|
2001
|
-
},
|
|
2002
|
-
"e2d97535c3a577c0c337fa59b2a6832e6337e4a07486d72339fb65ecb4899382": {
|
|
2003
|
-
"title": "Import",
|
|
2004
|
-
"code": "import { Checkbox } from '@1money/components-ui';\n// or\nimport { Checkbox } from '@1money/components-ui/Checkbox';",
|
|
2005
|
-
"source": "readme",
|
|
2006
|
-
"compilable": true
|
|
2007
|
-
},
|
|
2008
2044
|
"e3b3197749176ad9a73173f5d1928f15b52b030d41a28e61ef40deaabbc9a554": {
|
|
2009
2045
|
"title": "Usage",
|
|
2010
2046
|
"code": "<Step\n items={[\n { key: 'start', title: 'Start', description: 'Create the request', status: 'completed' },\n { key: 'review', title: 'Review', tag: { label: 'Pending' } },\n { key: 'done', title: 'Complete' },\n ]}\n/>",
|
|
@@ -2017,6 +2053,12 @@
|
|
|
2017
2053
|
"source": "readme",
|
|
2018
2054
|
"compilable": true
|
|
2019
2055
|
},
|
|
2056
|
+
"e4c665e871b8546f38972172c483114d1eef73a4fc2b83e6ad929d359c408796": {
|
|
2057
|
+
"title": "Allow Deselect",
|
|
2058
|
+
"code": "{\n const [value, setValue] = useState<string | number | undefined>('btc');\n\n return (\n <Select\n {...args}\n allowDeselect\n value={value}\n onChange={(nextValue, option) => {\n setValue(nextValue as string | number | undefined);\n args.onChange?.(nextValue, option);\n }}\n />\n );\n }",
|
|
2059
|
+
"source": "stories",
|
|
2060
|
+
"compilable": false
|
|
2061
|
+
},
|
|
2020
2062
|
"e57037f057f4da5ac90baae9ad1d85153cb48c9cfff34a65cbe2a927bf5cb713": {
|
|
2021
2063
|
"title": "Usage",
|
|
2022
2064
|
"code": "<Dialog\n open={open}\n title=\"Confirm transfer\"\n onCancel={() => setOpen(false)}\n onOk={handleSubmit}\n/>",
|
|
@@ -2029,12 +2071,6 @@
|
|
|
2029
2071
|
"source": "stories",
|
|
2030
2072
|
"compilable": false
|
|
2031
2073
|
},
|
|
2032
|
-
"e5c65a663400bac3c3f390e36b09d4a78425de95dde7cad603a185c1cc30f68c": {
|
|
2033
|
-
"title": "Import",
|
|
2034
|
-
"code": "import { Grid, Row, Col } from '@1money/components-ui';\n// or\nimport { Grid, Row, Col } from '@1money/components-ui/Grid';\nimport { GRID_ALIGN, GRID_JUSTIFY } from '@1money/components-ui/Grid';",
|
|
2035
|
-
"source": "readme",
|
|
2036
|
-
"compilable": true
|
|
2037
|
-
},
|
|
2038
2074
|
"e64bbef33f26f6cb756b2904ed6134a86633064c76641e65a06e65ed9fafa302": {
|
|
2039
2075
|
"title": "All Placements",
|
|
2040
2076
|
"code": "<div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 80, padding: 60 }}>\n {PLACEMENTS.map((p: CoachMarkPlacement) => (\n <div key={p} style={{ display: 'flex', justifyContent: 'center' }}>\n <CoachMark\n steps={[\n { icon: <span style={{ fontSize: 24 }}>👋</span>, heading: 'Welcome', body: 'Get started with the dashboard.' },\n { icon: <span style={{ fontSize: 24 }}>🔍</span>, heading: 'Search', body: 'Find anything quickly.' },\n { icon: <span style={{ fontSize: 24 }}>💳</span>, heading: 'Balance', body: 'Track all accounts.' },\n ]}\n placement={p}\n />\n </div>\n ))}\n </div>",
|
|
@@ -2053,12 +2089,6 @@
|
|
|
2053
2089
|
"source": "stories",
|
|
2054
2090
|
"compilable": false
|
|
2055
2091
|
},
|
|
2056
|
-
"e8366ffc0f016219e2e3c8525fc51ad1e6b761782aa7021fb8a40588988b1bb9": {
|
|
2057
|
-
"title": "Canonical usage",
|
|
2058
|
-
"code": "import { Radio, RadioGroup } from '@1money/components-ui';\n// or tree-shakeable\nimport { Radio, RadioGroup } from '@1money/components-ui/Radio';",
|
|
2059
|
-
"source": "canonical",
|
|
2060
|
-
"compilable": true
|
|
2061
|
-
},
|
|
2062
2092
|
"e95a0d0355599d90e5a8f3e2157c5f59f2ee97f9c77cde6b856ca73e439ba89d": {
|
|
2063
2093
|
"title": "Usage",
|
|
2064
2094
|
"code": "<ProForm\n initialValues={{ name: '' }}\n onFinish={(values) => console.log(values)}\n>\n <ProForm.Text\n name=\"name\"\n label=\"Name\"\n rules={[{ required: true, message: 'Name is required' }]}\n />\n <ProForm.Select\n name=\"currency\"\n label=\"Currency\"\n fieldProps={{ options: [{ label: 'USD', value: 'USD' }] }}\n />\n</ProForm>",
|
|
@@ -2071,12 +2101,24 @@
|
|
|
2071
2101
|
"source": "stories",
|
|
2072
2102
|
"compilable": false
|
|
2073
2103
|
},
|
|
2104
|
+
"eb3d3bf8608e5ec527f4380b65309d405f31c3dc1995dc7128a95973cdb71495": {
|
|
2105
|
+
"title": "Import",
|
|
2106
|
+
"code": "import { Tabs } from '@1money/component-ui';\n// or\nimport { Tabs } from '@1money/component-ui/Tabs';",
|
|
2107
|
+
"source": "readme",
|
|
2108
|
+
"compilable": true
|
|
2109
|
+
},
|
|
2074
2110
|
"eb427461f9033ecdecd7f9fbecd2c65d93d6a9f081ee8af32cd9665d94095ec9": {
|
|
2075
2111
|
"title": "Semantic Scale",
|
|
2076
2112
|
"code": "<div style={STORY_LAYOUT_STYLE}>\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_DISPLAY_SIZES.map(size => (\n <Typography.Display key={size} size={size}>\n Display {size}\n </Typography.Display>\n ))}\n </div>\n\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_HEADLINE_SIZES.map(size => (\n <Typography.Headline key={size} size={size}>\n Headline {size}\n </Typography.Headline>\n ))}\n </div>\n\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_TITLE_SIZES.map(size => (\n <Typography.Title key={size} size={size}>\n Title {size}\n </Typography.Title>\n ))}\n </div>\n\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_BODY_SIZES.map(size => (\n <Typography.Body key={size} size={size}>\n Body {size} brings readable, content-first copy into forms, lists, and dense product surfaces.\n </Typography.Body>\n ))}\n </div>\n\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_LABEL_SIZES.map(size => (\n <Typography.Label key={size} size={size}>\n Label {size}\n </Typography.Label>\n ))}\n </div>\n\n <div style={STORY_SECTION_STYLE}>\n {TYPOGRAPHY_LINK_SIZES.map(size => (\n <Typography.Link key={size} size={size} href=\"https://ant.design/components/typography/\" target=\"_blank\">\n Link {size}\n </Typography.Link>\n ))}\n </div>\n </div>",
|
|
2077
2113
|
"source": "stories",
|
|
2078
2114
|
"compilable": true
|
|
2079
2115
|
},
|
|
2116
|
+
"eb82f96d176ca1891ecf083e5f43c42256d422f023133b2171ab354f12705fdd": {
|
|
2117
|
+
"title": "Usage",
|
|
2118
|
+
"code": "import { Button } from '@1money/component-ui';\n\n<Drawer\n open={open}\n title=\"Transfer details\"\n placement=\"right\"\n onClose={() => setOpen(false)}\n footer={<Button onClick={() => setOpen(false)}>Done</Button>}\n>\n Drawer content\n</Drawer>",
|
|
2119
|
+
"source": "readme",
|
|
2120
|
+
"compilable": true
|
|
2121
|
+
},
|
|
2080
2122
|
"ed5aa33f8e734dad460aa9b2a7c6fc0690efc9cda3b0854c642d59b2bbf55870": {
|
|
2081
2123
|
"title": "Illustrations",
|
|
2082
2124
|
"code": "{\n const handleCopy = (el: string) => {\n copy(el);\n };\n\n return <div style={{ display: 'grid', gap: 24, gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 1fr))' }}>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusChecked' />\")}>\n <Icons {...args} name='illusChecked' />\n <span>illusChecked</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusEmailError' />\")}>\n <Icons {...args} name='illusEmailError' />\n <span>illusEmailError</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusLinkExpired' />\")}>\n <Icons {...args} name='illusLinkExpired' />\n <span>illusLinkExpired</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illus2FA' />\")}>\n <Icons {...args} name='illus2FA' />\n <span>illus2FA</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusLocked' />\")}>\n <Icons {...args} name='illusLocked' />\n <span>illusLocked</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusError' />\")}>\n <Icons {...args} name='illusError' />\n <span>illusError</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusRegionNotSupported' />\")}>\n <Icons {...args} name='illusRegionNotSupported' />\n <span>illusRegionNotSupported</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusID' />\")}>\n <Icons {...args} name='illusID' />\n <span>illusID</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusVerification' />\")}>\n <Icons {...args} name='illusVerification' />\n <span>illusVerification</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusPending' />\")}>\n <Icons {...args} name='illusPending' color='#F4C600' />\n <span>illusPending</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusPasskey' />\")}>\n <Icons {...args} name='illusPasskey' />\n <span>illusPasskey</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusAddAccount' />\")}>\n <Icons {...args} name='illusAddAccount' />\n <span>illusAddAccount</span>\n </CopyIconBox>\n <CopyIconBox onClick={() => handleCopy(\"<Icons name='illusRewards' />\")}>\n <Icons {...args} name='illusRewards' />\n <span>illusRewards</span>\n </CopyIconBox>\n </div>;\n }",
|
|
@@ -2095,12 +2137,6 @@
|
|
|
2095
2137
|
"source": "stories",
|
|
2096
2138
|
"compilable": false
|
|
2097
2139
|
},
|
|
2098
|
-
"ef6129271a1cc811da6f293b9cb03f5514e410a9c60c0abec3e045e6376745b1": {
|
|
2099
|
-
"title": "Canonical usage",
|
|
2100
|
-
"code": "import { Empty } from '@1money/components-ui';\n// or\nimport { Empty } from '@1money/components-ui/Empty';",
|
|
2101
|
-
"source": "canonical",
|
|
2102
|
-
"compilable": true
|
|
2103
|
-
},
|
|
2104
2140
|
"efb94a978c87bf9343e9605b358b08efa2db1f476e21029ee2bda3da4f275448": {
|
|
2105
2141
|
"title": "Api Examples",
|
|
2106
2142
|
"code": "<div style={DEMO_SECTION_STYLE}>\n <Flex\n gap={GAP_MIDDLE}\n align={FLEX_ALIGN.center}\n justify={FLEX_JUSTIFY.spaceBetween}\n wrap={WRAP_DISABLED}\n prefixCls={FLEX_PREFIX}\n >\n <div style={DEMO_BOX_STYLE}>Align</div>\n <div style={DEMO_BOX_STYLE}>Justify</div>\n </Flex>\n\n <Flex vertical gap={GAP_LARGE} wrap={WRAP_ENABLED} prefixCls={FLEX_PREFIX}>\n <div style={DEMO_BOX_STYLE}>Vertical</div>\n <div style={DEMO_BOX_STYLE}>Wrap</div>\n </Flex>\n </div>",
|
|
@@ -2161,12 +2197,6 @@
|
|
|
2161
2197
|
"source": "readme",
|
|
2162
2198
|
"compilable": true
|
|
2163
2199
|
},
|
|
2164
|
-
"f5d6b11a550669747fb5a248be92fdbc1d02dc42ab2c8700fe44d9e09c3989ae": {
|
|
2165
|
-
"title": "Import",
|
|
2166
|
-
"code": "import { Divider } from '@1money/components-ui';",
|
|
2167
|
-
"source": "readme",
|
|
2168
|
-
"compilable": true
|
|
2169
|
-
},
|
|
2170
2200
|
"f5e88271260df2b0e8df1a0b03d96a4c3004f14d0e5aaec8892007d6c41fddb4": {
|
|
2171
2201
|
"title": "With Disabled",
|
|
2172
2202
|
"code": "<Tabs\n items={[\n { key: 'tab1', label: 'Overview' },\n { key: 'tab2', label: 'Transactions' },\n { key: 'tab3', label: 'Analytics', disabled: true },\n { key: 'tab4', label: 'Settings' },\n ]}\n />",
|
|
@@ -2185,21 +2215,33 @@
|
|
|
2185
2215
|
"source": "stories",
|
|
2186
2216
|
"compilable": false
|
|
2187
2217
|
},
|
|
2188
|
-
"f7c2c0a63e93844f526a49d62cfd4f5ced951213730b19e88cb69c559c39a367": {
|
|
2189
|
-
"title": "Import",
|
|
2190
|
-
"code": "import { Step } from '@1money/components-ui';\n// or\nimport { Step } from '@1money/components-ui/Step';",
|
|
2191
|
-
"source": "readme",
|
|
2192
|
-
"compilable": true
|
|
2193
|
-
},
|
|
2194
2218
|
"f7f96c74f982e37eb075e6bd5affd0bbcf3d63faca5bb60a1175fe7725dad87b": {
|
|
2195
2219
|
"title": "Multiple Files",
|
|
2196
2220
|
"code": "<Upload\n label=\"Label\"\n description=\"Description\"\n feedback=\"Feedback\"\n >\n <UploadFileBar fileName=\"File name.PDF\" onRemove={fn()} />\n <UploadFileBar fileName=\"File name.PDF\" onRemove={fn()} />\n <UploadFileBar\n fileName=\"File name.PDF\"\n status={1}\n message=\"Upload failed\"\n onRemove={fn()}\n />\n </Upload>",
|
|
2197
2221
|
"source": "stories",
|
|
2198
2222
|
"compilable": false
|
|
2199
2223
|
},
|
|
2200
|
-
"
|
|
2224
|
+
"f846e6658290862cc4216f55f8c33505bd1c923167b1dd68d217b0166bca6aad": {
|
|
2225
|
+
"title": "Canonical usage",
|
|
2226
|
+
"code": "import { Upload, UploadFileBar } from '@1money/component-ui';\n// or\nimport { Upload, UploadFileBar } from '@1money/component-ui/Upload';",
|
|
2227
|
+
"source": "canonical",
|
|
2228
|
+
"compilable": true
|
|
2229
|
+
},
|
|
2230
|
+
"f9a556c6bb441f9b96d63aaf12ad63145cdbe9193c743d5e921ef1ec53fc8224": {
|
|
2231
|
+
"title": "Canonical usage",
|
|
2232
|
+
"code": "import { Segment } from '@1money/component-ui';\n// or\nimport { Segment } from '@1money/component-ui/Segment';",
|
|
2233
|
+
"source": "canonical",
|
|
2234
|
+
"compilable": true
|
|
2235
|
+
},
|
|
2236
|
+
"fae5c24c6bab10e5462b6f5a8c5ca33714a0b121dc2cf3c44ca989ff33b3d36c": {
|
|
2237
|
+
"title": "Import",
|
|
2238
|
+
"code": "import { Pagination, usePagination } from '@1money/component-ui';\n// or\nimport { Pagination, usePagination } from '@1money/component-ui/Pagination';",
|
|
2239
|
+
"source": "readme",
|
|
2240
|
+
"compilable": true
|
|
2241
|
+
},
|
|
2242
|
+
"fbd27b2c45cf77922ee28f98299af2815b390ade86f902db573d0f520dcc2eb6": {
|
|
2201
2243
|
"title": "Import",
|
|
2202
|
-
"code": "import {
|
|
2244
|
+
"code": "import { Skeleton } from '@1money/component-ui';\n// or\nimport { Skeleton } from '@1money/component-ui/Skeleton';",
|
|
2203
2245
|
"source": "readme",
|
|
2204
2246
|
"compilable": true
|
|
2205
2247
|
},
|
|
@@ -2209,18 +2251,18 @@
|
|
|
2209
2251
|
"source": "stories",
|
|
2210
2252
|
"compilable": false
|
|
2211
2253
|
},
|
|
2212
|
-
"fc9a7422a1bd65a99442277ecc3a078de35b6d7347c17ebe9cd83cdf379e54a7": {
|
|
2213
|
-
"title": "Usage",
|
|
2214
|
-
"code": "const steps = [\n {\n icon: <Icons name=\"dashboard\" size={24} />,\n heading: 'Welcome to Dashboard',\n body: 'Here you can see an overview of your finances.',\n },\n {\n heading: 'Track Your Spending',\n body: 'Use the charts to monitor transactions by category.',\n },\n {\n heading: \"You're all set!\",\n body: 'Explore the rest of the app at your own pace.',\n },\n];\n\n<CoachMark\n steps={steps}\n defaultActiveStep={0}\n placement=\"top\"\n onFinish={() => console.log('Tour complete')}\n onDismiss={() => console.log('Tour dismissed')}\n/>",
|
|
2215
|
-
"source": "readme",
|
|
2216
|
-
"compilable": true
|
|
2217
|
-
},
|
|
2218
2254
|
"fca476fdc8a8454562178330e2ef42b7cb756bb782574109179b48b0b5f2dfcb": {
|
|
2219
2255
|
"title": "Plain",
|
|
2220
2256
|
"code": "<div>\n <p>Lorem ipsum dolor sit amet.</p>\n <Divider plain>Text</Divider>\n <p>Lorem ipsum dolor sit amet.</p>\n </div>",
|
|
2221
2257
|
"source": "stories",
|
|
2222
2258
|
"compilable": true
|
|
2223
2259
|
},
|
|
2260
|
+
"fca8a95a331c2fbb0cd85959d30ecafff517a78cf35c1389a810dcaa08d6e5e6": {
|
|
2261
|
+
"title": "Usage",
|
|
2262
|
+
"code": "import { Button } from '@1money/component-ui';\n\nfunction MyCustomIcon() {\n return <span aria-hidden=\"true\">No data</span>;\n}\n\n// Basic usage with icon name\n<Empty\n icon=\"transactions\"\n title=\"No record found\"\n description=\"Try adjusting your filters to find the record you are looking for\"\n/>\n\n// With custom icon component\n<Empty\n icon={<MyCustomIcon />}\n description=\"No data available\"\n/>\n\n// With action button\n<Empty\n variant=\"stroke\"\n icon=\"bank\"\n description=\"You don't have any bank accounts linked\"\n action={<Button>Add new bank account</Button>}\n/>",
|
|
2263
|
+
"source": "readme",
|
|
2264
|
+
"compilable": true
|
|
2265
|
+
},
|
|
2224
2266
|
"fcf58f34ec54a1feebe1b6bcd494ced5bc067fe18fe4faea458801a538a151fb": {
|
|
2225
2267
|
"title": "Grid Responsive",
|
|
2226
2268
|
"code": "<ProForm\n {...args}\n grid\n rowProps={{ gutter: 16 }}\n initialValues={{}}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText\n name=\"firstName\"\n label=\"First Name\"\n colProps={{ span: 12, sm: 12, md: 8, lg: 6 }}\n />\n <ProFormText\n name=\"lastName\"\n label=\"Last Name\"\n colProps={{ span: 12, sm: 12, md: 8, lg: 6 }}\n />\n <ProFormText\n name=\"email\"\n label=\"Email\"\n colProps={{ span: 24, sm: 24, md: 8, lg: 6 }}\n />\n <ProFormText\n name=\"phone\"\n label=\"Phone\"\n colProps={{ span: 24, sm: 12, md: 12, lg: 6 }}\n />\n <ProFormTextArea\n name=\"address\"\n label=\"Address\"\n colProps={{ span: 24 }}\n />\n </ProForm>",
|
|
@@ -2233,35 +2275,23 @@
|
|
|
2233
2275
|
"source": "stories",
|
|
2234
2276
|
"compilable": true
|
|
2235
2277
|
},
|
|
2236
|
-
"
|
|
2237
|
-
"title": "
|
|
2238
|
-
"code": "
|
|
2239
|
-
"source": "
|
|
2240
|
-
"compilable":
|
|
2278
|
+
"feb0c04288ce976b2a2dd118a352d0c9501645b51a4f529bf1cb1d9057ef34f1": {
|
|
2279
|
+
"title": "Radio Group Story",
|
|
2280
|
+
"code": "<ProForm\n {...args}\n initialValues={{ gender: 'male', plan: 'pro' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormRadioGroup\n name=\"gender\"\n label=\"Gender\"\n fieldProps={{\n options: [\n { label: 'Male', value: 'male' },\n { label: 'Female', value: 'female' },\n { label: 'Other', value: 'other' },\n ],\n }}\n />\n <ProFormRadioGroup\n name=\"plan\"\n label=\"Plan\"\n fieldProps={{\n direction: 'horizontal',\n options: [\n { label: 'Free', value: 'free' },\n { label: 'Pro', value: 'pro' },\n { label: 'Enterprise', value: 'enterprise' },\n ],\n }}\n />\n </ProForm>",
|
|
2281
|
+
"source": "stories",
|
|
2282
|
+
"compilable": false
|
|
2241
2283
|
},
|
|
2242
|
-
"
|
|
2284
|
+
"ff016409af028ad3a47644d56cb21acf445cb72e1c93de742fd656a520f41c9c": {
|
|
2243
2285
|
"title": "Canonical usage",
|
|
2244
|
-
"code": "import {
|
|
2286
|
+
"code": "import { notification } from '@1money/component-ui';\n// or\nimport notification, {\n NOTIFICATION_PLACEMENTS,\n NOTIFICATION_STATUSES,\n} from '@1money/component-ui/Notification';",
|
|
2245
2287
|
"source": "canonical",
|
|
2246
2288
|
"compilable": true
|
|
2247
2289
|
},
|
|
2248
|
-
"
|
|
2290
|
+
"ff98ca6743d554b1f351e0d27e1a16a5bb7fb293ec5d30d1fe4f7e8a374f8e3f": {
|
|
2249
2291
|
"title": "Canonical usage",
|
|
2250
|
-
"code": "import {
|
|
2292
|
+
"code": "import { Tour } from '@1money/component-ui';\n// or\nimport { Tour } from '@1money/component-ui/Tour';",
|
|
2251
2293
|
"source": "canonical",
|
|
2252
2294
|
"compilable": true
|
|
2253
|
-
},
|
|
2254
|
-
"feb0c04288ce976b2a2dd118a352d0c9501645b51a4f529bf1cb1d9057ef34f1": {
|
|
2255
|
-
"title": "Radio Group Story",
|
|
2256
|
-
"code": "<ProForm\n {...args}\n initialValues={{ gender: 'male', plan: 'pro' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormRadioGroup\n name=\"gender\"\n label=\"Gender\"\n fieldProps={{\n options: [\n { label: 'Male', value: 'male' },\n { label: 'Female', value: 'female' },\n { label: 'Other', value: 'other' },\n ],\n }}\n />\n <ProFormRadioGroup\n name=\"plan\"\n label=\"Plan\"\n fieldProps={{\n direction: 'horizontal',\n options: [\n { label: 'Free', value: 'free' },\n { label: 'Pro', value: 'pro' },\n { label: 'Enterprise', value: 'enterprise' },\n ],\n }}\n />\n </ProForm>",
|
|
2257
|
-
"source": "stories",
|
|
2258
|
-
"compilable": false
|
|
2259
|
-
},
|
|
2260
|
-
"ffcdb76bb3216c346fc3ce624448bb8e51a3677f3fd96c8ed18c264f52ed6e31": {
|
|
2261
|
-
"title": "Import",
|
|
2262
|
-
"code": "import { Dropdown } from '@1money/components-ui';\n// or\nimport { Dropdown } from '@1money/components-ui/Dropdown';",
|
|
2263
|
-
"source": "readme",
|
|
2264
|
-
"compilable": true
|
|
2265
2295
|
}
|
|
2266
2296
|
}
|
|
2267
2297
|
}
|