@tempoxyz/ds 0.2.5 → 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 (735) hide show
  1. package/README.md +2 -0
  2. package/dist/fonts/Inter-cyrillic-ext.woff2 +0 -0
  3. package/dist/fonts/Inter-cyrillic.woff2 +0 -0
  4. package/dist/fonts/Inter-greek-ext.woff2 +0 -0
  5. package/dist/fonts/Inter-greek.woff2 +0 -0
  6. package/dist/fonts/Inter-latin-ext.woff2 +0 -0
  7. package/dist/fonts/Inter-latin.woff2 +0 -0
  8. package/dist/fonts/Inter-symbols.woff2 +0 -0
  9. package/dist/fonts/Inter-vietnamese.woff2 +0 -0
  10. package/dist/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  11. package/dist/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  12. package/dist/fonts/JetBrainsMono-Bold.woff2 +0 -0
  13. package/dist/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  14. package/dist/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  15. package/dist/fonts/JetBrainsMono-Medium.woff2 +0 -0
  16. package/dist/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  17. package/dist/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  18. package/dist/fonts/JetBrainsMono-Regular.woff2 +0 -0
  19. package/dist/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  20. package/dist/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  21. package/dist/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  22. package/dist/fonts/Pilat-Black-latin.woff2 +0 -0
  23. package/dist/fonts/Pilat-Black-other.woff2 +0 -0
  24. package/dist/fonts/Pilat-Black.woff2 +0 -0
  25. package/dist/fonts/Pilat-Bold-latin.woff2 +0 -0
  26. package/dist/fonts/Pilat-Bold-other.woff2 +0 -0
  27. package/dist/fonts/Pilat-Bold.woff2 +0 -0
  28. package/dist/fonts/Pilat-Book-latin.woff2 +0 -0
  29. package/dist/fonts/Pilat-Book-other.woff2 +0 -0
  30. package/dist/fonts/Pilat-Book.woff2 +0 -0
  31. package/dist/fonts/Pilat-Demi-latin.woff2 +0 -0
  32. package/dist/fonts/Pilat-Demi-other.woff2 +0 -0
  33. package/dist/fonts/Pilat-Demi.woff2 +0 -0
  34. package/dist/fonts/Pilat-Heavy-latin.woff2 +0 -0
  35. package/dist/fonts/Pilat-Heavy-other.woff2 +0 -0
  36. package/dist/fonts/Pilat-Heavy.woff2 +0 -0
  37. package/dist/fonts/Pilat-Light-latin.woff2 +0 -0
  38. package/dist/fonts/Pilat-Light-other.woff2 +0 -0
  39. package/dist/fonts/Pilat-Light.woff2 +0 -0
  40. package/dist/fonts/Pilat-Regular-latin.woff2 +0 -0
  41. package/dist/fonts/Pilat-Regular-other.woff2 +0 -0
  42. package/dist/fonts/Pilat-Regular.woff2 +0 -0
  43. package/dist/fonts/Pilat-Thin-latin.woff2 +0 -0
  44. package/dist/fonts/Pilat-Thin-other.woff2 +0 -0
  45. package/dist/fonts/Pilat-Thin.woff2 +0 -0
  46. package/dist/mobile/Haptics.d.ts +39 -0
  47. package/dist/mobile/Haptics.d.ts.map +1 -0
  48. package/dist/mobile/Haptics.js +51 -0
  49. package/dist/mobile/Haptics.js.map +1 -0
  50. package/dist/mobile/components/Button.d.ts.map +1 -1
  51. package/dist/mobile/components/Button.js +3 -3
  52. package/dist/mobile/components/Button.js.map +1 -1
  53. package/dist/mobile/components/IconButton.d.ts.map +1 -1
  54. package/dist/mobile/components/IconButton.js +3 -3
  55. package/dist/mobile/components/IconButton.js.map +1 -1
  56. package/dist/mobile/components/Spinner.js +1 -1
  57. package/dist/mobile/components/Spinner.js.map +1 -1
  58. package/dist/mobile/components/TextButton.d.ts.map +1 -1
  59. package/dist/mobile/components/TextButton.js +3 -3
  60. package/dist/mobile/components/TextButton.js.map +1 -1
  61. package/dist/mobile/components/TextInput.js +1 -1
  62. package/dist/mobile/components/TextInput.js.map +1 -1
  63. package/dist/mobile/components/Toast.js +1 -1
  64. package/dist/mobile/components/Toast.js.map +1 -1
  65. package/dist/mobile/components/Toggle.d.ts.map +1 -1
  66. package/dist/mobile/components/Toggle.js +2 -2
  67. package/dist/mobile/components/Toggle.js.map +1 -1
  68. package/dist/mobile/index.d.ts +2 -0
  69. package/dist/mobile/index.d.ts.map +1 -1
  70. package/dist/mobile/index.js +2 -0
  71. package/dist/mobile/index.js.map +1 -1
  72. package/dist/mobile/useColor.d.ts +23 -0
  73. package/dist/mobile/useColor.d.ts.map +1 -0
  74. package/dist/mobile/useColor.js +29 -0
  75. package/dist/mobile/useColor.js.map +1 -0
  76. package/dist/oxlint/rules/PreferComponent.js +6 -6
  77. package/dist/oxlint/rules/PreferComponent.js.map +1 -1
  78. package/dist/web/components/Accordion.css +1 -1
  79. package/dist/web/components/Accordion.d.ts +7 -7
  80. package/dist/web/components/Accordion.js +8 -8
  81. package/dist/web/components/Accordion.js.map +1 -1
  82. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  83. package/dist/web/components/AgentLogo.css +1 -0
  84. package/dist/web/components/AgentLogo.d.ts +206 -0
  85. package/dist/web/components/AgentLogo.d.ts.map +1 -0
  86. package/dist/web/components/AgentLogo.js +86 -0
  87. package/dist/web/components/AgentLogo.js.map +1 -0
  88. package/dist/web/components/AgentLogo.js.zyzz.json +1 -0
  89. package/dist/web/components/Alert.css +1 -0
  90. package/dist/web/components/Alert.d.ts +156 -0
  91. package/dist/web/components/Alert.d.ts.map +1 -0
  92. package/dist/web/components/Alert.js +92 -0
  93. package/dist/web/components/Alert.js.map +1 -0
  94. package/dist/web/components/Alert.js.zyzz.json +1 -0
  95. package/dist/web/components/AlertDialog.d.ts +40 -28
  96. package/dist/web/components/AlertDialog.d.ts.map +1 -1
  97. package/dist/web/components/AlertDialog.js +31 -36
  98. package/dist/web/components/AlertDialog.js.map +1 -1
  99. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  100. package/dist/web/components/Amount.css +1 -1
  101. package/dist/web/components/Amount.d.ts +5 -5
  102. package/dist/web/components/Amount.d.ts.map +1 -1
  103. package/dist/web/components/Amount.js +3 -3
  104. package/dist/web/components/Amount.js.map +1 -1
  105. package/dist/web/components/Amount.js.zyzz.json +1 -1
  106. package/dist/web/components/AmountInput.css +1 -1
  107. package/dist/web/components/AmountInput.d.ts +20 -39
  108. package/dist/web/components/AmountInput.d.ts.map +1 -1
  109. package/dist/web/components/AmountInput.js +32 -38
  110. package/dist/web/components/AmountInput.js.map +1 -1
  111. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  112. package/dist/web/components/AppShell.css +1 -1
  113. package/dist/web/components/AppShell.d.ts +65 -29
  114. package/dist/web/components/AppShell.d.ts.map +1 -1
  115. package/dist/web/components/AppShell.js +33 -21
  116. package/dist/web/components/AppShell.js.map +1 -1
  117. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  118. package/dist/web/components/AssetChip.css +1 -0
  119. package/dist/web/components/AssetChip.d.ts +38 -0
  120. package/dist/web/components/AssetChip.d.ts.map +1 -0
  121. package/dist/web/components/AssetChip.js +47 -0
  122. package/dist/web/components/AssetChip.js.map +1 -0
  123. package/dist/web/components/AssetChip.js.zyzz.json +1 -0
  124. package/dist/web/components/Autocomplete.d.ts +2 -2
  125. package/dist/web/components/Autocomplete.js +4 -4
  126. package/dist/web/components/Autocomplete.js.map +1 -1
  127. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  128. package/dist/web/components/Avatar.css +1 -1
  129. package/dist/web/components/Avatar.d.ts +40 -115
  130. package/dist/web/components/Avatar.d.ts.map +1 -1
  131. package/dist/web/components/Avatar.js +19 -34
  132. package/dist/web/components/Avatar.js.map +1 -1
  133. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  134. package/dist/web/components/Badge.css +1 -0
  135. package/dist/web/components/Badge.d.ts +134 -0
  136. package/dist/web/components/Badge.d.ts.map +1 -0
  137. package/dist/web/components/Badge.js +38 -0
  138. package/dist/web/components/Badge.js.map +1 -0
  139. package/dist/web/components/Badge.js.zyzz.json +1 -0
  140. package/dist/web/components/Banner.css +1 -1
  141. package/dist/web/components/Banner.d.ts +12 -12
  142. package/dist/web/components/Banner.d.ts.map +1 -1
  143. package/dist/web/components/Banner.js +6 -6
  144. package/dist/web/components/Banner.js.map +1 -1
  145. package/dist/web/components/Banner.js.zyzz.json +1 -1
  146. package/dist/web/components/BarChart.css +1 -0
  147. package/dist/web/components/BarChart.d.ts +155 -0
  148. package/dist/web/components/BarChart.d.ts.map +1 -0
  149. package/dist/web/components/BarChart.js +119 -0
  150. package/dist/web/components/BarChart.js.map +1 -0
  151. package/dist/web/components/BarChart.js.zyzz.json +1 -0
  152. package/dist/web/components/Breadcrumbs.css +1 -1
  153. package/dist/web/components/Breadcrumbs.d.ts +6 -6
  154. package/dist/web/components/Breadcrumbs.js +6 -6
  155. package/dist/web/components/Breadcrumbs.js.map +1 -1
  156. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  157. package/dist/web/components/Button.css +1 -1
  158. package/dist/web/components/Button.d.ts +166 -35
  159. package/dist/web/components/Button.d.ts.map +1 -1
  160. package/dist/web/components/Button.js +14 -10
  161. package/dist/web/components/Button.js.map +1 -1
  162. package/dist/web/components/Button.js.zyzz.json +1 -1
  163. package/dist/web/components/ButtonGroup.css +1 -0
  164. package/dist/web/components/ButtonGroup.d.ts +56 -0
  165. package/dist/web/components/ButtonGroup.d.ts.map +1 -0
  166. package/dist/web/components/ButtonGroup.js +33 -0
  167. package/dist/web/components/ButtonGroup.js.map +1 -0
  168. package/dist/web/components/ButtonGroup.js.zyzz.json +1 -0
  169. package/dist/web/components/Calendar.css +1 -1
  170. package/dist/web/components/Calendar.d.ts.map +1 -1
  171. package/dist/web/components/Calendar.js +8 -8
  172. package/dist/web/components/Calendar.js.map +1 -1
  173. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  174. package/dist/web/components/Checkbox.css +1 -1
  175. package/dist/web/components/Checkbox.d.ts +11 -11
  176. package/dist/web/components/Checkbox.d.ts.map +1 -1
  177. package/dist/web/components/Checkbox.js +9 -6
  178. package/dist/web/components/Checkbox.js.map +1 -1
  179. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  180. package/dist/web/components/CheckboxGroup.css +1 -1
  181. package/dist/web/components/CheckboxGroup.js +1 -1
  182. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  183. package/dist/web/components/ChoiceGroup.css +1 -1
  184. package/dist/web/components/ChoiceGroup.d.ts +44 -16
  185. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  186. package/dist/web/components/ChoiceGroup.js +33 -9
  187. package/dist/web/components/ChoiceGroup.js.map +1 -1
  188. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  189. package/dist/web/components/Choicebox.css +1 -1
  190. package/dist/web/components/Choicebox.d.ts +9 -9
  191. package/dist/web/components/Choicebox.d.ts.map +1 -1
  192. package/dist/web/components/Choicebox.js +11 -11
  193. package/dist/web/components/Choicebox.js.map +1 -1
  194. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  195. package/dist/web/components/Combobox.css +1 -1
  196. package/dist/web/components/Combobox.d.ts +2 -2
  197. package/dist/web/components/Combobox.d.ts.map +1 -1
  198. package/dist/web/components/Combobox.js +8 -8
  199. package/dist/web/components/Combobox.js.map +1 -1
  200. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  201. package/dist/web/components/Container.css +1 -1
  202. package/dist/web/components/Container.js +1 -3
  203. package/dist/web/components/Container.js.zyzz.json +1 -1
  204. package/dist/web/components/CopyButton.css +1 -1
  205. package/dist/web/components/CopyButton.js +4 -4
  206. package/dist/web/components/CopyButton.js.map +1 -1
  207. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  208. package/dist/web/components/DatePicker.css +1 -1
  209. package/dist/web/components/DatePicker.d.ts +37 -56
  210. package/dist/web/components/DatePicker.d.ts.map +1 -1
  211. package/dist/web/components/DatePicker.js +8 -8
  212. package/dist/web/components/DatePicker.js.map +1 -1
  213. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  214. package/dist/web/components/Dialog.css +1 -1
  215. package/dist/web/components/Dialog.d.ts +189 -20
  216. package/dist/web/components/Dialog.d.ts.map +1 -1
  217. package/dist/web/components/Dialog.js +94 -27
  218. package/dist/web/components/Dialog.js.map +1 -1
  219. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  220. package/dist/web/components/Drawer.css +1 -1
  221. package/dist/web/components/Drawer.d.ts +7 -2
  222. package/dist/web/components/Drawer.d.ts.map +1 -1
  223. package/dist/web/components/Drawer.js +13 -7
  224. package/dist/web/components/Drawer.js.map +1 -1
  225. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  226. package/dist/web/components/Empty.css +1 -1
  227. package/dist/web/components/Empty.d.ts +2 -0
  228. package/dist/web/components/Empty.d.ts.map +1 -1
  229. package/dist/web/components/Empty.js +7 -5
  230. package/dist/web/components/Empty.js.map +1 -1
  231. package/dist/web/components/Empty.js.zyzz.json +1 -1
  232. package/dist/web/components/Field.css +1 -1
  233. package/dist/web/components/Field.d.ts +16 -21
  234. package/dist/web/components/Field.d.ts.map +1 -1
  235. package/dist/web/components/Field.js +38 -36
  236. package/dist/web/components/Field.js.map +1 -1
  237. package/dist/web/components/Field.js.zyzz.json +1 -1
  238. package/dist/web/components/Fieldset.css +1 -1
  239. package/dist/web/components/Fieldset.d.ts +9 -18
  240. package/dist/web/components/Fieldset.d.ts.map +1 -1
  241. package/dist/web/components/Fieldset.js +12 -15
  242. package/dist/web/components/Fieldset.js.map +1 -1
  243. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  244. package/dist/web/components/Frame.css +1 -1
  245. package/dist/web/components/Frame.d.ts +13 -19
  246. package/dist/web/components/Frame.d.ts.map +1 -1
  247. package/dist/web/components/Frame.js +9 -11
  248. package/dist/web/components/Frame.js.map +1 -1
  249. package/dist/web/components/Frame.js.zyzz.json +1 -1
  250. package/dist/web/components/Gauge.css +1 -1
  251. package/dist/web/components/Gauge.d.ts +2 -2
  252. package/dist/web/components/Gauge.d.ts.map +1 -1
  253. package/dist/web/components/Gauge.js +6 -6
  254. package/dist/web/components/Gauge.js.map +1 -1
  255. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  256. package/dist/web/components/Grid.css +1 -1
  257. package/dist/web/components/Grid.js +1 -3
  258. package/dist/web/components/Grid.js.zyzz.json +1 -1
  259. package/dist/web/components/Hex.css +1 -1
  260. package/dist/web/components/Hex.d.ts +10 -10
  261. package/dist/web/components/Hex.js +6 -6
  262. package/dist/web/components/Hex.js.map +1 -1
  263. package/dist/web/components/Hex.js.zyzz.json +1 -1
  264. package/dist/web/components/IconTile.css +1 -0
  265. package/dist/web/components/IconTile.d.ts +62 -0
  266. package/dist/web/components/IconTile.d.ts.map +1 -0
  267. package/dist/web/components/IconTile.js +28 -0
  268. package/dist/web/components/IconTile.js.map +1 -0
  269. package/dist/web/components/IconTile.js.zyzz.json +1 -0
  270. package/dist/web/components/Identicon.css +1 -1
  271. package/dist/web/components/Identicon.d.ts +1 -0
  272. package/dist/web/components/Identicon.d.ts.map +1 -1
  273. package/dist/web/components/Identicon.js +1 -3
  274. package/dist/web/components/Identicon.js.map +1 -1
  275. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  276. package/dist/web/components/Inline.css +1 -1
  277. package/dist/web/components/Inline.js +1 -3
  278. package/dist/web/components/Inline.js.zyzz.json +1 -1
  279. package/dist/web/components/Inset.css +1 -1
  280. package/dist/web/components/Inset.js +1 -3
  281. package/dist/web/components/Inset.js.zyzz.json +1 -1
  282. package/dist/web/components/Kbd.css +1 -1
  283. package/dist/web/components/Kbd.d.ts +7 -7
  284. package/dist/web/components/Kbd.js +3 -3
  285. package/dist/web/components/Kbd.js.map +1 -1
  286. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  287. package/dist/web/components/ListGroup.css +1 -0
  288. package/dist/web/components/ListGroup.d.ts +483 -0
  289. package/dist/web/components/ListGroup.d.ts.map +1 -0
  290. package/dist/web/components/ListGroup.js +266 -0
  291. package/dist/web/components/ListGroup.js.map +1 -0
  292. package/dist/web/components/ListGroup.js.zyzz.json +1 -0
  293. package/dist/web/components/LoadingDots.css +1 -1
  294. package/dist/web/components/LoadingDots.d.ts.map +1 -1
  295. package/dist/web/components/LoadingDots.js +3 -3
  296. package/dist/web/components/LoadingDots.js.map +1 -1
  297. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  298. package/dist/web/components/Menu.css +1 -1
  299. package/dist/web/components/Menu.d.ts +39 -20
  300. package/dist/web/components/Menu.d.ts.map +1 -1
  301. package/dist/web/components/Menu.js +15 -10
  302. package/dist/web/components/Menu.js.map +1 -1
  303. package/dist/web/components/Menu.js.zyzz.json +1 -1
  304. package/dist/web/components/NetworkLogo.css +1 -0
  305. package/dist/web/components/NetworkLogo.d.ts +58 -0
  306. package/dist/web/components/NetworkLogo.d.ts.map +1 -0
  307. package/dist/web/components/NetworkLogo.js +40 -0
  308. package/dist/web/components/NetworkLogo.js.map +1 -0
  309. package/dist/web/components/NetworkLogo.js.zyzz.json +1 -0
  310. package/dist/web/components/NumberField.css +1 -1
  311. package/dist/web/components/NumberField.d.ts +3 -3
  312. package/dist/web/components/NumberField.d.ts.map +1 -1
  313. package/dist/web/components/NumberField.js +8 -8
  314. package/dist/web/components/NumberField.js.map +1 -1
  315. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  316. package/dist/web/components/OtpField.css +1 -1
  317. package/dist/web/components/OtpField.d.ts +8 -68
  318. package/dist/web/components/OtpField.d.ts.map +1 -1
  319. package/dist/web/components/OtpField.js +13 -10
  320. package/dist/web/components/OtpField.js.map +1 -1
  321. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  322. package/dist/web/components/Pagination.css +1 -1
  323. package/dist/web/components/Pagination.d.ts +16 -14
  324. package/dist/web/components/Pagination.d.ts.map +1 -1
  325. package/dist/web/components/Pagination.js +6 -6
  326. package/dist/web/components/Pagination.js.map +1 -1
  327. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  328. package/dist/web/components/Popover.css +1 -1
  329. package/dist/web/components/Popover.js +5 -5
  330. package/dist/web/components/Popover.js.map +1 -1
  331. package/dist/web/components/Popover.js.zyzz.json +1 -1
  332. package/dist/web/components/Progress.css +1 -1
  333. package/dist/web/components/Progress.d.ts +2 -2
  334. package/dist/web/components/Progress.d.ts.map +1 -1
  335. package/dist/web/components/Progress.js +6 -6
  336. package/dist/web/components/Progress.js.map +1 -1
  337. package/dist/web/components/Progress.js.zyzz.json +1 -1
  338. package/dist/web/components/Qr.css +1 -1
  339. package/dist/web/components/Qr.d.ts +1 -1
  340. package/dist/web/components/Qr.js +1 -3
  341. package/dist/web/components/Qr.js.map +1 -1
  342. package/dist/web/components/Qr.js.zyzz.json +1 -1
  343. package/dist/web/components/RadioGroup.css +1 -1
  344. package/dist/web/components/RadioGroup.d.ts.map +1 -1
  345. package/dist/web/components/RadioGroup.js +4 -4
  346. package/dist/web/components/RadioGroup.js.map +1 -1
  347. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  348. package/dist/web/components/SecretValue.css +1 -1
  349. package/dist/web/components/SecretValue.d.ts +7 -7
  350. package/dist/web/components/SecretValue.js +4 -4
  351. package/dist/web/components/SecretValue.js.map +1 -1
  352. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  353. package/dist/web/components/Select.css +1 -1
  354. package/dist/web/components/Select.d.ts +64 -2
  355. package/dist/web/components/Select.d.ts.map +1 -1
  356. package/dist/web/components/Select.js +24 -7
  357. package/dist/web/components/Select.js.map +1 -1
  358. package/dist/web/components/Select.js.zyzz.json +1 -1
  359. package/dist/web/components/Separator.css +1 -1
  360. package/dist/web/components/Separator.d.ts +17 -3
  361. package/dist/web/components/Separator.d.ts.map +1 -1
  362. package/dist/web/components/Separator.js +40 -5
  363. package/dist/web/components/Separator.js.map +1 -1
  364. package/dist/web/components/Separator.js.zyzz.json +1 -1
  365. package/dist/web/components/SidebarMenu.css +1 -1
  366. package/dist/web/components/SidebarMenu.d.ts +186 -39
  367. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  368. package/dist/web/components/SidebarMenu.js +91 -19
  369. package/dist/web/components/SidebarMenu.js.map +1 -1
  370. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  371. package/dist/web/components/Skeleton.css +1 -1
  372. package/dist/web/components/Skeleton.d.ts +5 -3
  373. package/dist/web/components/Skeleton.d.ts.map +1 -1
  374. package/dist/web/components/Skeleton.js +1 -3
  375. package/dist/web/components/Skeleton.js.map +1 -1
  376. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  377. package/dist/web/components/Slider.css +1 -1
  378. package/dist/web/components/Slider.d.ts.map +1 -1
  379. package/dist/web/components/Slider.js +6 -6
  380. package/dist/web/components/Slider.js.map +1 -1
  381. package/dist/web/components/Slider.js.zyzz.json +1 -1
  382. package/dist/web/components/Snippet.css +1 -1
  383. package/dist/web/components/Snippet.d.ts +27 -65
  384. package/dist/web/components/Snippet.d.ts.map +1 -1
  385. package/dist/web/components/Snippet.js +48 -11
  386. package/dist/web/components/Snippet.js.map +1 -1
  387. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  388. package/dist/web/components/Spinner.css +1 -1
  389. package/dist/web/components/Spinner.d.ts +25 -16
  390. package/dist/web/components/Spinner.d.ts.map +1 -1
  391. package/dist/web/components/Spinner.js +13 -8
  392. package/dist/web/components/Spinner.js.map +1 -1
  393. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  394. package/dist/web/components/SplitBar.css +1 -0
  395. package/dist/web/components/SplitBar.d.ts +99 -0
  396. package/dist/web/components/SplitBar.d.ts.map +1 -0
  397. package/dist/web/components/SplitBar.js +49 -0
  398. package/dist/web/components/SplitBar.js.map +1 -0
  399. package/dist/web/components/SplitBar.js.zyzz.json +1 -0
  400. package/dist/web/components/SplitButton.css +1 -1
  401. package/dist/web/components/SplitButton.d.ts +4 -1
  402. package/dist/web/components/SplitButton.d.ts.map +1 -1
  403. package/dist/web/components/SplitButton.js +2 -2
  404. package/dist/web/components/SplitButton.js.map +1 -1
  405. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  406. package/dist/web/components/Stack.css +1 -1
  407. package/dist/web/components/Stack.js +1 -3
  408. package/dist/web/components/Stack.js.zyzz.json +1 -1
  409. package/dist/web/components/StatusChip.css +1 -0
  410. package/dist/web/components/StatusChip.d.ts +162 -0
  411. package/dist/web/components/StatusChip.d.ts.map +1 -0
  412. package/dist/web/components/StatusChip.js +37 -0
  413. package/dist/web/components/StatusChip.js.map +1 -0
  414. package/dist/web/components/StatusChip.js.zyzz.json +1 -0
  415. package/dist/web/components/StatusRow.css +1 -0
  416. package/dist/web/components/StatusRow.d.ts +121 -0
  417. package/dist/web/components/StatusRow.d.ts.map +1 -0
  418. package/dist/web/components/StatusRow.js +75 -0
  419. package/dist/web/components/StatusRow.js.map +1 -0
  420. package/dist/web/components/StatusRow.js.zyzz.json +1 -0
  421. package/dist/web/components/Stepper.css +1 -1
  422. package/dist/web/components/Stepper.d.ts +10 -7
  423. package/dist/web/components/Stepper.d.ts.map +1 -1
  424. package/dist/web/components/Stepper.js +7 -6
  425. package/dist/web/components/Stepper.js.map +1 -1
  426. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  427. package/dist/web/components/Surface.css +1 -1
  428. package/dist/web/components/Surface.d.ts +56 -119
  429. package/dist/web/components/Surface.d.ts.map +1 -1
  430. package/dist/web/components/Surface.js +19 -14
  431. package/dist/web/components/Surface.js.map +1 -1
  432. package/dist/web/components/Surface.js.zyzz.json +1 -1
  433. package/dist/web/components/Switch.css +1 -1
  434. package/dist/web/components/Switch.d.ts +14 -18
  435. package/dist/web/components/Switch.d.ts.map +1 -1
  436. package/dist/web/components/Switch.js +14 -16
  437. package/dist/web/components/Switch.js.map +1 -1
  438. package/dist/web/components/Switch.js.zyzz.json +1 -1
  439. package/dist/web/components/Table.css +1 -1
  440. package/dist/web/components/Table.d.ts +152 -67
  441. package/dist/web/components/Table.d.ts.map +1 -1
  442. package/dist/web/components/Table.js +91 -25
  443. package/dist/web/components/Table.js.map +1 -1
  444. package/dist/web/components/Table.js.zyzz.json +1 -1
  445. package/dist/web/components/Tabs.css +1 -1
  446. package/dist/web/components/Tabs.d.ts +49 -42
  447. package/dist/web/components/Tabs.d.ts.map +1 -1
  448. package/dist/web/components/Tabs.js +44 -15
  449. package/dist/web/components/Tabs.js.map +1 -1
  450. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  451. package/dist/web/components/TempoLogo.css +1 -0
  452. package/dist/web/components/TempoLogo.d.ts +47 -0
  453. package/dist/web/components/TempoLogo.d.ts.map +1 -0
  454. package/dist/web/components/TempoLogo.js +48 -0
  455. package/dist/web/components/TempoLogo.js.map +1 -0
  456. package/dist/web/components/TempoLogo.js.zyzz.json +1 -0
  457. package/dist/web/components/TextInput.css +1 -0
  458. package/dist/web/components/{Input.d.ts → TextInput.d.ts} +27 -18
  459. package/dist/web/components/TextInput.d.ts.map +1 -0
  460. package/dist/web/components/TextInput.js +138 -0
  461. package/dist/web/components/TextInput.js.map +1 -0
  462. package/dist/web/components/TextInput.js.zyzz.json +1 -0
  463. package/dist/web/components/Textarea.css +1 -1
  464. package/dist/web/components/Textarea.d.ts +29 -74
  465. package/dist/web/components/Textarea.d.ts.map +1 -1
  466. package/dist/web/components/Textarea.js +5 -14
  467. package/dist/web/components/Textarea.js.map +1 -1
  468. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  469. package/dist/web/components/Toast.css +1 -1
  470. package/dist/web/components/Toast.d.ts +4 -4
  471. package/dist/web/components/Toast.d.ts.map +1 -1
  472. package/dist/web/components/Toast.js +10 -10
  473. package/dist/web/components/Toast.js.map +1 -1
  474. package/dist/web/components/Toast.js.zyzz.json +1 -1
  475. package/dist/web/components/Token.css +1 -1
  476. package/dist/web/components/Token.d.ts +32 -90
  477. package/dist/web/components/Token.d.ts.map +1 -1
  478. package/dist/web/components/Token.js +26 -90
  479. package/dist/web/components/Token.js.map +1 -1
  480. package/dist/web/components/Token.js.zyzz.json +1 -1
  481. package/dist/web/components/TokenLogo.css +1 -0
  482. package/dist/web/components/TokenLogo.d.ts +117 -0
  483. package/dist/web/components/TokenLogo.d.ts.map +1 -0
  484. package/dist/web/components/TokenLogo.js +112 -0
  485. package/dist/web/components/TokenLogo.js.map +1 -0
  486. package/dist/web/components/TokenLogo.js.zyzz.json +1 -0
  487. package/dist/web/components/Tooltip.css +1 -1
  488. package/dist/web/components/Tooltip.js +2 -2
  489. package/dist/web/components/Tooltip.js.map +1 -1
  490. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  491. package/dist/web/components/VerificationCode.css +1 -0
  492. package/dist/web/components/VerificationCode.d.ts +47 -0
  493. package/dist/web/components/VerificationCode.d.ts.map +1 -0
  494. package/dist/web/components/VerificationCode.js +55 -0
  495. package/dist/web/components/VerificationCode.js.map +1 -0
  496. package/dist/web/components/VerificationCode.js.zyzz.json +1 -0
  497. package/dist/web/components/Visual.css +1 -0
  498. package/dist/web/components/Visual.d.ts +65 -0
  499. package/dist/web/components/Visual.d.ts.map +1 -0
  500. package/dist/web/components/Visual.js +51 -0
  501. package/dist/web/components/Visual.js.map +1 -0
  502. package/dist/web/components/Visual.js.zyzz.json +1 -0
  503. package/dist/web/components/internal/Field.css +1 -1
  504. package/dist/web/components/internal/Field.d.ts +41 -87
  505. package/dist/web/components/internal/Field.d.ts.map +1 -1
  506. package/dist/web/components/internal/Field.js +9 -8
  507. package/dist/web/components/internal/Field.js.map +1 -1
  508. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  509. package/dist/web/components/internal/InputGroup.css +1 -1
  510. package/dist/web/components/internal/InputGroup.d.ts +38 -99
  511. package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
  512. package/dist/web/components/internal/InputGroup.js +6 -8
  513. package/dist/web/components/internal/InputGroup.js.map +1 -1
  514. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  515. package/dist/web/components/internal/Listbox.css +1 -1
  516. package/dist/web/components/internal/Listbox.d.ts +8 -8
  517. package/dist/web/components/internal/Listbox.js +13 -13
  518. package/dist/web/components/internal/Listbox.js.map +1 -1
  519. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  520. package/dist/web/components/internal/RowDisabled.d.ts +3 -0
  521. package/dist/web/components/internal/RowDisabled.d.ts.map +1 -0
  522. package/dist/web/components/internal/RowDisabled.js +9 -0
  523. package/dist/web/components/internal/RowDisabled.js.map +1 -0
  524. package/dist/web/components/internal/RowsSize.d.ts +2 -3
  525. package/dist/web/components/internal/RowsSize.d.ts.map +1 -1
  526. package/dist/web/components/internal/RowsSize.js +3 -3
  527. package/dist/web/components/internal/RowsSize.js.map +1 -1
  528. package/dist/web/index.d.ts +18 -6
  529. package/dist/web/index.d.ts.map +1 -1
  530. package/dist/web/index.js +18 -6
  531. package/dist/web/index.js.map +1 -1
  532. package/dist/web/index.js.zyzz.json +1 -1
  533. package/dist/web/vars.d.ts +591 -699
  534. package/dist/web/vars.d.ts.map +1 -1
  535. package/dist/web/vars.js +7 -6
  536. package/dist/web/vars.js.map +1 -1
  537. package/dist/web/vars.js.zyzz.json +1 -1
  538. package/dist/web/zyzz.config.d.ts +2935 -3480
  539. package/dist/web/zyzz.config.d.ts.map +1 -1
  540. package/dist/web/zyzz.config.js +39 -3
  541. package/dist/web/zyzz.config.js.map +1 -1
  542. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  543. package/package.json +180 -4
  544. package/src/fonts/Inter-cyrillic-ext.woff2 +0 -0
  545. package/src/fonts/Inter-cyrillic.woff2 +0 -0
  546. package/src/fonts/Inter-greek-ext.woff2 +0 -0
  547. package/src/fonts/Inter-greek.woff2 +0 -0
  548. package/src/fonts/Inter-latin-ext.woff2 +0 -0
  549. package/src/fonts/Inter-latin.woff2 +0 -0
  550. package/src/fonts/Inter-symbols.woff2 +0 -0
  551. package/src/fonts/Inter-vietnamese.woff2 +0 -0
  552. package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  553. package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  554. package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
  555. package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  556. package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  557. package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
  558. package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
  559. package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  560. package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  561. package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
  562. package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  563. package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  564. package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  565. package/src/fonts/Pilat-Black-latin.woff2 +0 -0
  566. package/src/fonts/Pilat-Black-other.woff2 +0 -0
  567. package/src/fonts/Pilat-Black.woff2 +0 -0
  568. package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
  569. package/src/fonts/Pilat-Bold-other.woff2 +0 -0
  570. package/src/fonts/Pilat-Bold.woff2 +0 -0
  571. package/src/fonts/Pilat-Book-latin.woff2 +0 -0
  572. package/src/fonts/Pilat-Book-other.woff2 +0 -0
  573. package/src/fonts/Pilat-Book.woff2 +0 -0
  574. package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
  575. package/src/fonts/Pilat-Demi-other.woff2 +0 -0
  576. package/src/fonts/Pilat-Demi.woff2 +0 -0
  577. package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
  578. package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
  579. package/src/fonts/Pilat-Heavy.woff2 +0 -0
  580. package/src/fonts/Pilat-Light-latin.woff2 +0 -0
  581. package/src/fonts/Pilat-Light-other.woff2 +0 -0
  582. package/src/fonts/Pilat-Light.woff2 +0 -0
  583. package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
  584. package/src/fonts/Pilat-Regular-other.woff2 +0 -0
  585. package/src/fonts/Pilat-Regular.woff2 +0 -0
  586. package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
  587. package/src/fonts/Pilat-Thin-other.woff2 +0 -0
  588. package/src/fonts/Pilat-Thin.woff2 +0 -0
  589. package/src/fonts/README.md +22 -1
  590. package/src/mobile/Haptics.ts +55 -0
  591. package/src/mobile/README.md +97 -1
  592. package/src/mobile/components/Button.tsx +3 -3
  593. package/src/mobile/components/IconButton.tsx +3 -3
  594. package/src/mobile/components/Spinner.tsx +1 -1
  595. package/src/mobile/components/TextButton.tsx +3 -3
  596. package/src/mobile/components/TextInput.tsx +1 -1
  597. package/src/mobile/components/Toast.tsx +1 -1
  598. package/src/mobile/components/Toggle.tsx +2 -2
  599. package/src/mobile/index.ts +2 -0
  600. package/src/mobile/useColor.ts +31 -0
  601. package/src/oxlint/rules/PreferComponent.ts +6 -6
  602. package/src/web/README.md +7 -7
  603. package/src/web/components/Accordion.tsx +8 -8
  604. package/src/web/components/AgentLogo.tsx +330 -0
  605. package/src/web/components/Alert.tsx +301 -0
  606. package/src/web/components/AlertDialog.tsx +47 -111
  607. package/src/web/components/Amount.tsx +6 -6
  608. package/src/web/components/AmountInput.tsx +59 -134
  609. package/src/web/components/AppShell.tsx +95 -36
  610. package/src/web/components/AssetChip.tsx +110 -0
  611. package/src/web/components/Autocomplete.tsx +4 -4
  612. package/src/web/components/Avatar.tsx +42 -119
  613. package/src/web/components/Badge.tsx +120 -0
  614. package/src/web/components/Banner.tsx +13 -11
  615. package/src/web/components/BarChart.tsx +427 -0
  616. package/src/web/components/Breadcrumbs.tsx +7 -7
  617. package/src/web/components/Button.tsx +156 -42
  618. package/src/web/components/ButtonGroup.tsx +59 -0
  619. package/src/web/components/Calendar.tsx +15 -13
  620. package/src/web/components/Checkbox.tsx +14 -11
  621. package/src/web/components/ChoiceGroup.tsx +107 -26
  622. package/src/web/components/Choicebox.tsx +30 -28
  623. package/src/web/components/Combobox.tsx +10 -8
  624. package/src/web/components/CopyButton.tsx +1 -1
  625. package/src/web/components/DatePicker.tsx +42 -61
  626. package/src/web/components/Dialog.tsx +267 -71
  627. package/src/web/components/Drawer.tsx +45 -18
  628. package/src/web/components/Empty.tsx +13 -8
  629. package/src/web/components/Field.tsx +78 -132
  630. package/src/web/components/Fieldset.tsx +16 -37
  631. package/src/web/components/Frame.tsx +13 -20
  632. package/src/web/components/Gauge.tsx +4 -4
  633. package/src/web/components/Hex.tsx +11 -11
  634. package/src/web/components/IconTile.tsx +57 -0
  635. package/src/web/components/Identicon.tsx +6 -1
  636. package/src/web/components/Kbd.tsx +8 -8
  637. package/src/web/components/ListGroup.tsx +776 -0
  638. package/src/web/components/LoadingDots.tsx +1 -0
  639. package/src/web/components/Menu.tsx +50 -35
  640. package/src/web/components/NetworkLogo.tsx +208 -0
  641. package/src/web/components/NumberField.tsx +18 -33
  642. package/src/web/components/OtpField.tsx +51 -102
  643. package/src/web/components/Pagination.tsx +16 -14
  644. package/src/web/components/Popover.tsx +8 -8
  645. package/src/web/components/Progress.tsx +7 -5
  646. package/src/web/components/Qr.tsx +1 -1
  647. package/src/web/components/RadioGroup.tsx +9 -7
  648. package/src/web/components/SecretValue.tsx +11 -11
  649. package/src/web/components/Select.tsx +87 -26
  650. package/src/web/components/Separator.tsx +95 -7
  651. package/src/web/components/SidebarMenu.tsx +294 -51
  652. package/src/web/components/Skeleton.tsx +5 -5
  653. package/src/web/components/Slider.tsx +12 -6
  654. package/src/web/components/Snippet.tsx +134 -75
  655. package/src/web/components/Spinner.tsx +38 -12
  656. package/src/web/components/SplitBar.tsx +158 -0
  657. package/src/web/components/SplitButton.tsx +26 -17
  658. package/src/web/components/StatusChip.tsx +138 -0
  659. package/src/web/components/StatusRow.tsx +162 -0
  660. package/src/web/components/Stepper.tsx +11 -8
  661. package/src/web/components/Surface.tsx +70 -95
  662. package/src/web/components/Switch.tsx +25 -29
  663. package/src/web/components/Table.tsx +281 -70
  664. package/src/web/components/Tabs.tsx +93 -50
  665. package/src/web/components/TempoLogo.tsx +89 -0
  666. package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
  667. package/src/web/components/Textarea.tsx +33 -78
  668. package/src/web/components/Toast.tsx +24 -22
  669. package/src/web/components/Token.tsx +106 -172
  670. package/src/web/components/TokenLogo.tsx +217 -0
  671. package/src/web/components/Tooltip.tsx +3 -3
  672. package/src/web/components/VerificationCode.tsx +97 -0
  673. package/src/web/components/Visual.tsx +166 -0
  674. package/src/web/components/internal/Field.ts +63 -72
  675. package/src/web/components/internal/InputGroup.ts +44 -101
  676. package/src/web/components/internal/Listbox.ts +20 -20
  677. package/src/web/components/internal/RowDisabled.ts +9 -0
  678. package/src/web/components/internal/RowsSize.ts +3 -5
  679. package/src/web/components/visuals/Passkey.svg +21 -0
  680. package/src/web/index.ts +18 -6
  681. package/src/web/logos/Base.svg +10 -0
  682. package/src/web/logos/Ethereum.svg +16 -0
  683. package/src/web/logos/HyperEVM.svg +27 -0
  684. package/src/web/logos/Polygon.svg +15 -0
  685. package/src/web/logos/README.md +14 -0
  686. package/src/web/logos/Solana.svg +11 -0
  687. package/src/web/logos/Tempo.svg +11 -0
  688. package/src/web/vars.ts +481 -526
  689. package/src/web/zyzz.config.ts +326 -12
  690. package/dist/fonts/GeistMono-Variable.woff2 +0 -0
  691. package/dist/mobile/internal/useColor.d.ts +0 -4
  692. package/dist/mobile/internal/useColor.d.ts.map +0 -1
  693. package/dist/mobile/internal/useColor.js +0 -12
  694. package/dist/mobile/internal/useColor.js.map +0 -1
  695. package/dist/web/components/AlertDialog.css +0 -1
  696. package/dist/web/components/Callout.css +0 -1
  697. package/dist/web/components/Callout.d.ts +0 -161
  698. package/dist/web/components/Callout.d.ts.map +0 -1
  699. package/dist/web/components/Callout.js +0 -83
  700. package/dist/web/components/Callout.js.map +0 -1
  701. package/dist/web/components/Callout.js.zyzz.json +0 -1
  702. package/dist/web/components/IconChip.css +0 -1
  703. package/dist/web/components/IconChip.d.ts +0 -53
  704. package/dist/web/components/IconChip.d.ts.map +0 -1
  705. package/dist/web/components/IconChip.js +0 -29
  706. package/dist/web/components/IconChip.js.map +0 -1
  707. package/dist/web/components/IconChip.js.zyzz.json +0 -1
  708. package/dist/web/components/Input.css +0 -1
  709. package/dist/web/components/Input.d.ts.map +0 -1
  710. package/dist/web/components/Input.js +0 -118
  711. package/dist/web/components/Input.js.map +0 -1
  712. package/dist/web/components/Input.js.zyzz.json +0 -1
  713. package/dist/web/components/Rows.css +0 -1
  714. package/dist/web/components/Rows.d.ts +0 -432
  715. package/dist/web/components/Rows.d.ts.map +0 -1
  716. package/dist/web/components/Rows.js +0 -160
  717. package/dist/web/components/Rows.js.map +0 -1
  718. package/dist/web/components/Rows.js.zyzz.json +0 -1
  719. package/dist/web/components/Tag.css +0 -1
  720. package/dist/web/components/Tag.d.ts +0 -171
  721. package/dist/web/components/Tag.d.ts.map +0 -1
  722. package/dist/web/components/Tag.js +0 -52
  723. package/dist/web/components/Tag.js.map +0 -1
  724. package/dist/web/components/Tag.js.zyzz.json +0 -1
  725. package/dist/web/components/internal/FieldVariant.d.ts +0 -4
  726. package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
  727. package/dist/web/components/internal/FieldVariant.js +0 -4
  728. package/dist/web/components/internal/FieldVariant.js.map +0 -1
  729. package/src/fonts/GeistMono-Variable.woff2 +0 -0
  730. package/src/mobile/internal/useColor.ts +0 -13
  731. package/src/web/components/Callout.tsx +0 -241
  732. package/src/web/components/IconChip.tsx +0 -54
  733. package/src/web/components/Rows.tsx +0 -529
  734. package/src/web/components/Tag.tsx +0 -149
  735. 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
  }