@1money/component-ui 0.0.29 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +56 -8
  2. package/es/components/Alert/Alert.js +10 -6
  3. package/es/components/Calendar/Calendar.js +6 -4
  4. package/es/components/CoachMark/CoachMark.js +4 -3
  5. package/es/components/Icons/Icons.d.ts +173 -8
  6. package/es/components/Icons/Icons.js +188 -4
  7. package/{lib/components/Icons/illustrations → es/components/Icons}/Illustrations.d.ts +1 -1
  8. package/es/components/Icons/Illustrations.js +874 -0
  9. package/es/components/Icons/{logos/Logo.d.ts → Logo.d.ts} +1 -1
  10. package/es/components/Icons/Logo.js +209 -0
  11. package/es/components/Icons/SVGs.d.ts +265 -0
  12. package/es/components/Icons/SVGs.js +1918 -0
  13. package/es/components/Icons/{primitives/IconWrapper.d.ts → Wrapper.d.ts} +2 -1
  14. package/es/components/Icons/Wrapper.js +100 -0
  15. package/es/components/Icons/index.d.ts +2 -5
  16. package/es/components/Icons/index.js +2 -6
  17. package/es/components/Icons/interface.d.ts +24 -9
  18. package/es/components/Input/Password/Password.js +6 -4
  19. package/es/components/Input/Search/Search.js +6 -4
  20. package/es/components/Navigation/NavigationLogo.js +6 -4
  21. package/es/components/ProForm/style/ProForm.css +1 -1
  22. package/es/components/Select/SelectFieldShell.js +4 -3
  23. package/es/components/Select/SelectOptionContent.js +4 -3
  24. package/es/components/Select/SelectSearchControl.js +4 -3
  25. package/es/components/Select/SelectValueContent.js +4 -3
  26. package/es/components/Upload/Upload.js +6 -4
  27. package/es/components/Upload/UploadFileBar.js +4 -3
  28. package/es/index.css +1 -1
  29. package/es/index.d.ts +2 -2
  30. package/es/index.js +2 -2
  31. package/lib/components/Alert/Alert.js +9 -5
  32. package/lib/components/Calendar/Calendar.js +5 -3
  33. package/lib/components/CoachMark/CoachMark.js +3 -2
  34. package/lib/components/Icons/Icons.d.ts +173 -8
  35. package/lib/components/Icons/Icons.js +183 -5
  36. package/{es/components/Icons/illustrations → lib/components/Icons}/Illustrations.d.ts +1 -1
  37. package/lib/components/Icons/Illustrations.js +881 -0
  38. package/lib/components/Icons/{logos/Logo.d.ts → Logo.d.ts} +1 -1
  39. package/lib/components/Icons/Logo.js +219 -0
  40. package/lib/components/Icons/SVGs.d.ts +265 -0
  41. package/lib/components/Icons/SVGs.js +1926 -0
  42. package/lib/components/Icons/{primitives/IconWrapper.d.ts → Wrapper.d.ts} +2 -1
  43. package/lib/components/Icons/Wrapper.js +109 -0
  44. package/lib/components/Icons/index.d.ts +2 -5
  45. package/lib/components/Icons/index.js +5 -160
  46. package/lib/components/Icons/interface.d.ts +24 -9
  47. package/lib/components/Input/Password/Password.js +5 -3
  48. package/lib/components/Input/Search/Search.js +5 -3
  49. package/lib/components/Navigation/NavigationLogo.js +5 -3
  50. package/lib/components/ProForm/style/ProForm.css +1 -1
  51. package/lib/components/Select/SelectFieldShell.js +3 -2
  52. package/lib/components/Select/SelectOptionContent.js +3 -2
  53. package/lib/components/Select/SelectSearchControl.js +3 -2
  54. package/lib/components/Select/SelectValueContent.js +3 -2
  55. package/lib/components/Upload/Upload.js +5 -3
  56. package/lib/components/Upload/UploadFileBar.js +3 -2
  57. package/lib/index.css +1 -1
  58. package/lib/index.d.ts +2 -2
  59. package/lib/index.js +1 -223
  60. package/package.json +2 -6
  61. package/scripts/mcp-server/examples.generated.json +309 -723
  62. package/scripts/mcp-server/index.generated.json +699 -3409
  63. package/es/components/Icons/Icon.d.ts +0 -5
  64. package/es/components/Icons/Icon.js +0 -19
  65. package/es/components/Icons/icon-set/brand.d.ts +0 -6
  66. package/es/components/Icons/icon-set/brand.js +0 -62
  67. package/es/components/Icons/icon-set/currency.d.ts +0 -7
  68. package/es/components/Icons/icon-set/currency.js +0 -101
  69. package/es/components/Icons/icon-set/dynamic.d.ts +0 -16
  70. package/es/components/Icons/icon-set/dynamic.js +0 -92
  71. package/es/components/Icons/icon-set/functional.d.ts +0 -19
  72. package/es/components/Icons/icon-set/functional.js +0 -286
  73. package/es/components/Icons/icon-set/index.d.ts +0 -10
  74. package/es/components/Icons/icon-set/index.js +0 -10
  75. package/es/components/Icons/icon-set/menu.d.ts +0 -22
  76. package/es/components/Icons/icon-set/menu.js +0 -372
  77. package/es/components/Icons/icon-set/notification.d.ts +0 -6
  78. package/es/components/Icons/icon-set/notification.js +0 -109
  79. package/es/components/Icons/icon-set/primary.d.ts +0 -14
  80. package/es/components/Icons/icon-set/primary.js +0 -222
  81. package/es/components/Icons/icon-set/registry.d.ts +0 -159
  82. package/es/components/Icons/icon-set/registry.js +0 -166
  83. package/es/components/Icons/icon-set/system.d.ts +0 -64
  84. package/es/components/Icons/icon-set/system.js +0 -1093
  85. package/es/components/Icons/illustrations/Illustrations.js +0 -874
  86. package/es/components/Icons/illustrations/index.d.ts +0 -2
  87. package/es/components/Icons/illustrations/index.js +0 -2
  88. package/es/components/Icons/logos/Logo.js +0 -209
  89. package/es/components/Icons/logos/index.d.ts +0 -2
  90. package/es/components/Icons/logos/index.js +0 -2
  91. package/es/components/Icons/primitives/IconHover.d.ts +0 -4
  92. package/es/components/Icons/primitives/IconHover.js +0 -28
  93. package/es/components/Icons/primitives/IconWrapper.js +0 -81
  94. package/es/components/Icons/primitives/index.d.ts +0 -5
  95. package/es/components/Icons/primitives/index.js +0 -5
  96. package/es/components/Icons/primitives/interface.d.ts +0 -25
  97. package/es/components/Icons/primitives/interface.js +0 -2
  98. package/es/components/Icons/types.d.ts +0 -3
  99. package/es/components/Icons/types.js +0 -2
  100. package/lib/components/Icons/Icon.d.ts +0 -5
  101. package/lib/components/Icons/Icon.js +0 -25
  102. package/lib/components/Icons/icon-set/brand.d.ts +0 -6
  103. package/lib/components/Icons/icon-set/brand.js +0 -69
  104. package/lib/components/Icons/icon-set/currency.d.ts +0 -7
  105. package/lib/components/Icons/icon-set/currency.js +0 -108
  106. package/lib/components/Icons/icon-set/dynamic.d.ts +0 -16
  107. package/lib/components/Icons/icon-set/dynamic.js +0 -99
  108. package/lib/components/Icons/icon-set/functional.d.ts +0 -19
  109. package/lib/components/Icons/icon-set/functional.js +0 -293
  110. package/lib/components/Icons/icon-set/index.d.ts +0 -10
  111. package/lib/components/Icons/icon-set/index.js +0 -783
  112. package/lib/components/Icons/icon-set/menu.d.ts +0 -22
  113. package/lib/components/Icons/icon-set/menu.js +0 -379
  114. package/lib/components/Icons/icon-set/notification.d.ts +0 -6
  115. package/lib/components/Icons/icon-set/notification.js +0 -116
  116. package/lib/components/Icons/icon-set/primary.d.ts +0 -14
  117. package/lib/components/Icons/icon-set/primary.js +0 -229
  118. package/lib/components/Icons/icon-set/registry.d.ts +0 -159
  119. package/lib/components/Icons/icon-set/registry.js +0 -172
  120. package/lib/components/Icons/icon-set/system.d.ts +0 -64
  121. package/lib/components/Icons/icon-set/system.js +0 -1100
  122. package/lib/components/Icons/illustrations/Illustrations.js +0 -881
  123. package/lib/components/Icons/illustrations/index.d.ts +0 -2
  124. package/lib/components/Icons/illustrations/index.js +0 -79
  125. package/lib/components/Icons/logos/Logo.js +0 -219
  126. package/lib/components/Icons/logos/index.d.ts +0 -2
  127. package/lib/components/Icons/logos/index.js +0 -49
  128. package/lib/components/Icons/primitives/IconHover.d.ts +0 -4
  129. package/lib/components/Icons/primitives/IconHover.js +0 -37
  130. package/lib/components/Icons/primitives/IconWrapper.js +0 -88
  131. package/lib/components/Icons/primitives/index.d.ts +0 -5
  132. package/lib/components/Icons/primitives/index.js +0 -25
  133. package/lib/components/Icons/primitives/interface.d.ts +0 -25
  134. package/lib/components/Icons/primitives/interface.js +0 -6
  135. package/lib/components/Icons/types.d.ts +0 -3
  136. package/lib/components/Icons/types.js +0 -8
@@ -55,12 +55,6 @@
55
55
  "source": "stories",
56
56
  "compilable": true
57
57
  },
58
- "03d4e0cef5922bd9d1c1934b5b1c8af440c30f7e1ae1f7f31d755dd518639b6c": {
59
- "title": "Canonical usage",
60
- "code": "import type { DialogFormProps } from '@1money/component-ui';",
61
- "source": "canonical",
62
- "compilable": true
63
- },
64
58
  "03db5f06b9d053c3b514bf4bd85fdb3c21604f60d3b598d6de714a98a3a17713": {
65
59
  "title": "Usage",
66
60
  "code": "<Slider\n label=\"Price\"\n description=\"Set your budget\"\n valuePrefix=\"$\"\n defaultValue={40}\n min={0}\n max={100}\n onChange={(value) => console.log(value)}\n/>",
@@ -73,9 +67,9 @@
73
67
  "source": "stories",
74
68
  "compilable": false
75
69
  },
76
- "043dd268dff2f5670f3ab2c4c19161fec1e9322d74c3151a062126f0e295a632": {
70
+ "0438a4317a7d7a552850cb51936a9650a74930e6c8b9e8a6f8c36de31ab885a0": {
77
71
  "title": "Canonical usage",
78
- "code": "import type { ProFormItemProps } from '@1money/component-ui';",
72
+ "code": "import { Trigger } from '@1money/components-ui';\n// or\nimport { Trigger } from '@1money/components-ui/Trigger';",
79
73
  "source": "canonical",
80
74
  "compilable": true
81
75
  },
@@ -85,36 +79,12 @@
85
79
  "source": "stories",
86
80
  "compilable": true
87
81
  },
88
- "04e9dc127df402e09fdd97b4e5a8113b98bd6e4cc73a657077883081e9a0b8f2": {
89
- "title": "Canonical usage",
90
- "code": "import type { StepStatus } from '@1money/component-ui';",
91
- "source": "canonical",
92
- "compilable": true
93
- },
94
- "05717fb84522993ea86a1295a654c812fe4de71b24eacb8657ec875518efde6a": {
95
- "title": "Usage",
96
- "code": "<Alert\n status=\"info\"\n title=\"Information\"\n body=\"This is an informational message.\"\n link={{ label: 'Learn more', href: '/docs' }}\n onClose={() => console.log('closed')}\n/>",
97
- "source": "readme",
98
- "compilable": true
99
- },
100
- "069beba30456db7a61ea657851e695df2a417f06c69fdf677a0d60c1a7af3de9": {
101
- "title": "Canonical usage",
102
- "code": "import type { ProFormValueType } from '@1money/component-ui';",
103
- "source": "canonical",
104
- "compilable": true
105
- },
106
82
  "06b3a8e6513382a6e7d5bd530b625d83a008bbb52aa5f05cb2812e54e8854b3a": {
107
83
  "title": "Api Examples",
108
84
  "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>",
109
85
  "source": "stories",
110
86
  "compilable": true
111
87
  },
112
- "06fe88ad0e8ab0eb5303e6d550234af6433a3b3e5f18fcddba351e64fab26e13": {
113
- "title": "Canonical usage",
114
- "code": "import type { SelectOptionValue } from '@1money/component-ui';",
115
- "source": "canonical",
116
- "compilable": true
117
- },
118
88
  "0716e5e5fffc542e7b028181c93a5655fb3738281657fc43abb5eb99a95b3e8b": {
119
89
  "title": "Custom Icon",
120
90
  "code": "<Alert\n {...args}\n status=\"info\"\n title=\"Manual review queued\"\n body=\"This alert uses a custom icon to reflect a workflow-specific state instead of the default status glyph.\"\n icon={<Icons name=\"notificationWarning\" size={32} />}\n link={{ label: 'Open queue', onClick: fn() }}\n />",
@@ -133,40 +103,34 @@
133
103
  "source": "stories",
134
104
  "compilable": true
135
105
  },
136
- "079ea5a6232196a5bc2822e0a2466a32b0fbfa7bfa8b3a800a5e3d65b6226e42": {
137
- "title": "Canonical usage",
138
- "code": "import type { ProgressColor } from '@1money/component-ui';",
139
- "source": "canonical",
140
- "compilable": true
141
- },
142
106
  "07a4236cc3c96aa1a14a8ab647fef5e00704b05042314ec5815451b3dd3b5ba0": {
143
107
  "title": "Usage",
144
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>",
145
109
  "source": "readme",
146
110
  "compilable": true
147
111
  },
