@tempoxyz/ds 0.2.6 → 0.3.0

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 (652) 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 +156 -0
  52. package/dist/web/components/Alert.d.ts.map +1 -0
  53. package/dist/web/components/Alert.js +92 -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 +65 -29
  74. package/dist/web/components/AppShell.d.ts.map +1 -1
  75. package/dist/web/components/AppShell.js +31 -19
  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 +166 -35
  118. package/dist/web/components/Button.d.ts.map +1 -1
  119. package/dist/web/components/Button.js +13 -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 +483 -0
  236. package/dist/web/components/ListGroup.d.ts.map +1 -0
  237. package/dist/web/components/ListGroup.js +266 -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 +24 -7
  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 +186 -39
  312. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  313. package/dist/web/components/SidebarMenu.js +90 -18
  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 +56 -119
  372. package/dist/web/components/Surface.d.ts.map +1 -1
  373. package/dist/web/components/Surface.js +16 -9
  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/index.d.ts +18 -6
  470. package/dist/web/index.d.ts.map +1 -1
  471. package/dist/web/index.js +18 -6
  472. package/dist/web/index.js.map +1 -1
  473. package/dist/web/index.js.zyzz.json +1 -1
  474. package/dist/web/vars.d.ts +591 -706
  475. package/dist/web/vars.d.ts.map +1 -1
  476. package/dist/web/vars.js +7 -6
  477. package/dist/web/vars.js.map +1 -1
  478. package/dist/web/vars.js.zyzz.json +1 -1
  479. package/dist/web/zyzz.config.d.ts +2933 -3513
  480. package/dist/web/zyzz.config.d.ts.map +1 -1
  481. package/dist/web/zyzz.config.js +29 -3
  482. package/dist/web/zyzz.config.js.map +1 -1
  483. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  484. package/package.json +149 -5
  485. package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  486. package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  487. package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
  488. package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  489. package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  490. package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
  491. package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
  492. package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  493. package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  494. package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
  495. package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  496. package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  497. package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  498. package/src/fonts/Pilat-Black-latin.woff2 +0 -0
  499. package/src/fonts/Pilat-Black-other.woff2 +0 -0
  500. package/src/fonts/Pilat-Black.woff2 +0 -0
  501. package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
  502. package/src/fonts/Pilat-Bold-other.woff2 +0 -0
  503. package/src/fonts/Pilat-Bold.woff2 +0 -0
  504. package/src/fonts/Pilat-Book-latin.woff2 +0 -0
  505. package/src/fonts/Pilat-Book-other.woff2 +0 -0
  506. package/src/fonts/Pilat-Book.woff2 +0 -0
  507. package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
  508. package/src/fonts/Pilat-Demi-other.woff2 +0 -0
  509. package/src/fonts/Pilat-Demi.woff2 +0 -0
  510. package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
  511. package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
  512. package/src/fonts/Pilat-Heavy.woff2 +0 -0
  513. package/src/fonts/Pilat-Light-latin.woff2 +0 -0
  514. package/src/fonts/Pilat-Light-other.woff2 +0 -0
  515. package/src/fonts/Pilat-Light.woff2 +0 -0
  516. package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
  517. package/src/fonts/Pilat-Regular-other.woff2 +0 -0
  518. package/src/fonts/Pilat-Regular.woff2 +0 -0
  519. package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
  520. package/src/fonts/Pilat-Thin-other.woff2 +0 -0
  521. package/src/fonts/Pilat-Thin.woff2 +0 -0
  522. package/src/fonts/README.md +15 -2
  523. package/src/oxlint/rules/PreferComponent.ts +6 -6
  524. package/src/web/README.md +7 -7
  525. package/src/web/components/Accordion.tsx +8 -8
  526. package/src/web/components/AgentLogo.tsx +330 -0
  527. package/src/web/components/Alert.tsx +301 -0
  528. package/src/web/components/AlertDialog.tsx +47 -111
  529. package/src/web/components/Amount.tsx +6 -6
  530. package/src/web/components/AmountInput.tsx +59 -134
  531. package/src/web/components/AppShell.tsx +95 -36
  532. package/src/web/components/AssetChip.tsx +110 -0
  533. package/src/web/components/Autocomplete.tsx +4 -4
  534. package/src/web/components/Avatar.tsx +42 -119
  535. package/src/web/components/Badge.tsx +120 -0
  536. package/src/web/components/Banner.tsx +13 -11
  537. package/src/web/components/BarChart.tsx +427 -0
  538. package/src/web/components/Breadcrumbs.tsx +7 -7
  539. package/src/web/components/Button.tsx +156 -42
  540. package/src/web/components/ButtonGroup.tsx +59 -0
  541. package/src/web/components/Calendar.tsx +15 -13
  542. package/src/web/components/Checkbox.tsx +14 -11
  543. package/src/web/components/ChoiceGroup.tsx +107 -26
  544. package/src/web/components/Choicebox.tsx +30 -28
  545. package/src/web/components/Combobox.tsx +10 -8
  546. package/src/web/components/CopyButton.tsx +1 -1
  547. package/src/web/components/DatePicker.tsx +42 -61
  548. package/src/web/components/Dialog.tsx +267 -71
  549. package/src/web/components/Drawer.tsx +45 -18
  550. package/src/web/components/Empty.tsx +13 -8
  551. package/src/web/components/Field.tsx +78 -132
  552. package/src/web/components/Fieldset.tsx +16 -37
  553. package/src/web/components/Frame.tsx +13 -20
  554. package/src/web/components/Gauge.tsx +4 -4
  555. package/src/web/components/Hex.tsx +13 -56
  556. package/src/web/components/IconTile.tsx +57 -0
  557. package/src/web/components/Identicon.tsx +1 -10
  558. package/src/web/components/Kbd.tsx +8 -8
  559. package/src/web/components/ListGroup.tsx +776 -0
  560. package/src/web/components/LoadingDots.tsx +1 -0
  561. package/src/web/components/Menu.tsx +50 -35
  562. package/src/web/components/NetworkLogo.tsx +208 -0
  563. package/src/web/components/NumberField.tsx +18 -33
  564. package/src/web/components/OtpField.tsx +51 -102
  565. package/src/web/components/Pagination.tsx +16 -14
  566. package/src/web/components/Popover.tsx +8 -8
  567. package/src/web/components/Progress.tsx +7 -5
  568. package/src/web/components/Qr.tsx +1 -1
  569. package/src/web/components/RadioGroup.tsx +9 -7
  570. package/src/web/components/SecretValue.tsx +11 -11
  571. package/src/web/components/Select.tsx +87 -26
  572. package/src/web/components/Separator.tsx +95 -7
  573. package/src/web/components/SidebarMenu.tsx +294 -51
  574. package/src/web/components/Skeleton.tsx +5 -5
  575. package/src/web/components/Slider.tsx +12 -6
  576. package/src/web/components/Snippet.tsx +134 -75
  577. package/src/web/components/Spinner.tsx +38 -12
  578. package/src/web/components/SplitBar.tsx +158 -0
  579. package/src/web/components/SplitButton.tsx +26 -17
  580. package/src/web/components/StatusChip.tsx +138 -0
  581. package/src/web/components/StatusRow.tsx +162 -0
  582. package/src/web/components/Stepper.tsx +11 -8
  583. package/src/web/components/Surface.tsx +70 -95
  584. package/src/web/components/Switch.tsx +25 -29
  585. package/src/web/components/Table.tsx +281 -70
  586. package/src/web/components/Tabs.tsx +93 -50
  587. package/src/web/components/TempoLogo.tsx +89 -0
  588. package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
  589. package/src/web/components/Textarea.tsx +33 -78
  590. package/src/web/components/Toast.tsx +24 -22
  591. package/src/web/components/Token.tsx +106 -172
  592. package/src/web/components/TokenLogo.tsx +217 -0
  593. package/src/web/components/Tooltip.tsx +3 -3
  594. package/src/web/components/VerificationCode.tsx +97 -0
  595. package/src/web/components/Visual.tsx +166 -0
  596. package/src/web/components/internal/Field.ts +63 -72
  597. package/src/web/components/internal/InputGroup.ts +44 -101
  598. package/src/web/components/internal/Listbox.ts +20 -20
  599. package/src/web/components/internal/RowDisabled.ts +9 -0
  600. package/src/web/components/internal/RowsSize.ts +3 -5
  601. package/src/web/components/visuals/Passkey.svg +21 -0
  602. package/src/web/index.ts +18 -6
  603. package/src/web/logos/Base.svg +10 -0
  604. package/src/web/logos/Ethereum.svg +16 -0
  605. package/src/web/logos/HyperEVM.svg +27 -0
  606. package/src/web/logos/Polygon.svg +15 -0
  607. package/src/web/logos/README.md +14 -0
  608. package/src/web/logos/Solana.svg +11 -0
  609. package/src/web/logos/Tempo.svg +11 -0
  610. package/src/web/vars.ts +480 -534
  611. package/src/web/zyzz.config.ts +255 -12
  612. package/dist/fonts/GeistMono-Variable.woff2 +0 -0
  613. package/dist/web/components/AlertDialog.css +0 -1
  614. package/dist/web/components/Callout.css +0 -1
  615. package/dist/web/components/Callout.d.ts +0 -161
  616. package/dist/web/components/Callout.d.ts.map +0 -1
  617. package/dist/web/components/Callout.js +0 -83
  618. package/dist/web/components/Callout.js.map +0 -1
  619. package/dist/web/components/Callout.js.zyzz.json +0 -1
  620. package/dist/web/components/IconChip.css +0 -1
  621. package/dist/web/components/IconChip.d.ts +0 -53
  622. package/dist/web/components/IconChip.d.ts.map +0 -1
  623. package/dist/web/components/IconChip.js +0 -27
  624. package/dist/web/components/IconChip.js.map +0 -1
  625. package/dist/web/components/IconChip.js.zyzz.json +0 -1
  626. package/dist/web/components/Input.css +0 -1
  627. package/dist/web/components/Input.d.ts.map +0 -1
  628. package/dist/web/components/Input.js +0 -118
  629. package/dist/web/components/Input.js.map +0 -1
  630. package/dist/web/components/Input.js.zyzz.json +0 -1
  631. package/dist/web/components/Rows.css +0 -1
  632. package/dist/web/components/Rows.d.ts +0 -484
  633. package/dist/web/components/Rows.d.ts.map +0 -1
  634. package/dist/web/components/Rows.js +0 -171
  635. package/dist/web/components/Rows.js.map +0 -1
  636. package/dist/web/components/Rows.js.zyzz.json +0 -1
  637. package/dist/web/components/Tag.css +0 -1
  638. package/dist/web/components/Tag.d.ts +0 -171
  639. package/dist/web/components/Tag.d.ts.map +0 -1
  640. package/dist/web/components/Tag.js +0 -52
  641. package/dist/web/components/Tag.js.map +0 -1
  642. package/dist/web/components/Tag.js.zyzz.json +0 -1
  643. package/dist/web/components/internal/FieldVariant.d.ts +0 -4
  644. package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
  645. package/dist/web/components/internal/FieldVariant.js +0 -4
  646. package/dist/web/components/internal/FieldVariant.js.map +0 -1
  647. package/src/fonts/GeistMono-Variable.woff2 +0 -0
  648. package/src/web/components/Callout.tsx +0 -241
  649. package/src/web/components/IconChip.tsx +0 -54
  650. package/src/web/components/Rows.tsx +0 -588
  651. package/src/web/components/Tag.tsx +0 -149
  652. package/src/web/components/internal/FieldVariant.ts +0 -6
