@tempoxyz/ds 0.2.6 → 0.3.1

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 (662) hide show
  1. package/README.md +2 -0
  2. package/dist/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  3. package/dist/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  4. package/dist/fonts/JetBrainsMono-Bold.woff2 +0 -0
  5. package/dist/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  6. package/dist/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  7. package/dist/fonts/JetBrainsMono-Medium.woff2 +0 -0
  8. package/dist/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  9. package/dist/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  10. package/dist/fonts/JetBrainsMono-Regular.woff2 +0 -0
  11. package/dist/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  12. package/dist/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  13. package/dist/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  14. package/dist/fonts/Pilat-Black-latin.woff2 +0 -0
  15. package/dist/fonts/Pilat-Black-other.woff2 +0 -0
  16. package/dist/fonts/Pilat-Black.woff2 +0 -0
  17. package/dist/fonts/Pilat-Bold-latin.woff2 +0 -0
  18. package/dist/fonts/Pilat-Bold-other.woff2 +0 -0
  19. package/dist/fonts/Pilat-Bold.woff2 +0 -0
  20. package/dist/fonts/Pilat-Book-latin.woff2 +0 -0
  21. package/dist/fonts/Pilat-Book-other.woff2 +0 -0
  22. package/dist/fonts/Pilat-Book.woff2 +0 -0
  23. package/dist/fonts/Pilat-Demi-latin.woff2 +0 -0
  24. package/dist/fonts/Pilat-Demi-other.woff2 +0 -0
  25. package/dist/fonts/Pilat-Demi.woff2 +0 -0
  26. package/dist/fonts/Pilat-Heavy-latin.woff2 +0 -0
  27. package/dist/fonts/Pilat-Heavy-other.woff2 +0 -0
  28. package/dist/fonts/Pilat-Heavy.woff2 +0 -0
  29. package/dist/fonts/Pilat-Light-latin.woff2 +0 -0
  30. package/dist/fonts/Pilat-Light-other.woff2 +0 -0
  31. package/dist/fonts/Pilat-Light.woff2 +0 -0
  32. package/dist/fonts/Pilat-Regular-latin.woff2 +0 -0
  33. package/dist/fonts/Pilat-Regular-other.woff2 +0 -0
  34. package/dist/fonts/Pilat-Regular.woff2 +0 -0
  35. package/dist/fonts/Pilat-Thin-latin.woff2 +0 -0
  36. package/dist/fonts/Pilat-Thin-other.woff2 +0 -0
  37. package/dist/fonts/Pilat-Thin.woff2 +0 -0
  38. package/dist/oxlint/rules/PreferComponent.js +6 -6
  39. package/dist/oxlint/rules/PreferComponent.js.map +1 -1
  40. package/dist/web/components/Accordion.css +1 -1
  41. package/dist/web/components/Accordion.d.ts +7 -7
  42. package/dist/web/components/Accordion.js.map +1 -1
  43. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  44. package/dist/web/components/AgentLogo.css +1 -0
  45. package/dist/web/components/AgentLogo.d.ts +206 -0
  46. package/dist/web/components/AgentLogo.d.ts.map +1 -0
  47. package/dist/web/components/AgentLogo.js +86 -0
  48. package/dist/web/components/AgentLogo.js.map +1 -0
  49. package/dist/web/components/AgentLogo.js.zyzz.json +1 -0
  50. package/dist/web/components/Alert.css +1 -0
  51. package/dist/web/components/Alert.d.ts +161 -0
  52. package/dist/web/components/Alert.d.ts.map +1 -0
  53. package/dist/web/components/Alert.js +97 -0
  54. package/dist/web/components/Alert.js.map +1 -0
  55. package/dist/web/components/Alert.js.zyzz.json +1 -0
  56. package/dist/web/components/AlertDialog.d.ts +40 -28
  57. package/dist/web/components/AlertDialog.d.ts.map +1 -1
  58. package/dist/web/components/AlertDialog.js +31 -36
  59. package/dist/web/components/AlertDialog.js.map +1 -1
  60. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  61. package/dist/web/components/Amount.css +1 -1
  62. package/dist/web/components/Amount.d.ts +5 -5
  63. package/dist/web/components/Amount.d.ts.map +1 -1
  64. package/dist/web/components/Amount.js.map +1 -1
  65. package/dist/web/components/Amount.js.zyzz.json +1 -1
  66. package/dist/web/components/AmountInput.css +1 -1
  67. package/dist/web/components/AmountInput.d.ts +20 -39
  68. package/dist/web/components/AmountInput.d.ts.map +1 -1
  69. package/dist/web/components/AmountInput.js +31 -37
  70. package/dist/web/components/AmountInput.js.map +1 -1
  71. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  72. package/dist/web/components/AppShell.css +1 -1
  73. package/dist/web/components/AppShell.d.ts +172 -28
  74. package/dist/web/components/AppShell.d.ts.map +1 -1
  75. package/dist/web/components/AppShell.js +89 -29
  76. package/dist/web/components/AppShell.js.map +1 -1
  77. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  78. package/dist/web/components/AssetChip.css +1 -0
  79. package/dist/web/components/AssetChip.d.ts +38 -0
  80. package/dist/web/components/AssetChip.d.ts.map +1 -0
  81. package/dist/web/components/AssetChip.js +47 -0
  82. package/dist/web/components/AssetChip.js.map +1 -0
  83. package/dist/web/components/AssetChip.js.zyzz.json +1 -0
  84. package/dist/web/components/Autocomplete.d.ts +2 -2
  85. package/dist/web/components/Autocomplete.js +4 -4
  86. package/dist/web/components/Autocomplete.js.map +1 -1
  87. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  88. package/dist/web/components/Avatar.css +1 -1
  89. package/dist/web/components/Avatar.d.ts +40 -115
  90. package/dist/web/components/Avatar.d.ts.map +1 -1
  91. package/dist/web/components/Avatar.js +19 -32
  92. package/dist/web/components/Avatar.js.map +1 -1
  93. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  94. package/dist/web/components/Badge.css +1 -0
  95. package/dist/web/components/Badge.d.ts +134 -0
  96. package/dist/web/components/Badge.d.ts.map +1 -0
  97. package/dist/web/components/Badge.js +38 -0
  98. package/dist/web/components/Badge.js.map +1 -0
  99. package/dist/web/components/Badge.js.zyzz.json +1 -0
  100. package/dist/web/components/Banner.css +1 -1
  101. package/dist/web/components/Banner.d.ts +12 -12
  102. package/dist/web/components/Banner.d.ts.map +1 -1
  103. package/dist/web/components/Banner.js +5 -5
  104. package/dist/web/components/Banner.js.map +1 -1
  105. package/dist/web/components/Banner.js.zyzz.json +1 -1
  106. package/dist/web/components/BarChart.css +1 -0
  107. package/dist/web/components/BarChart.d.ts +155 -0
  108. package/dist/web/components/BarChart.d.ts.map +1 -0
  109. package/dist/web/components/BarChart.js +119 -0
  110. package/dist/web/components/BarChart.js.map +1 -0
  111. package/dist/web/components/BarChart.js.zyzz.json +1 -0
  112. package/dist/web/components/Breadcrumbs.css +1 -1
  113. package/dist/web/components/Breadcrumbs.d.ts +6 -6
  114. package/dist/web/components/Breadcrumbs.js.map +1 -1
  115. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  116. package/dist/web/components/Button.css +1 -1
  117. package/dist/web/components/Button.d.ts +167 -32
  118. package/dist/web/components/Button.d.ts.map +1 -1
  119. package/dist/web/components/Button.js +14 -9
  120. package/dist/web/components/Button.js.map +1 -1
  121. package/dist/web/components/Button.js.zyzz.json +1 -1
  122. package/dist/web/components/ButtonGroup.css +1 -0
  123. package/dist/web/components/ButtonGroup.d.ts +56 -0
  124. package/dist/web/components/ButtonGroup.d.ts.map +1 -0
  125. package/dist/web/components/ButtonGroup.js +33 -0
  126. package/dist/web/components/ButtonGroup.js.map +1 -0
  127. package/dist/web/components/ButtonGroup.js.zyzz.json +1 -0
  128. package/dist/web/components/Calendar.css +1 -1
  129. package/dist/web/components/Calendar.d.ts.map +1 -1
  130. package/dist/web/components/Calendar.js +7 -7
  131. package/dist/web/components/Calendar.js.map +1 -1
  132. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  133. package/dist/web/components/Checkbox.css +1 -1
  134. package/dist/web/components/Checkbox.d.ts +11 -11
  135. package/dist/web/components/Checkbox.d.ts.map +1 -1
  136. package/dist/web/components/Checkbox.js +4 -1
  137. package/dist/web/components/Checkbox.js.map +1 -1
  138. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  139. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  140. package/dist/web/components/ChoiceGroup.css +1 -1
  141. package/dist/web/components/ChoiceGroup.d.ts +44 -16
  142. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  143. package/dist/web/components/ChoiceGroup.js +32 -8
  144. package/dist/web/components/ChoiceGroup.js.map +1 -1
  145. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  146. package/dist/web/components/Choicebox.css +1 -1
  147. package/dist/web/components/Choicebox.d.ts +9 -9
  148. package/dist/web/components/Choicebox.d.ts.map +1 -1
  149. package/dist/web/components/Choicebox.js +6 -6
  150. package/dist/web/components/Choicebox.js.map +1 -1
  151. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  152. package/dist/web/components/Combobox.css +1 -1
  153. package/dist/web/components/Combobox.d.ts +2 -2
  154. package/dist/web/components/Combobox.d.ts.map +1 -1
  155. package/dist/web/components/Combobox.js +8 -8
  156. package/dist/web/components/Combobox.js.map +1 -1
  157. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  158. package/dist/web/components/Container.js.zyzz.json +1 -1
  159. package/dist/web/components/CopyButton.js +1 -1
  160. package/dist/web/components/CopyButton.js.map +1 -1
  161. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  162. package/dist/web/components/DatePicker.css +1 -1
  163. package/dist/web/components/DatePicker.d.ts +37 -56
  164. package/dist/web/components/DatePicker.d.ts.map +1 -1
  165. package/dist/web/components/DatePicker.js +7 -7
  166. package/dist/web/components/DatePicker.js.map +1 -1
  167. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  168. package/dist/web/components/Dialog.css +1 -1
  169. package/dist/web/components/Dialog.d.ts +189 -20
  170. package/dist/web/components/Dialog.d.ts.map +1 -1
  171. package/dist/web/components/Dialog.js +93 -26
  172. package/dist/web/components/Dialog.js.map +1 -1
  173. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  174. package/dist/web/components/Drawer.css +1 -1
  175. package/dist/web/components/Drawer.d.ts +7 -2
  176. package/dist/web/components/Drawer.d.ts.map +1 -1
  177. package/dist/web/components/Drawer.js +12 -6
  178. package/dist/web/components/Drawer.js.map +1 -1
  179. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  180. package/dist/web/components/Empty.css +1 -1
  181. package/dist/web/components/Empty.d.ts +2 -0
  182. package/dist/web/components/Empty.d.ts.map +1 -1
  183. package/dist/web/components/Empty.js +5 -3
  184. package/dist/web/components/Empty.js.map +1 -1
  185. package/dist/web/components/Empty.js.zyzz.json +1 -1
  186. package/dist/web/components/Field.css +1 -1
  187. package/dist/web/components/Field.d.ts +16 -21
  188. package/dist/web/components/Field.d.ts.map +1 -1
  189. package/dist/web/components/Field.js +38 -36
  190. package/dist/web/components/Field.js.map +1 -1
  191. package/dist/web/components/Field.js.zyzz.json +1 -1
  192. package/dist/web/components/Fieldset.css +1 -1
  193. package/dist/web/components/Fieldset.d.ts +9 -18
  194. package/dist/web/components/Fieldset.d.ts.map +1 -1
  195. package/dist/web/components/Fieldset.js +11 -14
  196. package/dist/web/components/Fieldset.js.map +1 -1
  197. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  198. package/dist/web/components/Frame.css +1 -1
  199. package/dist/web/components/Frame.d.ts +13 -19
  200. package/dist/web/components/Frame.d.ts.map +1 -1
  201. package/dist/web/components/Frame.js +8 -8
  202. package/dist/web/components/Frame.js.map +1 -1
  203. package/dist/web/components/Frame.js.zyzz.json +1 -1
  204. package/dist/web/components/Gauge.css +1 -1
  205. package/dist/web/components/Gauge.d.ts +2 -2
  206. package/dist/web/components/Gauge.d.ts.map +1 -1
  207. package/dist/web/components/Gauge.js.map +1 -1
  208. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  209. package/dist/web/components/Grid.js.zyzz.json +1 -1
  210. package/dist/web/components/Hex.css +1 -1
  211. package/dist/web/components/Hex.d.ts +11 -53
  212. package/dist/web/components/Hex.d.ts.map +1 -1
  213. package/dist/web/components/Hex.js +5 -7
  214. package/dist/web/components/Hex.js.map +1 -1
  215. package/dist/web/components/Hex.js.zyzz.json +1 -1
  216. package/dist/web/components/IconTile.css +1 -0
  217. package/dist/web/components/IconTile.d.ts +62 -0
  218. package/dist/web/components/IconTile.d.ts.map +1 -0
  219. package/dist/web/components/IconTile.js +28 -0
  220. package/dist/web/components/IconTile.js.map +1 -0
  221. package/dist/web/components/IconTile.js.zyzz.json +1 -0
  222. package/dist/web/components/Identicon.css +1 -1
  223. package/dist/web/components/Identicon.d.ts +1 -8
  224. package/dist/web/components/Identicon.d.ts.map +1 -1
  225. package/dist/web/components/Identicon.js +1 -4
  226. package/dist/web/components/Identicon.js.map +1 -1
  227. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  228. package/dist/web/components/Inline.js.zyzz.json +1 -1
  229. package/dist/web/components/Inset.js.zyzz.json +1 -1
  230. package/dist/web/components/Kbd.css +1 -1
  231. package/dist/web/components/Kbd.d.ts +7 -7
  232. package/dist/web/components/Kbd.js.map +1 -1
  233. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  234. package/dist/web/components/ListGroup.css +1 -0
  235. package/dist/web/components/ListGroup.d.ts +530 -0
  236. package/dist/web/components/ListGroup.d.ts.map +1 -0
  237. package/dist/web/components/ListGroup.js +270 -0
  238. package/dist/web/components/ListGroup.js.map +1 -0
  239. package/dist/web/components/ListGroup.js.zyzz.json +1 -0
  240. package/dist/web/components/LoadingDots.css +1 -1
  241. package/dist/web/components/LoadingDots.d.ts.map +1 -1
  242. package/dist/web/components/LoadingDots.js +2 -2
  243. package/dist/web/components/LoadingDots.js.map +1 -1
  244. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  245. package/dist/web/components/Menu.css +1 -1
  246. package/dist/web/components/Menu.d.ts +39 -20
  247. package/dist/web/components/Menu.d.ts.map +1 -1
  248. package/dist/web/components/Menu.js +12 -7
  249. package/dist/web/components/Menu.js.map +1 -1
  250. package/dist/web/components/Menu.js.zyzz.json +1 -1
  251. package/dist/web/components/NetworkLogo.css +1 -0
  252. package/dist/web/components/NetworkLogo.d.ts +58 -0
  253. package/dist/web/components/NetworkLogo.d.ts.map +1 -0
  254. package/dist/web/components/NetworkLogo.js +40 -0
  255. package/dist/web/components/NetworkLogo.js.map +1 -0
  256. package/dist/web/components/NetworkLogo.js.zyzz.json +1 -0
  257. package/dist/web/components/NumberField.css +1 -1
  258. package/dist/web/components/NumberField.d.ts +3 -3
  259. package/dist/web/components/NumberField.d.ts.map +1 -1
  260. package/dist/web/components/NumberField.js +5 -5
  261. package/dist/web/components/NumberField.js.map +1 -1
  262. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  263. package/dist/web/components/OtpField.css +1 -1
  264. package/dist/web/components/OtpField.d.ts +8 -68
  265. package/dist/web/components/OtpField.d.ts.map +1 -1
  266. package/dist/web/components/OtpField.js +12 -9
  267. package/dist/web/components/OtpField.js.map +1 -1
  268. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  269. package/dist/web/components/Pagination.css +1 -1
  270. package/dist/web/components/Pagination.d.ts +16 -14
  271. package/dist/web/components/Pagination.d.ts.map +1 -1
  272. package/dist/web/components/Pagination.js +3 -3
  273. package/dist/web/components/Pagination.js.map +1 -1
  274. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  275. package/dist/web/components/Popover.css +1 -1
  276. package/dist/web/components/Popover.js.map +1 -1
  277. package/dist/web/components/Popover.js.zyzz.json +1 -1
  278. package/dist/web/components/Progress.css +1 -1
  279. package/dist/web/components/Progress.d.ts +2 -2
  280. package/dist/web/components/Progress.d.ts.map +1 -1
  281. package/dist/web/components/Progress.js +5 -5
  282. package/dist/web/components/Progress.js.map +1 -1
  283. package/dist/web/components/Progress.js.zyzz.json +1 -1
  284. package/dist/web/components/Qr.css +1 -1
  285. package/dist/web/components/Qr.d.ts +1 -1
  286. package/dist/web/components/Qr.js.map +1 -1
  287. package/dist/web/components/Qr.js.zyzz.json +1 -1
  288. package/dist/web/components/RadioGroup.css +1 -1
  289. package/dist/web/components/RadioGroup.d.ts.map +1 -1
  290. package/dist/web/components/RadioGroup.js +2 -2
  291. package/dist/web/components/RadioGroup.js.map +1 -1
  292. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  293. package/dist/web/components/SecretValue.css +1 -1
  294. package/dist/web/components/SecretValue.d.ts +7 -7
  295. package/dist/web/components/SecretValue.js +1 -1
  296. package/dist/web/components/SecretValue.js.map +1 -1
  297. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  298. package/dist/web/components/Select.css +1 -1
  299. package/dist/web/components/Select.d.ts +64 -2
  300. package/dist/web/components/Select.d.ts.map +1 -1
  301. package/dist/web/components/Select.js +26 -9
  302. package/dist/web/components/Select.js.map +1 -1
  303. package/dist/web/components/Select.js.zyzz.json +1 -1
  304. package/dist/web/components/Separator.css +1 -1
  305. package/dist/web/components/Separator.d.ts +17 -3
  306. package/dist/web/components/Separator.d.ts.map +1 -1
  307. package/dist/web/components/Separator.js +40 -5
  308. package/dist/web/components/Separator.js.map +1 -1
  309. package/dist/web/components/Separator.js.zyzz.json +1 -1
  310. package/dist/web/components/SidebarMenu.css +1 -1
  311. package/dist/web/components/SidebarMenu.d.ts +238 -39
  312. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  313. package/dist/web/components/SidebarMenu.js +123 -20
  314. package/dist/web/components/SidebarMenu.js.map +1 -1
  315. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  316. package/dist/web/components/Skeleton.css +1 -1
  317. package/dist/web/components/Skeleton.d.ts +5 -3
  318. package/dist/web/components/Skeleton.d.ts.map +1 -1
  319. package/dist/web/components/Skeleton.js +1 -1
  320. package/dist/web/components/Skeleton.js.map +1 -1
  321. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  322. package/dist/web/components/Slider.css +1 -1
  323. package/dist/web/components/Slider.d.ts.map +1 -1
  324. package/dist/web/components/Slider.js +5 -5
  325. package/dist/web/components/Slider.js.map +1 -1
  326. package/dist/web/components/Slider.js.zyzz.json +1 -1
  327. package/dist/web/components/Snippet.css +1 -1
  328. package/dist/web/components/Snippet.d.ts +27 -65
  329. package/dist/web/components/Snippet.d.ts.map +1 -1
  330. package/dist/web/components/Snippet.js +47 -10
  331. package/dist/web/components/Snippet.js.map +1 -1
  332. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  333. package/dist/web/components/Spinner.css +1 -1
  334. package/dist/web/components/Spinner.d.ts +25 -16
  335. package/dist/web/components/Spinner.d.ts.map +1 -1
  336. package/dist/web/components/Spinner.js +11 -6
  337. package/dist/web/components/Spinner.js.map +1 -1
  338. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  339. package/dist/web/components/SplitBar.css +1 -0
  340. package/dist/web/components/SplitBar.d.ts +99 -0
  341. package/dist/web/components/SplitBar.d.ts.map +1 -0
  342. package/dist/web/components/SplitBar.js +49 -0
  343. package/dist/web/components/SplitBar.js.map +1 -0
  344. package/dist/web/components/SplitBar.js.zyzz.json +1 -0
  345. package/dist/web/components/SplitButton.css +1 -1
  346. package/dist/web/components/SplitButton.d.ts +4 -1
  347. package/dist/web/components/SplitButton.d.ts.map +1 -1
  348. package/dist/web/components/SplitButton.js +2 -2
  349. package/dist/web/components/SplitButton.js.map +1 -1
  350. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  351. package/dist/web/components/Stack.js.zyzz.json +1 -1
  352. package/dist/web/components/StatusChip.css +1 -0
  353. package/dist/web/components/StatusChip.d.ts +162 -0
  354. package/dist/web/components/StatusChip.d.ts.map +1 -0
  355. package/dist/web/components/StatusChip.js +37 -0
  356. package/dist/web/components/StatusChip.js.map +1 -0
  357. package/dist/web/components/StatusChip.js.zyzz.json +1 -0
  358. package/dist/web/components/StatusRow.css +1 -0
  359. package/dist/web/components/StatusRow.d.ts +121 -0
  360. package/dist/web/components/StatusRow.d.ts.map +1 -0
  361. package/dist/web/components/StatusRow.js +75 -0
  362. package/dist/web/components/StatusRow.js.map +1 -0
  363. package/dist/web/components/StatusRow.js.zyzz.json +1 -0
  364. package/dist/web/components/Stepper.css +1 -1
  365. package/dist/web/components/Stepper.d.ts +10 -7
  366. package/dist/web/components/Stepper.d.ts.map +1 -1
  367. package/dist/web/components/Stepper.js +5 -4
  368. package/dist/web/components/Stepper.js.map +1 -1
  369. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  370. package/dist/web/components/Surface.css +1 -1
  371. package/dist/web/components/Surface.d.ts +123 -101
  372. package/dist/web/components/Surface.d.ts.map +1 -1
  373. package/dist/web/components/Surface.js +20 -10
  374. package/dist/web/components/Surface.js.map +1 -1
  375. package/dist/web/components/Surface.js.zyzz.json +1 -1
  376. package/dist/web/components/Switch.css +1 -1
  377. package/dist/web/components/Switch.d.ts +14 -18
  378. package/dist/web/components/Switch.d.ts.map +1 -1
  379. package/dist/web/components/Switch.js +13 -15
  380. package/dist/web/components/Switch.js.map +1 -1
  381. package/dist/web/components/Switch.js.zyzz.json +1 -1
  382. package/dist/web/components/Table.css +1 -1
  383. package/dist/web/components/Table.d.ts +152 -67
  384. package/dist/web/components/Table.d.ts.map +1 -1
  385. package/dist/web/components/Table.js +92 -24
  386. package/dist/web/components/Table.js.map +1 -1
  387. package/dist/web/components/Table.js.zyzz.json +1 -1
  388. package/dist/web/components/Tabs.css +1 -1
  389. package/dist/web/components/Tabs.d.ts +49 -42
  390. package/dist/web/components/Tabs.d.ts.map +1 -1
  391. package/dist/web/components/Tabs.js +45 -14
  392. package/dist/web/components/Tabs.js.map +1 -1
  393. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  394. package/dist/web/components/TempoLogo.css +1 -0
  395. package/dist/web/components/TempoLogo.d.ts +47 -0
  396. package/dist/web/components/TempoLogo.d.ts.map +1 -0
  397. package/dist/web/components/TempoLogo.js +48 -0
  398. package/dist/web/components/TempoLogo.js.map +1 -0
  399. package/dist/web/components/TempoLogo.js.zyzz.json +1 -0
  400. package/dist/web/components/TextInput.css +1 -0
  401. package/dist/web/components/{Input.d.ts → TextInput.d.ts} +27 -18
  402. package/dist/web/components/TextInput.d.ts.map +1 -0
  403. package/dist/web/components/TextInput.js +138 -0
  404. package/dist/web/components/TextInput.js.map +1 -0
  405. package/dist/web/components/TextInput.js.zyzz.json +1 -0
  406. package/dist/web/components/Textarea.css +1 -1
  407. package/dist/web/components/Textarea.d.ts +29 -74
  408. package/dist/web/components/Textarea.d.ts.map +1 -1
  409. package/dist/web/components/Textarea.js +5 -12
  410. package/dist/web/components/Textarea.js.map +1 -1
  411. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  412. package/dist/web/components/Toast.css +1 -1
  413. package/dist/web/components/Toast.d.ts +4 -4
  414. package/dist/web/components/Toast.d.ts.map +1 -1
  415. package/dist/web/components/Toast.js +9 -9
  416. package/dist/web/components/Toast.js.map +1 -1
  417. package/dist/web/components/Toast.js.zyzz.json +1 -1
  418. package/dist/web/components/Token.css +1 -1
  419. package/dist/web/components/Token.d.ts +32 -90
  420. package/dist/web/components/Token.d.ts.map +1 -1
  421. package/dist/web/components/Token.js +27 -89
  422. package/dist/web/components/Token.js.map +1 -1
  423. package/dist/web/components/Token.js.zyzz.json +1 -1
  424. package/dist/web/components/TokenLogo.css +1 -0
  425. package/dist/web/components/TokenLogo.d.ts +117 -0
  426. package/dist/web/components/TokenLogo.d.ts.map +1 -0
  427. package/dist/web/components/TokenLogo.js +112 -0
  428. package/dist/web/components/TokenLogo.js.map +1 -0
  429. package/dist/web/components/TokenLogo.js.zyzz.json +1 -0
  430. package/dist/web/components/Tooltip.css +1 -1
  431. package/dist/web/components/Tooltip.js.map +1 -1
  432. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  433. package/dist/web/components/VerificationCode.css +1 -0
  434. package/dist/web/components/VerificationCode.d.ts +47 -0
  435. package/dist/web/components/VerificationCode.d.ts.map +1 -0
  436. package/dist/web/components/VerificationCode.js +55 -0
  437. package/dist/web/components/VerificationCode.js.map +1 -0
  438. package/dist/web/components/VerificationCode.js.zyzz.json +1 -0
  439. package/dist/web/components/Visual.css +1 -0
  440. package/dist/web/components/Visual.d.ts +65 -0
  441. package/dist/web/components/Visual.d.ts.map +1 -0
  442. package/dist/web/components/Visual.js +51 -0
  443. package/dist/web/components/Visual.js.map +1 -0
  444. package/dist/web/components/Visual.js.zyzz.json +1 -0
  445. package/dist/web/components/internal/Field.css +1 -1
  446. package/dist/web/components/internal/Field.d.ts +41 -87
  447. package/dist/web/components/internal/Field.d.ts.map +1 -1
  448. package/dist/web/components/internal/Field.js +8 -7
  449. package/dist/web/components/internal/Field.js.map +1 -1
  450. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  451. package/dist/web/components/internal/InputGroup.css +1 -1
  452. package/dist/web/components/internal/InputGroup.d.ts +38 -99
  453. package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
  454. package/dist/web/components/internal/InputGroup.js +6 -6
  455. package/dist/web/components/internal/InputGroup.js.map +1 -1
  456. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  457. package/dist/web/components/internal/Listbox.css +1 -1
  458. package/dist/web/components/internal/Listbox.d.ts +8 -8
  459. package/dist/web/components/internal/Listbox.js.map +1 -1
  460. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  461. package/dist/web/components/internal/RowDisabled.d.ts +3 -0
  462. package/dist/web/components/internal/RowDisabled.d.ts.map +1 -0
  463. package/dist/web/components/internal/RowDisabled.js +9 -0
  464. package/dist/web/components/internal/RowDisabled.js.map +1 -0
  465. package/dist/web/components/internal/RowsSize.d.ts +2 -3
  466. package/dist/web/components/internal/RowsSize.d.ts.map +1 -1
  467. package/dist/web/components/internal/RowsSize.js +3 -3
  468. package/dist/web/components/internal/RowsSize.js.map +1 -1
  469. package/dist/web/components/internal/TabBar.d.ts +33 -0
  470. package/dist/web/components/internal/TabBar.d.ts.map +1 -0
  471. package/dist/web/components/internal/TabBar.js +30 -0
  472. package/dist/web/components/internal/TabBar.js.map +1 -0
  473. package/dist/web/components/internal/Text.d.ts +9 -0
  474. package/dist/web/components/internal/Text.d.ts.map +1 -0
  475. package/dist/web/components/internal/Text.js +35 -0
  476. package/dist/web/components/internal/Text.js.map +1 -0
  477. package/dist/web/index.d.ts +18 -6
  478. package/dist/web/index.d.ts.map +1 -1
  479. package/dist/web/index.js +18 -6
  480. package/dist/web/index.js.map +1 -1
  481. package/dist/web/index.js.zyzz.json +1 -1
  482. package/dist/web/vars.d.ts +612 -704
  483. package/dist/web/vars.d.ts.map +1 -1
  484. package/dist/web/vars.js +7 -6
  485. package/dist/web/vars.js.map +1 -1
  486. package/dist/web/vars.js.zyzz.json +1 -1
  487. package/dist/web/zyzz.config.d.ts +3041 -3506
  488. package/dist/web/zyzz.config.d.ts.map +1 -1
  489. package/dist/web/zyzz.config.js +29 -3
  490. package/dist/web/zyzz.config.js.map +1 -1
  491. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  492. package/package.json +149 -5
  493. package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  494. package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  495. package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
  496. package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  497. package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  498. package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
  499. package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
  500. package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  501. package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  502. package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
  503. package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  504. package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  505. package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  506. package/src/fonts/Pilat-Black-latin.woff2 +0 -0
  507. package/src/fonts/Pilat-Black-other.woff2 +0 -0
  508. package/src/fonts/Pilat-Black.woff2 +0 -0
  509. package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
  510. package/src/fonts/Pilat-Bold-other.woff2 +0 -0
  511. package/src/fonts/Pilat-Bold.woff2 +0 -0
  512. package/src/fonts/Pilat-Book-latin.woff2 +0 -0
  513. package/src/fonts/Pilat-Book-other.woff2 +0 -0
  514. package/src/fonts/Pilat-Book.woff2 +0 -0
  515. package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
  516. package/src/fonts/Pilat-Demi-other.woff2 +0 -0
  517. package/src/fonts/Pilat-Demi.woff2 +0 -0
  518. package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
  519. package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
  520. package/src/fonts/Pilat-Heavy.woff2 +0 -0
  521. package/src/fonts/Pilat-Light-latin.woff2 +0 -0
  522. package/src/fonts/Pilat-Light-other.woff2 +0 -0
  523. package/src/fonts/Pilat-Light.woff2 +0 -0
  524. package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
  525. package/src/fonts/Pilat-Regular-other.woff2 +0 -0
  526. package/src/fonts/Pilat-Regular.woff2 +0 -0
  527. package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
  528. package/src/fonts/Pilat-Thin-other.woff2 +0 -0
  529. package/src/fonts/Pilat-Thin.woff2 +0 -0
  530. package/src/fonts/README.md +15 -2
  531. package/src/oxlint/rules/PreferComponent.ts +6 -6
  532. package/src/web/README.md +7 -7
  533. package/src/web/components/Accordion.tsx +8 -8
  534. package/src/web/components/AgentLogo.tsx +330 -0
  535. package/src/web/components/Alert.tsx +321 -0
  536. package/src/web/components/AlertDialog.tsx +47 -111
  537. package/src/web/components/Amount.tsx +6 -6
  538. package/src/web/components/AmountInput.tsx +59 -134
  539. package/src/web/components/AppShell.tsx +367 -43
  540. package/src/web/components/AssetChip.tsx +110 -0
  541. package/src/web/components/Autocomplete.tsx +4 -4
  542. package/src/web/components/Avatar.tsx +42 -119
  543. package/src/web/components/Badge.tsx +122 -0
  544. package/src/web/components/Banner.tsx +13 -11
  545. package/src/web/components/BarChart.tsx +427 -0
  546. package/src/web/components/Breadcrumbs.tsx +7 -7
  547. package/src/web/components/Button.tsx +159 -41
  548. package/src/web/components/ButtonGroup.tsx +59 -0
  549. package/src/web/components/Calendar.tsx +15 -13
  550. package/src/web/components/Checkbox.tsx +14 -11
  551. package/src/web/components/ChoiceGroup.tsx +107 -26
  552. package/src/web/components/Choicebox.tsx +30 -28
  553. package/src/web/components/Combobox.tsx +10 -8
  554. package/src/web/components/CopyButton.tsx +1 -1
  555. package/src/web/components/DatePicker.tsx +42 -61
  556. package/src/web/components/Dialog.tsx +273 -71
  557. package/src/web/components/Drawer.tsx +45 -18
  558. package/src/web/components/Empty.tsx +13 -8
  559. package/src/web/components/Field.tsx +78 -132
  560. package/src/web/components/Fieldset.tsx +16 -37
  561. package/src/web/components/Frame.tsx +13 -20
  562. package/src/web/components/Gauge.tsx +4 -4
  563. package/src/web/components/Hex.tsx +13 -56
  564. package/src/web/components/IconTile.tsx +57 -0
  565. package/src/web/components/Identicon.tsx +1 -10
  566. package/src/web/components/Kbd.tsx +8 -8
  567. package/src/web/components/ListGroup.tsx +857 -0
  568. package/src/web/components/LoadingDots.tsx +1 -0
  569. package/src/web/components/Menu.tsx +50 -35
  570. package/src/web/components/NetworkLogo.tsx +208 -0
  571. package/src/web/components/NumberField.tsx +18 -33
  572. package/src/web/components/OtpField.tsx +51 -102
  573. package/src/web/components/Pagination.tsx +16 -14
  574. package/src/web/components/Popover.tsx +8 -8
  575. package/src/web/components/Progress.tsx +7 -5
  576. package/src/web/components/Qr.tsx +1 -1
  577. package/src/web/components/RadioGroup.tsx +9 -7
  578. package/src/web/components/SecretValue.tsx +11 -11
  579. package/src/web/components/Select.tsx +89 -26
  580. package/src/web/components/Separator.tsx +95 -7
  581. package/src/web/components/SidebarMenu.tsx +390 -53
  582. package/src/web/components/Skeleton.tsx +5 -5
  583. package/src/web/components/Slider.tsx +12 -6
  584. package/src/web/components/Snippet.tsx +134 -75
  585. package/src/web/components/Spinner.tsx +38 -12
  586. package/src/web/components/SplitBar.tsx +158 -0
  587. package/src/web/components/SplitButton.tsx +26 -17
  588. package/src/web/components/StatusChip.tsx +138 -0
  589. package/src/web/components/StatusRow.tsx +162 -0
  590. package/src/web/components/Stepper.tsx +11 -8
  591. package/src/web/components/Surface.tsx +172 -93
  592. package/src/web/components/Switch.tsx +25 -29
  593. package/src/web/components/Table.tsx +281 -70
  594. package/src/web/components/Tabs.tsx +93 -50
  595. package/src/web/components/TempoLogo.tsx +89 -0
  596. package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
  597. package/src/web/components/Textarea.tsx +33 -78
  598. package/src/web/components/Toast.tsx +24 -22
  599. package/src/web/components/Token.tsx +106 -172
  600. package/src/web/components/TokenLogo.tsx +217 -0
  601. package/src/web/components/Tooltip.tsx +3 -3
  602. package/src/web/components/VerificationCode.tsx +97 -0
  603. package/src/web/components/Visual.tsx +166 -0
  604. package/src/web/components/internal/Field.ts +63 -72
  605. package/src/web/components/internal/InputGroup.ts +44 -101
  606. package/src/web/components/internal/Listbox.ts +20 -20
  607. package/src/web/components/internal/RowDisabled.ts +9 -0
  608. package/src/web/components/internal/RowsSize.ts +3 -5
  609. package/src/web/components/internal/TabBar.ts +52 -0
  610. package/src/web/components/internal/Text.ts +39 -0
  611. package/src/web/components/visuals/Passkey.svg +21 -0
  612. package/src/web/index.ts +18 -6
  613. package/src/web/logos/Base.svg +10 -0
  614. package/src/web/logos/Ethereum.svg +16 -0
  615. package/src/web/logos/HyperEVM.svg +27 -0
  616. package/src/web/logos/Polygon.svg +15 -0
  617. package/src/web/logos/README.md +14 -0
  618. package/src/web/logos/Solana.svg +11 -0
  619. package/src/web/logos/Tempo.svg +11 -0
  620. package/src/web/vars.ts +493 -534
  621. package/src/web/zyzz.config.ts +255 -12
  622. package/dist/fonts/GeistMono-Variable.woff2 +0 -0
  623. package/dist/web/components/AlertDialog.css +0 -1
  624. package/dist/web/components/Callout.css +0 -1
  625. package/dist/web/components/Callout.d.ts +0 -161
  626. package/dist/web/components/Callout.d.ts.map +0 -1
  627. package/dist/web/components/Callout.js +0 -83
  628. package/dist/web/components/Callout.js.map +0 -1
  629. package/dist/web/components/Callout.js.zyzz.json +0 -1
  630. package/dist/web/components/IconChip.css +0 -1
  631. package/dist/web/components/IconChip.d.ts +0 -53
  632. package/dist/web/components/IconChip.d.ts.map +0 -1
  633. package/dist/web/components/IconChip.js +0 -27
  634. package/dist/web/components/IconChip.js.map +0 -1
  635. package/dist/web/components/IconChip.js.zyzz.json +0 -1
  636. package/dist/web/components/Input.css +0 -1
  637. package/dist/web/components/Input.d.ts.map +0 -1
  638. package/dist/web/components/Input.js +0 -118
  639. package/dist/web/components/Input.js.map +0 -1
  640. package/dist/web/components/Input.js.zyzz.json +0 -1
  641. package/dist/web/components/Rows.css +0 -1
  642. package/dist/web/components/Rows.d.ts +0 -484
  643. package/dist/web/components/Rows.d.ts.map +0 -1
  644. package/dist/web/components/Rows.js +0 -171
  645. package/dist/web/components/Rows.js.map +0 -1
  646. package/dist/web/components/Rows.js.zyzz.json +0 -1
  647. package/dist/web/components/Tag.css +0 -1
  648. package/dist/web/components/Tag.d.ts +0 -171
  649. package/dist/web/components/Tag.d.ts.map +0 -1
  650. package/dist/web/components/Tag.js +0 -52
  651. package/dist/web/components/Tag.js.map +0 -1
  652. package/dist/web/components/Tag.js.zyzz.json +0 -1
  653. package/dist/web/components/internal/FieldVariant.d.ts +0 -4
  654. package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
  655. package/dist/web/components/internal/FieldVariant.js +0 -4
  656. package/dist/web/components/internal/FieldVariant.js.map +0 -1
  657. package/src/fonts/GeistMono-Variable.woff2 +0 -0
  658. package/src/web/components/Callout.tsx +0 -241
  659. package/src/web/components/IconChip.tsx +0 -54
  660. package/src/web/components/Rows.tsx +0 -588
  661. package/src/web/components/Tag.tsx +0 -149
  662. package/src/web/components/internal/FieldVariant.ts +0 -6