148
- "0914d8f9442c252fe06be76431695e7673a02bd475b9bad034e5bc5dedf021ff": {
112
+ "08af6791ed777b4f8ea419b22b1309470e98f6762ccd1ac6fc23e09d6676587b": {
149
113
  "title": "Canonical usage",
150
- "code": "import type { TriggerContent } from '@1money/component-ui';",
114
+ "code": "import { Progress } from '@1money/components-ui';\n// or\nimport { Progress } from '@1money/components-ui/Progress';",
151
115
  "source": "canonical",
152
116
  "compilable": true
153
117
  },
154
- "0a72ee3d63ec85bf631eafb8407f424d82c2c3d9da1437fb18801bec174133af": {
155
- "title": "Five Items",
156
- "code": "<Segment\n items={[\n { value: 'tab1', label: 'Label' },\n { value: 'tab2', label: 'Label' },\n { value: 'tab3', label: 'Label' },\n { value: 'tab4', label: 'Label' },\n { value: 'tab5', label: 'Label' },\n ]}\n />",
157
- "source": "stories",
118
+ "08d86e1e9a9ccea86e7168af88595e9da0ef259cf44907a5be70520cdb1e4a4a": {
119
+ "title": "Import",
120
+ "code": "import { Link } from '@1money/components-ui';\n// or\nimport { Link } from '@1money/components-ui/Link';",
121
+ "source": "readme",
158
122
  "compilable": true
159
123
  },
160
- "0b707df089538a3a4f0f7d9fbe136625806044098f7d3f4e2ed84889b27634ef": {
161
- "title": "Import",
162
- "code": "import {\n CrossIcon,\n Icon,\n Icons,\n IconHover,\n IconWrapper,\n LogoWithWords,\n} from '@1money/components-ui';\n\nimport type { IconName, IconsProps } from '@1money/components-ui';",
124
+ "09067b9f75756404a5faa16038cb05754515fa2db3b4df4eb1afdc37fbedc9ba": {
125
+ "title": "Usage",
126
+ "code": "<VirtualList\n data={items}\n height={300}\n itemHeight={32}\n itemKey=\"id\"\n>\n {(item, index, { style }) => (\n <div style={style}>{item.label}</div>\n )}\n</VirtualList>",
163
127
  "source": "readme",
164
128
  "compilable": true
165
129
  },
166
- "0c0afbe2548cd54cf225af79ea0be88e179d1592672834759ce9d5c4dd0d7476": {
167
- "title": "Canonical usage",
168
- "code": "import type { ValidateTrigger } from '@1money/component-ui';",
169
- "source": "canonical",
130
+ "0a72ee3d63ec85bf631eafb8407f424d82c2c3d9da1437fb18801bec174133af": {
131
+ "title": "Five Items",
132
+ "code": "<Segment\n items={[\n { value: 'tab1', label: 'Label' },\n { value: 'tab2', label: 'Label' },\n { value: 'tab3', label: 'Label' },\n { value: 'tab4', label: 'Label' },\n { value: 'tab5', label: 'Label' },\n ]}\n />",
133
+ "source": "stories",
170
134
  "compilable": true
171
135
  },
172
136
  "0c268f0ec6b90f7352970d3db858c53364c60f2321af3c578568fc93082425bb": {
@@ -193,30 +157,18 @@
193
157
  "source": "readme",
194
158
  "compilable": true
195
159
  },
196
- "0eccd89d4848e5f239f204a25e0a5afbc08ea70a21eb5403bc608a3da6da85ad": {
197
- "title": "Canonical usage",
198
- "code": "<Drawer />",
199
- "source": "canonical",
200
- "compilable": true
201
- },
202
- "0f561819e24a9b6521e16b4a9238c0250741795e0996d3dca59f7fb9a111ddf4": {
203
- "title": "Canonical usage",
204
- "code": "<ProFormText />",
205
- "source": "canonical",
206
- "compilable": true
207
- },
208
- "0f978c9e8cebacc672d00e70889ae1fb18b0d5a39b29dc3e53b0d53ab04aedf1": {
209
- "title": "Canonical usage",
210
- "code": "import type { PaginationItem } from '@1money/component-ui';",
211
- "source": "canonical",
212
- "compilable": true
213
- },
214
160
  "11f60c018746e51bd823c5ce8039341a2200f2e132e62e58f99f23cfe2166cbd": {
215
161
  "title": "All Variants",
216
162
  "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>",
217
163
  "source": "stories",
218
164
  "compilable": false
219
165
  },
166
+ "121fd04bd739e98c6ccc312a1be13069715c343ad66bcbd8e3b076ee2611f60a": {
167
+ "title": "Canonical usage",
168
+ "code": "import type { IconsProps } from '@1money/component-ui';",
169
+ "source": "canonical",
170
+ "compilable": true
171
+ },
220
172
  "123291e7b1b33126adc91e8204e4002c37c71a74eb5bfca67a4da71b9aec2f6a": {
221
173
  "title": "Default",
222
174
  "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 }",
@@ -241,34 +193,16 @@
241
193
  "source": "stories",
242
194
  "compilable": false
243
195
  },
244
- "1549a41755f2d85818188654c648d16f6deea173c67c20999f5d5aa896204817": {
245
- "title": "Canonical usage",
246
- "code": "<ProFormTextArea />",
247
- "source": "canonical",
248
- "compilable": true
249
- },
250
- "159060bf345ad56b198657357005740fb6892291717bb99ada373f0a62cdcdc9": {
251
- "title": "Canonical usage",
252
- "code": "import type { ProgressProps } from '@1money/component-ui';",
253
- "source": "canonical",
254
- "compilable": true
255
- },
256
196
  "17aad2a9b23bb7f9a4768f770a9b9b5b06d74dab24c5200037505b0047ec2391": {
257
197
  "title": "Controlled",
258
198
  "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 }",
259
199
  "source": "stories",
260
200
  "compilable": true
261
201
  },
262
- "182c2782ef8a0d17a1da002048cb2f2ccd2469370cc302d126d075b4394df24b": {
263
- "title": "Canonical usage",
264
- "code": "import type { TriggerContentContext } from '@1money/component-ui';",
265
- "source": "canonical",
266
- "compilable": true
267
- },
268
- "1856eecdadbccda4468f63edff75ac60c746187efb7df1f7699540bec7ce4929": {
269
- "title": "Canonical usage",
270
- "code": "import type { PortalProps } from '@1money/component-ui';",
271
- "source": "canonical",
202
+ "17d01f6082f650280e29a5b298a6dbc9c559c171c16751739adb36ea024afcfe": {
203
+ "title": "Usage",
204
+ "code": "// Default ring spinner\n<Spinner />\n\n// Custom size\n<Spinner size={48} />\n\n// Brand Lottie spinner\n<Spinner type=\"brand\" />\n\n// Brand spinner with title and body text\n<Spinner type=\"brand\" title=\"Loading\" body=\"Please wait a moment\" />\n\n// Brand spinner with gradient background\n<Spinner type=\"brand-bg\" size={64} title=\"Setting up your account\" />",
205
+ "source": "readme",
272
206
  "compilable": true
273
207
  },
274
208
  "1ad3863a7ccae5d72cf0b223899e03501462831ed16ae711d9f497c103c00008": {
@@ -301,18 +235,18 @@
301
235
  "source": "stories",
302
236
  "compilable": false
303
237
  },
304
- "1eb0a331971caa6d8ea905cd7fb9c8e846ff5dbc535c68ea157133495806f4e7": {
305
- "title": "Canonical usage",
306
- "code": "import { Navigation } from '@1money/components-ui';\n// or\nimport { Navigation } from '@1money/components-ui/Navigation';",
307
- "source": "canonical",
308
- "compilable": true
309
- },
310
238
  "1ecd90179c2ebd2ed33c0063235f9367b50ed37a7eba1d4c6aa1973033ed554c": {
311
239
  "title": "Multi Select",
312
240
  "code": "{\n const [selected, setSelected] = useState<string[]>(['Apple', 'Cherry', 'Fig']);\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: 8 }}>\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' }}>\n {SIMPLE_ITEMS.map((item) => (\n <DropdownItem\n key={item}\n title={item}\n selected={selected.includes(item)}\n onClick={() => toggle(item)}\n />\n ))}\n </div>\n </div>\n }\n >\n <Button>\n {selected.length > 0 ? `${selected.length} selected` : 'Select items'}\n </Button>\n </Dropdown>\n );\n }",
313
241
  "source": "stories",
314
242
  "compilable": false
315
243
  },
244
+ "1f944ea3bc1de41179d6d298524b5c3604ace798b878bacd31dc65416b264e80": {
245
+ "title": "Brand Spinner with Message",
246
+ "code": "<Spinner\n type=\"brand\"\n size={56}\n title=\"Hang tight\"\n body=\"We're processing your request\"\n/>",
247
+ "source": "readme",
248
+ "compilable": true
249
+ },
316
250
  "216b625401b1ee29a2c8f02427f776e18dd670858e53fd87ea414473832ba9c9": {
317
251
  "title": "With Title",
318
252
  "code": "<div style={ANCHOR_WRAPPER_STYLE}>\n <button id=\"tooltip-title\">Hover me</button>\n <Tooltip {...args} anchorSelect=\"#tooltip-title\" />\n </div>",
@@ -325,6 +259,12 @@
325
259
  "source": "readme",
326
260
  "compilable": true
327
261
  },
262
+ "21cf92888ecabc84d2f36ba71a1b5a30b1fc75a963b72b6bd4ad911c20be6142": {
263
+ "title": "Canonical usage",
264
+ "code": "import type { IconName } from '@1money/component-ui';",
265
+ "source": "canonical",
266
+ "compilable": true
267
+ },
328
268
  "21e145efeaada4cb2c7e716099dd9261f34d38e9df00905994175c1a5e9aabb5": {
329
269
  "title": "Dynamic Data",
330
270
  "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 }",
@@ -343,6 +283,12 @@
343
283
  "source": "stories",
344
284
  "compilable": false
345
285
  },
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
+ },
346
292
  "22701739de59f3ff8757908dd59dec110a126e3b95861d3ad523cb1552deeed7": {
347
293
  "title": "All Variants",
348
294
  "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>",
@@ -379,12 +325,6 @@
379
325
  "source": "stories",
380
326
  "compilable": false
381
327
  },
382
- "25966efe47cbb331081aa62151a5d80e7324bfce0b4a1b82e323559d9349cd54": {
383
- "title": "Canonical usage",
384
- "code": "<Select />",
385
- "source": "canonical",
386
- "compilable": true
387
- },
388
328
  "259f23e43a9bab9ac08664151900a9dc9f3cc181adccdacc7a28bd34ab37be7e": {
389
329
  "title": "Form Layout Patterns",
390
330
  "code": "<div style={DEMO_PAGE_STYLE}>\n <Row gutter={GRID_GUTTER_SPACED}>\n <Col span={12}>\n <div style={DEMO_HEADER_BLOCK_STYLE}>Form Header</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED}>\n <Col span={12} md={3}>\n <div style={DEMO_FORM_LABEL_STYLE}>Label: Company Name</div>\n </Col>\n <Col span={12} md={9}>\n <div style={DEMO_FORM_FIELD_STYLE}>Input Field (span 9)</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED}>\n <Col span={12} md={3}>\n <div style={DEMO_FORM_LABEL_STYLE}>Label: Email</div>\n </Col>\n <Col span={12} md={9}>\n <div style={DEMO_FORM_FIELD_STYLE}>Input Field (span 9)</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED}>\n <Col span={12} md={{ span: 9, offset: 3 }}>\n <div style={DEMO_FORM_FIELD_STYLE}>Inline Help / Validation Message (offset 3)</div>\n </Col>\n </Row>\n\n <Row gutter={GRID_GUTTER_SPACED}>\n <Col span={12} md={{ span: 9, offset: 3 }}>\n <Row gutter={GRID_GUTTER_COMPACT} justify={GRID_JUSTIFY.end}>\n <Col span={6} md={4} lg={3}>\n <div style={DEMO_FORM_ACTION_STYLE}>Secondary Action</div>\n </Col>\n <Col span={6} md={4} lg={3}>\n <div style={DEMO_FORM_ACTION_STYLE}>Primary Action</div>\n </Col>\n </Row>\n </Col>\n </Row>\n </div>",
@@ -403,12 +343,6 @@
403
343
  "source": "stories",
404
344
  "compilable": false
405
345
  },
406
- "25f9f9086f93b5fe128992d1c388b0c9cd77df643010c4c5cc403527a80b7528": {
407
- "title": "Canonical usage",
408
- "code": "<QueryFilter />",
409
- "source": "canonical",
410
- "compilable": true
411
- },
412
346
  "26594eacf431540e6380fac7c7ff44f09d414de2052860d55187217317c0cbb1": {
413
347
  "title": "Field Set",
414
348
  "code": "<ProForm\n {...args}\n initialValues={{ phone: ['+1', '555-0100'] }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProForm.FieldSet name=\"phone\" label=\"Phone Number\" gap={8}>\n <Input placeholder=\"Area code\" style={{ width: 80 }} />\n <Input placeholder=\"Number\" style={{ width: 200 }} />\n </ProForm.FieldSet>\n <ProFormText name=\"email\" label=\"Email\" />\n </ProForm>",
@@ -445,46 +379,40 @@
445
379
  "source": "readme",
446
380
  "compilable": true
447
381
  },
448
- "28dcbb40d407a6c3c48dcdb51a06d11466a26d831324f8c583ab6b877bc5eb7d": {
449
- "title": "Vertical Layout",
450
- "code": "<Space direction={SPACE_DIRECTION.vertical} size={SPACE_SIZE.large}>\n <div>Top</div>\n <div>Bottom</div>\n</Space>",
382
+ "28a4918e2bb83aaa273cf3846c84c67dca51a5280decbef71e82f997dda9baac": {
383
+ "title": "Usage",
384
+ "code": "<ResizeObserver\n onResize={(size, element) => {\n console.log(size.width, element);\n }}\n>\n <div>Measured content</div>\n</ResizeObserver>",
451
385
  "source": "readme",
452
386
  "compilable": true
453
387
  },
454
- "2a00b4740e301b8a7ac79f978053cc5d0d9e28704a3496719ce12b34448697d2": {
455
- "title": "Import",
456
- "code": "import { Accordion } from '@1money/components-ui';\n// or\nimport { Accordion } from '@1money/components-ui/Accordion';",
388
+ "28dcbb40d407a6c3c48dcdb51a06d11466a26d831324f8c583ab6b877bc5eb7d": {
389
+ "title": "Vertical Layout",
390
+ "code": "<Space direction={SPACE_DIRECTION.vertical} size={SPACE_SIZE.large}>\n <div>Top</div>\n <div>Bottom</div>\n</Space>",
457
391
  "source": "readme",
458
392
  "compilable": true
459
393
  },
460
- "2ab81b696087edd4949bb8a066c36ceb58197f8a8d1e3ab2f387eb6275fe724e": {
394
+ "29a8d3d4fdc2b1b61574ec8e8a8a2ffb57226781120cdc378f8d179d101a0032": {
461
395
  "title": "Canonical usage",
462
- "code": "import type { VirtualListScrollInfo } from '@1money/component-ui';",
396
+ "code": "import { Tour } from '@1money/components-ui';\n// or\nimport { Tour } from '@1money/components-ui/Tour';",
463
397
  "source": "canonical",
464
398
  "compilable": true
465
399
  },
466
- "2b97ea480bdd9e78ecabd54bc4c254a48c281f6121a50a054418593c9c9d8f5c": {
467
- "title": "Middle Ellipsis",
468
- "code": "<div style={{ ...STORY_LAYOUT_STYLE, maxWidth: 480 }}>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Sender ID</Typography.Label>\n <div style={CONSTRAINED_STYLE}>\n <Typography.Body size=\"md\" ellipsis={{ tooltip: true }} copyable>\n {SENDER_ID}\n </Typography.Body>\n </div>\n </div>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Recipient name</Typography.Label>\n <Typography.Body size=\"md\">Apextech LLC</Typography.Body>\n </div>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Recipient ID</Typography.Label>\n <div style={CONSTRAINED_STYLE}>\n <Typography.Body size=\"md\" ellipsis={{ tooltip: true }} copyable>\n {RECIPIENT_ID}\n </Typography.Body>\n </div>\n </div>\n </div>",
469
- "source": "stories",
470
- "compilable": true
471
- },
472
- "2c58c83426bf77e0fd761deff8e74853f41c3213c0b293c97d142554dca062bc": {
473
- "title": "Canonical usage",
474
- "code": "<ResizeObserver>Label</ResizeObserver>",
475
- "source": "canonical",
400
+ "29e2310b26c2aecedef7a08fdce046f6fada2887312516d227bf0467d9691185": {
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",
476
404
  "compilable": true
477
405
  },
478
- "2cca976a647db275dfb45ce8bb53bc85d304e49c3d91f76e5987d11e95b604c1": {
406
+ "2a00b4740e301b8a7ac79f978053cc5d0d9e28704a3496719ce12b34448697d2": {
479
407
  "title": "Import",
480
- "code": "import { Cell } from '@1money/component-ui';\n// or\nimport { Cell } from '@1money/component-ui/Cell';",
408
+ "code": "import { Accordion } from '@1money/components-ui';\n// or\nimport { Accordion } from '@1money/components-ui/Accordion';",
481
409
  "source": "readme",
482
410
  "compilable": true
483
411
  },
484
- "2d7f3d765471e161eebea75b1e1a3270b8a6b415b29bbead4e0362770a9eef3b": {
485
- "title": "Canonical usage",
486
- "code": "import type { ProFormFieldSetProps } from '@1money/component-ui';",
487
- "source": "canonical",
412
+ "2b97ea480bdd9e78ecabd54bc4c254a48c281f6121a50a054418593c9c9d8f5c": {
413
+ "title": "Middle Ellipsis",
414
+ "code": "<div style={{ ...STORY_LAYOUT_STYLE, maxWidth: 480 }}>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Sender ID</Typography.Label>\n <div style={CONSTRAINED_STYLE}>\n <Typography.Body size=\"md\" ellipsis={{ tooltip: true }} copyable>\n {SENDER_ID}\n </Typography.Body>\n </div>\n </div>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Recipient name</Typography.Label>\n <Typography.Body size=\"md\">Apextech LLC</Typography.Body>\n </div>\n <div style={ROW_STYLE}>\n <Typography.Label size=\"md\" color=\"default-secondary\">Recipient ID</Typography.Label>\n <div style={CONSTRAINED_STYLE}>\n <Typography.Body size=\"md\" ellipsis={{ tooltip: true }} copyable>\n {RECIPIENT_ID}\n </Typography.Body>\n </div>\n </div>\n </div>",
415
+ "source": "stories",
488
416
  "compilable": true
489
417
  },
490
418
  "2db7958f91085606312d3dea5983e6a87724bdaaaeb755893810034b5be459a2": {
@@ -493,24 +421,12 @@
493
421
  "source": "readme",
494
422
  "compilable": true
495
423
  },
496
- "2e38eb2bbde2587fea5af46f3c34d8b7b9a3bc7951fa044bcd363a4ce3812a47": {
497
- "title": "Canonical usage",
498
- "code": "import type { StepProps } from '@1money/component-ui';",
499
- "source": "canonical",
500
- "compilable": true
501
- },
502
424
  "2f65549d43490603034b9f30beadb2efd27c2c0f454242a54f434f213d051491": {
503
425
  "title": "Omit Nil",
504
426
  "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>",
505
427
  "source": "stories",
506
428
  "compilable": false
507
429
  },
508
- "2f6710b655bb5d7c4adb4aa08f77909913d90ba3a32d1fea39ab8604ddc2f8f5": {
509
- "title": "Canonical usage",
510
- "code": "import type { SelectSingleValue } from '@1money/component-ui';",
511
- "source": "canonical",
512
- "compilable": true
513
- },
514
430
  "31dd5c9e926c0deeefba1a4028848b13ee819e42fbdf5ba0438329ffa1907e66": {
515
431
  "title": "Width Presets",
516
432
  "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>",
@@ -529,10 +445,10 @@
529
445
  "source": "stories",
530
446
  "compilable": true
531
447
  },
532
- "331af5c2212fd55974bf970db262267197fa7ead2695ac5e5ad86d13f1a999d5": {
533
- "title": "Canonical usage",
534
- "code": "import type { ResizeObserverOnResize } from '@1money/component-ui';",
535
- "source": "canonical",
448
+ "341d33a3398e2a18e0d6bd76c9602a448d9a775132d0ccb1e3591038cec0fa5c": {
449
+ "title": "Usage",
450
+ "code": "<Dialog\n open={open}\n title=\"Confirm transfer\"\n description=\"Review the details before submitting.\"\n onCancel={() => setOpen(false)}\n onOk={handleSubmit}\n/>",
451
+ "source": "readme",
536
452
  "compilable": true
537
453
  },
538
454
  "34536f5f5abc20bc7255387d21700a4725ea8d6f9806b09cb947375f7afde43c": {
@@ -577,6 +493,12 @@
577
493
  "source": "readme",
578
494
  "compilable": true
579
495
  },
496
+ "36b6b20f42395f39098061f501edd80895fcbc554523f70a876a7e3a2be50f6f": {
497
+ "title": "Import",
498
+ "code": "import { Tour } from '@1money/components-ui';\n// or\nimport { Tour } from '@1money/components-ui/Tour';",
499
+ "source": "readme",
500
+ "compilable": true
501
+ },
580
502
  "36cbaf7aab4a01a5e1c94430f29c9f8881ec84e60dac84ca5c2e32cb25e14ae5": {
581
503
  "title": "Usage",
582
504
  "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/>",
@@ -589,12 +511,6 @@
589
511
  "source": "readme",
590
512
  "compilable": true
591
513
  },
592
- "371e24636c998f789b2003ee3f8097874e1ad9274d29b7fc059202d33c4ed68e": {
593
- "title": "Preferred Usage",
594
- "code": "// Static JSX: preferred\n<CrossIcon size={16} />\n<LogoWithWords width={132} height={24} logoColor=\"#073387\" wordColor=\"#131313\" />\n\n// Dynamic runtime dispatch\n<Icon name=\"cross\" size={16} />\n\n// Backward-compatible wrapper\n<Icons name=\"depositFiatCrypto\" size={16} />",
595
- "source": "readme",
596
- "compilable": true
597
- },
598
514
  "3836a143b0bc0c3df0917e6d83e399c700a858b3e0cf7703a8417090067c3088": {
599
515
  "title": "Default",
600
516
  "code": "<Switch {...args} label=\"Label\" />",
@@ -619,10 +535,10 @@
619
535
  "source": "stories",
620
536
  "compilable": true
621
537
  },
622
- "3b0609d66de90d74188d6f4ab20aa01fa0063b08806f15b90448a4dd7ff49fe2": {
623
- "title": "Canonical usage",
624
- "code": "import type { FormInstance } from '@1money/component-ui';",
625
- "source": "canonical",
538
+ "398c56e66e36d3ab3b61b257b2bc0522eb642f46f8bcb939b5c59ff543449dc7": {
539
+ "title": "Usage",
540
+ "code": "<Input label=\"Amount\" placeholder=\"Value\" />\n\n<Input.Password label=\"Password\" />\n\n<Input.Search label=\"Search\" onSearch={(value) => console.log(value)} />\n\n<Input.TextArea label=\"Memo\" rows={4} />\n\n<Input.OTP length={6} />\n\n<Input.Trade currencySymbol=\"$\" currencyUnit=\"USD\" />\n\n<Input.Amount currencyLabel=\"USDC\" />\n\n<Input.Mask mask=\"999-99-9999\" />",
541
+ "source": "readme",
626
542
  "compilable": true
627
543
  },
628
544
  "3b416ca019f27f4a1d80ae5a1bbafa8b6b9d196ebbdbf9df77bbd8d7c4118934": {
@@ -637,6 +553,12 @@
637
553
  "source": "stories",
638
554
  "compilable": false
639
555
  },
556
+ "3c554437f7534e672da53194827c88c647b2091520a4db816184c1ffdc84c59a": {
557
+ "title": "Canonical usage",
558
+ "code": "import type { IconWrapperProps } from '@1money/component-ui';",
559
+ "source": "canonical",
560
+ "compilable": true
561
+ },
640
562
  "3c5bbd0e70d50121131f70e69229d2badab6a0c4ce56c9343804fac5db4cc85d": {
641
563
  "title": "Cell Centered",
642
564
  "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>",
@@ -661,12 +583,6 @@
661
583
  "source": "canonical",
662
584
  "compilable": true
663
585
  },
664
- "3fed6ca7982c867ccd1b2b58023950f8365462d92b44c75722551d4d3127c8bb": {
665
- "title": "Canonical usage",
666
- "code": "import type { DialogSize } from '@1money/component-ui';",
667
- "source": "canonical",
668
- "compilable": true
669
- },
670
586
  "40a22244886d5bdbd3ed0c2eeccc5859897c73c7f35ce9d0b27a7a9547709f28": {
671
587
  "title": "Import",
672
588
  "code": "import { Tag } from '@1money/components-ui';\n// or\nimport { Tag } from '@1money/components-ui/Tag';",
@@ -679,24 +595,12 @@
679
595
  "source": "stories",
680
596
  "compilable": true
681
597
  },
682
- "4186c0d2b90dd549d7f6497e4b7fb0b101654305b0e3e128cd0f1d6ca78bfb2a": {
683
- "title": "Canonical usage",
684
- "code": "import type { ValidateStatus } from '@1money/component-ui';",
685
- "source": "canonical",
686
- "compilable": true
687
- },
688
598
  "41c91bf415fa7b2b7fcfbba49136e2254bcf778a33e916d12446e042629a0943": {
689
599
  "title": "Canonical usage",
690
600
  "code": "import { Switch } from '@1money/components-ui';\n// or\nimport { Switch } from '@1money/components-ui/Switch';",
691
601
  "source": "canonical",
692
602
  "compilable": true
693
603
  },
694
- "421c6af797703e115fd55a10242e5ac801283d4eb80d5409fc997c7d9c730393": {
695
- "title": "Canonical usage",
696
- "code": "import type { ProFormGroupProps } from '@1money/component-ui';",
697
- "source": "canonical",
698
- "compilable": true
699
- },
700
604
  "42d09791892e2a4de1863d920b4d11b5c83b30770a9775f63645e3291eb98416": {
701
605
  "title": "Custom Submitter",
702
606
  "code": "<ProForm\n {...args}\n submitter={{\n submitText: 'Save Changes',\n resetText: 'Discard',\n render: (props, dom) => (\n <div style={{ display: 'flex', gap: 8, justifyContent: 'center' }}>\n {dom}\n </div>\n ),\n }}\n >\n <ProFormText name=\"title\" label=\"Title\" rules={[{ required: true }]} />\n <ProFormTextArea name=\"content\" label=\"Content\" />\n </ProForm>",
@@ -709,18 +613,6 @@
709
613
  "source": "canonical",
710
614
  "compilable": true
711
615
  },
712
- "4382388bcd674e464f60d818049720fa134a38574be7255cff59425e9d027d63": {
713
- "title": "Canonical usage",
714
- "code": "import type { FormSize } from '@1money/component-ui';",
715
- "source": "canonical",
716
- "compilable": true
717
- },
718
- "4389223d4dd418331dd628d1bb657512018df7b6124067044b1b577c26853c32": {
719
- "title": "Canonical usage",
720
- "code": "<Dialog />",
721
- "source": "canonical",
722
- "compilable": true
723
- },
724
616
  "43cb69594b17d8f71ddb9912efb8eea26ee52cf45990ef9f7a2212c0694b0811": {
725
617
  "title": "Dashed",
726
618
  "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>",
@@ -733,12 +625,6 @@
733
625
  "source": "canonical",
734
626
  "compilable": true
735
627
  },
736
- "43e86173eaa57a1ad76a23b43ba3b90b40e118c2d4885e13b759adc68c95f5a8": {
737
- "title": "Canonical usage",
738
- "code": "import type { ProFormFormInstance } from '@1money/component-ui';",
739
- "source": "canonical",
740
- "compilable": true
741
- },
742
628
  "44c4b25e35236d2eaf4d26824badf330c6495194077c815a662b000591be91be": {
743
629
  "title": "Multiple Collapsed",
744
630
  "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 }",
@@ -757,58 +643,34 @@
757
643
  "source": "stories",
758
644
  "compilable": false
759
645
  },
760
- "459fb4fed33834539f12047eb8791c8c459888b43df3cfa51c852237d244b1b1": {
761
- "title": "Canonical usage",
762
- "code": "createProFormField(config);",
763
- "source": "canonical",
764
- "compilable": true
765
- },
766
646
  "466a2cf763ac1374c62583da68c81d15d8aece066ae06417d6a4356855606954": {
767
647
  "title": "With Badges",
768
648
  "code": "<Tabs\n items={[\n { key: 'tab1', label: 'Overview', badge: 5 },\n { key: 'tab2', label: 'Transactions', badge: 12 },\n { key: 'tab3', label: 'Analytics' },\n { key: 'tab4', label: 'Settings', badge: 3 },\n ]}\n />",
769
649
  "source": "stories",
770
650
  "compilable": true
771
651
  },
772
- "4831602e1843344ccb14281ad853e240d2d5c1c2010be19cf091cacd678e6eda": {
773
- "title": "Canonical usage",
774
- "code": "import type { UsePaginationOptions } from '@1money/component-ui';",
775
- "source": "canonical",
776
- "compilable": true
777
- },
778
652
  "4844dfaf4dff931b3d5b14135a788fc632daa05669c14237139b0a15e6d1a793": {
779
653
  "title": "Click Trigger",
780
654
  "code": "<div style={ANCHOR_WRAPPER_STYLE}>\n <button id=\"tooltip-click\">Click me</button>\n <Tooltip\n {...args}\n anchorSelect=\"#tooltip-click\"\n openEvents={{ click: true, mouseover: false, mouseenter: false, focus: false }}\n closeEvents={{ click: true, mouseleave: false, mouseout: false, blur: false }}\n />\n </div>",
781
655
  "source": "stories",
782
656
  "compilable": false
783
657
  },
784
- "487a87a540c310c3a95d1656126aa0686d4ce8932394b10ef7be463bd2139b11": {
785
- "title": "Canonical usage",
786
- "code": "import type { FormLayout } from '@1money/component-ui';",
787
- "source": "canonical",
788
- "compilable": true
789
- },
790
658
  "48f6ebde7546d7db844b0cd43bd6e6ec6956746f93c55167fda6a2cd84599a3e": {
791
659
  "title": "No Animation",
792
660
  "code": "<Segment items={DEFAULT_ITEMS} animated={false} />",
793
661
  "source": "stories",
794
662
  "compilable": true
795
663
  },
796
- "4925f0fa31e738cbe6dcf51caa4529687907afbd4c5d75a2b6babee74973dcb6": {
797
- "title": "Canonical usage",
798
- "code": "import type { Rule } from '@1money/component-ui';",
799
- "source": "canonical",
800
- "compilable": true
801
- },
802
664
  "4946413c8eb03c3d0ed457a33ffdb8dfdef55dfe7f8f8440b878a1ae2be1c46a": {
803
665
  "title": "With Default Value",
804
666
  "code": "<Segment defaultValue=\"transactions\" items={DEFAULT_ITEMS} />",
805
667
  "source": "stories",
806
668
  "compilable": true
807
669
  },
808
- "49a2e96ec0947afd6fe798ab777749f04241987e5f6c9364ac5fdff699d8aa31": {
809
- "title": "Canonical usage",
810
- "code": "import type { TriggerProps } from '@1money/component-ui';",
811
- "source": "canonical",
670
+ "49816d6fc0869e92e95bd824c8fbdeda626454b12a4f44f0b0aa6da23976ea1e": {
671
+ "title": "Usage",
672
+ "code": "{/* Basic usage */}\n<Progress percent={40} />\n\n{/* Explicit state */}\n<Progress percent={100} state=\"success\" />\n<Progress percent={60} state=\"error\" feedback=\"Upload failed. Please try again.\" />\n\n{/* White color variant (e.g. on a dark background) */}\n<Progress percent={70} color=\"white\" />\n\n{/* Custom info formatter */}\n<Progress\n percent={55}\n format={(percent) => `${percent} of 100 steps complete`}\n/>\n\n{/* Info row on the right */}\n<Progress percent={30} placement=\"right\" />\n\n{/* Hide info row */}\n<Progress percent={50} showInfo={false} />",
673
+ "source": "readme",
812
674
  "compilable": true
813
675
  },
814
676
  "49ad060bce26c0a2bb20e2d9487869063f8aa30ca5cff68d8bbb108fbeef29a1": {
@@ -817,12 +679,6 @@
817
679
  "source": "readme",
818
680
  "compilable": true
819
681
  },
820
- "49c72f97a10ef34333a88507a7d9e8e5bb582173ce599c9b9a2aae31efedb1e1": {
821
- "title": "Inline Loading",
822
- "code": "<button disabled={loading}>\n {loading ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <Spinner style={{ width: '16px', height: '16px' }} />\n <span>Loading...</span>\n </div>\n ) : (\n 'Submit'\n )}\n</button>",
823
- "source": "readme",
824
- "compilable": true
825
- },
826
682
  "49d5f7314ab1ae951fe87a5f276d65d91c81daf6f489b93cffa522dab5fa7054": {
827
683
  "title": "Sizes",
828
684
  "code": "<div style={{ display: 'flex', gap: 24, alignItems: 'center' }}>\n {LINK_SIZES.map((size) => (\n <Link {...args} key={size} size={size}>\n {size}\n </Link>\n ))}\n </div>",
@@ -841,18 +697,6 @@
841
697
  "source": "stories",
842
698
  "compilable": false
843
699
  },
844
- "4a0586bd3c33f563c7de439b2edc169e9d921c2f9f7fb0c72e411af2d0637fa5": {
845
- "title": "Canonical usage",
846
- "code": "import type { ProFormFieldTransformFn } from '@1money/component-ui';",
847
- "source": "canonical",
848
- "compilable": true
849
- },
850
- "4aa25969f149eda32514cc530fb2b8fceabc54fcbf63b87641b7cfd13f967bda": {
851
- "title": "Canonical usage",
852
- "code": "<ProFormRadioGroup />",
853
- "source": "canonical",
854
- "compilable": true
855
- },
856
700
  "4ad4837cde91f1ebd2cad90d6f82683fd94957192e4b88fa46882aac2330b854": {
857
701
  "title": "Group Collapsible",
858
702
  "code": "<ProForm\n {...args}\n initialValues={{ name: 'Alice', bio: '', theme: 'light' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProForm.Group title=\"Basic Info\" collapsible>\n <ProFormText name=\"name\" label=\"Name\" rules={[{ required: true }]} />\n <ProFormText name=\"bio\" label=\"Bio\" />\n </ProForm.Group>\n <ProForm.Group title=\"Preferences\" collapsible defaultCollapsed>\n <ProFormText name=\"theme\" label=\"Theme\" />\n <ProFormSwitch name=\"notifications\" label=\"Notifications\" />\n </ProForm.Group>\n </ProForm>",
@@ -865,15 +709,21 @@
865
709
  "source": "stories",
866
710
  "compilable": false
867
711
  },
868
- "4bfe9b50aecfd9832aab22cf2c5dc3bea89aeaba7934e60fe4e7a9d8c3ce823b": {
869
- "title": "Canonical usage",
870
- "code": "import type { PortalContainer } from '@1money/component-ui';",
871
- "source": "canonical",
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
+ "4d9f3593600e6013d369532a23201039bffa9c7463d467180f93c3e95fc48c1b": {
719
+ "title": "Inline Button Loading",
720
+ "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
+ "source": "readme",
872
722
  "compilable": true
873
723
  },
874
- "4db81691f06b6d355c08291c79ad9154135a7851bc1653cf092a6f6ff1766a2a": {
724
+ "4e47a5538f745fc8cf26d22a91bc3e95fda46600baf715b49e208804b00e3049": {
875
725
  "title": "Canonical usage",
876
- "code": "import type { TriggerRole } from '@1money/component-ui';",
726
+ "code": "import { Table, VirtualTable } from '@1money/components-ui';\n// or\nimport { Table, VirtualTable } from '@1money/components-ui/Table';",
877
727
  "source": "canonical",
878
728
  "compilable": true
879
729
  },
@@ -883,21 +733,15 @@
883
733
  "source": "stories",
884
734
  "compilable": false
885
735
  },
886
- "50164c21b0b9ce491a97b9f31ca0eab4a51ce38d2496720d37242f774f78df20": {
887
- "title": "Canonical usage",
888
- "code": "import { Slider } from '@1money/components-ui';\n// or\nimport { Slider } from '@1money/components-ui/Slider';",
889
- "source": "canonical",
890
- "compilable": true
891
- },
892
- "528ab6afb943c07fe6e0c68fe3bda683e292529a705bd2d968f4c5dfed7e3a83": {
893
- "title": "Canonical usage",
894
- "code": "import type { PaginationControlItem } from '@1money/component-ui';",
895
- "source": "canonical",
736
+ "4f5fdd8a79c7852bdaed287804732ad6fa022ac45f139a22e6e5b025cba9e945": {
737
+ "title": "Basic Usage",
738
+ "code": "// Basic icon (default 24px, inherits currentColor)\n<Icons name=\"arrowRight\" />\n\n// Custom size and color\n<Icons name=\"settings\" size={32} color=\"#3D73F2\" />\n\n// With explicit width/height\n<Icons name=\"search\" width={20} height={20} />\n\n// Icon with hover container\n<IconHover>\n <Icons name=\"more\" />\n</IconHover>\n\n// Disabled hover container\n<IconHover disabled>\n <Icons name=\"settings\" />\n</IconHover>\n\n// Logo\n<Icons name=\"logo\" size={40} />",
739
+ "source": "readme",
896
740
  "compilable": true
897
741
  },
898
- "52b3c46129e939dcab127c033e5069b7027eeec39a253fe8741b74807b6de599": {
742
+ "50164c21b0b9ce491a97b9f31ca0eab4a51ce38d2496720d37242f774f78df20": {
899
743
  "title": "Canonical usage",
900
- "code": "<ProFormPassword />",
744
+ "code": "import { Slider } from '@1money/components-ui';\n// or\nimport { Slider } from '@1money/components-ui/Slider';",
901
745
  "source": "canonical",
902
746
  "compilable": true
903
747
  },
@@ -913,9 +757,9 @@
913
757
  "source": "readme",
914
758
  "compilable": true
915
759
  },
916
- "546ef2d886471f0e410921f3ca3fa1ec2db5d4bed5ff1902bc190d0d87c75054": {
760
+ "5366737d28dd367f234fcb03fbbe9b966ae9baf9f4d4d05ad628e2c16c5a4e3c": {
917
761
  "title": "Canonical usage",
918
- "code": "<ProFormDatePicker />",
762
+ "code": "<IconWrapper />",
919
763
  "source": "canonical",
920
764
  "compilable": true
921
765
  },
@@ -943,12 +787,6 @@
943
787
  "source": "stories",
944
788
  "compilable": false
945
789
  },
946
- "57555cab23c1ab39cfa023e9e3f6cec2998ddc9537a47354aa1cf1fd14488461": {
947
- "title": "Canonical usage",
948
- "code": "import type { ProgressFormatContext } from '@1money/component-ui';",
949
- "source": "canonical",
950
- "compilable": true
951
- },
952
790
  "57e5a7e81ccfa1d876cf40e95b6165f9d630fe343bc29dbb15c3fe546e689e62": {
953
791
  "title": "Default",
954
792
  "code": "<div style={wrapperStyle}>\n <Step {...args} />\n </div>",
@@ -961,16 +799,10 @@
961
799
  "source": "stories",
962
800
  "compilable": false
963
801
  },
964
- "5a95c3048a0d4147931cea1f357e39f808578b8e0f072baa127124f6004cef1d": {
965
- "title": "Canonical usage",
966
- "code": "<DialogForm />",
967
- "source": "canonical",
968
- "compilable": true
969
- },
970
- "5a9b5ddd9a26199701d3d3f2307a6ad3b964f66d5fdbfd30efdbbf8aba0c2c80": {
971
- "title": "Canonical usage",
972
- "code": "<ProFormSlider />",
973
- "source": "canonical",
802
+ "59a4bace5950d3f3aaef19cc61af7ddab1440a4220c81a0f60b0276728d5ab88": {
803
+ "title": "Usage",
804
+ "code": "<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>",
805
+ "source": "readme",
974
806
  "compilable": true
975
807
  },
976
808
  "5b6b616e8d95d382632b332591de2af84de98f77720ee5b0628d3a44feff076a": {
@@ -979,18 +811,18 @@
979
811
  "source": "stories",
980
812
  "compilable": false
981
813
  },
982
- "5ba789cfffb9110e9a147117959a6e59585384a46fa350d42dedc8e0857f1821": {
983
- "title": "Canonical usage",
984
- "code": "<ProFormUpload />",
985
- "source": "canonical",
986
- "compilable": true
987
- },
988
814
  "5bbda57b2d06dfefaed853ba5ad655bb306fd8ecfbc92a6a96dee1deffc1af2f": {
989
815
  "title": "With Content",
990
816
  "code": "<Tabs\n defaultActiveKey=\"tab1\"\n items={[\n { key: 'tab1', label: 'Overview', children: <div>Overview content goes here</div> },\n { key: 'tab2', label: 'Transactions', children: <div>Transactions content goes here</div> },\n { key: 'tab3', label: 'Analytics', children: <div>Analytics content goes here</div> },\n ]}\n />",
991
817
  "source": "stories",
992
818
  "compilable": true
993
819
  },
820
+ "5c2d27af4dbbbbbab8df84b3717712bc8ef7522b3f93eb8d20540a1db723e8e9": {
821
+ "title": "Import",
822
+ "code": "import { VirtualList } from '@1money/components-ui';\n// or\nimport { VirtualList } from '@1money/components-ui/VirtualList';",
823
+ "source": "readme",
824
+ "compilable": true
825
+ },
994
826
  "5c8961675725144291340a7560c3c798389ce24d786783dedd6ffcac93193a0d": {
995
827
  "title": "Batch Resize",
996
828
  "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 }",
@@ -1009,12 +841,6 @@
1009
841
  "source": "stories",
1010
842
  "compilable": true
1011
843
  },
1012
- "5eab08235fada880deb893a45f8e307f765861578cd95522dc38da0053be3353": {
1013
- "title": "Canonical usage",
1014
- "code": "import type { PaginationEllipsisItem } from '@1money/component-ui';",
1015
- "source": "canonical",
1016
- "compilable": true
1017
- },
1018
844
  "5f3b6d99f2f042d7c984a9f73cb179167b6c80cfbd3c106d1c96ecc86ba1a888": {
1019
845
  "title": "Cell States",
1020
846
  "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>",
@@ -1033,18 +859,6 @@
1033
859
  "source": "readme",
1034
860
  "compilable": true
1035
861
  },
1036
- "5fe4eaf6d6cc1aae1c57021991c5791efa10197d77e9fee4d8d3ad0301ed09b2": {
1037
- "title": "Canonical usage",
1038
- "code": "const result = usePagination(options);",
1039
- "source": "canonical",
1040
- "compilable": true
1041
- },
1042
- "600b7c61c09e62351c4da01ba0451212e347f76292d57d62d472809568ab33f1": {
1043
- "title": "Canonical usage",
1044
- "code": "const result = useResizeObserver(enabled, getTarget);",
1045
- "source": "canonical",
1046
- "compilable": true
1047
- },
1048
862
  "605adda93170929ef763469422e3708f248624774e5274b6053c7aa0c53b9680": {
1049
863
  "title": "Action And Close",
1050
864
  "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 />",
@@ -1081,8 +895,14 @@
1081
895
  "source": "stories",
1082
896
  "compilable": true
1083
897
  },
1084
- "66d442fc9388c014800dbcc672d9dae750c1529fd05f0b26e8f4dbf091abd20b": {
1085
- "title": "Visual Spec",
898
+ "65c3343037038d0c10d4369de3281ebadf175b42ba5afe9bf9ae5c490d587003": {
899
+ "title": "Import",
900
+ "code": "import { Pagination, usePagination } from '@1money/components-ui';\n// or\nimport { Pagination, usePagination } from '@1money/components-ui/Pagination';",
901
+ "source": "readme",
902
+ "compilable": true
903
+ },
904
+ "66d442fc9388c014800dbcc672d9dae750c1529fd05f0b26e8f4dbf091abd20b": {
905
+ "title": "Visual Spec",
1086
906
  "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>",
1087
907
  "source": "stories",
1088
908
  "compilable": true
@@ -1105,6 +925,12 @@
1105
925
  "source": "stories",
1106
926
  "compilable": false
1107
927
  },
928
+ "6c0a39263e45288c6f9a62e5fb3169389da1c8d69bd0092467335b58cf40b2ab": {
929
+ "title": "Canonical usage",
930
+ "code": "import { Link } from '@1money/components-ui';\n// or\nimport { Link } from '@1money/components-ui/Link';",
931
+ "source": "canonical",
932
+ "compilable": true
933
+ },
1108
934
  "6c73541844cb6bb287f5a4f0c9d25be0cbdd0d09518b1abd0c49b8d738ddfaa8": {
1109
935
  "title": "Import",
1110
936
  "code": "import { Spinner } from '@1money/components-ui';\n// or\nimport { Spinner } from '@1money/components-ui/Spinner';",
@@ -1117,6 +943,24 @@
1117
943
  "source": "readme",
1118
944
  "compilable": true
1119
945
  },
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
+ },
1120
964
  "6f2b7da00479a6033fdaca36f0646a924c61cbf09cd0e07da6948a884af98a61": {
1121
965
  "title": "Dependency",
1122
966
  "code": "<ProForm\n {...args}\n initialValues={{ hasAccount: false, accountType: '' }}\n >\n <ProFormSwitch name=\"hasAccount\" label=\"Has Account\" />\n <ProFormDependency name={['hasAccount']}>\n {({ hasAccount }) =>\n hasAccount ? (\n <>\n <ProFormText\n name=\"accountId\"\n label=\"Account ID\"\n rules={[{ required: true }]}\n />\n <ProFormText name=\"accountName\" label=\"Account Name\" />\n </>\n ) : null\n }\n </ProFormDependency>\n </ProForm>",
@@ -1129,10 +973,10 @@
1129
973
  "source": "stories",
1130
974
  "compilable": true
1131
975
  },
1132
- "711c445955f338d909c2ca767156df860542cbd4c4a2dd6f4962abe54d6905fe": {
1133
- "title": "Canonical usage",
1134
- "code": "import type { ProFormListAction } from '@1money/component-ui';",
1135
- "source": "canonical",
976
+ "71d241ed07b5a8c1aaa432bcff2fb9f72af207e1c7f5aa4023ac2359f926be9e": {
977
+ "title": "Usage",
978
+ "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>",
979
+ "source": "readme",
1136
980
  "compilable": true
1137
981
  },
1138
982
  "71f7aeb8fd7bb546bc7d562a717683681d8eccf7f2beeee86e3196121d6656f1": {
@@ -1159,6 +1003,12 @@
1159
1003
  "source": "readme",
1160
1004
  "compilable": true
1161
1005
  },
1006
+ "74d07705c09b8ab5e12d5fb5cdcae6d3bbc2c3517d298289faa91e00deb2ff9a": {
1007
+ "title": "With file list",
1008
+ "code": "const [files, setFiles] = useState<File[]>([]);\n\n<Upload\n label=\"Attachments\"\n onSelect={(fileList) => {\n if (fileList) setFiles(Array.from(fileList));\n }}\n>\n {files.map((file) => (\n <UploadFileBar\n key={file.name}\n fileName={file.name}\n onRemove={() => setFiles((prev) => prev.filter((f) => f !== file))}\n />\n ))}\n</Upload>",
1009
+ "source": "readme",
1010
+ "compilable": true
1011
+ },
1162
1012
  "74f28ec19da10ee7a3cecb129f444ca1e9b9bfa6a44bda5422d89c70a079ddc3": {
1163
1013
  "title": "Validation",
1164
1014
  "code": "<ProForm\n {...args}\n initialValues={{}}\n onFinish={(values) => alert('Success: ' + JSON.stringify(values))}\n >\n <ProFormText\n name=\"username\"\n label=\"Username\"\n rules={[\n { required: true, message: 'Username is required' },\n { min: 3, message: 'At least 3 characters' },\n { max: 20, message: 'At most 20 characters' },\n ]}\n />\n <ProFormText\n name=\"email\"\n label=\"Email\"\n rules={[\n { required: true, message: 'Email is required' },\n { pattern: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/, message: 'Invalid email' },\n ]}\n />\n <ProFormPassword\n name=\"password\"\n label=\"Password\"\n rules={[\n { required: true },\n { min: 8, message: 'At least 8 characters' },\n ]}\n />\n <ProFormCheckbox\n name=\"terms\"\n label=\"I accept the terms\"\n rules={[\n {\n validator: (value) => {\n if (!value) return 'You must accept the terms';\n return true;\n },\n },\n ]}\n />\n </ProForm>",
@@ -1189,34 +1039,16 @@
1189
1039
  "source": "readme",
1190
1040
  "compilable": true
1191
1041
  },
1192
- "77b3bac4d9e36462c300020fa400a7cfe5bc7aa77bd896162f48c5d77a0ada23": {
1193
- "title": "Canonical usage",
1194
- "code": "import type { DrawerPlacement } from '@1money/component-ui';",
1195
- "source": "canonical",
1196
- "compilable": true
1197
- },
1198
- "784dd70341f79c53f5d9474c553dbaa803f65c317904a95d6b511fd57dcff804": {
1199
- "title": "Canonical usage",
1200
- "code": "<ProFormGroup />",
1201
- "source": "canonical",
1202
- "compilable": true
1203
- },
1204
1042
  "7880909af758a291affc6ba2a56af087c012f00945684528454d55e9faffbb53": {
1205
1043
  "title": "Sidebar Content Layout",
1206
1044
  "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>",
1207
1045
  "source": "stories",
1208
1046
  "compilable": true
1209
1047
  },
1210
- "799a697a88c95889b4c090d62789d89c9f7e92453d3a048ccb28e552fbe17b5b": {
1211
- "title": "Canonical usage",
1212
- "code": "import type { ProFormContextValue } from '@1money/component-ui';",
1213
- "source": "canonical",
1214
- "compilable": true
1215
- },
1216
- "79d6736104fbd2a0cdb0081045a650f31fb2cdc051f7170c185c73b5a70c2bf0": {
1217
- "title": "Canonical usage",
1218
- "code": "import type { TriggerAction } from '@1money/component-ui';",
1219
- "source": "canonical",
1048
+ "79558ccf329b5a0a64542b9d04634e06f6c86aacf2756dd972da85a7a6d9dda7": {
1049
+ "title": "Usage",
1050
+ "code": "<Pagination\n total={125}\n pageSize={10}\n defaultCurrent={1}\n onChange={(page, pageSize) => console.log(page, pageSize)}\n/>",
1051
+ "source": "readme",
1220
1052
  "compilable": true
1221
1053
  },
1222
1054
  "7a3a92935f0b863855900ffe5295cb58ad8e6a2f83cdf8ae82ea0a93ff8b829b": {
@@ -1225,12 +1057,6 @@
1225
1057
  "source": "stories",
1226
1058
  "compilable": false
1227
1059
  },
1228
- "7ae894e8181a0534204e98888ca38826cde3925bb26787a732a0829c181669a3": {
1229
- "title": "Canonical usage",
1230
- "code": "import type { TourStep } from '@1money/component-ui';",
1231
- "source": "canonical",
1232
- "compilable": true
1233
- },
1234
1060
  "7aff0837c66402bc8bfd244cefc96957343db1dc910f9d19c3fd5a4d38936448": {
1235
1061
  "title": "Horizontal Scroll",
1236
1062
  "code": "<div style={{ ...containerStyle, width: 400 }}>\n <VirtualList\n data={data1000}\n height={300}\n itemHeight={30}\n itemKey=\"id\"\n scrollWidth={800}\n >\n {(item: Item, _index, { style, offsetX }) => (\n <div\n style={{\n ...itemStyle(30),\n ...style,\n transform: `translateX(-${offsetX}px)`,\n width: 800,\n }}\n >\n <span>Item {item.id}</span>\n <span style={{ color: '#999', fontSize: 12 }}>Wide content here →</span>\n <span style={{ marginLeft: 200 }}>End</span>\n </div>\n )}\n </VirtualList>\n </div>",
@@ -1285,16 +1111,22 @@
1285
1111
  "source": "stories",
1286
1112
  "compilable": false
1287
1113
  },
1114
+ "7fa92e052831cae87c3f0b935466ebe2f827bd696b626583810266f584e63167": {
1115
+ "title": "Page Loading Overlay",
1116
+ "code": "const PageLoader = ({ isLoading }: { isLoading: boolean }) => {\n if (!isLoading) return null;\n\n return (\n <div className=\"page-loader-overlay\">\n <Spinner size={48} />\n </div>\n );\n};",
1117
+ "source": "readme",
1118
+ "compilable": true
1119
+ },
1288
1120
  "7fcff23beb3f8649dd3c8e6b827035a4838bd0ceb71aec2a6debfbd16fc7d1f8": {
1289
1121
  "title": "Basic",
1290
1122
  "code": "<DrawerLauncher {...args} />",
1291
1123
  "source": "stories",
1292
1124
  "compilable": false
1293
1125
  },
1294
- "802d7a93824c4a4841c52f2688f4d5b201b3c4f56435625c03ecafb2df0e8db6": {
1295
- "title": "Canonical usage",
1296
- "code": "import type { SelectStatus } from '@1money/component-ui';",
1297
- "source": "canonical",
1126
+ "8129a087395157c8e93b214d9f280f542658a37d2d8aa6ea5e2561bf7d128925": {
1127
+ "title": "Navigation (sidebar with collapse)",
1128
+ "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);",
1129
+ "source": "readme",
1298
1130
  "compilable": true
1299
1131
  },
1300
1132
  "81fa795ca4a1acae4ec31efda3c21167df7e3f24ad1461056a90469ff70b835a": {
@@ -1303,12 +1135,6 @@
1303
1135
  "source": "stories",
1304
1136
  "compilable": false
1305
1137
  },
1306
- "8217407dd420ce682fb91f9e1bba564e90bed8d67c39533ac62c057b69593987": {
1307
- "title": "Usage",
1308
- "code": "<Input label=\"Amount\" placeholder=\"Value\" />\n\n<Input.Password label=\"Password\" />\n\n<Input.Search label=\"Search\" onSearch={(value) => console.log(value)} />\n\n<Input.TextArea label=\"Memo\" rows={4} />\n\n<Input.OTP length={6} />",
1309
- "source": "readme",
1310
- "compilable": true
1311
- },
1312
1138
  "829d1add076b11f67d3d30e761c7861b952e35bb1ae8a1c71c99a97bbf5318a9": {
1313
1139
  "title": "All States",
1314
1140
  "code": "<div style={previewStackStyle}>\n <Cell {...args}>Authenticator app</Cell>\n <Cell {...args} className=\"om-component-ui-cell-hovered\">\n Authenticator app\n </Cell>\n <Cell {...args} active>\n Authenticator app\n </Cell>\n <Cell {...args} disabled>\n Authenticator app\n </Cell>\n </div>",
@@ -1339,15 +1165,15 @@
1339
1165
  "source": "readme",
1340
1166
  "compilable": true
1341
1167
  },
1342
- "83a7f14ec7ad74308dcc340c21d3a1bd3bfae1a54793a236229c65619188361f": {
1343
- "title": "Canonical usage",
1344
- "code": "import { Input } from '@1money/components-ui';\n// or\nimport { Input } from '@1money/components-ui/Input';",
1345
- "source": "canonical",
1168
+ "8388c821f8c88d4cf800ec2b679c5ace3c46d929a152100c4d4f4eb52400039d": {
1169
+ "title": "Import",
1170
+ "code": "import { Icons, IconWrapper, IconHover } from '@1money/components-ui';\n// or\nimport { Icons, IconWrapper, IconHover } from '@1money/components-ui/Icons';\n\n// Type imports\nimport type { IconName, SortIconStatus } from '@1money/components-ui';",
1171
+ "source": "readme",
1346
1172
  "compilable": true
1347
1173
  },
1348
- "83f9c4b31401922ddc84d60264badd258d516373ccfc2b81813bf57f5c7a1e5a": {
1174
+ "83a7f14ec7ad74308dcc340c21d3a1bd3bfae1a54793a236229c65619188361f": {
1349
1175
  "title": "Canonical usage",
1350
- "code": "<ProFormFieldSet />",
1176
+ "code": "import { Input } from '@1money/components-ui';\n// or\nimport { Input } from '@1money/components-ui/Input';",
1351
1177
  "source": "canonical",
1352
1178
  "compilable": true
1353
1179
  },
@@ -1363,12 +1189,6 @@
1363
1189
  "source": "readme",
1364
1190
  "compilable": true
1365
1191
  },
1366
- "85bd84178bbfcd56c92db6d690a33530c91f2485e3d9d27441e33fdf838e377f": {
1367
- "title": "Canonical usage",
1368
- "code": "<ProFormList name=\"name\" />",
1369
- "source": "canonical",
1370
- "compilable": true
1371
- },
1372
1192
  "8635e5203dcc0ffc85bde3edc3cafc477676635bb31ab8c71a82f13a90c00b5d": {
1373
1193
  "title": "Error",
1374
1194
  "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>",
@@ -1381,36 +1201,12 @@
1381
1201
  "source": "canonical",
1382
1202
  "compilable": true
1383
1203
  },
1384
- "87119f77a8e04ec0f07dec55f2ef7985b167400772592d70172ee644167c1ebe": {
1385
- "title": "Canonical usage",
1386
- "code": "<ProFormSwitch />",
1387
- "source": "canonical",
1388
- "compilable": true
1389
- },
1390
1204
  "87b1990f73c96b7555165d59c2646f36d1db7d9f27712298b04b46ac63020d03": {
1391
1205
  "title": "Controlled",
1392
1206
  "code": "{\n const [open, setOpen] = useState(false);\n\n return (\n <div style={POPCONFIRM_STORY_STYLE.controlledWrapper}>\n <Popconfirm\n {...args}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n args.onOpenChange?.(nextOpen);\n }}\n onCancel={(event, context) => {\n args.onCancel?.(event, context);\n setOpen(false);\n }}\n onConfirm={(event, context) => {\n args.onConfirm?.(event, context);\n setOpen(false);\n }}\n >\n <Button>{POPCONFIRM_DEMO_COPY.controlledTriggerText}</Button>\n </Popconfirm>\n <Button\n size={BUTTON_SIZE.small}\n color={BUTTON_COLOR.grey}\n onClick={() => setOpen((prev) => !prev)}\n >\n {POPCONFIRM_DEMO_COPY.toggleText}: {open\n ? POPCONFIRM_DEMO_COPY.openStateText\n : POPCONFIRM_DEMO_COPY.closedStateText}\n </Button>\n </div>\n );\n }",
1393
1207
  "source": "stories",
1394
1208
  "compilable": false
1395
1209
  },
1396
- "87dd752d00210f310d98413fe703cdc2d1dd610bd62efc974185675ea4f82d78": {
1397
- "title": "Canonical usage",
1398
- "code": "import type { DrawerFormProps } from '@1money/component-ui';",
1399
- "source": "canonical",
1400
- "compilable": true
1401
- },
1402
- "87df6d0f746b9be426eb490a25c877d56ac0252bcbdc0d69fa90260397387d4c": {
1403
- "title": "Canonical usage",
1404
- "code": "import type { DrawerProps } from '@1money/component-ui';",
1405
- "source": "canonical",
1406
- "compilable": true
1407
- },
1408
- "88336a196e8322974055de2b8c590f70ade08e176b0eac3f8cd6b72800b1b63a": {
1409
- "title": "Canonical usage",
1410
- "code": "import type { ProFormListProps } from '@1money/component-ui';",
1411
- "source": "canonical",
1412
- "compilable": true
1413
- },
1414
1210
  "88a98229b741820a7e0d61f5e3e8e51340ac8d1cc2eb5332be8189a42f43b6ff": {
1415
1211
  "title": "No Animation",
1416
1212
  "code": "<Tabs items={DEFAULT_ITEMS} animated={false} />",
@@ -1483,12 +1279,6 @@
1483
1279
  "source": "stories",
1484
1280
  "compilable": false
1485
1281
  },
1486
- "92884b0ad016e0b0699fc547bc92043837674393d2d601ebe0fc0aa31ced6498": {
1487
- "title": "Canonical usage",
1488
- "code": "<Tour open steps={[]} onClose={() => {}} />",
1489
- "source": "canonical",
1490
- "compilable": true
1491
- },
1492
1282
  "92d700fd2da1bf06587fe4c86118bff9b3b4b42eb3ec5a4c9a790f7ac8950ff6": {
1493
1283
  "title": "Illustrations",
1494
1284
  "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 </div>;\n }",
@@ -1501,12 +1291,6 @@
1501
1291
  "source": "canonical",
1502
1292
  "compilable": true
1503
1293
  },
1504
- "93b1291462e3499dc53cfc59ff3a287c0beb68213b4eb563c88cc64ce2158ba8": {
1505
- "title": "Canonical usage",
1506
- "code": "import type { ProFormColProps } from '@1money/component-ui';",
1507
- "source": "canonical",
1508
- "compilable": true
1509
- },
1510
1294
  "93b8b9acce6685bc6f00a21f857fc812e41fb754d3e946d7576e2543f056f1c0": {
1511
1295
  "title": "Canonical usage",
1512
1296
  "code": "import { Upload, UploadFileBar } from '@1money/components-ui';\n// or\nimport { Upload, UploadFileBar } from '@1money/components-ui/Upload';",
@@ -1555,18 +1339,6 @@
1555
1339
  "source": "stories",
1556
1340
  "compilable": false
1557
1341
  },
1558
- "96f9cfe7a3579cf1c7ff57afe66be83040e23794844ce4d35758cae32e1c7cdb": {
1559
- "title": "Usage",
1560
- "code": "<Navigation\n items={[\n { key: 'home', label: 'Home', icon: 'home', active: true },\n { key: 'portfolio', label: 'Portfolio', icon: 'portfolio' },\n { key: 'transactions', label: 'Transactions', icon: 'transactions', children: [\n { key: 'deposits', label: 'Deposits' },\n { key: 'withdrawals', label: 'Withdrawals' },\n ]},\n ]}\n collapsible\n onCollapse={(collapsed) => console.log(collapsed)}\n/>",
1561
- "source": "readme",
1562
- "compilable": true
1563
- },
1564
- "97683a3f5c99b99a2b9a054edbee9d66d751fcb9ce9361898434af338708d3c9": {
1565
- "title": "Canonical usage",
1566
- "code": "<Step items={[]} />",
1567
- "source": "canonical",
1568
- "compilable": true
1569
- },
1570
1342
  "97c44f1fee50bdc6a2d6a8cb4b7c56c51a2997d2ea78b3647cce7b0c249f6f8c": {
1571
1343
  "title": "Import",
1572
1344
  "code": "import { Tooltip } from '@1money/components-ui';\n// or\nimport { Tooltip } from '@1money/components-ui/Tooltip';",
@@ -1579,6 +1351,12 @@
1579
1351
  "source": "readme",
1580
1352
  "compilable": true
1581
1353
  },
1354
+ "981f2b8a3640a8ce952c89b517bddfce5736957f28636f94c17265c8ed5b575e": {
1355
+ "title": "Usage",
1356
+ "code": "<Tour\n open={open}\n onClose={() => setOpen(false)}\n steps={[\n {\n target: '#dashboard-card',\n placement: 'bottom',\n heading: 'Dashboard',\n body: 'Track your account activity here.',\n },\n ]}\n/>",
1357
+ "source": "readme",
1358
+ "compilable": true
1359
+ },
1582
1360
  "9856c3fcdf26046e1e631b2aeb36d7da1f1f316ddb5a33f17c71a0434111aea0": {
1583
1361
  "title": "Default",
1584
1362
  "code": "{\n const [open, setOpen] = useState(false);\n const uploadRef = useRef<HTMLButtonElement>(null);\n const saveRef = useRef<HTMLButtonElement>(null);\n const moreRef = useRef<HTMLButtonElement>(null);\n\n return (\n <div>\n <Button color=\"primary\" onClick={() => setOpen(true)}>\n Begin Tour\n </Button>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: 48, marginTop: 40, width: 500 }}>\n <div style={{ alignSelf: 'flex-start' }}>\n <Button ref={uploadRef} variant=\"text\">Upload</Button>\n </div>\n <div style={{ alignSelf: 'center' }}>\n <Button ref={saveRef} color=\"primary\">Save</Button>\n </div>\n <div style={{ alignSelf: 'flex-end' }}>\n <Button ref={moreRef} variant=\"text\">···</Button>\n </div>\n </div>\n\n <Tour\n open={open}\n onClose={() => setOpen(false)}\n steps={[\n {\n target: uploadRef,\n placement: 'bottom',\n heading: 'Upload File',\n body: 'Click to upload your files.',\n },\n {\n target: saveRef,\n placement: 'bottom',\n heading: 'Save',\n body: 'Save your changes.',\n },\n {\n target: moreRef,\n placement: 'bottom',\n heading: 'More',\n body: 'Click for more options.',\n },\n ]}\n />\n </div>\n );\n }",
@@ -1603,12 +1381,6 @@
1603
1381
  "source": "readme",
1604
1382
  "compilable": true
1605
1383
  },
1606
- "9a5aa0a4875e686c1a64a1085ed22b25ebf5849ebf8bf0cd0fb6376c887729ab": {
1607
- "title": "Canonical usage",
1608
- "code": "<DrawerForm />",
1609
- "source": "canonical",
1610
- "compilable": true
1611
- },
1612
1384
  "9a6b2f4b0ce1fdea4c73f1f9ea0d1471dc97d3dd7783c798b6b99ddc7f3bf15c": {
1613
1385
  "title": "Import",
1614
1386
  "code": "import { Skeleton } from '@1money/components-ui';\n// or\nimport { Skeleton } from '@1money/components-ui/Skeleton';",
@@ -1621,16 +1393,10 @@
1621
1393
  "source": "stories",
1622
1394
  "compilable": true
1623
1395
  },
1624
- "9b24b5a45401922ce5317e6b1dcdc28a9caba33fd0c952afb36b62e7cea62ea9": {
1625
- "title": "Canonical usage",
1626
- "code": "<ProFormSelect />",
1627
- "source": "canonical",
1628
- "compilable": true
1629
- },
1630
- "9c4b5f475fd76261b4364f04f169997152a1ceea87575298d7a413fd0a551085": {
1631
- "title": "Canonical usage",
1632
- "code": "import type { FormCoreInstance } from '@1money/component-ui';",
1633
- "source": "canonical",
1396
+ "9c99f80f5636ab539416d2c5c60a083a9d43acd5938644b959803204f9470ac1": {
1397
+ "title": "Import",
1398
+ "code": "import { Portal } from '@1money/components-ui';\n// or\nimport { Portal } from '@1money/components-ui/Portal';",
1399
+ "source": "readme",
1634
1400
  "compilable": true
1635
1401
  },
1636
1402
  "9d095c31abb7ac97c40b817bfca40bcb706f8b8572f9a6af7218643f08b7464b": {
@@ -1639,6 +1405,12 @@
1639
1405
  "source": "readme",
1640
1406
  "compilable": true
1641
1407
  },
1408
+ "9d9e13198adcfe9df9f475bcf7d1fcef492fbd98892daaddb28d65ca2e213a74": {
1409
+ "title": "Import",
1410
+ "code": "import { ResizeObserver, useResizeObserver } from '@1money/components-ui';\n// or\nimport { ResizeObserver, useResizeObserver } from '@1money/components-ui/ResizeObserver';",
1411
+ "source": "readme",
1412
+ "compilable": true
1413
+ },
1642
1414
  "9eae41b47da6d3b07d6bfdb98fe407b6be85aa68db3fe695699cf9588b65eda8": {
1643
1415
  "title": "Placements",
1644
1416
  "code": "{\n const placements: Placement[] = [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'left',\n 'left-start',\n 'left-end',\n 'right',\n 'right-start',\n 'right-end',\n ];\n\n return (\n <div\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 12,\n padding: 120,\n justifyContent: 'center',\n }}\n >\n {placements.map((placement) => (\n <Dropdown\n {...args}\n key={placement}\n placement={placement}\n content={\n <div style={{ padding: 8, fontSize: 13, whiteSpace: 'nowrap' }}>\n {placement}\n </div>\n }\n >\n <Button size=\"small\">{placement}</Button>\n </Dropdown>\n ))}\n </div>\n );\n }",
@@ -1657,12 +1429,6 @@
1657
1429
  "source": "stories",
1658
1430
  "compilable": true
1659
1431
  },
1660
- "a0db5e8a8634435b7717e8162c8d43cd1a6918c73fb73a44d76d56fa6d532de2": {
1661
- "title": "Canonical usage",
1662
- "code": "import type { ProgressState } from '@1money/component-ui';",
1663
- "source": "canonical",
1664
- "compilable": true
1665
- },
1666
1432
  "a0eaa77614f8bc2563173aa4c68d578c2a7d2957ec1696516c9656d43737f7e2": {
1667
1433
  "title": "Import",
1668
1434
  "code": "import { Segment } from '@1money/components-ui';\n// or\nimport { Segment } from '@1money/components-ui/Segment';",
@@ -1705,34 +1471,22 @@
1705
1471
  "source": "stories",
1706
1472
  "compilable": true
1707
1473
  },
1708
- "a5ae14150d1724de4984c10921713734e86d15771efe397f3015a01c77d13676": {
1709
- "title": "Canonical usage",
1710
- "code": "import { Cell } from '@1money/component-ui';\n// or\nimport { Cell } from '@1money/component-ui/Cell';",
1711
- "source": "canonical",
1712
- "compilable": true
1713
- },
1714
1474
  "a823300963fcf8c4ccf8e531c42aa78d7ab59841b405c471d5c0c0d6ac0b9b22": {
1715
1475
  "title": "Text Area",
1716
1476
  "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 }",
1717
1477
  "source": "stories",
1718
1478
  "compilable": true
1719
1479
  },
1720
- "a95b0ad034e07b035fd0d4b861b4bb29fe68e7e04c8f0d3541178f4e15b7b0d1": {
1721
- "title": "Canonical usage",
1722
- "code": "import type { CreateProFormFieldConfig } from '@1money/component-ui';",
1723
- "source": "canonical",
1724
- "compilable": true
1725
- },
1726
1480
  "aa0e9842f54e521f7ff371e51003e26ed69263bef1d5d37baaa5fd6fa189e32c": {
1727
1481
  "title": "Split Example",
1728
1482
  "code": "<Space split={<span>|</span>} size={SPACE_SIZE.small}>\n <span>Alpha</span>\n <span>Beta</span>\n <span>Gamma</span>\n</Space>",
1729
1483
  "source": "readme",
1730
1484
  "compilable": true
1731
1485
  },
1732
- "aa54a561acdb2781536fc6d5bf4b05fc2a4ec7cc3a1952f3d8aa3086f866754a": {
1733
- "title": "Canonical usage",
1734
- "code": "import type { StepItem } from '@1money/component-ui';",
1735
- "source": "canonical",
1486
+ "aa61ebf1b90fbb562c6110d57bc34506cb6448c179bb745b3c3106a7f6cc9e74": {
1487
+ "title": "Import",
1488
+ "code": "import { Progress } from '@1money/components-ui';\n// or\nimport { Progress } from '@1money/components-ui/Progress';",
1489
+ "source": "readme",
1736
1490
  "compilable": true
1737
1491
  },
1738
1492
  "ab9c2b8dec3865ef9826586aa69c01790a48073272eb97a2006323577fbf2550": {
@@ -1759,22 +1513,16 @@
1759
1513
  "source": "readme",
1760
1514
  "compilable": true
1761
1515
  },
1762
- "aeb5b3145a02eaf5de7b756aa71f963aac5ab51ac00f7f76dbc2599ab7634b3a": {
1763
- "title": "Canonical usage",
1764
- "code": "import type { VirtualListProps } from '@1money/component-ui';",
1765
- "source": "canonical",
1766
- "compilable": true
1767
- },
1768
1516
  "af6172fd099200e93181aeb231c5d69c5b4b4d057a1f32935aa2f35ed86ffebe": {
1769
1517
  "title": "Search",
1770
1518
  "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 }",
1771
1519
  "source": "stories",
1772
1520
  "compilable": false
1773
1521
  },
1774
- "af895efcacf8986532f0595254021a9fc61222edede0123afbd36e0ca9de61bc": {
1775
- "title": "Canonical usage",
1776
- "code": "<ProFormCheckbox />",
1777
- "source": "canonical",
1522
+ "af64339337cb6c9e4dfce14392faeb67ee7ab5b4fd60c434ee58ce8db56705c2": {
1523
+ "title": "Import",
1524
+ "code": "import { Navigation, Nav } from '@1money/components-ui';\n// or\nimport { Navigation, Nav } from '@1money/components-ui/Navigation';",
1525
+ "source": "readme",
1778
1526
  "compilable": true
1779
1527
  },
1780
1528
  "b01e2ee6d41091e4a6c12c9a96eb56c7c35c717754ac47bc643756c276654869": {
@@ -1801,6 +1549,12 @@
1801
1549
  "source": "stories",
1802
1550
  "compilable": true
1803
1551
  },
1552
+ "b14da4d622a544459d2811d8e446450f5581cecc1aa78d0da413b1bbaba9df9d": {
1553
+ "title": "Usage",
1554
+ "code": "<Upload\n label=\"Attach document\"\n description=\"PDF or PNG, up to 10 MB\"\n buttonLabel=\"Upload file\"\n accept=\".pdf,.png\"\n onSelect={(files) => console.log(files)}\n/>",
1555
+ "source": "readme",
1556
+ "compilable": true
1557
+ },
1804
1558
  "b1c6f9400c9b8e40e5ce950447b02ac670b68a1e55242b16a8dc86249f792a7f": {
1805
1559
  "title": "Canonical usage",
1806
1560
  "code": "<p>Above</p>\n<Divider />\n<p>Below</p>",
@@ -1813,46 +1567,16 @@
1813
1567
  "source": "stories",
1814
1568
  "compilable": false
1815
1569
  },
1816
- "b5058892460d3456a042642b413b9da4a784488bd7e21f991f40aea1d5d14a93": {
1817
- "title": "Canonical usage",
1818
- "code": "import type { LabelAlign } from '@1money/component-ui';",
1819
- "source": "canonical",
1820
- "compilable": true
1821
- },
1822
- "b5122ab00632d0b9f9f205345094b8cc87d3de0e265bfa06f77f8c0538a72a4a": {
1823
- "title": "Import",
1824
- "code": "import { Link } from '@1money/component-ui';\n// or\nimport { Link } from '@1money/component-ui/Link';",
1825
- "source": "readme",
1826
- "compilable": true
1827
- },
1828
1570
  "b53d16f186c5371a04bc88eb4e5f48d69652f711a0b9596a5b520eea56fd12b7": {
1829
1571
  "title": "Usage",
1830
1572
  "code": "<Link href=\"https://docs.1money.com\" target=\"_blank\">\n Documentation\n</Link>",
1831
1573
  "source": "readme",
1832
1574
  "compilable": true
1833
1575
  },
1834
- "b544632e1c68a8027a7dc14c2772e211df6fcaa76bf806baaff18f201ed75656": {
1835
- "title": "Canonical usage",
1836
- "code": "<Table rowKey=\"id\" columns={columns} dataSource={rows} />",
1837
- "source": "canonical",
1838
- "compilable": true
1839
- },
1840
- "b5c565a619ca8c6ea6be3771a025e08245ee1157433a0f25341df72da8c82c84": {
1841
- "title": "Canonical usage",
1842
- "code": "import type { VirtualListRef } from '@1money/component-ui';",
1843
- "source": "canonical",
1844
- "compilable": true
1845
- },
1846
- "b5cf05bb6a8f45cfcd470fe1172b358fbd92178d3eece19d966999aa3f077105": {
1847
- "title": "Canonical usage",
1848
- "code": "import { Link } from '@1money/component-ui';\n// or\nimport { Link } from '@1money/component-ui/Link';",
1849
- "source": "canonical",
1850
- "compilable": true
1851
- },
1852
- "b669352c8c48a5998e787d52dcf642775655517e1ea3c28da5047402bfb8f815": {
1853
- "title": "Canonical usage",
1854
- "code": "import type { ResizeObserverSizeInfo } from '@1money/component-ui';",
1855
- "source": "canonical",
1576
+ "b5ac338b8dae79ebaa6977ba835eec80689422de45f275287959a9a88f1ecce7": {
1577
+ "title": "Usage",
1578
+ "code": "<Select\n label=\"Currency\"\n placeholder=\"Select currency\"\n options={[\n { label: 'USD', value: 'USD' },\n { label: 'EUR', value: 'EUR', disabled: true },\n ]}\n onChange={(value, option) => console.log(value, option)}\n/>",
1579
+ "source": "readme",
1856
1580
  "compilable": true
1857
1581
  },
1858
1582
  "b6bf8d1eebcfbb2bb8d4eef7f3fbb26233d5abe1febad432c6cb4d4af6ad7a79": {
@@ -1879,10 +1603,10 @@
1879
1603
  "source": "stories",
1880
1604
  "compilable": false
1881
1605
  },
1882
- "bd798228effd9ea304dec801de169c61b68aa249974a07c893487d7bb9d57dc0": {
1883
- "title": "Canonical usage",
1884
- "code": "import type { ResizeObserverProps } from '@1money/component-ui';",
1885
- "source": "canonical",
1606
+ "bad68aaa47c4d8c9f976f817b5edbef7ff8573f469f9a1bc5bc53482ff65b38e": {
1607
+ "title": "Usage",
1608
+ "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/>",
1609
+ "source": "readme",
1886
1610
  "compilable": true
1887
1611
  },
1888
1612
  "bda0a33c638ce6212b4a0c6a592ef4de615a792af4360935f5c256a31d3c2bfc": {
@@ -1897,24 +1621,6 @@
1897
1621
  "source": "stories",
1898
1622
  "compilable": false
1899
1623
  },
1900
- "bea04481c1d6a537bdee648094a468c0153ef005defd5762fd0568a7312f0b71": {
1901
- "title": "Canonical usage",
1902
- "code": "<ProFormItem />",
1903
- "source": "canonical",
1904
- "compilable": true
1905
- },
1906
- "bea3fd79a9ce5be5ed4038daa57612f962de2b1b334870a215966790b6a5c1f5": {
1907
- "title": "Usage",
1908
- "code": "<CoachMark\n heading=\"Welcome to Dashboard\"\n body=\"Here you can see an overview of your finances.\"\n steps={4}\n defaultActiveStep={0}\n placement=\"top\"\n icon={<Icons name=\"dashboard\" size={24} />}\n onFinish={() => console.log('Tour complete')}\n onDismiss={() => console.log('Tour dismissed')}\n/>",
1909
- "source": "readme",
1910
- "compilable": true
1911
- },
1912
- "bec858e374183c180f6a8c8157e1d6204faf444043aa0bfe7145fdff1fb35c29": {
1913
- "title": "Canonical usage",
1914
- "code": "import type { QueryFilterProps } from '@1money/component-ui';",
1915
- "source": "canonical",
1916
- "compilable": true
1917
- },
1918
1624
  "bfa365023d672d8f94c08d4bf7dba03404964ed3489949e44748853da10be22b": {
1919
1625
  "title": "Dialog Form Story",
1920
1626
  "code": "<DialogForm\n {...args}\n title=\"Create User\"\n trigger={<Button color=\"primary\">Open Dialog Form</Button>}\n onFinish={async (values) => {\n alert(JSON.stringify(values, null, 2));\n }}\n >\n <ProFormText name=\"name\" label=\"Name\" rules={[{ required: true }]} />\n <ProFormText name=\"email\" label=\"Email\" rules={[{ required: true }]} />\n <ProFormSwitch name=\"active\" label=\"Active\" />\n </DialogForm>",
@@ -1933,16 +1639,10 @@
1933
1639
  "source": "stories",
1934
1640
  "compilable": false
1935
1641
  },
1936
- "bfef3654ba7e004cca9c6680de5d7039f9de64917fbbcc8e2f2ca84d014a58b2": {
1937
- "title": "Canonical usage",
1938
- "code": "import type { SelectProps } from '@1money/component-ui';",
1939
- "source": "canonical",
1940
- "compilable": true
1941
- },
1942
- "c145e8864a44d06820814a82b0d0e2e486e772f015830b8cc626831e2e025878": {
1943
- "title": "Canonical usage",
1944
- "code": "<Portal />",
1945
- "source": "canonical",
1642
+ "c1047979ec6d13e1fe99d24583dd1657985cf01fbfbda4dbeeb51919a33a743d": {
1643
+ "title": "Usage",
1644
+ "code": "<Portal>\n <div>Rendered in document.body</div>\n</Portal>\n\n<Portal disablePortal>\n <div>Rendered in place</div>\n</Portal>",
1645
+ "source": "readme",
1946
1646
  "compilable": true
1947
1647
  },
1948
1648
  "c196d3703b8f7605b2cf3ba5d441a3c20a72992b82874261716187376e93e86e": {
@@ -1957,12 +1657,24 @@
1957
1657
  "source": "stories",
1958
1658
  "compilable": false
1959
1659
  },
1660
+ "c2ed4afd7f4c04998bfad81cb58b67b4a475835fbd8784a832e1a785e11eb50e": {
1661
+ "title": "Brand Spinner on Gradient Background",
1662
+ "code": "<Spinner\n type=\"brand-bg\"\n size={80}\n title=\"Setting up your account\"\n/>",
1663
+ "source": "readme",
1664
+ "compilable": true
1665
+ },
1960
1666
  "c303f66164ebe41cd2a3afd4f3f393f888ada9d6806d059d56b47f502825f2f7": {
1961
1667
  "title": "OTP",
1962
1668
  "code": "{\n const onComplete = fn();\n const onChange = fn();\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', flexDirection: 'column', gap: 24 }}>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>default / Empty</p>\n <Input.OTP\n label=\"Verification Code\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n length={6}\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>default / Partial</p>\n <Input.OTP\n label=\"Verification Code\"\n feedback=\"Feedback\"\n feedbackIcon={<Icons name=\"info\" size={16} />}\n length={6}\n defaultValue=\"123\"\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>error</p>\n <Input.OTP\n label=\"Verification Code\"\n status=\"error\"\n feedback=\"Invalid code\"\n feedbackIcon={<Icons name=\"error\" size={16} />}\n length={6}\n defaultValue=\"999999\"\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>disabled</p>\n <Input.OTP\n label=\"Verification Code\"\n disabled\n length={6}\n defaultValue=\"123456\"\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>mask (password style)</p>\n <Input.OTP\n label=\"PIN Code\"\n length={6}\n defaultValue=\"1234\"\n mask\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n </div>\n </div>\n\n {/* ── Small ── */}\n <div>\n <h3 style={{ margin: '0 0 16px' }}>Small</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>default / Empty</p>\n <Input.OTP\n size=\"small\"\n label=\"Code\"\n length={6}\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n <div>\n <p style={{ margin: '0 0 4px', fontSize: 12, color: '#999' }}>4-digit code</p>\n <Input.OTP\n size=\"small\"\n label=\"PIN\"\n length={4}\n defaultValue=\"12\"\n onComplete={onComplete}\n onChange={onChange}\n />\n </div>\n </div>\n </div>\n </div>\n );\n }",
1963
1669
  "source": "stories",
1964
1670
  "compilable": false
1965
1671
  },
1672
+ "c37dda6e47f4681c24203fbf4f154801673c331d4394707e6c12c5b07eb3953b": {
1673
+ "title": "Import",
1674
+ "code": "import { Cell } from '@1money/components-ui';\n// or\nimport { Cell } from '@1money/components-ui/Cell';",
1675
+ "source": "readme",
1676
+ "compilable": true
1677
+ },
1966
1678
  "c3aaf0098db4c77ba5af727f8c2eb70a9969be6ea15dcba309d583137cfe6e21": {
1967
1679
  "title": "Nested List",
1968
1680
  "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>",
@@ -1975,33 +1687,9 @@
1975
1687
  "source": "stories",
1976
1688
  "compilable": true
1977
1689
  },
1978
- "c4fb3c20755ba50100856ee70fc3b85038d8c04bef80a4aec58734e95995d8a8": {
1979
- "title": "Canonical usage",
1980
- "code": "<ProFormCheckboxGroup />",
1981
- "source": "canonical",
1982
- "compilable": true
1983
- },
1984
- "c539c466c34edf9adf7a91c4b2d933518b120bce2cce74457c78e0579e6f91b5": {
1690
+ "c53ede8df4b95ea3a84f4272cdde631bf1281322de0a44bfa5d9f4ac16ed9618": {
1985
1691
  "title": "Canonical usage",
1986
- "code": "import type { DropdownProps } from '@1money/component-ui';",
1987
- "source": "canonical",
1988
- "compilable": true
1989
- },
1990
- "c5c8294cf8e64c0260dadcf294fe23c8dc5b054d7780988addeb5f5bfa8f6658": {
1991
- "title": "Page Loading Overlay",
1992
- "code": "const PageLoader = ({ isLoading }) => {\n if (!isLoading) return null;\n\n return (\n <div className=\"page-loader-overlay\">\n <Spinner\n style={{ width: '50px', height: '50px' }}\n strokeWidth=\"3\"\n />\n <p>Loading your data...</p>\n </div>\n );\n};",
1993
- "source": "readme",
1994
- "compilable": true
1995
- },
1996
- "c614ee8b96a68d951bd7d9eb5c0f2a5c3be262fa670d2d245894f0a91deb000d": {
1997
- "title": "Canonical usage",
1998
- "code": "<Pagination />",
1999
- "source": "canonical",
2000
- "compilable": true
2001
- },
2002
- "c61edd4d5f5113671afbb2b5ce72b88a70f64bf63d8e320cd21c669831574cd1": {
2003
- "title": "Canonical usage",
2004
- "code": "<ProFormDependency name={[]}>{() => {}}</ProFormDependency>",
1692
+ "code": "import { Portal } from '@1money/components-ui';\n// or\nimport { Portal } from '@1money/components-ui/Portal';",
2005
1693
  "source": "canonical",
2006
1694
  "compilable": true
2007
1695
  },
@@ -2029,12 +1717,24 @@
2029
1717
  "source": "readme",
2030
1718
  "compilable": true
2031
1719
  },
1720
+ "c7adce2c978836debb618dc91c44c12df9f50836e6ff9994fe3822dd48caef5a": {
1721
+ "title": "Nav (flat / grouped navigation)",
1722
+ "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/>",
1723
+ "source": "readme",
1724
+ "compilable": true
1725
+ },
2032
1726
  "c7dcba25848c3c668f4be990f07f1a6cc8b5b3687bb3533b277bf10074bbbd74": {
2033
1727
  "title": "Mode Update",
2034
1728
  "code": "<ProForm\n {...args}\n mode=\"update\"\n initialValues={{ id: 'USR-001', name: 'Alice', email: 'alice@example.com' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText name=\"id\" label=\"ID\" mode=\"read\" />\n <ProFormText name=\"name\" label=\"Name\" rules={[{ required: true }]} />\n <ProFormText name=\"email\" label=\"Email\" />\n </ProForm>",
2035
1729
  "source": "stories",
2036
1730
  "compilable": false
2037
1731
  },
1732
+ "c87555ab10e8a41bf2ce44d458d0c8d8df9f58151f64bb7a4c1edcec5ae0dbcd": {
1733
+ "title": "Canonical usage",
1734
+ "code": "import { Cell } from '@1money/components-ui';\n// or\nimport { Cell } from '@1money/components-ui/Cell';",
1735
+ "source": "canonical",
1736
+ "compilable": true
1737
+ },
2038
1738
  "c9055581e81ec06997b903da8cf3dc5446cb9767423cb2fd80762ede31063176": {
2039
1739
  "title": "Disabled",
2040
1740
  "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 }",
@@ -2047,27 +1747,15 @@
2047
1747
  "source": "stories",
2048
1748
  "compilable": false
2049
1749
  },
2050
- "ca3b9b0ee348c09e621b11cf2534f5d42546ed5004f5f00f042b20c9ca6a7548": {
2051
- "title": "Canonical usage",
2052
- "code": "import type { DialogFooterRender } from '@1money/component-ui';",
2053
- "source": "canonical",
2054
- "compilable": true
2055
- },
2056
1750
  "ca70d69f9d217bc2fb7464ca43a6e4014c47f608128b31fcaef0dce251e15ea4": {
2057
1751
  "title": "With Disabled",
2058
1752
  "code": "<Segment\n items={[\n { value: 'tab1', label: 'Overview' },\n { value: 'tab2', label: 'Transactions' },\n { value: 'tab3', label: 'Analytics', disabled: true },\n { value: 'tab4', label: 'Settings' },\n ]}\n />",
2059
1753
  "source": "stories",
2060
1754
  "compilable": true
2061
1755
  },
2062
- "cb70ebe2c9a937bb1cd0ba29f708510c4c1e22e8ac2caacd37674882f698a196": {
1756
+ "cb112d23d742e359bb073b630230b53ccd7362c90ce29f033223143742f4687a": {
2063
1757
  "title": "Canonical usage",
2064
- "code": "import type { SelectRenderOptionMeta } from '@1money/component-ui';",
2065
- "source": "canonical",
2066
- "compilable": true
2067
- },
2068
- "cc02e88440947a6233796037b3d5c91a08dccc0fbd6048c0d19e0c449e82dc73": {
2069
- "title": "Canonical usage",
2070
- "code": "import type { DropdownContentContext } from '@1money/component-ui';",
1758
+ "code": "import { Drawer } from '@1money/components-ui';\n// or\nimport { Drawer } from '@1money/components-ui/Drawer';",
2071
1759
  "source": "canonical",
2072
1760
  "compilable": true
2073
1761
  },
@@ -2083,12 +1771,6 @@
2083
1771
  "source": "stories",
2084
1772
  "compilable": true
2085
1773
  },
2086
- "cd8832b40b359a75929b8e7f17192a66cbf85c7fdc424c4d1b3fd2cb736bb5ce": {
2087
- "title": "Entry Points",
2088
- "code": "<div style={{ display: 'grid', gap: 16 }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>\n <CrossIcon size={20} />\n <Icon name=\"cross\" size={20} />\n <Icons name=\"depositFiatCrypto\" size={20} />\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>\n <LogoWithWords width={132} height={24} logoColor=\"#073387\" wordColor=\"#131313\" />\n <IconHover>\n <CrossIcon size={16} />\n </IconHover>\n </div>\n </div>",
2089
- "source": "stories",
2090
- "compilable": true
2091
- },
2092
1774
  "ce3412158804bef977933a6f68163249822402fcf44facae20470ccfd61de718": {
2093
1775
  "title": "Import",
2094
1776
  "code": "import { Calendar } from '@1money/components-ui';\n// or\nimport { Calendar } from '@1money/components-ui/Calendar';",
@@ -2101,12 +1783,6 @@
2101
1783
  "source": "stories",
2102
1784
  "compilable": false
2103
1785
  },
2104
- "cef06a2fa9ec150e4ab25d3ca42529946e43096750463d7e09e45104bfe938a9": {
2105
- "title": "Canonical usage",
2106
- "code": "import type { SelectSize } from '@1money/component-ui';",
2107
- "source": "canonical",
2108
- "compilable": true
2109
- },
2110
1786
  "cf77657b10de8590abb4f91c96d5208ef8e88c19ca770632f85ea70ebd3f41f2": {
2111
1787
  "title": "Debounce Field",
2112
1788
  "code": "<ProForm\n {...args}\n onValuesChange={(changed) => {\n console.log('onValuesChange (debounced):', changed);\n }}\n >\n <ProFormText\n name=\"search\"\n label=\"Search (300ms debounce — check console)\"\n debounceTime={300}\n placeholder=\"Type fast...\"\n />\n <ProFormText name=\"instant\" label=\"Instant (no debounce)\" placeholder=\"Type fast...\" />\n </ProForm>",
@@ -2119,24 +1795,6 @@
2119
1795
  "source": "stories",
2120
1796
  "compilable": false
2121
1797
  },
2122
- "d04fb66d67c8ae60bbd4a4937cb198b9b91ef7835b27f5766f421c864efdf891": {
2123
- "title": "Canonical usage",
2124
- "code": "<VirtualList />",
2125
- "source": "canonical",
2126
- "compilable": true
2127
- },
2128
- "d07754a416050437d6b99b5541fa4eb847f75facc92eb9f9427194d138408140": {
2129
- "title": "Canonical usage",
2130
- "code": "import type { DialogProps } from '@1money/component-ui';",
2131
- "source": "canonical",
2132
- "compilable": true
2133
- },
2134
- "d0b89ae2fa1043346a2874d6f6ab1231cc0e830f16e1f70fd5614d322a61b044": {
2135
- "title": "Canonical usage",
2136
- "code": "import type { SelectValue } from '@1money/component-ui';",
2137
- "source": "canonical",
2138
- "compilable": true
2139
- },
2140
1798
  "d17ae919d30d1b43236c52018609c72e725c0e22e47938fa2bed04cae70b2542": {
2141
1799
  "title": "Usage",
2142
1800
  "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\" />",
@@ -2149,6 +1807,12 @@
2149
1807
  "source": "stories",
2150
1808
  "compilable": false
2151
1809
  },
1810
+ "d2d7be30524d06f99a66b1ee9375fa33501fcff7421d697bce934b4c6a79e4c1": {
1811
+ "title": "Canonical usage",
1812
+ "code": "import { Dropdown } from '@1money/components-ui';\n// or\nimport { Dropdown } from '@1money/components-ui/Dropdown';",
1813
+ "source": "canonical",
1814
+ "compilable": true
1815
+ },
2152
1816
  "d2edd9eacbc07e5e229da3827b202d5da1fe8f4ca569e59c8162ce3927cbf36e": {
2153
1817
  "title": "Import",
2154
1818
  "code": "import { Input } from '@1money/components-ui';\n// or\nimport { Input } from '@1money/components-ui/Input';",
@@ -2167,15 +1831,9 @@
2167
1831
  "source": "readme",
2168
1832
  "compilable": true
2169
1833
  },
2170
- "d4cfa73d1f8594d54e518f6d453f327da0cbfe5696e915132697bab1461257a2": {
2171
- "title": "Canonical usage",
2172
- "code": "import type { ProFormMode } from '@1money/component-ui';",
2173
- "source": "canonical",
2174
- "compilable": true
2175
- },
2176
- "d6d63abfec53aafed291131ef3a163dafcf0b09dbf5655a9457e4a8c5e75868e": {
1834
+ "d7d5f601f2bc6d68fdd1f9092792a1ead79d09392794c0de5c6a6f08ae2fcd2b": {
2177
1835
  "title": "Canonical usage",
2178
- "code": "<Dropdown />",
1836
+ "code": "import { ResizeObserver, useResizeObserver } from '@1money/components-ui';\n// or\nimport { ResizeObserver, useResizeObserver } from '@1money/components-ui/ResizeObserver';",
2179
1837
  "source": "canonical",
2180
1838
  "compilable": true
2181
1839
  },
@@ -2191,6 +1849,12 @@
2191
1849
  "source": "canonical",
2192
1850
  "compilable": true
2193
1851
  },
1852
+ "d928a76793b3297d721487249b48aafd40ba72f0698c1706a33e4291c542d9ba": {
1853
+ "title": "Canonical usage",
1854
+ "code": "import { Step } from '@1money/components-ui';\n// or\nimport { Step } from '@1money/components-ui/Step';",
1855
+ "source": "canonical",
1856
+ "compilable": true
1857
+ },
2194
1858
  "d9882ee38a2bc32f9e2590509a569226bc8b174cfe3c16f5a1bdfbbc7662bf62": {
2195
1859
  "title": "Placement",
2196
1860
  "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 }",
@@ -2227,9 +1891,9 @@
2227
1891
  "source": "stories",
2228
1892
  "compilable": true
2229
1893
  },
2230
- "db1561752135c60ff5a677102a19f86d01a79b50a6824699a9c6fe7a9ead392f": {
1894
+ "dba235303ebe08452940ff868113324fc00c1a8ed5461ca69aaf6113382b9f6b": {
2231
1895
  "title": "Canonical usage",
2232
- "code": "import type { ProFormFieldConvertValueFn } from '@1money/component-ui';",
1896
+ "code": "import { Pagination, usePagination } from '@1money/components-ui';\n// or\nimport { Pagination, usePagination } from '@1money/components-ui/Pagination';",
2233
1897
  "source": "canonical",
2234
1898
  "compilable": true
2235
1899
  },
@@ -2257,10 +1921,10 @@
2257
1921
  "source": "stories",
2258
1922
  "compilable": true
2259
1923
  },
2260
- "dd7a9e1ecc57d2efc005885114cec94320649768480f7dd0006adb2ea5855d5d": {
2261
- "title": "Canonical usage",
2262
- "code": "import type { ProFormRequestOption } from '@1money/component-ui';",
2263
- "source": "canonical",
1924
+ "dd93657d7534b2334888be68dade1a1eb682df7f98475406bbe3c8f36ca64ba0": {
1925
+ "title": "Import",
1926
+ "code": "import { Select } from '@1money/components-ui';\n// or\nimport { Select } from '@1money/components-ui/Select';",
1927
+ "source": "readme",
2264
1928
  "compilable": true
2265
1929
  },
2266
1930
  "dda0f285741a298f3e8cd24f768a9faf10789e206854eb6555fc79970dcb9c2d": {
@@ -2305,10 +1969,22 @@
2305
1969
  "source": "stories",
2306
1970
  "compilable": false
2307
1971
  },
2308
- "e1a8744a63bb83a89bcb9eda48e6f3874777ee0c7821e132cc555d0bf0998f0b": {
2309
- "title": "Import",
2310
- "code": "import { Navigation } from '@1money/components-ui';\n// or\nimport { Navigation } from '@1money/components-ui/Navigation';",
2311
- "source": "readme",
1972
+ "e12204d81d25fedea606df0af41590ad6f951ad6a9c87fbb04b46d113a83c01c": {
1973
+ "title": "Canonical usage",
1974
+ "code": "import { Dialog } from '@1money/components-ui';\n// or\nimport { Dialog } from '@1money/components-ui/Dialog';",
1975
+ "source": "canonical",
1976
+ "compilable": true
1977
+ },
1978
+ "e1bc6906c5f00092c88e4e750bb2591d4397c214fe2ba32646792273d03f9942": {
1979
+ "title": "Canonical usage",
1980
+ "code": "<IconHover />",
1981
+ "source": "canonical",
1982
+ "compilable": true
1983
+ },
1984
+ "e26c609980f32c5d66ccd1ee1a5d53d3cf09e63f85e94f7adf9acc57bfdc7276": {
1985
+ "title": "Canonical usage",
1986
+ "code": "import { Navigation, Nav } from '@1money/components-ui';\n// or\nimport { Navigation, Nav } from '@1money/components-ui/Navigation';",
1987
+ "source": "canonical",
2312
1988
  "compilable": true
2313
1989
  },
2314
1990
  "e2d97535c3a577c0c337fa59b2a6832e6337e4a07486d72339fb65ecb4899382": {
@@ -2317,10 +1993,10 @@
2317
1993
  "source": "readme",
2318
1994
  "compilable": true
2319
1995
  },
2320
- "e37aca8f7c9d9b0e9ebfac3d27da7b71899323685544aefcf84f04338a9232ce": {
2321
- "title": "Canonical usage",
2322
- "code": "<Progress percent={0} />",
2323
- "source": "canonical",
1996
+ "e3b3197749176ad9a73173f5d1928f15b52b030d41a28e61ef40deaabbc9a554": {
1997
+ "title": "Usage",
1998
+ "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/>",
1999
+ "source": "readme",
2324
2000
  "compilable": true
2325
2001
  },
2326
2002
  "e45470810804263c8bc829534812b03b22c7885a5d86df48dfecce21f3ab3a2f": {
@@ -2365,72 +2041,36 @@
2365
2041
  "source": "canonical",
2366
2042
  "compilable": true
2367
2043
  },
2044
+ "e95a0d0355599d90e5a8f3e2157c5f59f2ee97f9c77cde6b856ca73e439ba89d": {
2045
+ "title": "Usage",
2046
+ "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>",
2047
+ "source": "readme",
2048
+ "compilable": true
2049
+ },
2368
2050
  "e9f60d4e278ffd41098f4db04f41855ffd8a9cb7a16f51dc8f8e99f4295effaa": {
2369
2051
  "title": "Disabled",
2370
2052
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <Switch {...args} label=\"Unchecked disabled\" disabled />\n <Switch {...args} label=\"Checked disabled\" disabled defaultChecked />\n </div>",
2371
2053
  "source": "stories",
2372
2054
  "compilable": false
2373
2055
  },
2374
- "ead69923c50561a8b08e90c7dc7f2b6f0d3e3b1d3aa61f06af6f26303aeacc90": {
2375
- "title": "Canonical usage",
2376
- "code": "import type { ProFormProps } from '@1money/component-ui';",
2377
- "source": "canonical",
2378
- "compilable": true
2379
- },
2380
2056
  "eb427461f9033ecdecd7f9fbecd2c65d93d6a9f081ee8af32cd9665d94095ec9": {
2381
2057
  "title": "Semantic Scale",
2382
2058
  "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>",
2383
2059
  "source": "stories",
2384
2060
  "compilable": true
2385
2061
  },
2386
- "ec48d516a07ba5085b42c5936ddd4094b99978b593ccd77f2840587b3c15fe54": {
2387
- "title": "Canonical usage",
2388
- "code": "import type { PaginationPageItem } from '@1money/component-ui';",
2389
- "source": "canonical",
2390
- "compilable": true
2391
- },
2392
- "ed5d62cfe73db00a5d655c4947110558ed0c81b0173fdfa5086ec53117f33525": {
2393
- "title": "Canonical usage",
2394
- "code": "import {\n CrossIcon,\n Icon,\n Icons,\n IconHover,\n IconWrapper,\n LogoWithWords,\n} from '@1money/components-ui';\n\nimport type { IconName, IconsProps } from '@1money/components-ui';",
2395
- "source": "canonical",
2396
- "compilable": true
2397
- },
2398
2062
  "ede4a5629c02420f621373a9169c9671b906cc09439931df34b222da85911147": {
2399
2063
  "title": "With Action",
2400
2064
  "code": "<Alert\n {...args}\n status=\"info\"\n title=\"Payment instruction ready\"\n body=\"Share the deposit instruction with your treasury team or copy it directly.\"\n link={{ label: 'Preview instruction', onClick: fn() }}\n action={<Button onClick={fn()}>Copy details</Button>}\n closable={false}\n />",
2401
2065
  "source": "stories",
2402
2066
  "compilable": false
2403
2067
  },
2404
- "eded2f3304b55730029801800edc5a3c7449e2643b4b52dbc06d117d3fa78b9c": {
2405
- "title": "Canonical usage",
2406
- "code": "import type { DropdownTrigger } from '@1money/component-ui';",
2407
- "source": "canonical",
2408
- "compilable": true
2409
- },
2410
- "ee2bdbb626c56a393f970bf1d78c39af26d41db0d878c1454242d504dadfb8c5": {
2411
- "title": "Usage",
2412
- "code": "// Basic spinner\n<Spinner />\n\n// Custom size\n<Spinner style={{ width: '20px', height: '20px' }} />\n\n// Custom animation duration\n<Spinner animationDuration=\"1s\" />\n\n// Custom stroke width\n<Spinner strokeWidth=\"3\" />\n\n// Custom fill\n<Spinner style={{ width: '60px', height: '60px' }} fill=\"#E8F5E8\" />",
2413
- "source": "readme",
2414
- "compilable": true
2415
- },
2416
2068
  "ee930a68e587cff54897859095b7846cd2ee864a89a0d0e9fd833dbd1db85b82": {
2417
2069
  "title": "All Variants",
2418
2070
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n <div>\n <h3 style={{ marginBottom: 12 }}>Label Left (Default)</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <Switch {...args} label=\"Label\" description=\"Description\" />\n <Switch {...args} label=\"Label\" description=\"Description\" defaultChecked />\n <Switch {...args} label=\"Label\" description=\"Description\" disabled />\n <Switch {...args} label=\"Label\" description=\"Description\" disabled defaultChecked />\n </div>\n </div>\n <div>\n <h3 style={{ marginBottom: 12 }}>Label Right</h3>\n <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 <Switch {...args} label=\"Label\" description=\"Description\" labelPlacement=\"right\" disabled />\n <Switch {...args} label=\"Label\" description=\"Description\" labelPlacement=\"right\" disabled defaultChecked />\n </div>\n </div>\n </div>",
2419
2071
  "source": "stories",
2420
2072
  "compilable": false
2421
2073
  },
2422
- "eebcc41c1f2c8421eb9925d8e4befdff5d0d9a0ac7ce205ace525ed07ee9f647": {
2423
- "title": "Canonical usage",
2424
- "code": "import type { PaginationProps } from '@1money/component-ui';",
2425
- "source": "canonical",
2426
- "compilable": true
2427
- },
2428
- "ef4db8ac914fd8f1b7ba6beb4ffdee91eb4c6541f40cad46d0d74c3e00a5d0e1": {
2429
- "title": "Canonical usage",
2430
- "code": "import type { SelectOption } from '@1money/component-ui';",
2431
- "source": "canonical",
2432
- "compilable": true
2433
- },
2434
2074
  "ef6129271a1cc811da6f293b9cb03f5514e410a9c60c0abec3e045e6376745b1": {
2435
2075
  "title": "Canonical usage",
2436
2076
  "code": "import { Empty } from '@1money/components-ui';\n// or\nimport { Empty } from '@1money/components-ui/Empty';",
@@ -2455,24 +2095,6 @@
2455
2095
  "source": "stories",
2456
2096
  "compilable": false
2457
2097
  },
2458
- "f02ed49d7825c626c3191734244f3e88dfbf48e8a2720ddd268229fe063b846a": {
2459
- "title": "Canonical usage",
2460
- "code": "import type { StepTagConfig } from '@1money/component-ui';",
2461
- "source": "canonical",
2462
- "compilable": true
2463
- },
2464
- "f065597d223dc1f13a2322f8264117765b4ffe077f96a1224d73320e187354ec": {
2465
- "title": "Canonical usage",
2466
- "code": "import type { SubmitterProps } from '@1money/component-ui';",
2467
- "source": "canonical",
2468
- "compilable": true
2469
- },
2470
- "f1fd9c22aed7f64f20f92113407cac7aeb1750a0623e511784dda6813e00b67e": {
2471
- "title": "Canonical usage",
2472
- "code": "Trigger();",
2473
- "source": "canonical",
2474
- "compilable": true
2475
- },
2476
2098
  "f2c3b9fe0a35d0f3e87ed98754d67b66bdf140128496a16d3ebc5ba4819068cc": {
2477
2099
  "title": "All Variants",
2478
2100
  "code": "<div style={{ display: 'flex', flexDirection: 'column', gap: 32 }}>\n <div>\n <h3 style={{ marginBottom: 12 }}>Default</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <Radio label=\"Unchecked\" />\n <Radio label=\"Checked\" checked />\n <Radio label=\"Disabled unchecked\" disabled />\n <Radio label=\"Disabled checked\" checked disabled />\n </div>\n </div>\n <div>\n <h3 style={{ marginBottom: 12 }}>With Description</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <Radio label=\"Unchecked\" description=\"Helper text\" />\n <Radio label=\"Checked\" description=\"Helper text\" checked />\n <Radio\n label=\"Disabled unchecked\"\n description=\"Helper text\"\n disabled\n />\n <Radio\n label=\"Disabled checked\"\n description=\"Helper text\"\n checked\n disabled\n />\n </div>\n </div>\n <div>\n <h3 style={{ marginBottom: 12 }}>Label Placement: Right</h3>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <Radio label=\"Unchecked\" labelPlacement=\"right\" />\n <Radio label=\"Checked\" labelPlacement=\"right\" checked />\n <Radio\n label=\"With description\"\n description=\"Helper text\"\n labelPlacement=\"right\"\n />\n </div>\n </div>\n <div>\n <h3 style={{ marginBottom: 12 }}>Cell</h3>\n <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=\"Wire transfer\"\n description=\"Receive via SWIFT\"\n style={{ width: 320 }}\n />\n <Radio\n variant=\"cell\"\n size=\"medium\"\n alignment=\"left\"\n icon=\"usd\"\n label=\"USD1\"\n style={{ width: 180 }}\n />\n <Radio\n checked\n variant=\"cell\"\n size=\"large\"\n alignment=\"center\"\n icon=\"language\"\n tag=\"Popular\"\n label=\"Global account\"\n description=\"Use for international settlement\"\n style={{ width: 220 }}\n />\n </div>\n </div>\n </div>",
@@ -2485,12 +2107,6 @@
2485
2107
  "source": "stories",
2486
2108
  "compilable": true
2487
2109
  },
2488
- "f3e3e35db28e26c2e5f1870c2e23d646f593f798d99eda835808ea9652ed85d7": {
2489
- "title": "Canonical usage",
2490
- "code": "import type { TourProps } from '@1money/component-ui';",
2491
- "source": "canonical",
2492
- "compilable": true
2493
- },
2494
2110
  "f4820b22bbba91a3284238e73606be5b7825b28d6c345dcc4dde9b0681f61efd": {
2495
2111
  "title": "Group Cell Directions",
2496
2112
  "code": "{\n const [verticalValue, setVerticalValue] = React.useState<string | number>('swift');\n const [horizontalValue, setHorizontalValue] = React.useState<string | number>('swift');\n\n const 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 const handleVerticalChange = (event: RadioChangeEvent) => {\n if (event.target.value !== undefined) {\n setVerticalValue(event.target.value);\n }\n };\n\n const handleHorizontalChange = (event: RadioChangeEvent) => {\n if (event.target.value !== undefined) {\n setHorizontalValue(event.target.value);\n }\n };\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>\n <div style={{ width: 320 }}>\n <h3 style={{ marginBottom: 12 }}>Cell Direction Vertical</h3>\n <RadioGroup\n value={verticalValue}\n variant=\"cell\"\n size=\"large\"\n alignment=\"left\"\n direction=\"vertical\"\n onChange={handleVerticalChange}\n options={options}\n />\n </div>\n <div>\n <h3 style={{ marginBottom: 12 }}>Cell Direction Horizontal</h3>\n <RadioGroup\n value={horizontalValue}\n variant=\"cell\"\n size=\"large\"\n alignment=\"left\"\n direction=\"horizontal\"\n onChange={handleHorizontalChange}\n options={options}\n />\n </div>\n </div>\n );\n }",
@@ -2515,12 +2131,6 @@
2515
2131
  "source": "stories",
2516
2132
  "compilable": false
2517
2133
  },
2518
- "f54ff3b0b6680cdec37c94acb43bf7f58648670a16b6c7be3cd82ca792d177fd": {
2519
- "title": "Canonical usage",
2520
- "code": "import type { DropdownContent } from '@1money/component-ui';",
2521
- "source": "canonical",
2522
- "compilable": true
2523
- },
2524
2134
  "f573e24b6bb2a0cf68e3dba916cbc777330e61e503cca982f2c5c5633a8d0b7a": {
2525
2135
  "title": "Usage",
2526
2136
  "code": "// Rectangle (default)\n<Skeleton />\n<Skeleton width=\"10rem\" />\n<Skeleton width=\"10rem\" height=\"4rem\" />\n\n// Rounded\n<Skeleton borderRadius=\"16px\" />\n\n// Square\n<Skeleton size=\"3rem\" />\n\n// Circle\n<Skeleton shape=\"circle\" size=\"4rem\" />\n\n// No animation\n<Skeleton animation=\"none\" />",
@@ -2545,22 +2155,16 @@
2545
2155
  "source": "stories",
2546
2156
  "compilable": true
2547
2157
  },
2548
- "f6add1649c4e02d141bd89c9cedf782cf9bf66c617de71226b13802729c7a205": {
2549
- "title": "Usage",
2550
- "code": "<Upload\n mode=\"basic\"\n chooseOptions={{ label: 'Upload file', icon: () => <></> }}\n onUpload={(e) => console.log(e.files)}\n/>",
2551
- "source": "readme",
2552
- "compilable": true
2553
- },
2554
2158
  "f7b16782ec97c865cee1e4efd85132f308a13cf49fb00e7e75113b8db2f00476": {
2555
2159
  "title": "Mode Edit",
2556
2160
  "code": "<ProForm\n {...args}\n mode=\"edit\"\n initialValues={{ name: '', email: '' }}\n onFinish={(values) => alert(JSON.stringify(values, null, 2))}\n >\n <ProFormText name=\"name\" label=\"Name\" rules={[{ required: true }]} />\n <ProFormText name=\"email\" label=\"Email\" />\n </ProForm>",
2557
2161
  "source": "stories",
2558
2162
  "compilable": false
2559
2163
  },
2560
- "f7d75c4c5f4f678aa093b1506c43f3b64f084e77935a1995764eafb16f65acb3": {
2561
- "title": "Canonical usage",
2562
- "code": "import type { UsePaginationResult } from '@1money/component-ui';",
2563
- "source": "canonical",
2164
+ "f7c2c0a63e93844f526a49d62cfd4f5ced951213730b19e88cb69c559c39a367": {
2165
+ "title": "Import",
2166
+ "code": "import { Step } from '@1money/components-ui';\n// or\nimport { Step } from '@1money/components-ui/Step';",
2167
+ "source": "readme",
2564
2168
  "compilable": true
2565
2169
  },
2566
2170
  "f7f96c74f982e37eb075e6bd5affd0bbcf3d63faca5bb60a1175fe7725dad87b": {
@@ -2569,16 +2173,10 @@
2569
2173
  "source": "stories",
2570
2174
  "compilable": false
2571
2175
  },
2572
- "f83a21f43532c533551423571b437ae45b5e8e0ff76b9b783f68587c6b9a7e8d": {
2573
- "title": "Canonical usage",
2574
- "code": "import type { ProFormFieldProps } from '@1money/component-ui';",
2575
- "source": "canonical",
2576
- "compilable": true
2577
- },
2578
- "fa1715f659ca9bd453db3ccb6d40b47193e9dc838467b79a6a453d0b8b5aaed5": {
2579
- "title": "Canonical usage",
2580
- "code": "import type { ProFormValueEnumObj } from '@1money/component-ui';",
2581
- "source": "canonical",
2176
+ "faa015d00f4f1ec9d43a4988251943c30d43285aadf14ee9d2c82d7fa4b0024f": {
2177
+ "title": "Import",
2178
+ "code": "import { Dialog } from '@1money/components-ui';\n// or\nimport { Dialog } from '@1money/components-ui/Dialog';",
2179
+ "source": "readme",
2582
2180
  "compilable": true
2583
2181
  },
2584
2182
  "fbd87569f46a26241c78761898d378521f9b220ad8c158ad1b3f619a9043f07d": {
@@ -2587,10 +2185,10 @@
2587
2185
  "source": "stories",
2588
2186
  "compilable": false
2589
2187
  },
2590
- "fc7f011734a4a3a103721b68af73859114acc940da01099883443728203b2cad": {
2591
- "title": "Canonical usage",
2592
- "code": "import type { SelectMultipleValue } from '@1money/component-ui';",
2593
- "source": "canonical",
2188
+ "fc9a7422a1bd65a99442277ecc3a078de35b6d7347c17ebe9cd83cdf379e54a7": {
2189
+ "title": "Usage",
2190
+ "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/>",
2191
+ "source": "readme",
2594
2192
  "compilable": true
2595
2193
  },
2596
2194
  "fca476fdc8a8454562178330e2ef42b7cb756bb782574109179b48b0b5f2dfcb": {
@@ -2611,12 +2209,6 @@
2611
2209
  "source": "stories",
2612
2210
  "compilable": true
2613
2211
  },
2614
- "fd353a0cfce510dee427ac20924a2b4af00ee7928140326c422816b303a11ad9": {
2615
- "title": "Canonical usage",
2616
- "code": "import type { SelectRenderValueMeta } from '@1money/component-ui';",
2617
- "source": "canonical",
2618
- "compilable": true
2619
- },
2620
2212
  "fdf213199dc6788118e3f64a9156e33557e5611b1ca721d8b7c388245959d211": {
2621
2213
  "title": "Import",
2622
2214
  "code": "import { Button } from '@1money/components-ui';\n// or\nimport { Button } from '@1money/components-ui/Button';",
@@ -2629,12 +2221,6 @@
2629
2221
  "source": "canonical",
2630
2222
  "compilable": true
2631
2223
  },
2632
- "fe831014a074368cace22558725ed6a61ffdfa556cec55c5284d20d0357f8e2e": {
2633
- "title": "Canonical usage",
2634
- "code": "import type { ProgressPlacement } from '@1money/component-ui';",
2635
- "source": "canonical",
2636
- "compilable": true
2637
- },
2638
2224
  "fe9b007dfbadb99c5e9b23715cac072ae441727d20418766456554881470ea68": {
2639
2225
  "title": "Canonical usage",
2640
2226
  "code": "import { Calendar } from '@1money/components-ui';\n// or\nimport { Calendar } from '@1money/components-ui/Calendar';",
@@ -2647,10 +2233,10 @@
2647
2233
  "source": "stories",
2648
2234
  "compilable": false
2649
2235
  },
2650
- "fee60afafe32035844a3102b3d30152024652c2b12eb46104b0dfb5c8026dc26": {
2651
- "title": "Canonical usage",
2652
- "code": "import type { ProFormDependencyProps } from '@1money/component-ui';",
2653
- "source": "canonical",
2236
+ "ffcdb76bb3216c346fc3ce624448bb8e51a3677f3fd96c8ed18c264f52ed6e31": {
2237
+ "title": "Import",
2238
+ "code": "import { Dropdown } from '@1money/components-ui';\n// or\nimport { Dropdown } from '@1money/components-ui/Dropdown';",
2239
+ "source": "readme",
2654
2240
  "compilable": true
2655
2241
  }
2656
2242
  }