@tempoxyz/ds 0.3.0 → 0.3.2

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 (361) hide show
  1. package/dist/web/components/Accordion.css +1 -1
  2. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  3. package/dist/web/components/AddressCard.css +1 -0
  4. package/dist/web/components/AddressCard.d.ts +85 -0
  5. package/dist/web/components/AddressCard.d.ts.map +1 -0
  6. package/dist/web/components/AddressCard.js +79 -0
  7. package/dist/web/components/AddressCard.js.map +1 -0
  8. package/dist/web/components/AddressCard.js.zyzz.json +1 -0
  9. package/dist/web/components/AgentLogo.js +1 -1
  10. package/dist/web/components/AgentLogo.js.map +1 -1
  11. package/dist/web/components/AgentLogo.js.zyzz.json +1 -1
  12. package/dist/web/components/Alert.css +1 -1
  13. package/dist/web/components/Alert.d.ts +7 -2
  14. package/dist/web/components/Alert.d.ts.map +1 -1
  15. package/dist/web/components/Alert.js +12 -7
  16. package/dist/web/components/Alert.js.map +1 -1
  17. package/dist/web/components/Alert.js.zyzz.json +1 -1
  18. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  19. package/dist/web/components/Amount.css +1 -1
  20. package/dist/web/components/Amount.js.zyzz.json +1 -1
  21. package/dist/web/components/AmountInput.css +1 -1
  22. package/dist/web/components/AmountInput.d.ts +1 -1
  23. package/dist/web/components/AmountInput.d.ts.map +1 -1
  24. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  25. package/dist/web/components/AppShell.css +1 -1
  26. package/dist/web/components/AppShell.d.ts +128 -2
  27. package/dist/web/components/AppShell.d.ts.map +1 -1
  28. package/dist/web/components/AppShell.js +122 -32
  29. package/dist/web/components/AppShell.js.map +1 -1
  30. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  31. package/dist/web/components/AssetChip.css +1 -1
  32. package/dist/web/components/AssetChip.d.ts.map +1 -1
  33. package/dist/web/components/AssetChip.js.map +1 -1
  34. package/dist/web/components/AssetChip.js.zyzz.json +1 -1
  35. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  36. package/dist/web/components/Avatar.css +1 -1
  37. package/dist/web/components/Avatar.d.ts +68 -6
  38. package/dist/web/components/Avatar.d.ts.map +1 -1
  39. package/dist/web/components/Avatar.js +27 -7
  40. package/dist/web/components/Avatar.js.map +1 -1
  41. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  42. package/dist/web/components/Badge.css +1 -1
  43. package/dist/web/components/Badge.d.ts +49 -1
  44. package/dist/web/components/Badge.d.ts.map +1 -1
  45. package/dist/web/components/Badge.js +5 -3
  46. package/dist/web/components/Badge.js.map +1 -1
  47. package/dist/web/components/Badge.js.zyzz.json +1 -1
  48. package/dist/web/components/Banner.css +1 -1
  49. package/dist/web/components/Banner.js.zyzz.json +1 -1
  50. package/dist/web/components/BarChart.css +1 -1
  51. package/dist/web/components/BarChart.js.zyzz.json +1 -1
  52. package/dist/web/components/Breadcrumbs.css +1 -1
  53. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  54. package/dist/web/components/Button.css +1 -1
  55. package/dist/web/components/Button.d.ts +82 -12
  56. package/dist/web/components/Button.d.ts.map +1 -1
  57. package/dist/web/components/Button.js +6 -3
  58. package/dist/web/components/Button.js.map +1 -1
  59. package/dist/web/components/Button.js.zyzz.json +1 -1
  60. package/dist/web/components/ButtonGroup.js.zyzz.json +1 -1
  61. package/dist/web/components/Calendar.css +1 -1
  62. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  63. package/dist/web/components/Callout.css +1 -0
  64. package/dist/web/components/Callout.d.ts +23 -0
  65. package/dist/web/components/Callout.d.ts.map +1 -0
  66. package/dist/web/components/Callout.js +26 -0
  67. package/dist/web/components/Callout.js.map +1 -0
  68. package/dist/web/components/Callout.js.zyzz.json +1 -0
  69. package/dist/web/components/Checkbox.css +1 -1
  70. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  71. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  72. package/dist/web/components/ChoiceGroup.css +1 -1
  73. package/dist/web/components/ChoiceGroup.d.ts +17 -10
  74. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  75. package/dist/web/components/ChoiceGroup.js +5 -5
  76. package/dist/web/components/ChoiceGroup.js.map +1 -1
  77. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  78. package/dist/web/components/Choicebox.css +1 -1
  79. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  80. package/dist/web/components/Code.css +1 -0
  81. package/dist/web/components/Code.d.ts +25 -0
  82. package/dist/web/components/Code.d.ts.map +1 -0
  83. package/dist/web/components/Code.js +28 -0
  84. package/dist/web/components/Code.js.map +1 -0
  85. package/dist/web/components/Code.js.zyzz.json +1 -0
  86. package/dist/web/components/Combobox.css +1 -1
  87. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  88. package/dist/web/components/Container.js.zyzz.json +1 -1
  89. package/dist/web/components/CopyButton.d.ts +8 -1
  90. package/dist/web/components/CopyButton.d.ts.map +1 -1
  91. package/dist/web/components/CopyButton.js.map +1 -1
  92. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  93. package/dist/web/components/DatePicker.css +1 -1
  94. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  95. package/dist/web/components/Dialog.css +1 -1
  96. package/dist/web/components/Dialog.d.ts.map +1 -1
  97. package/dist/web/components/Dialog.js +2 -1
  98. package/dist/web/components/Dialog.js.map +1 -1
  99. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  100. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  101. package/dist/web/components/Empty.css +1 -1
  102. package/dist/web/components/Empty.js.zyzz.json +1 -1
  103. package/dist/web/components/Field.css +1 -1
  104. package/dist/web/components/Field.d.ts +41 -5
  105. package/dist/web/components/Field.d.ts.map +1 -1
  106. package/dist/web/components/Field.js +19 -13
  107. package/dist/web/components/Field.js.map +1 -1
  108. package/dist/web/components/Field.js.zyzz.json +1 -1
  109. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  110. package/dist/web/components/Frame.css +1 -1
  111. package/dist/web/components/Frame.js.zyzz.json +1 -1
  112. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  113. package/dist/web/components/GetStartedVisual.css +1 -0
  114. package/dist/web/components/GetStartedVisual.d.ts +59 -0
  115. package/dist/web/components/GetStartedVisual.d.ts.map +1 -0
  116. package/dist/web/components/GetStartedVisual.js +31 -0
  117. package/dist/web/components/GetStartedVisual.js.map +1 -0
  118. package/dist/web/components/GetStartedVisual.js.zyzz.json +1 -0
  119. package/dist/web/components/Grid.js.zyzz.json +1 -1
  120. package/dist/web/components/HeroVisual.css +1 -0
  121. package/dist/web/components/HeroVisual.d.ts +96 -0
  122. package/dist/web/components/HeroVisual.d.ts.map +1 -0
  123. package/dist/web/components/HeroVisual.js +202 -0
  124. package/dist/web/components/HeroVisual.js.map +1 -0
  125. package/dist/web/components/HeroVisual.js.zyzz.json +1 -0
  126. package/dist/web/components/Hex.css +1 -1
  127. package/dist/web/components/Hex.js.zyzz.json +1 -1
  128. package/dist/web/components/IconTile.css +1 -1
  129. package/dist/web/components/IconTile.js.zyzz.json +1 -1
  130. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  131. package/dist/web/components/Inline.js.zyzz.json +1 -1
  132. package/dist/web/components/Inset.js.zyzz.json +1 -1
  133. package/dist/web/components/Kbd.css +1 -1
  134. package/dist/web/components/Kbd.d.ts +8 -7
  135. package/dist/web/components/Kbd.d.ts.map +1 -1
  136. package/dist/web/components/Kbd.js +1 -1
  137. package/dist/web/components/Kbd.js.map +1 -1
  138. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  139. package/dist/web/components/ListGroup.css +1 -1
  140. package/dist/web/components/ListGroup.d.ts +39 -22
  141. package/dist/web/components/ListGroup.d.ts.map +1 -1
  142. package/dist/web/components/ListGroup.js +24 -21
  143. package/dist/web/components/ListGroup.js.map +1 -1
  144. package/dist/web/components/ListGroup.js.zyzz.json +1 -1
  145. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  146. package/dist/web/components/Menu.css +1 -1
  147. package/dist/web/components/Menu.js.zyzz.json +1 -1
  148. package/dist/web/components/NativeSelect.css +1 -0
  149. package/dist/web/components/NativeSelect.d.ts +50 -0
  150. package/dist/web/components/NativeSelect.d.ts.map +1 -0
  151. package/dist/web/components/NativeSelect.js +50 -0
  152. package/dist/web/components/NativeSelect.js.map +1 -0
  153. package/dist/web/components/NativeSelect.js.zyzz.json +1 -0
  154. package/dist/web/components/NetworkLogo.js.zyzz.json +1 -1
  155. package/dist/web/components/NumberField.css +1 -1
  156. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  157. package/dist/web/components/OtpField.css +1 -1
  158. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  159. package/dist/web/components/Pagination.css +1 -1
  160. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  161. package/dist/web/components/Popover.css +1 -1
  162. package/dist/web/components/Popover.js.zyzz.json +1 -1
  163. package/dist/web/components/Progress.css +1 -1
  164. package/dist/web/components/Progress.d.ts +1 -1
  165. package/dist/web/components/Progress.d.ts.map +1 -1
  166. package/dist/web/components/Progress.js +2 -1
  167. package/dist/web/components/Progress.js.map +1 -1
  168. package/dist/web/components/Progress.js.zyzz.json +1 -1
  169. package/dist/web/components/Qr.js.zyzz.json +1 -1
  170. package/dist/web/components/RadioGroup.css +1 -1
  171. package/dist/web/components/RadioGroup.d.ts +1 -1
  172. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  173. package/dist/web/components/SecretValue.css +1 -1
  174. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  175. package/dist/web/components/Select.css +1 -1
  176. package/dist/web/components/Select.d.ts +1 -1
  177. package/dist/web/components/Select.d.ts.map +1 -1
  178. package/dist/web/components/Select.js +2 -2
  179. package/dist/web/components/Select.js.map +1 -1
  180. package/dist/web/components/Select.js.zyzz.json +1 -1
  181. package/dist/web/components/Separator.css +1 -1
  182. package/dist/web/components/Separator.js.zyzz.json +1 -1
  183. package/dist/web/components/SidebarMenu.css +1 -1
  184. package/dist/web/components/SidebarMenu.d.ts +60 -2
  185. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  186. package/dist/web/components/SidebarMenu.js +47 -16
  187. package/dist/web/components/SidebarMenu.js.map +1 -1
  188. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  189. package/dist/web/components/Skeleton.css +1 -1
  190. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  191. package/dist/web/components/Slider.css +1 -1
  192. package/dist/web/components/Slider.js.zyzz.json +1 -1
  193. package/dist/web/components/Snippet.css +1 -1
  194. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  195. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  196. package/dist/web/components/SplitBar.css +1 -1
  197. package/dist/web/components/SplitBar.js.zyzz.json +1 -1
  198. package/dist/web/components/SplitButton.css +1 -1
  199. package/dist/web/components/SplitButton.d.ts +3 -1
  200. package/dist/web/components/SplitButton.d.ts.map +1 -1
  201. package/dist/web/components/SplitButton.js +2 -2
  202. package/dist/web/components/SplitButton.js.map +1 -1
  203. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  204. package/dist/web/components/Stack.js.zyzz.json +1 -1
  205. package/dist/web/components/StatusChip.css +1 -1
  206. package/dist/web/components/StatusChip.js.zyzz.json +1 -1
  207. package/dist/web/components/StatusIndicator.css +1 -0
  208. package/dist/web/components/StatusIndicator.d.ts +74 -0
  209. package/dist/web/components/StatusIndicator.d.ts.map +1 -0
  210. package/dist/web/components/StatusIndicator.js +32 -0
  211. package/dist/web/components/StatusIndicator.js.map +1 -0
  212. package/dist/web/components/StatusIndicator.js.zyzz.json +1 -0
  213. package/dist/web/components/StatusRow.css +1 -1
  214. package/dist/web/components/StatusRow.js.zyzz.json +1 -1
  215. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  216. package/dist/web/components/SuccessHero.css +1 -0
  217. package/dist/web/components/SuccessHero.d.ts +74 -0
  218. package/dist/web/components/SuccessHero.d.ts.map +1 -0
  219. package/dist/web/components/SuccessHero.js +167 -0
  220. package/dist/web/components/SuccessHero.js.map +1 -0
  221. package/dist/web/components/SuccessHero.js.zyzz.json +1 -0
  222. package/dist/web/components/Surface.css +1 -1
  223. package/dist/web/components/Surface.d.ts +86 -0
  224. package/dist/web/components/Surface.d.ts.map +1 -1
  225. package/dist/web/components/Surface.js +6 -3
  226. package/dist/web/components/Surface.js.map +1 -1
  227. package/dist/web/components/Surface.js.zyzz.json +1 -1
  228. package/dist/web/components/Switch.css +1 -1
  229. package/dist/web/components/Switch.d.ts +6 -6
  230. package/dist/web/components/Switch.d.ts.map +1 -1
  231. package/dist/web/components/Switch.js +3 -2
  232. package/dist/web/components/Switch.js.map +1 -1
  233. package/dist/web/components/Switch.js.zyzz.json +1 -1
  234. package/dist/web/components/Table.css +1 -1
  235. package/dist/web/components/Table.d.ts +85 -0
  236. package/dist/web/components/Table.d.ts.map +1 -1
  237. package/dist/web/components/Table.js +14 -6
  238. package/dist/web/components/Table.js.map +1 -1
  239. package/dist/web/components/Table.js.zyzz.json +1 -1
  240. package/dist/web/components/Tabs.css +1 -1
  241. package/dist/web/components/Tabs.d.ts +183 -6
  242. package/dist/web/components/Tabs.d.ts.map +1 -1
  243. package/dist/web/components/Tabs.js +18 -13
  244. package/dist/web/components/Tabs.js.map +1 -1
  245. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  246. package/dist/web/components/TempoLogo.js +1 -1
  247. package/dist/web/components/TempoLogo.js.map +1 -1
  248. package/dist/web/components/TempoLogo.js.zyzz.json +1 -1
  249. package/dist/web/components/TextInput.css +1 -1
  250. package/dist/web/components/TextInput.d.ts +80 -2
  251. package/dist/web/components/TextInput.d.ts.map +1 -1
  252. package/dist/web/components/TextInput.js +19 -7
  253. package/dist/web/components/TextInput.js.map +1 -1
  254. package/dist/web/components/TextInput.js.zyzz.json +1 -1
  255. package/dist/web/components/Textarea.css +1 -1
  256. package/dist/web/components/Textarea.d.ts +7 -1
  257. package/dist/web/components/Textarea.d.ts.map +1 -1
  258. package/dist/web/components/Textarea.js +3 -2
  259. package/dist/web/components/Textarea.js.map +1 -1
  260. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  261. package/dist/web/components/Toast.css +1 -1
  262. package/dist/web/components/Toast.d.ts +16 -3
  263. package/dist/web/components/Toast.d.ts.map +1 -1
  264. package/dist/web/components/Toast.js +29 -17
  265. package/dist/web/components/Toast.js.map +1 -1
  266. package/dist/web/components/Toast.js.zyzz.json +1 -1
  267. package/dist/web/components/Token.css +1 -1
  268. package/dist/web/components/Token.js.zyzz.json +1 -1
  269. package/dist/web/components/TokenLogo.js.zyzz.json +1 -1
  270. package/dist/web/components/Tooltip.css +1 -1
  271. package/dist/web/components/Tooltip.d.ts.map +1 -1
  272. package/dist/web/components/Tooltip.js +3 -2
  273. package/dist/web/components/Tooltip.js.map +1 -1
  274. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  275. package/dist/web/components/VerificationCode.css +1 -1
  276. package/dist/web/components/VerificationCode.js.zyzz.json +1 -1
  277. package/dist/web/components/Visual.js.zyzz.json +1 -1
  278. package/dist/web/components/internal/Field.css +1 -1
  279. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  280. package/dist/web/components/internal/GetStartedArtwork.d.ts +10 -0
  281. package/dist/web/components/internal/GetStartedArtwork.d.ts.map +1 -0
  282. package/dist/web/components/internal/GetStartedArtwork.js +11 -0
  283. package/dist/web/components/internal/GetStartedArtwork.js.map +1 -0
  284. package/dist/web/components/internal/InputGroup.css +1 -1
  285. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  286. package/dist/web/components/internal/Listbox.css +1 -1
  287. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  288. package/dist/web/components/internal/Streaks.css +1 -0
  289. package/dist/web/components/internal/Streaks.d.ts +48 -0
  290. package/dist/web/components/internal/Streaks.d.ts.map +1 -0
  291. package/dist/web/components/internal/Streaks.js +48 -0
  292. package/dist/web/components/internal/Streaks.js.map +1 -0
  293. package/dist/web/components/internal/Streaks.js.zyzz.json +1 -0
  294. package/dist/web/components/internal/TabBar.d.ts +37 -0
  295. package/dist/web/components/internal/TabBar.d.ts.map +1 -0
  296. package/dist/web/components/internal/TabBar.js +30 -0
  297. package/dist/web/components/internal/TabBar.js.map +1 -0
  298. package/dist/web/components/internal/Text.d.ts +9 -0
  299. package/dist/web/components/internal/Text.d.ts.map +1 -0
  300. package/dist/web/components/internal/Text.js +35 -0
  301. package/dist/web/components/internal/Text.js.map +1 -0
  302. package/dist/web/index.d.ts +8 -0
  303. package/dist/web/index.d.ts.map +1 -1
  304. package/dist/web/index.js +8 -0
  305. package/dist/web/index.js.map +1 -1
  306. package/dist/web/index.js.zyzz.json +1 -1
  307. package/dist/web/vars.d.ts +51 -6
  308. package/dist/web/vars.d.ts.map +1 -1
  309. package/dist/web/vars.js.map +1 -1
  310. package/dist/web/vars.js.zyzz.json +1 -1
  311. package/dist/web/zyzz.config.d.ts +255 -30
  312. package/dist/web/zyzz.config.d.ts.map +1 -1
  313. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  314. package/package.json +1 -1
  315. package/src/web/components/AddressCard.tsx +216 -0
  316. package/src/web/components/AgentLogo.tsx +1 -1
  317. package/src/web/components/Alert.tsx +25 -5
  318. package/src/web/components/AmountInput.tsx +1 -1
  319. package/src/web/components/AppShell.tsx +383 -22
  320. package/src/web/components/AssetChip.tsx +4 -1
  321. package/src/web/components/Avatar.tsx +73 -6
  322. package/src/web/components/Badge.tsx +43 -5
  323. package/src/web/components/Button.tsx +78 -21
  324. package/src/web/components/Callout.tsx +45 -0
  325. package/src/web/components/ChoiceGroup.tsx +26 -12
  326. package/src/web/components/Code.tsx +42 -0
  327. package/src/web/components/CopyButton.tsx +8 -4
  328. package/src/web/components/Dialog.tsx +9 -2
  329. package/src/web/components/Field.tsx +53 -20
  330. package/src/web/components/GetStartedVisual.tsx +66 -0
  331. package/src/web/components/HeroVisual.tsx +304 -0
  332. package/src/web/components/Kbd.tsx +16 -9
  333. package/src/web/components/ListGroup.tsx +75 -28
  334. package/src/web/components/NativeSelect.tsx +167 -0
  335. package/src/web/components/Progress.tsx +3 -2
  336. package/src/web/components/RadioGroup.tsx +1 -1
  337. package/src/web/components/Select.tsx +4 -1
  338. package/src/web/components/SidebarMenu.tsx +106 -7
  339. package/src/web/components/SplitButton.tsx +11 -4
  340. package/src/web/components/StatusIndicator.tsx +94 -0
  341. package/src/web/components/SuccessHero.tsx +249 -0
  342. package/src/web/components/Surface.tsx +107 -1
  343. package/src/web/components/Switch.tsx +18 -25
  344. package/src/web/components/Table.tsx +69 -1
  345. package/src/web/components/Tabs.tsx +172 -10
  346. package/src/web/components/TempoLogo.tsx +1 -1
  347. package/src/web/components/TextInput.tsx +87 -5
  348. package/src/web/components/Textarea.tsx +9 -1
  349. package/src/web/components/Toast.tsx +67 -34
  350. package/src/web/components/Tooltip.tsx +6 -4
  351. package/src/web/components/internal/GetStartedArtwork.tsx +356 -0
  352. package/src/web/components/internal/Streaks.tsx +173 -0
  353. package/src/web/components/internal/TabBar.ts +56 -0
  354. package/src/web/components/internal/Text.ts +39 -0
  355. package/src/web/components/visuals/GetStartedConnect.svg +36 -0
  356. package/src/web/components/visuals/GetStartedFunds.svg +31 -0
  357. package/src/web/components/visuals/GetStartedPasskey.svg +34 -0
  358. package/src/web/components/visuals/README.md +15 -0
  359. package/src/web/index.ts +8 -0
  360. package/src/web/logos/README.md +1 -1
  361. package/src/web/vars.ts +34 -10
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tempoxyz/ds",
3
3
  "type": "module",