@@ -3,16 +3,19 @@ import { useRender } from '@base-ui/react/use-render'
3
3
  import {
4
4
  type ComponentPropsWithRef,
5
5
  createContext,
6
+ type ReactNode,
6
7
  use,
7
8
  useId,
8
9
  useLayoutEffect,
9
10
  useState,
10
11
  } from 'react'
11
12
  import type * as zyzz from 'zyzz'
13
+ import { ChevronDown } from '../icons/ChevronDown.js'
12
14
  import { ChevronRight } from '../icons/ChevronRight.js'
13
15
  import { style, variants } from '../zyzz.config.js'
14
16
 
15
- type GroupContext = { id: string; setLabelled: (labelled: boolean) => void }
17
+ // A group names itself after the ID of the label inside it, which a caller can set.
18
+ type GroupContext = { id: string; setLabel: (id: string | undefined) => void }
16
19
 
17
20
  const groupContext = createContext<GroupContext | undefined>(undefined)
18
21
 
@@ -43,6 +46,86 @@ const groupContext = createContext<GroupContext | undefined>(undefined)
43
46
  * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html | WCAG 2.2 Name, Role, Value}
44
47
  */
45
48
  export namespace SidebarMenu {
49
+ /**
50
+ * Holds the `AccountRow` at the bottom of a sidebar, under a 1px divider across its full width.
51
+ * Put it last in `AppShell.SidebarFooter`, after the menu of support links, such as Help.
52
+ *
53
+ * @example
54
+ * <SidebarMenu.Account>
55
+ * <Menu.Root>
56
+ * <Menu.Trigger render={<SidebarMenu.AccountRow description="ada@tempo.xyz" label="Ada" />}>
57
+ * <Avatar size="32">
58
+ * <Avatar.Fallback>AL</Avatar.Fallback>
59
+ * </Avatar>
60
+ * </Menu.Trigger>
61
+ * </Menu.Root>
62
+ * </SidebarMenu.Account>
63
+ */
64
+ export function Account(props: Account.Props) {
65
+ const { className, vars, ...attributes } = props
66
+
67
+ return <div {...attributes} {...styles.account({ className, style: props.style, vars })} />
68
+ }
69
+
70
+ export namespace Account {
71
+ export type Props = ComponentPropsWithRef<'div'> & zyzz.Props.Variants<typeof styles.account>
72
+ }
73
+
74
+ /**
75
+ * Renders the 44px account `<button>` at the bottom of a sidebar: `children`, such as a 32px
76
+ * `Avatar`, then `label` over `description`. A row that opens a popup, through `aria-haspopup`,
77
+ * ends in a chevron. The children are hidden from assistive technology, so `label` names the
78
+ * account. Pass the row to `Menu.Trigger` through `render` to open the account menu, which sets
79
+ * `aria-haspopup` and fills the row while it is open. Keyboard focus draws a 2px ring inside the
80
+ * row and moves its content 2px inward.
81
+ *
82
+ * @example
83
+ * <Menu.Root>
84
+ * <Menu.Trigger render={<SidebarMenu.AccountRow description="ada@tempo.xyz" label="Ada" />}>
85
+ * <Avatar size="32">
86
+ * <Avatar.Fallback>AL</Avatar.Fallback>
87
+ * </Avatar>
88
+ * </Menu.Trigger>
89
+ * </Menu.Root>
90
+ */
91
+ export function AccountRow(props: AccountRow.Props) {
92
+ const { children, className, description, label, vars, ...attributes } = props
93
+ const popup = Boolean(attributes['aria-haspopup']) && attributes['aria-haspopup'] !== 'false'
94
+
95
+ return (
96
+ <button
97
+ type="button"
98
+ {...attributes}
99
+ {...styles.accountRow({ className, style: props.style, vars })}
100
+ >
101
+ {children !== undefined && children !== null && (
102
+ <span aria-hidden="true" {...styles.accountMedia()}>
103
+ {children}
104
+ </span>
105
+ )}
106
+ <span {...styles.accountText()}>
107
+ <span {...styles.accountLabel()}>{label}</span>
108
+ {description !== undefined && description !== null && (
109
+ <span {...styles.accountDescription()}>{description}</span>
110
+ )}
111
+ </span>
112
+ {popup && <ChevronDown {...styles.accountChevron()} />}
113
+ </button>
114
+ )
115
+ }
116
+
117
+ export namespace AccountRow {
118
+ export type Props = Omit<ComponentPropsWithRef<'button'>, 'children'> &
119
+ zyzz.Props.Variants<typeof styles.accountRow> & {
120
+ /** Leading media, such as a 32px `Avatar`. Absent, the text starts at the row's edge. */
121
+ children?: ReactNode | undefined
122
+ /** Second line in the secondary color, such as the email or address of the account. */
123
+ description?: ReactNode | undefined
124
+ /** First line, which names the account, such as the person's name. */
125
+ label: ReactNode
126
+ }
127
+ }
128
+
46
129
  /**
47
130
  * Renders a `group` that names itself after its `GroupLabel` when one renders inside it.
48
131
  * Without a label, pass `aria-label`.
@@ -50,12 +133,12 @@ export namespace SidebarMenu {
50
133
  export function Group(props: Group.Props) {
51
134
  const { className, vars, ...attributes } = props
52
135
  const id = useId()
53
- const [labelled, setLabelled] = useState(false)
136
+ const [label, setLabel] = useState<string | undefined>(undefined)
54
137
 
55
138
  return (
56
- <groupContext.Provider value={{ id, setLabelled }}>
139
+ <groupContext.Provider value={{ id, setLabel }}>
57
140
  <div
58
- aria-labelledby={labelled ? id : undefined}
141
+ aria-labelledby={label}
59
142
  role="group"
60
143
  {...attributes}
61
144
  {...styles.group({ className, style: props.style, vars })}
@@ -70,20 +153,20 @@ export namespace SidebarMenu {
70
153
 
71
154
  /** Visible heading text for the surrounding `Group`, which it names through `aria-labelledby`. */
72
155
  export function GroupLabel(props: GroupLabel.Props) {
73
- const { className, vars, ...attributes } = props
74
156
  const group = use(groupContext)
75
- const setLabelled = group?.setLabelled
157
+ const { className, id = group?.id, vars, ...attributes } = props
158
+ const setLabel = group?.setLabel
76
159
 
77
160
  useLayoutEffect(() => {
78
- if (!setLabelled) return
79
- setLabelled(true)
80
- return () => setLabelled(false)
81
- }, [setLabelled])
161
+ if (!setLabel) return
162
+ setLabel(id)
163
+ return () => setLabel(undefined)
164
+ }, [id, setLabel])
82
165
 