@@ -0,0 +1,110 @@
1
+ import { useRender } from '@base-ui/react/use-render'
2
+ import type * as zyzz from 'zyzz'
3
+ import { style } from '../zyzz.config.js'
4
+
5
+ /**
6
+ * A small, gray label for a supported asset or network. It renders a `span`, or a `button` when
7
+ * it has an `onClick`, which then fills on hover, scales slightly while pressed, shows an outline
8
+ * on keyboard focus, and fills dark while `selected`. Place a `TokenLogo` before the text to add a 12px token logo.
9
+ *
10
+ * - List what a row or value supports, such as the assets a network accepts, under a row title.
11
+ * - Give it an `onClick` to pick one asset from a short set, and set `selected` on the picked one.
12
+ * - Use `Badge` for a status and `Token` for a token the person can change.
13
+ *
14
+ * @example
15
+ * <AssetChip>USDT</AssetChip>
16
+ * <AssetChip onClick={() => setAsset('USDC')} selected={asset === 'USDC'}>
17
+ * <TokenLogo symbol="USDC" />
18
+ * USDC
19
+ * </AssetChip>
20
+ *
21
+ * @see {@link https://base-ui.com/react/utils/use-render | Base UI useRender}
22
+ * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/button/ | WAI-ARIA APG Button pattern}
23
+ */
24
+ export function AssetChip(props: AssetChip.Props) {
25
+ const { className, ref, render, selected, vars, ...attributes } = props
26
+ const pressable = attributes.onClick !== undefined
27
+ const button = pressable && render === undefined
28
+
29
+ return useRender({
30
+ defaultTagName: button ? 'button' : 'span',
31
+ props: {
32
+ ...attributes,
33
+ ...(pressable && { 'aria-pressed': selected }),
34
+ ...(button && { type: 'button' }),
35
+ 'data-selected': selected || undefined,
36
+ ...styles.chip({ className, style: props.style, vars }),
37
+ },
38
+ ref,
39
+ render,
40
+ })
41
+ }
42
+
43
+ export namespace AssetChip {
44
+ export type Props = useRender.ComponentProps<'span'> &
45
+ zyzz.Props.Variants<typeof styles.chip> & {
46
+ /**
47
+ * Fills the chip with `content.primary`. A chip with an `onClick` sets `aria-pressed` from
48
+ * it, so pass it on every chip of a set. Absent, the chip renders no pressed state. A chip
49
+ * rendered through `render` takes its `type` from that element, such as
50
+ * `<button type="button" />`.
51
+ */
52
+ selected?: boolean | undefined
53
+ }
54
+ }
55
+
56
+ namespace styles {
57
+ // Figma's Asset Chip pads 2px and 4px inside radius `2xs`, below the 1.5x padding ratio.
58
+ export const chip = style(
59
+ {
60
+ alignItems: 'center',
61
+ backgroundColor: 'background.primary',
62
+ border: 'none !custom',
63
+ borderRadius: '2xs',
64
+ boxSizing: 'border-box',
65
+ color: 'content.secondary',
66
+ columnGap: '4',
67
+ display: 'inline-flex',
68
+ flexShrink: '0 !custom',
69
+ height: '20',
70
+ margin: '0',
71
+ outlineColor: 'transparent !custom',
72
+ outlineOffset: '0',
73
+ outlineStyle: 'solid !custom',
74
+ outlineWidth: '2',
75
+ paddingBlock: '2',
76
+ paddingInline: '4',
77
+ transitionDuration: '160',
78
+ transitionProperty: 'background-color, color, outline-color, scale !custom',
79
+ transitionTimingFunction: 'snappy',
80
+ typography: 'body.b3Strong',
81
+ verticalAlign: 'middle',
82
+ whiteSpace: 'nowrap',
83
+ selectors: {
84
+ // A nested `TokenLogo` shrinks to the 12px logo slot.
85
+ '& > img': { flexShrink: '0 !custom', height: '12', width: '12' },
86
+ '&:is(button)': { cursor: 'pointer' },
87
+ // A chip rendered as a disabled `button` dims and takes no hover or press feedback.
88
+ '&:is(button):disabled': { cursor: 'default', opacity: 'disabled' },
89
+ '&:is(button):not(:disabled):active': { scale: 'press', transitionDuration: '100' },
90
+ // Figma's focused chip widens by 2px on each side and draws its ring inside the edge.
91
+ '&:is(button):focus-visible': {
92
+ outlineColor: 'border.focus',
93
+ outlineOffset: '-2',
94
+ paddingInline: '6',
95
+ },
96
+ '&:is(button):not([data-selected], :disabled):hover': {
97
+ backgroundColor: 'container.strong',
98
+ },
99
+ '&[data-selected]': { backgroundColor: 'content.primary', color: 'background.elevated' },
100
+ // An inside ring would vanish into the selected fill, so a selected chip draws it outside.
101
+ '&[data-selected]:focus-visible': { outlineOffset: '2' },
102
+ },
103
+ '@media (prefers-reduced-motion: reduce)': {
104
+ transitionProperty: 'background-color, color, outline-color !custom',
105
+ selectors: { '&:is(button):not(:disabled):active': { scale: 'none !custom' } },
106
+ },
107
+ },
108
+ { id: 'tds/web/asset-chip' },
109
+ )
110
+ }
@@ -103,16 +103,16 @@ export namespace Autocomplete {
103
103
  }