4
- "version": "0.3.0",
4
+ "version": "0.3.2",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "DESIGN.md",
@@ -0,0 +1,216 @@
1
+ /**
2
+ * A receive card that pairs a wallet address with its QR code, a copy action, and the networks it
3
+ * accepts.
4
+ * @module
5
+ */
6
+ import type { ComponentPropsWithRef, ReactNode } from 'react'
7
+ import { useId } from 'react'
8
+ import type * as zyzz from 'zyzz'
9
+ import { style } from '../zyzz.config.js'
10
+ import { AssetChip } from './AssetChip.js'
11
+ import { CopyButton } from './CopyButton.js'
12
+ import { formatHex } from './Hex.js'
13
+ import { NetworkLogo } from './NetworkLogo.js'
14
+ import { Qr } from './Qr.js'
15
+
16
+ /**
17
+ * A bordered receive card with a 120px QR code of `address` beside the address, a copy button,
18
+ * and the networks that it accepts. The address shows its first and last four characters, and
19
+ * screen readers receive the full value. Pass `AddressCard.Networks` as children to list the
20
+ * networks.
21
+ *
22
+ * - Use it where a person receives funds, such as a deposit or top-up screen.
23
+ * - List only the networks that the address accepts, and mark the picked one `selected`.
24
+ * - Use `Hex` with `copy` for an address inside a row or a sentence.
25
+ *
26
+ * @example
27
+ * <AddressCard address={address}>
28
+ * <AddressCard.Networks>
29
+ * <AddressCard.Network network="tempo" selected>
30
+ * Tempo
31
+ * </AddressCard.Network>
32
+ * <AddressCard.Network network="base">Base</AddressCard.Network>
33
+ * </AddressCard.Networks>
34
+ * </AddressCard>
35
+ *
36
+ * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html | WCAG 2.2 Non-text Content}
37
+ * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html | WCAG 2.2 Name, Role, Value}
38
+ */
39
+ export function AddressCard(props: AddressCard.Props) {
40
+ const { address, children, className, label = 'Your wallet address', vars, ...attributes } = props
41
+
42
+ return (
43
+ <div {...attributes} {...styles.card({ className, style: props.style, vars })}>
44
+ <div {...styles.qr()}>
45
+ <Qr value={address} />
46
+ </div>
47
+ <div {...styles.details()}>
48
+ <div {...styles.section()}>
49
+ <span {...styles.label()}>{label}</span>
50
+ <div {...styles.row()}>
51
+ <span {...styles.address()}>
52
+ <span aria-hidden="true">{formatHex(address)}</span>
53
+ <span {...styles.hidden()}>{address}</span>
54
+ </span>
55
+ <CopyButton aria-label="Copy address" value={address} variant="secondary" />
56
+ </div>
57
+ </div>
58
+ {children}
59
+ </div>
60
+ </div>
61
+ )
62
+ }
63
+
64
+ export namespace AddressCard {
65
+ export type Props = ComponentPropsWithRef<'div'> &
66
+ zyzz.Props.Variants<typeof styles.card> & {
67
+ /** Wallet address that the QR code encodes and the copy button writes. */
68
+ address: string
69
+ /**
70
+ * Label above the address.
71
+ * @default 'Your wallet address'
72
+ */
73
+ label?: ReactNode | undefined
74
+ }
75
+
76
+ /**
77
+ * One network that the address accepts, rendered as an `AssetChip` with the 12px logo of
78
+ * `network` before its text. Give it an `onClick` to pick a network, and set `selected` on the
79
+ * picked one.
80
+ */
81
+ export function Network(props: Network.Props) {
82
+ const { children, className, network, ...attributes } = props
83
+
84
+ return (
85
+ <AssetChip {...attributes} {...styles.network({ className, style: props.style })}>
86
+ <NetworkLogo network={network} />
87
+ {children}
88
+ </AssetChip>
89
+ )
90
+ }
91
+
92
+ export namespace Network {
93
+ export type Props = Omit<AssetChip.Props, 'vars'> & {
94
+ /** Network whose logo renders before the text. */
95
+ network: NetworkLogo.Props['network']
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Lists the `AddressCard.Network` chips under a label, wrapping them onto more rows. Screen
101
+ * readers announce the chips as a group named by the label.
102
+ */
103
+ export function Networks(props: Networks.Props) {
104
+ const { children, className, label = 'Network', vars, ...attributes } = props
105
+ const id = useId()
106
+
107
+ return (
108
+ <div {...attributes} {...styles.networks({ className, style: props.style, vars })}>
109
+ <span id={id} {...styles.label()}>
110
+ {label}
111
+ </span>
112
+ <div aria-labelledby={id} role="group" {...styles.chips()}>
113
+ {children}
114
+ </div>
115
+ </div>
116
+ )
117
+ }
118
+
119
+ export namespace Networks {
120
+ export type Props = ComponentPropsWithRef<'div'> &
121
+ zyzz.Props.Variants<typeof styles.networks> & {
122
+ /**
123
+ * Label above the chips, which also names their group.
124
+ * @default 'Network'
125
+ */
126
+ label?: ReactNode | undefined
127
+ }
128
+ }
129
+ }
130
+
131
+ namespace styles {
132
+ export const address = style(
133
+ { color: 'content.primary', typography: 'mono.m1', whiteSpace: 'nowrap' },
134
+ { id: 'tds/web/address-card/address' },
135
+ )
136
+
137
+ // The card pads its 16px corner by 16px inside its 1px border.
138
+ export const card = style(
139
+ {
140
+ borderColor: 'line.secondary',
141
+ borderRadius: 'sm',
142
+ borderStyle: 'solid',
143
+ borderWidth: 'regular',
144
+ boxSizing: 'border-box',
145
+ columnGap: '20',
146
+ display: 'flex',
147
+ padding: '16',
148
+ },
149
+ { id: 'tds/web/address-card' },
150
+ )
151
+
152
+ export const chips = style(
153
+ { columnGap: '6', display: 'flex', flexWrap: 'wrap', rowGap: '6' },
154
+ { id: 'tds/web/address-card/chips' },
155
+ )
156
+
157
+ export const details = style(
158
+ { display: 'flex', flex: '1 !custom', flexDirection: 'column', minWidth: '0', rowGap: '16' },
159
+ { id: 'tds/web/address-card/details' },
160
+ )
161
+
162
+ export const hidden = style(
163
+ {
164
+ clipPath: 'inset(50%) !custom',
165
+ height: '1',
166
+ overflow: 'hidden',
167
+ position: 'absolute',
168
+ whiteSpace: 'nowrap',
169
+ width: '1',
170
+ },
171
+ { id: 'tds/web/address-card/hidden' },
172
+ )
173
+
174
+ export const label = style(
175
+ { color: 'content.secondary', typography: 'body.b3' },
176
+ { id: 'tds/web/address-card/label' },
177
+ )
178
+
179
+ // The chip sizes a token image to its 12px logo slot, and the network logo takes the same slot.
180
+ export const network = style(
181
+ { selectors: { '& > svg': { height: '12', width: '12' } } },
182
+ { id: 'tds/web/address-card/network' },
183
+ )
184
+
185
+ export const networks = style(
186
+ { display: 'flex', flexDirection: 'column', rowGap: '8' },
187
+ { id: 'tds/web/address-card/networks' },
188
+ )
189
+
190
+ // Figma pads the 12px corner of the QR frame by 8px, below its radius, and the 120px code fills
191
+ // the rest.
192
+ export const qr = style(
193
+ {
194
+ backgroundColor: 'background.elevated',
195
+ borderColor: 'line.secondary',
196
+ borderRadius: 'xs',
197
+ borderStyle: 'solid',
198
+ borderWidth: 'regular',
199
+ display: 'flex',
200
+ flexShrink: '0 !custom',
201
+ padding: '8',
202
+ selectors: { '& > svg': { height: '120', width: '120' } },
203
+ },
204
+ { id: 'tds/web/address-card/qr' },
205
+ )
206
+
207
+ export const row = style(
208
+ { alignItems: 'center', columnGap: '8', display: 'flex' },
209
+ { id: 'tds/web/address-card/row' },
210
+ )
211
+
212
+ export const section = style(
213
+ { display: 'flex', flexDirection: 'column', rowGap: '4' },
214
+ { id: 'tds/web/address-card/section' },
215
+ )
216
+ }
@@ -2,7 +2,7 @@ import { type ComponentPropsWithRef, type ReactNode, useId } from 'react'
2
2
  import type * as zyzz from 'zyzz'
3
3
  import { variants } from '../zyzz.config.js'
4
4
 
5
- // The Agent Logo marks from the TDPS page of Web-Wallet, with each clip and gradient ID suffixed
5
+ // The Agent marks of the Logo component in TPDS 1.0 Platform, with each clip and gradient ID suffixed
6
6
  // per instance. A brand tile fills with the agent's color and draws its white mark in
7
7
  // `currentColor`. An outlined tile draws the mark in its own colors, or in `currentColor` for a
8
8
  // black mark.
@@ -48,7 +48,8 @@ export namespace Alert {
48
48
 
49
49
  /**
50
50
  * A text `<button>` with a 44px tall target, in the alert's strong type. Place it inside
51
- * `Alert.Content`, after the message. Name the action it performs, such as Review fees.
51
+ * `Alert.Content`, after the message, or at the end of the row, where its label sits in line
52
+ * with the first line. Name the action it performs, such as Review fees.
52
53
  */
53
54
  export function Action(props: Action.Props) {
54
55
  const { className, vars, ...attributes } = props
@@ -70,7 +71,8 @@ export namespace Alert {
70
71
 
71
72
  /**
72
73
  * Stacks the title, message, and action in a `<div>` that fills the row and can shrink, so long
73
- * text wraps beside the indicator.
74
+ * text wraps beside the indicator. The message flows as text. When it sits beside a paragraph or
75
+ * a list, wrap it in a `p`, so the blocks keep their 4px gap.
74
76
  */
75
77
  export function Content(props: Content.Props) {
76
78
  const { className, vars, ...attributes } = props
@@ -176,13 +178,28 @@ namespace styles {
176
178
  { id: 'tds/web/alert/action' },
177
179
  )
178
180
 
181
+ // The message flows as text, so inline elements such as `strong` stay on its lines. The title,
182
+ // the action and block children each take a line of their own, 4px from the content beside
183
+ // them.
179
184
  export const content = style(
180
185
  {
181
- display: 'flex',
186
+ display: 'block',
182
187
  flex: '1 !custom',
183
- flexDirection: 'column',
184
188
  minWidth: '0',
185
- rowGap: '4',
189
+ selectors: {
190
+ '& > [data-alert-action]': {
191
+ display: 'flex',
192
+ marginBlockStart: '4',
193
+ width: 'fit-content !custom',
194
+ },
195
+ '& > [data-alert-title]': { marginBlockEnd: '4' },
196
+ // The browser's block margins of paragraphs and lists give way to the 4px gap. `:where`
197
+ // keeps the reset below any class that sets a margin of its own.
198
+ '& > :where(p, ul, ol)': { marginBlock: '0' },
199
+ // A list sits 4px below the message, and a paragraph 4px below the element before it. A
200
+ // list follows text in practice, which CSS cannot select, so it always takes the gap.
201
+ '& > :is(ul, ol), & > * + :is(p, div)': { marginBlockStart: '4' },
202
+ },
186
203
  },
187
204
  { id: 'tds/web/alert/content' },
188
205
  )
@@ -260,6 +277,9 @@ namespace styles {
260
277
  padding: '16',
261
278
  typography: 'body.b3',
262
279
  selectors: {
280
+ // An action at the end of the row centers its 44px target on the 16px first line, so its
281
+ // label stays in line with the message.
282
+ '& > [data-alert-action]': { marginBlock: 'calc((1rem - 2.75rem) / 2) !custom' },
263
283
  '& [data-alert-action], & [data-alert-title]': { typography: 'body.b3Strong' },
264
284
  '& [data-alert-icon]': { height: '16', width: '16' },
265
285
  },
@@ -74,7 +74,7 @@ export namespace AmountInput {
74
74
  export namespace Root {
75
75
  export type Props = Omit<
76
76
  TextInput.Group.Props,
77
- 'defaultValue' | 'onChange' | 'success' | 'variant'
77
+ 'appearance' | 'defaultValue' | 'onChange' | 'size' | 'success' | 'variant'
78
78
  > & {
79
79
  /** @default '' */
80
80
  defaultValue?: string | undefined