83
166
  return (
84
167
  <div
85
- id={group?.id}
86
168
  {...attributes}
169
+ id={id}
87
170
  {...styles.groupLabel({ className, style: props.style, vars })}
88
171
  />
89
172
  )
@@ -95,7 +178,8 @@ export namespace SidebarMenu {
95
178
 
96
179
  /**
97
180
  * Renders a link by default. Pass `render` to use a router link. `active` marks the current page
98
- * with `aria-current="page"`.
181
+ * with `aria-current="page"`, and sets its label in the strong weight. Keyboard focus draws a
182
+ * 2px ring inside the row and moves its content 2px inward.
99
183
  */
100
184
  export function Item(props: Item.Props) {
101
185
  const { active = false, className, ref, render, vars, ...attributes } = props
@@ -119,9 +203,31 @@ export namespace SidebarMenu {
119
203
  }
120
204
  }
121
205
 
206
+ /**
207
+ * Renders a 36px tile in the primary content color, which centers a logo in the inverse content
208
+ * color, such as `TempoLogo` with `type="mark"`. Pass it to an `AccountRow` that names a
209
+ * product or a wallet, in place of an `Avatar`.
210
+ *
211
+ * @example
212
+ * <SidebarMenu.AccountRow description="0xc721…s9dk" label="Tempo Wallet">
213
+ * <SidebarMenu.Logo>
214
+ * <TempoLogo type="mark" />
215
+ * </SidebarMenu.Logo>
216
+ * </SidebarMenu.AccountRow>
217
+ */
218
+ export function Logo(props: Logo.Props) {
219
+ const { className, vars, ...attributes } = props
220
+
221
+ return <span {...attributes} {...styles.logo({ className, style: props.style, vars })} />
222
+ }
223
+
224
+ export namespace Logo {
225
+ export type Props = ComponentPropsWithRef<'span'> & zyzz.Props.Variants<typeof styles.logo>
226
+ }
227
+
122
228
  /**
123
229
  * Renders the `<nav>` landmark, labelled `Main` unless you pass `aria-label`. Give each
124
- * landmark on a page a distinct label. `size` sets 32, 40 or 56px rows, and `small` also uses
230
+ * landmark on a page a distinct label. `size` sets 32, 36 or 56px rows, and `small` also uses
125
231
  * 16px icons for long menus.
126
232
  */
127
233
  export function Root(props: Root.Props) {
@@ -200,9 +306,120 @@ export namespace SidebarMenu {
200
306
  }
201
307
 
202
308
  namespace styles {
309
+ // The 1px divider takes 1px of the 8px above the row, as the design's inside stroke does.
310
+ export const account = variants(
311
+ {
312
+ base: {
313
+ borderTopColor: 'line.secondary',
314
+ borderTopStyle: 'solid',
315
+ borderTopWidth: '1px !custom',
316
+ paddingTop: 'calc(0.5rem - 1px) !custom',
317
+ },
318
+ },
319
+ { id: 'tds/web/sidebar-menu/account' },
320
+ )
321
+
322
+ export const accountChevron = style(
323
+ {
324
+ color: 'content.secondary',
325
+ flexShrink: '0 !custom',
326
+ fontSize: '16',
327
+ transitionDuration: '160',
328
+ transitionProperty: 'color',
329
+ transitionTimingFunction: 'snappy',
330
+ selectors: {
331
+ ':hover > &, [data-popup-open] > &': { color: 'content.primary' },
332
+ },
333
+ },
334
+ { id: 'tds/web/sidebar-menu/account-chevron' },
335
+ )
336
+
337
+ export const accountDescription = style(
338
+ {
339
+ color: 'content.secondary',
340
+ overflow: 'hidden',
341
+ textOverflow: 'ellipsis',
342
+ typography: 'body.b3',
343
+ whiteSpace: 'nowrap',
344
+ },
345
+ { id: 'tds/web/sidebar-menu/account-description' },
346
+ )
347
+
348
+ export const accountLabel = style(
349
+ {
350
+ color: 'content.primary',
351
+ overflow: 'hidden',
352
+ textOverflow: 'ellipsis',
353
+ typography: 'body.b2Strong',
354
+ whiteSpace: 'nowrap',
355
+ },
356
+ { id: 'tds/web/sidebar-menu/account-label' },
357
+ )
358
+
359
+ export const accountMedia = style(
360
+ { display: 'flex', flexShrink: '0 !custom' },
361
+ { id: 'tds/web/sidebar-menu/account-media' },
362
+ )
363
+
364
+ // A 32px avatar and the two lines of text center in the 44px row with 8px at either end.
365
+ export const accountRow = variants(
366
+ {
367
+ base: {
368
+ alignItems: 'center',
369
+ appearance: 'none !custom',
370
+ backgroundColor: 'transparent !custom',
371
+ border: 'none !custom',
372
+ borderRadius: '2xs',
373
+ boxSizing: 'border-box',
374
+ color: 'content.primary',
375
+ columnGap: '12',
376
+ cursor: 'pointer',
377
+ display: 'flex',
378
+ font: 'inherit !custom',
379
+ minHeight: '44',
380
+ minWidth: '0',
381
+ outlineColor: 'transparent !custom',
382
+ outlineOffset: '0',
383
+ outlineStyle: 'solid !custom',
384
+ outlineWidth: '2',
385
+ paddingBlock: '4',
386
+ paddingInline: '8',
387
+ textAlign: 'start',
388
+ transitionDuration: '160',
389
+ transitionProperty: 'background-color, outline-color, outline-offset, scale !custom',
390
+ transitionTimingFunction: 'snappy',
391
+ width: '100% !custom',
392
+ selectors: {
393
+ '&:active:not(:disabled, [data-disabled])': { scale: 'press' },
394
+ // The design lays out the 2px focus stroke inside the row, so the content moves 2px in.
395
+ '&:focus-visible': {
396
+ outlineColor: 'border.focus',
397
+ outlineOffset: '-2',
398
+ paddingInline: '10',
399
+ },
400
+ // Base UI triggers mark the row `data-popup-open` while their menu or popover is open.
401
+ '&:hover:not(:disabled, [data-disabled]), &[data-popup-open]': {
402
+ backgroundColor: 'container.regular',
403
+ },
404
+ '&:is(:disabled, [data-disabled])': { cursor: 'default', opacity: 'disabled' },
405
+ },
406
+ '@media (prefers-reduced-motion: reduce)': {
407
+ transitionProperty: 'background-color, outline-color !custom',
408
+ selectors: { '&:active:not(:disabled, [data-disabled])': { scale: 'none !custom' } },
409
+ },
410
+ },
411
+ },
412
+ { id: 'tds/web/sidebar-menu/account-row' },
413
+ )
414
+
415
+ export const accountText = style(
416
+ { display: 'flex', flex: '1 !custom', flexDirection: 'column', minWidth: '0' },
417
+ { id: 'tds/web/sidebar-menu/account-text' },
418
+ )
419
+
203
420
  export const chevron = style(
204
421
  {
205
- color: 'gray.900',
422
+ color: 'content.secondary',
206
423
  marginInlineStart: 'auto !custom',
207
424
  transitionDuration: '240',
208
425
  transitionProperty: 'transform',
@@ -218,18 +435,13 @@ namespace styles {
218
435
  base: {
219
436
  display: 'flex',
220
437
  flexDirection: 'column',
221
- rowGap: '4',
438
+ rowGap: '2',
222
439
  selectors: {
223
- // Groups sit 24px below preceding content, and a divider separates adjacent groups.
224
- '* + &': { marginTop: '20' },
225
- '[data-sidebar-menu-size="small"] &': { rowGap: '2' },
226
- '[data-sidebar-menu-size="small"] * + &': { marginTop: '12' },
227
- '& + &': {
228
- borderTopColor: 'grayAlpha.200',
229
- borderTopStyle: 'solid',
230
- borderTopWidth: '1px !custom',
231
- paddingTop: '16',
232
- },
440
+ // With the row gap of the menu, groups sit 24px below preceding content, or 16px in a
441
+ // small menu.
442
+ '* + &': { marginTop: '1.375rem !custom' },
443
+ '[data-sidebar-menu-size="large"] * + &': { marginTop: '20' },
444
+ '[data-sidebar-menu-size="small"] * + &': { marginTop: '0.875rem !custom' },
233
445
  },
234
446
  },
235
447
  },
@@ -238,12 +450,13 @@ namespace styles {
238
450
 
239
451
  export const groupLabel = variants(
240
452
  {
453
+ // The label lines up with the icons of the items below it.
241
454
  base: {
242
- color: 'foreground',
243
- paddingBlock: '4',
244
- paddingInline: '12',
245
- selectors: { '[data-sidebar-menu-size="small"] &': { paddingInline: '8' } },
246
- typography: 'label.12',
455
+ color: 'content.tertiary',
456
+ paddingBottom: '4',
457
+ paddingInline: '8',
458
+ selectors: { '[data-sidebar-menu-size="large"] &': { paddingInline: '12' } },
459
+ typography: 'body.b3',
247
460
  },
248
461
  },
249
462
  { id: 'tds/web/sidebar-menu/group-label' },
@@ -256,45 +469,55 @@ namespace styles {
256
469
  appearance: 'none !custom',
257
470
  backgroundColor: 'transparent !custom',
258
471
  border: 'none !custom',
259
- borderRadius: '12',
472
+ borderRadius: '2xs',
260
473
  boxSizing: 'border-box',
261
- color: 'gray.900',
474
+ color: 'content.secondary',
262
475
  columnGap: '12',
263
476
  cursor: 'pointer',
264
477
  display: 'flex',
265
478
  font: 'inherit !custom',
266
- minHeight: '40',
479
+ minHeight: '36',
267
480
  minWidth: '0',
268
481
  outlineColor: 'transparent !custom',
269
482
  outlineOffset: '0',
270
483
  outlineStyle: 'solid !custom',
271
484
  outlineWidth: '2',
272
485
  paddingBlock: '8',
273
- paddingInline: '12',
486
+ paddingInline: '8',
274
487
  textAlign: 'start',
275
488
  textDecoration: 'none !custom',
276
489
  transitionDuration: '160',
277
490
  transitionProperty: 'background-color, color, outline-color, outline-offset, scale !custom',
278
491
  transitionTimingFunction: 'snappy',
279
- typography: 'label.14.strong',
492
+ typography: 'body.b2',
280
493
  width: '100% !custom',
281
494
  whiteSpace: 'nowrap',
282
495
  selectors: {
283
496
  '& > svg': { flexShrink: '0 !custom', fontSize: '20' },
284
- '[data-sidebar-menu-size="large"] &': { minHeight: '56', typography: 'label.16.strong' },
497
+ '[data-sidebar-menu-size="large"] &': {
498
+ borderRadius: 'xs',
499
+ minHeight: '56',
500
+ paddingInline: '12',
501
+ typography: 'body.b1',
502
+ },
285
503
  // Small rows fit long menus: 32px tall with 16px icons.
286
504
  '[data-sidebar-menu-size="small"] &': {
287
- borderRadius: '8',
288
505
  columnGap: '8',
289
506
  minHeight: '32',
290
507
  paddingBlock: '4',
291
- paddingInline: '8',
292
- typography: 'label.14.strong',
293
508
  },
294
509
  '[data-sidebar-menu-size="small"] & > svg': { fontSize: '16' },
295
510
  '&:active': { scale: 'press' },
296
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '-2' },
297
- '&:hover': { backgroundColor: 'grayAlpha.100', color: 'foreground' },
511
+ // The design lays out the 2px focus stroke inside the row, so the content moves 2px in.
512
+ '&:focus-visible': {
513
+ outlineColor: 'border.focus',
514
+ outlineOffset: '-2',
515
+ paddingInline: '10',
516
+ },
517
+ '[data-sidebar-menu-size="large"] &:focus-visible': {
518
+ paddingInline: '0.875rem !custom',
519
+ },
520
+ '&:hover': { backgroundColor: 'container.regular', color: 'content.primary' },
298
521
  },
299
522
  '@media (prefers-reduced-motion: reduce)': {
300
523
  transitionProperty: 'background-color, color, outline-color !custom',
@@ -305,18 +528,41 @@ namespace styles {
305
528
  variants: {
306
529
  active: {
307
530
  false: {},
308
- true: { backgroundColor: 'grayAlpha.100', color: 'foreground' },
531
+ true: {
532
+ backgroundColor: 'container.regular',
533
+ color: 'content.primary',
534
+ typography: 'body.b2Strong',
535
+ selectors: { '[data-sidebar-menu-size="large"] &': { typography: 'body.b1Strong' } },
536
+ },
309
537
  },
310
538
  },
311
539
  },
312
540
  { id: 'tds/web/sidebar-menu/item' },
313
541
  )
314
542
 
543
+ export const logo = variants(
544
+ {
545
+ base: {
546
+ alignItems: 'center',
547
+ backgroundColor: 'content.primary',
548
+ borderRadius: '2xs',
549
+ color: 'inverse.content.primary',
550
+ display: 'flex',
551
+ flexShrink: '0 !custom',
552
+ fontSize: '20',
553
+ height: '36',
554
+ justifyContent: 'center',
555
+ width: '36',
556
+ },
557
+ },
558
+ { id: 'tds/web/sidebar-menu/logo' },
559
+ )
560
+
315
561
  export const root = variants(
316
562
  {
317
- base: { display: 'flex', flexDirection: 'column', minWidth: '0', rowGap: '4' },
563
+ base: { display: 'flex', flexDirection: 'column', minWidth: '0', rowGap: '2' },
318
564
  defaultVariants: { size: 'medium' },
319
- variants: { size: { large: {}, medium: {}, small: { rowGap: '2' } } },
565
+ variants: { size: { large: { rowGap: '4' }, medium: {}, small: {} } },
320
566
  },
321
567
  { id: 'tds/web/sidebar-menu' },
322
568
  )
@@ -327,14 +573,11 @@ namespace styles {
327
573
  flexDirection: 'column',
328
574
  // Nested labels line up with the trigger's label: icon width plus the icon gap.
329
575
  paddingInlineStart: '32',
330
- paddingTop: '4',
331
- rowGap: '4',
576
+ paddingTop: '2',
577
+ rowGap: '2',
332
578
  selectors: {
333
- '[data-sidebar-menu-size="small"] &': {
334
- paddingInlineStart: '24',
335
- paddingTop: '2',
336
- rowGap: '2',
337
- },
579
+ '[data-sidebar-menu-size="large"] &': { paddingTop: '4', rowGap: '4' },
580
+ '[data-sidebar-menu-size="small"] &': { paddingInlineStart: '24' },
338
581
  },
339
582
  },
340
583
  { id: 'tds/web/sidebar-menu/submenu-content' },
@@ -51,15 +51,15 @@ namespace styles {
51
51
  defaultVariants: { shape: 'default', show: true },
52
52
  variants: {
53
53
  shape: {
54
- circle: { borderRadius: 'full' },
55
- default: { borderRadius: '8' },
56
- pill: { borderRadius: 'full' },
54
+ circle: { borderRadius: 'full', cornerShape: 'round' },
55
+ default: { borderRadius: '2xs' },
56
+ pill: { borderRadius: 'full', cornerShape: 'round' },
57
57
  },
58
58
  show: {
59
59
  false: {},
60
60
  true: {
61
- backgroundColor: 'grayAlpha.100',
62
- color: 'foreground',
61
+ backgroundColor: 'container.regular',
62
+ color: 'content.primary',
63
63
  overflow: 'hidden',
64
64
  pointerEvents: 'none',
65
65
  userSelect: 'none',
@@ -185,7 +185,7 @@ namespace styles {
185
185
  )
186
186
 
187
187
  export const indicator = style(
188
- { backgroundColor: 'foreground', borderRadius: 'full' },
188
+ { backgroundColor: 'content.primary', borderRadius: 'full', cornerShape: 'round' },
189
189
  { id: 'tds/web/slider/indicator' },
190
190
  )
191
191
 
@@ -200,10 +200,11 @@ namespace styles {
200
200
 
201
201
  export const thumb = style(
202
202
  {
203
- backgroundColor: 'white',
203
+ backgroundColor: 'neutral.000',
204
204
  borderRadius: 'full',
205
- boxShadow: 'thumb',
205
+ boxShadow: 'small',
206
206
  boxSizing: 'border-box',
207
+ cornerShape: 'round',
207
208
  height: '24',
208
209
  outlineColor: 'transparent !custom',
209
210
  outlineOffset: '0',
@@ -214,7 +215,7 @@ namespace styles {
214
215
  transitionTimingFunction: 'snappy',
215
216
  width: '24',
216
217
  selectors: {
217
- '&:has(:focus-visible)': { outlineColor: 'blue.700', outlineOffset: '2' },
218
+ '&:has(:focus-visible)': { outlineColor: 'border.focus', outlineOffset: '2' },
218
219
  '&[data-dragging]': { transform: 'scale(1.08) !custom' },
219
220
  },
220
221
  '@media (prefers-reduced-motion: reduce)': {
@@ -227,9 +228,10 @@ namespace styles {
227
228
 
228
229
  export const track = style(
229
230
  {
230
- backgroundColor: 'grayAlpha.200',
231
+ backgroundColor: 'container.strong',
231
232
  borderRadius: 'full',
232
233
  boxSizing: 'border-box',
234
+ cornerShape: 'round',
233
235
  height: '4',
234
236
  position: 'relative',
235
237
  userSelect: 'none',
@@ -239,7 +241,11 @@ namespace styles {
239
241
  )
240
242
 
241
243
  export const value = style(
242
- { color: 'gray.900', fontVariantNumeric: 'tabular-nums !custom', typography: 'copy.14' },
244
+ {
245
+ color: 'content.secondary',
246
+ fontVariantNumeric: 'tabular-nums !custom',
247
+ typography: 'body.b2',
248
+ },
243
249
  { id: 'tds/web/slider/value' },
244
250
  )
245
251
  }