104
104
 
105
105
  /**
106
- * Draws the field surface around `Input` and its actions. `size` sets a 32, 40 or 56px height,
107
- * and `invalid` shows the error ring without setting `aria-invalid` on the input.
106
+ * Draws the 48px field surface around `Input` and its actions. `invalid` fills it red without
107
+ * setting `aria-invalid` on the input.
108
108
  */
109
109
  export function InputGroup(props: InputGroup.Props) {
110
- const { className, invalid, size, variant, vars, ...attributes } = props
110
+ const { className, invalid, variant, vars, ...attributes } = props
111
111
 
112
112
  return (
113
113
  <BaseUi.Autocomplete.InputGroup
114
114
  {...attributes}
115
- {...Field.styles.field({ className, size, style: props.style, variant, vars })}
115
+ {...Field.styles.field({ className, style: props.style, variant, vars })}
116
116
  data-invalid={invalid || undefined}
117
117
  />
118
118
  )
@@ -4,21 +4,26 @@ import type * as zyzz from 'zyzz'
4
4
  import { variants } from '../zyzz.config.js'
5
5
 
6
6
  /**
7
- * A circular `<span>` that shows a person's or entity's image, with a `Fallback` such as initials
8
- * while the image loads or after it fails. `Avatar` is the same component as `Avatar.Root`.
7
+ * A circular `<span>` that represents a person, contact, or wallet with initials or an icon in its
8
+ * `Fallback`. `Avatar` is the same component as `Avatar.Root`.
9
9
  *
10
- * - Give `Avatar.Image` an `alt` with the name, or `alt=""` when the name is already adjacent.
11
- * - Always include a `Fallback`, since the image does not render until it has loaded.
12
- * - Pair the avatar with a visible name. Do not rely on the picture alone to identify someone.
10
+ * - Use initials for people and contacts, and an icon for wallets and apps.
11
+ * - Pair the avatar with a visible name. Do not rely on initials or an icon alone to identify
12
+ * someone.
13
13
  *
14
14
  * @example
15
- * <Avatar size="40">
16
- * <Avatar.Image alt="Ada Lovelace" src={url} />
15
+ * <Avatar size="32">
17
16
  * <Avatar.Fallback>AL</Avatar.Fallback>
18
17
  * </Avatar>
19
18
  *
19
+ * @example
20
+ * <Avatar size="40">
21
+ * <Avatar.Fallback>
22
+ * <Wallet />
23
+ * </Avatar.Fallback>
24
+ * </Avatar>
25
+ *
20
26
  * @see {@link https://base-ui.com/react/components/avatar | Base UI Avatar}
21
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img | MDN img element}
22
27
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/img_role | MDN img role}
23
28
  * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html | WCAG 2.2 Non-text Content}
24
29
  */
@@ -30,8 +35,8 @@ export namespace Avatar {
30
35
  export type Props = Root.Props
31
36
 
32
37
  /**
33
- * Renders a `<span>` while the image is not loaded, filling the avatar and uppercasing its text.
34
- * `delay` postpones it by that many milliseconds, so fast loads skip the fallback flash.
38
+ * Renders the `<span>` that fills the avatar with initials or an icon, and uppercases its text.
39
+ * An icon renders at 16px in a `24` or `32` avatar, and at 20px in a `40` avatar.
35
40
  */
36
41
  export function Fallback(props: Fallback.Props) {
37
42
  const { className, vars, ...attributes } = props
@@ -45,57 +50,13 @@ export namespace Avatar {
45
50
  }
46
51
 
47
52
  export namespace Fallback {
48
- export type Props = ComponentPropsWithRef<'span'> &
49
- zyzz.Props.Variants<typeof styles.fallback> &
50
- Pick<BaseUi.Avatar.Fallback.Props, 'delay'>
51
- }
52
-
53
- /**
54
- * Stacks avatars. Set `overlap` to pull each one over the previous, and `expandOnHover` to spread
55
- * an overlapped stack apart on hover and keyboard focus.
56
- */
57
- export function Group(props: Group.Props) {
58
- const { className, expandOnHover, overlap, vars, ...attributes } = props
59
-
60
- return (
61
- <div
62
- role="group"
63
- {...attributes}
64
- {...styles.group({ className, expand: expandOnHover, overlap, style: props.style, vars })}
65
- />
66
- )
67
- }
68
-
69
- export namespace Group {
70
- export type Props = ComponentPropsWithRef<'div'> &
71
- Omit<zyzz.Props.Variants<typeof styles.group>, 'expand'> & {
72
- expandOnHover?: boolean | undefined
73
- }
53
+ export type Props = ComponentPropsWithRef<'span'> & zyzz.Props.Variants<typeof styles.fallback>
74
54
  }
75
55
 
76
56
  /**
77
- * Renders the `<img>`, cropped to cover the circle. Base UI mounts it only after `src` has
78
- * loaded, unless `keepMounted` is set, in which case it stays in the DOM and is `aria-hidden`
79
- * until loaded. `onLoadingStatusChange` reports `loading`, `loaded` and `error`.
57
+ * Renders the circular `<span>`, filled with `container.strong`. `size` sets its diameter in
58
+ * pixels.
80
59
  */
81
- export function Image(props: Image.Props) {
82
- const { className, vars, ...attributes } = props
83
-
84
- return (
85
- <BaseUi.Avatar.Image
86
- {...attributes}
87
- {...styles.image({ className, style: props.style, vars })}
88
- />
89
- )
90
- }
91
-
92
- export namespace Image {
93
- export type Props = ComponentPropsWithRef<'img'> &
94
- zyzz.Props.Variants<typeof styles.image> &
95
- Pick<BaseUi.Avatar.Image.Props, 'keepMounted' | 'onLoadingStatusChange'>
96
- }
97
-
98
- /** Renders the circular `<span>` that clips the image. `size` sets its diameter in pixels. */
99
60
  export function Root(props: Root.Props) {
100
61
  const { className, size, vars, ...attributes } = props
101
62
 
@@ -117,8 +78,7 @@ namespace styles {
117
78
  {
118
79
  base: {
119
80
  alignItems: 'center',
120
- backgroundColor: 'grayAlpha.100',
121
- color: 'gray.900',
81
+ color: 'content.secondary',
122
82
  display: 'inline-flex',
123
83
  font: 'inherit !custom',
124
84
  height: '100% !custom',
@@ -130,66 +90,14 @@ namespace styles {
130
90
  { id: 'tds/web/avatar/fallback' },
131
91
  )
132
92
 
133
- export const group = variants(
134
- {
135
- base: { alignItems: 'center', display: 'inline-flex' },
136
- compoundVariants: [
137
- {
138
- when: { expand: true, overlap: true },
139
- style: {
140
- selectors: {
141
- // Margin changes the group's width, which a transform cannot. Transitions retarget from
142
- // the current margin, so a brief hover reverses smoothly.
143
- '& > * + *': {
144
- transitionDuration: '220',
145
- transitionProperty: 'margin-inline-start',
146
- transitionTimingFunction: 'snappy',
147
- },
148
- '&:hover > * + *, &:focus-within > * + *': { marginInlineStart: '4' },
149
- },
150
- '@media (prefers-reduced-motion: reduce)': {
151
- selectors: { '& > * + *': { transitionProperty: 'none' } },
152
- },
153
- },
154
- },
155
- ],
156
- defaultVariants: { expand: false, overlap: false },
157
- variants: {
158
- expand: { false: {}, true: {} },
159
- overlap: {
160
- false: { columnGap: '8' },
161
- true: {
162
- selectors: {
163
- '& > * + *': { marginInlineStart: '-8' },
164
- '& > *': {
165
- outlineColor: 'background.primary',
166
- outlineStyle: 'solid !custom',
167
- outlineWidth: '2',
168
- },
169
- },
170
- },
171
- },
172
- },
173
- },
174
- { id: 'tds/web/avatar/group' },
175
- )
176
-
177
- export const image = variants(
178
- {
179
- base: { display: 'block', height: '100% !custom', objectFit: 'cover', width: '100% !custom' },
180
- },
181
- { id: 'tds/web/avatar/image' },
182
- )
183
-
184
93
  export const root = variants(
185
94
  {
186
95
  base: {
187
96
  alignItems: 'center',
188
- backgroundColor: 'background.surface',
189
- border: '1px solid !custom',
190
- borderColor: 'grayAlpha.200',
97
+ backgroundColor: 'container.strong',
191
98
  borderRadius: 'full',
192
99
  boxSizing: 'border-box',
100
+ cornerShape: 'round',
193
101
  display: 'inline-flex',
194
102
  flexShrink: '0 !custom',
195
103
  overflow: 'hidden',
@@ -197,14 +105,29 @@ namespace styles {
197
105
  userSelect: 'none',
198
106
  verticalAlign: 'middle',
199
107
  },
200
- defaultVariants: { size: '48' },
108
+ defaultVariants: { size: '40' },
201
109
  variants: {
110
+ // Icons size by font size, so an `Identicon`, which sets its own width, keeps filling the
111
+ // circle.
202
112
  size: {
203
- '24': { height: '24', typography: 'label.12', width: '24' },
204
- '32': { height: '32', typography: 'label.12', width: '32' },
205
- '40': { height: '40', typography: 'label.14', width: '40' },
206
- '48': { height: '48', typography: 'label.16', width: '48' },
207
- '64': { height: '64', typography: 'label.20', width: '64' },
113
+ '24': {
114
+ height: '24',
115
+ typography: 'body.b3Strong',
116
+ width: '24',
117
+ selectors: { '& svg': { fontSize: '16' } },
118
+ },
119
+ '32': {
120
+ height: '32',
121
+ typography: 'body.b3Strong',
122
+ width: '32',
123
+ selectors: { '& svg': { fontSize: '16' } },
124
+ },
125
+ '40': {
126
+ height: '40',
127
+ typography: 'body.b2Strong',
128
+ width: '40',
129
+ selectors: { '& svg': { fontSize: '20' } },
130
+ },
208
131
  },
209
132
  },
210
133
  },
@@ -0,0 +1,122 @@
1
+ import { useRender } from '@base-ui/react/use-render'
2
+ import type { ComponentPropsWithRef } from 'react'
3
+ import type * as zyzz from 'zyzz'
4
+ import { variants } from '../zyzz.config.js'
5
+
6
+ /**
7
+ * A compact label for a status or category, rendered as a `span` at least 80px wide. Pass
8
+ * `render`, such as `<button type="button" />` or an `a` element, to make it interactive. Those
9
+ * badges keep the badge look and add pointer, focus-visible and press feedback.
10
+ *
11
+ * - Keep the text to a word or two that names a status or attribute, such as Testnet.
12
+ * - Place it next to a title or row value. Use `inverse` for one recommended option.
13
+ * - Render a static badge for display. Reach for `render` only when the badge performs an action.
14
+ *
15
+ * @example
16
+ * <Badge size="small" variant="outlined">
17
+ * Testnet
18
+ * </Badge>
19
+ *
20
+ * @see {@link https://base-ui.com/react/utils/use-render | Base UI useRender}
21
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/span | MDN span element}
22
+ * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html | WCAG 2.2 Contrast (Minimum)}
23
+ */
24
+ export function Badge(props: Badge.Props) {
25
+ const { className, ref, render, size, variant, vars, ...attributes } = props
26
+
27
+ return useRender({
28
+ defaultTagName: 'span',
29
+ props: {
30
+ ...attributes,
31
+ ...styles.badge({ className, size, style: props.style, variant, vars }),
32
+ },
33
+ ref,
34
+ render,
35
+ })
36
+ }
37
+
38
+ export namespace Badge {
39
+ export type Props = ComponentPropsWithRef<'span'> &
40
+ zyzz.Props.Variants<typeof styles.badge> & { render?: useRender.RenderProp | undefined }
41
+ }
42
+
43
+ namespace styles {
44
+ export const badge = variants(
45
+ {
46
+ base: {
47
+ alignItems: 'center',
48
+ border: '1px solid !custom',
49
+ borderColor: 'transparent !custom',
50
+ borderRadius: '2xs',
51
+ boxSizing: 'border-box',
52
+ columnGap: '4',
53
+ display: 'inline-flex',
54
+ height: '32',
55
+ justifyContent: 'center',
56
+ minWidth: '80',
57
+ // The 1px border sits inside the padding, so every style keeps Figma's width.
58
+ paddingInline: 'calc(0.75rem - 1px) !custom',
59
+ typography: 'body.b2',
60
+ whiteSpace: 'nowrap',
61
+ selectors: {
62
+ '& > svg': { flexShrink: '0 !custom', height: '16', width: '16' },
63
+ // Button and link badges keep the badge look and add only pointer, focus and press feedback.
64
+ '&:is(button, a)': {
65
+ cursor: 'pointer',
66
+ outlineColor: 'transparent !custom',
67
+ outlineOffset: '0',
68
+ outlineStyle: 'solid !custom',
69
+ outlineWidth: '2',
70
+ textDecoration: 'none !custom',
71
+ transitionDuration: '160',
72
+ transitionProperty: 'opacity, outline-color, outline-offset, scale',
73
+ transitionTimingFunction: 'snappy',
74
+ },
75
+ '&:is(button, a):active': { scale: 'press' },
76
+ '&:is(button, a):focus-visible': {
77
+ outlineColor: 'border.focus',
78
+ outlineOffset: '2',
79
+ },
80
+ '&:is(button, a):hover': { opacity: '0.8 !custom' },
81
+ '&:is(button):disabled': { cursor: 'default', opacity: 'disabled' },
82
+ },
83
+ '@media (prefers-reduced-motion: reduce)': {
84
+ selectors: {
85
+ '&:is(button, a)': { transitionProperty: 'opacity, outline-color' },
86
+ '&:is(button, a):active': { scale: 'none !custom' },
87
+ },
88
+ },
89
+ },
90
+ defaultVariants: { size: 'medium', variant: 'soft' },
91
+ variants: {
92
+ size: {
93
+ medium: {},
94
+ small: {
95
+ // Platform has no 6px radius step, so the literal takes the squircle scale of the steps.
96
+ borderRadius: 'calc(0.375rem * var(--tds-corner-scale, 1)) !custom',
97
+ height: '28',
98
+ paddingInline: 'calc(0.5rem - 1px) !custom',
99
+ typography: 'body.b3',
100
+ selectors: { '& > svg': { height: '12', width: '12' } },
101
+ },
102
+ },
103
+ variant: {
104
+ // The accent text follows the inverse content color, which turns black in dark mode.
105
+ accent: { backgroundColor: 'accent.blue.background', color: 'inverse.content.primary' },
106
+ elevated: { backgroundColor: 'background.elevated', color: 'content.primary' },
107
+ inverse: {
108
+ backgroundColor: 'inverse.background.secondary',
109
+ color: 'inverse.content.primary',
110
+ },
111
+ outlined: {
112
+ backgroundColor: 'transparent !custom',
113
+ borderColor: 'line.secondary',
114
+ color: 'content.primary',
115
+ },
116
+ soft: { backgroundColor: 'container.regular', color: 'content.primary' },
117
+ },
118
+ },
119
+ },
120
+ { id: 'tds/web/badge' },
121
+ )
122
+ }
@@ -8,7 +8,7 @@ import { style, variants } from '../zyzz.config.js'
8
8
  * A full-width strip for a system or page-wide message, rendered as a plain `div` with no live
9
9
  * region. Add `role="status"` or `role="alert"` only when the banner appears after the page loads.
10
10
  *
11
- * - Use it for messages about the whole product or page. Use `Callout` for a note tied to content.
11
+ * - Use it for messages about the whole product or page. Use `Alert` for a note tied to content.
12
12
  * - State severity in the text. `intent` color alone does not reach every reader.
13
13
  * - `Dismiss` only renders the button. Remove the banner in its `onClick`.
14
14
  *
@@ -97,6 +97,7 @@ namespace styles {
97
97
  border: 'none !custom',
98
98
  borderRadius: 'full',
99
99
  color: 'inherit !custom',
100
+ cornerShape: 'round',
100
101
  cursor: 'pointer',
101
102
  display: 'inline-flex',
102
103
  flexShrink: '0 !custom',
@@ -114,11 +115,11 @@ namespace styles {
114
115
  transitionDuration: '160',
115
116
  transitionProperty: 'outline-color, outline-offset, text-decoration-color, scale',
116
117
  transitionTimingFunction: 'snappy',
117
- typography: 'copy.14.strong',
118
+ typography: 'body.b2Strong',
118
119
  whiteSpace: 'nowrap',
119
120
  selectors: {
120
121
  '&:active': { scale: 'press' },
121
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
122
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
122
123
  '&:hover': { textDecorationColor: 'transparent !custom' },
123
124
  },
124
125
  '@media (prefers-reduced-motion: reduce)': {
@@ -141,17 +142,17 @@ namespace styles {
141
142
  paddingBlock: '8',
142
143
  paddingInline: '16',
143
144
  position: 'relative',
144
- typography: 'copy.14',
145
+ typography: 'body.b2',
145
146
  width: '100% !custom',
146
147
  },
147
148
  defaultVariants: { intent: 'neutral' },
148
149
  variants: {
149
150
  intent: {
150
- info: { backgroundColor: 'blue.100', color: 'blue.900' },
151
- negative: { backgroundColor: 'red.100', color: 'red.900' },
152
- neutral: { backgroundColor: 'grayAlpha.100', color: 'foreground' },
153
- positive: { backgroundColor: 'green.100', color: 'green.900' },
154
- warning: { backgroundColor: 'amber.100', color: 'amber.900' },
151
+ info: { backgroundColor: 'container.regular', color: 'content.primary' },
152
+ negative: { backgroundColor: 'container.negative', color: 'content.negative' },
153
+ neutral: { backgroundColor: 'container.regular', color: 'content.primary' },
154
+ positive: { backgroundColor: 'container.positive', color: 'content.positive' },
155
+ warning: { backgroundColor: 'container.warning', color: 'content.warning' },
155
156
  },
156
157
  },
157
158
  },
@@ -170,6 +171,7 @@ namespace styles {
170
171
  border: 'none !custom',
171
172
  borderRadius: 'full',
172
173
  color: 'inherit !custom',
174
+ cornerShape: 'round',
173
175
  cursor: 'pointer',
174
176
  display: 'inline-flex',
175
177
  flexShrink: '0 !custom',
@@ -191,8 +193,8 @@ namespace styles {
191
193
  width: '32',
192
194
  selectors: {
193
195
  '&:active': { scale: 'press' },
194
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
195
- '&:hover': { backgroundColor: 'grayAlpha.200' },
196
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
197
+ '&:hover': { backgroundColor: 'container.strong' },
196
198
  },
197
199
  '@media (prefers-reduced-motion: reduce)': {
198
200
  transitionProperty: 'background-color, outline-color',