@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
@@ -7,11 +7,15 @@ import { Spinner } from './Spinner.js'
7
7
 
8
8
  /**
9
9
  * A native `<button>` for actions, built on Base UI Button. It scales slightly while pressed and
10
- * shows a blue outline on keyboard focus.
10
+ * shows an outline on keyboard focus.
11
11
  *
12
12
  * - Use `Button` for actions and `Button.Link` for navigation.
13
13
  * - Label with a specific verb, such as Send payment. Give `shape="icon"` buttons, which render as circles, an `aria-label`.
14
- * - Keep one `primary` button per view or section. Reserve `negative` for destructive actions.
14
+ * - Keep one `primary` button per view or section, and give the others `secondary` or `tertiary`.
15
+ * - Set `appearance="inverse"` on an inverse surface, such as a dark banner on a light page, and
16
+ * `appearance="overlay"` over an image or video.
17
+ * - Use `large` for the actions in a dialog footer. Keep `xsmall` pills for actions inside a row
18
+ * or field, never for the main action.
15
19
  * - Set `focusableWhenDisabled` when a disabled button needs to stay reachable while nearby text
16
20
  * explains why it is unavailable.
17
21
  *
@@ -28,6 +32,7 @@ import { Spinner } from './Spinner.js'
28
32
  */
29
33
  export function Button(props: Button.Props) {
30
34
  const {
35
+ appearance,
31
36
  children,
32
37
  className,
33
38
  disabled,
@@ -42,7 +47,7 @@ export function Button(props: Button.Props) {
42
47
  return (
43
48
  <BaseUi.Button
44
49
  {...attributes}
45
- {...styles.button({ className, shape, size, style: props.style, variant, vars })}
50
+ {...styles.button({ appearance, className, shape, size, style: props.style, variant, vars })}
46
51
  aria-busy={loading || undefined}
47
52
  data-loading={loading || undefined}
48
53
  disabled={disabled || loading}
@@ -71,13 +76,24 @@ export namespace Button {
71
76
  * `render` takes a router's link, such as `<Link to="/" />`.
72
77
  */
73
78
  export function Link(props: Link.Props) {
74
- const { children, className, ref, render, shape, size, variant, vars, ...attributes } = props
79
+ const {
80
+ appearance,
81
+ children,
82
+ className,
83
+ ref,
84
+ render,
85
+ shape,
86
+ size,
87
+ variant,
88
+ vars,
89
+ ...attributes
90
+ } = props
75
91
 
76
92
  return useRender({
77
93
  defaultTagName: 'a',
78
94
  props: {
79
95
  ...attributes,
80
- ...styles.button({ className, shape, size, style: props.style, variant, vars }),
96
+ ...styles.button({ appearance, className, shape, size, style: props.style, variant, vars }),
81
97
  children: <span {...styles.content({ loading: false })}>{children}</span>,
82
98
  },
83
99
  ref,
@@ -96,30 +112,32 @@ namespace styles {
96
112
  base: {
97
113
  alignItems: 'center',
98
114
  border: 'none !custom',
115
+ borderRadius: 'xs',
99
116
  boxSizing: 'border-box',
100
- columnGap: '8',
117
+ columnGap: '4',
101
118
  cursor: 'pointer',
102
119
  display: 'inline-flex',
103
120
  justifyContent: 'center',
104
121
  outlineColor: 'transparent !custom',
105
- outlineOffset: '2',
122
+ outlineOffset: '0',
106
123
  outlineStyle: 'solid !custom',
107
124
  outlineWidth: '2',
108
125
  position: 'relative',
109
126
  textDecoration: 'none !custom',
110
127
  transitionDuration: '160',
111
- transitionProperty:
112
- 'background-color, box-shadow, color, opacity, outline-color, scale !custom',
128
+ transitionProperty: 'background-color, color, opacity, outline-color, scale !custom',
113
129
  transitionTimingFunction: 'snappy',
130
+ typography: 'body.b2Strong',
114
131
  userSelect: 'none',
115
132
  whiteSpace: 'nowrap',
116
133
  selectors: {
134
+ '& > span > svg': { flexShrink: '0 !custom', fontSize: '16' },
117
135
  '&:active:not(:disabled)': {
118
136
  scale: 'press',
119
137
  transitionDuration: '100',
120
138
  },
121
139
  '&:disabled': { cursor: 'default', opacity: 'disabled' },
122
- '&:focus-visible': { outlineColor: 'blue.700' },
140
+ '&:focus-visible': { outlineColor: 'action.focusRing' },
123
141
  '&[data-loading]': { opacity: '1 !custom' },
124
142
  },
125
143
  '@media (forced-colors: active)': {
@@ -131,64 +149,159 @@ namespace styles {
131
149
  selectors: { '&:active:not(:disabled)': { scale: 'none !custom' } },
132
150
  },
133
151
  },
134
- // Icon buttons are circles at every size, so the shape outranks the size radius and padding.
152
+ // Icon buttons are circles at every size, so the shape outranks the size padding and width.
135
153
  compoundVariants: [
136
- { when: { shape: 'icon' }, style: { borderRadius: 'full', paddingInline: '0' } },
154
+ {
155
+ when: { shape: 'icon' },
156
+ style: {
157
+ borderRadius: 'full',
158
+ cornerShape: 'round',
159
+ flexShrink: '0 !custom',
160
+ minWidth: '0',
161
+ paddingInline: '0',
162
+ selectors: { '& > span:first-child': { minWidth: '0 !custom' } },
163
+ },
164
+ },
165
+ // The Platform Icon Button keeps its primary fill dark in both schemes, so its icon stays
166
+ // white. Hover and press take the primary action fills, which turn light in dark mode, so
167
+ // the icon takes the inverse content color over them.
168
+ {
169
+ when: { appearance: 'base', shape: 'icon', variant: 'primary' },
170
+ style: {
171
+ backgroundColor: 'inverse.background.secondary',
172
+ color: 'neutral.000',
173
+ selectors: {
174
+ '&:is(:hover, :active):not(:disabled)': { color: 'inverse.content.primary' },
175
+ },
176
+ },
177
+ },
178
+ // The focus ring of the page blends into an inverse surface, so an inverse button draws
179
+ // its ring in the inverse text color, 2px out, where the surface separates it from a fill
180
+ // of the same color.
181
+ {
182
+ when: { appearance: 'inverse' },
183
+ style: {
184
+ selectors: {
185
+ '&:focus-visible': { outlineColor: 'inverse.content.primary', outlineOffset: '2' },
186
+ },
187
+ },
188
+ },
189
+ // The inverse and overlay appearances have no pressed design, so a press keeps the hover
190
+ // fill. Their primary fill also stays the same on hover.
191
+ {
192
+ when: { appearance: ['inverse', 'overlay'], variant: 'primary' },
193
+ style: {
194
+ backgroundColor: 'background.secondary',
195
+ color: 'content.primary',
196
+ selectors: {
197
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: 'background.secondary' },
198
+ },
199
+ },
200
+ },
201
+ {
202
+ when: { appearance: 'inverse', variant: 'secondary' },
203
+ style: {
204
+ backgroundColor: 'inverse.container.regular',
205
+ color: 'inverse.content.primary',
206
+ selectors: {
207
+ '&:is(:hover, :active):not(:disabled)': {
208
+ backgroundColor: 'inverse.container.regular',
209
+ },
210
+ },
211
+ },
212
+ },
213
+ // Figma paints the overlay fills as gray literals that no variable holds. Hover lightens
214
+ // the fill.
215
+ {
216
+ when: { appearance: 'overlay', variant: 'secondary' },
217
+ style: {
218
+ backgroundColor: '#70707052 !custom',
219
+ color: 'inverse.content.primary',
220
+ selectors: {
221
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: '#70707048 !custom' },
222
+ },
223
+ },
224
+ },
225
+ {
226
+ when: { appearance: ['inverse', 'overlay'], variant: 'tertiary' },
227
+ style: {
228
+ color: 'inverse.content.primary',
229
+ selectors: {
230
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: 'neutral.tint.012' },
231
+ },
232
+ },
233
+ },
137
234
  ],
138
- defaultVariants: { shape: 'default', size: 'medium', variant: 'primary' },
235
+ defaultVariants: { appearance: 'base', shape: 'default', size: 'medium', variant: 'primary' },
139
236
  variants: {
237
+ /**
238
+ * The surface under the button: the page for `base`, an inverse surface, such as
239
+ * `inverse.background.primary`, for `inverse`, and an image or video for `overlay`. On
240
+ * both of the last two, `primary` takes the page's background and text colors, and
241
+ * `secondary` and `tertiary` take the inverse text color.
242
+ *
243
+ * @default 'base'
244
+ */
245
+ appearance: { base: {}, inverse: {}, overlay: {} },
140
246
  shape: {
141
247
  default: {},
142
248
  icon: { aspectRatio: '1 !custom' },
143
249
  },
144
- // Heights and radii match the `size` scale of the text fields.
250
+ // `xsmall` is a pill for actions inside a row or field. The others keep radius `xs` and an 80px
251
+ // minimum width, set on the label net of the padding, so a flex row never shrinks a button
252
+ // below its label.
145
253
  size: {
146
254
  large: {
147
- borderRadius: '16',
148
- height: '56',
255
+ height: '48',
149
256
  paddingInline: '32',
150
- typography: 'button.16',
257
+ selectors: { '& > span:first-child': { minWidth: '1rem !custom' } },
151
258
  },
152
259
  medium: {
153
- borderRadius: '12',
154
260
  height: '40',
155
- paddingInline: '20',
156
- typography: 'button.14',
261
+ paddingInline: '24',
262
+ selectors: { '& > span:first-child': { minWidth: '2rem !custom' } },
157
263
  },
158
264
  small: {
159
- borderRadius: '8',
160
265
  height: '32',
266
+ paddingInline: '16',
267
+ selectors: { '& > span:first-child': { minWidth: '3rem !custom' } },
268
+ },
269
+ xsmall: {
270
+ borderRadius: 'full',
271
+ cornerShape: 'round',
272
+ height: '24',
161
273
  paddingInline: '12',
162
- typography: 'button.12',
274
+ typography: 'body.b3Strong',
275
+ selectors: { '& > span > svg': { fontSize: '12' } },
163
276
  },
164
277
  },
278
+ // Each pressed fill follows its hover fill, so it wins while the pointer stays over the
279
+ // button.
165
280
  variant: {
166
- negative: {
167
- backgroundColor: 'red.800',
168
- color: 'white',
169
- selectors: { '&:hover:not(:disabled)': { backgroundColor: 'red.900' } },
170
- },
281
+ // The Platform Button paints its primary fill and label with the inverse colors.
171
282
  primary: {
172
- backgroundColor: 'foreground',
173
- backgroundImage:
174
- 'linear-gradient(rgb(255 255 255 / 0.08), rgb(255 255 255 / 0)) !custom',
175
- boxShadow: 'raised',
176
- color: 'background.primary',
177
- selectors: { '&:hover:not(:disabled)': { opacity: 'hover' } },
283
+ backgroundColor: 'inverse.background.primary',
284
+ color: 'inverse.content.primary',
285
+ selectors: {
286
+ '&:hover:not(:disabled)': { backgroundColor: 'action.primary.fill.hover' },
287
+ '&:active:not(:disabled)': { backgroundColor: 'action.primary.fill.pressed' },
288
+ },
178
289
  },
179
- // Matches the Input field fill.
180
290
  secondary: {
181
- backgroundColor: 'grayAlpha.100',
182
- color: 'foreground',
291
+ backgroundColor: 'component.button.secondary.fill',
292
+ color: 'content.primary',
183
293
  selectors: {
184
- '&:hover:not(:disabled)': { backgroundColor: 'grayAlpha.200' },
185
- '&:active:not(:disabled)': { backgroundColor: 'grayAlpha.300' },
294
+ '&:hover:not(:disabled)': { backgroundColor: 'action.secondary.fill.hover' },
295
+ '&:active:not(:disabled)': { backgroundColor: 'action.secondary.fill.pressed' },
186
296
  },
187
297
  },
188
- text: {
189
- backgroundColor: 'transparent !custom',
190
- color: 'foreground',
191
- selectors: { '&:hover:not(:disabled)': { backgroundColor: 'grayAlpha.100' } },
298
+ tertiary: {
299
+ backgroundColor: 'component.button.tertiary.fill',
300
+ color: 'content.primary',
301
+ selectors: {
302
+ '&:hover:not(:disabled)': { backgroundColor: 'action.tertiary.fill.hover' },
303
+ '&:active:not(:disabled)': { backgroundColor: 'action.tertiary.fill.pressed' },
304
+ },
192
305
  },
193
306
  },
194
307
  },
@@ -202,6 +315,7 @@ namespace styles {
202
315
  alignItems: 'inherit !custom',
203
316
  columnGap: 'inherit !custom',
204
317
  display: 'inline-flex',
318
+ justifyContent: 'center',
205
319
  transitionDuration: '160',
206
320
  transitionProperty: 'opacity, visibility !custom',
207
321
  transitionTimingFunction: 'snappy',
@@ -0,0 +1,59 @@
1
+ import type { ComponentPropsWithRef } from 'react'
2
+ import type * as zyzz from 'zyzz'
3
+ import { variants } from '../zyzz.config.js'
4
+
5
+ /**
6
+ * Lays out the actions at the foot of a dialog or flow. Renders a `div` with `role="group"` and an
7
+ * 8px gap. `horizontal` gives each button an equal share of the row, and `vertical` stretches
8
+ * each button to the full width.
9
+ *
10
+ * - In a pair, put the `secondary` action first, so the `primary` action sits on the right.
11
+ * - In a stack, put the `primary` action first and a `tertiary` action, such as Not now, below it.
12
+ * - Give every button in a dialog footer the `large` size.
13
+ *
14
+ * @example
15
+ * <ButtonGroup>
16
+ * <Button size="large" variant="secondary">
17
+ * Cancel
18
+ * </Button>
19
+ * <Button size="large">Confirm</Button>
20
+ * </ButtonGroup>
21
+ *
22
+ * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/button/ | WAI-ARIA APG Button pattern}
23
+ * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/meaningful-sequence.html | WCAG 2.2 Meaningful Sequence}
24
+ * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html | WCAG 2.2 Focus Order}
25
+ */
26
+ export function ButtonGroup(props: ButtonGroup.Props) {
27
+ const { className, orientation, vars, ...attributes } = props
28
+
29
+ return (
30
+ <div
31
+ role="group"
32
+ {...attributes}
33
+ {...styles.group({ className, orientation, style: props.style, vars })}
34
+ />
35
+ )
36
+ }
37
+
38
+ export namespace ButtonGroup {
39
+ export type Props = ComponentPropsWithRef<'div'> & zyzz.Props.Variants<typeof styles.group>
40
+ }
41
+
42
+ namespace styles {
43
+ export const group = variants(
44
+ {
45
+ base: { display: 'flex', gap: '8' },
46
+ defaultVariants: { orientation: 'horizontal' },
47
+ variants: {
48
+ orientation: {
49
+ horizontal: {
50
+ flexDirection: 'row',
51
+ selectors: { '& > *': { flex: '1 !custom' } },
52
+ },
53
+ vertical: { alignItems: 'stretch', flexDirection: 'column' },
54
+ },
55
+ },
56
+ },
57
+ { id: 'tds/web/button-group' },
58
+ )
59
+ }
@@ -183,7 +183,7 @@ export function Calendar(props: Calendar.Props) {
183
183
  disabled={min !== undefined && key(addDays(month, -1)) < key(min)}
184
184
  onClick={() => showMonth(addMonths(month, -1))}
185
185
  shape="icon"
186
- variant="text"
186
+ variant="tertiary"
187
187
  >
188
188
  <ChevronLeft />
189
189
  </Button>
@@ -195,7 +195,7 @@ export function Calendar(props: Calendar.Props) {
195
195
  disabled={max !== undefined && key(addMonths(month, 1)) > key(max)}
196
196
  onClick={() => showMonth(addMonths(month, 1))}
197
197
  shape="icon"
198
- variant="text"
198
+ variant="tertiary"
199
199
  >
200
200
  <ChevronRight />
201
201
  </Button>
@@ -436,7 +436,7 @@ namespace styles {
436
436
  textAlign: 'center',
437
437
  width: '40',
438
438
  selectors: {
439
- '&[data-in-range]': { backgroundColor: 'grayAlpha.100' },
439
+ '&[data-in-range]': { backgroundColor: 'container.regular' },
440
440
  '&[data-range-end]': { borderEndEndRadius: 'full', borderStartEndRadius: 'full' },
441
441
  '&[data-range-start]': { borderEndStartRadius: 'full', borderStartStartRadius: 'full' },
442
442
  },
@@ -451,7 +451,8 @@ namespace styles {
451
451
  border: 'none !custom',
452
452
  borderRadius: 'full',
453
453
  boxSizing: 'border-box',
454
- color: 'foreground',
454
+ color: 'content.primary',
455
+ cornerShape: 'round',
455
456
  cursor: 'pointer',
456
457
  display: 'inline-flex',
457
458
  height: '40',
@@ -466,20 +467,21 @@ namespace styles {
466
467
  transitionProperty:
467
468
  'background-color, color, opacity, outline-color, outline-offset, transform',
468
469
  transitionTimingFunction: 'snappy',
469
- typography: 'label.14.strong',
470
+ typography: 'body.b2Strong',
470
471
  width: '40',
471
472
  selectors: {
472
473
  '&:active:not([aria-disabled="true"])': { transform: 'scale(0.96) !custom' },
473
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
474
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
474
475
  '&:hover:not([aria-disabled="true"]):not([data-selected])': {
475
- backgroundColor: 'grayAlpha.200',
476
+ backgroundColor: 'container.strong',
476
477
  },
477
478
  '&[aria-disabled="true"]': { cursor: 'default', opacity: 'disabled' },
478
- '&[data-selected]': { backgroundColor: 'foreground', color: 'background.primary' },
479
+ '&[data-selected]': { backgroundColor: 'content.primary', color: 'background.primary' },
479
480
  '&[data-today]::after': {
480
- backgroundColor: 'blue.700',
481
+ backgroundColor: 'accent.blue.background',
481
482
  borderRadius: 'full',
482
483
  content: '"" !custom',
484
+ cornerShape: 'round',
483
485
  height: '4',
484
486
  insetBlockEnd: '4',
485
487
  insetInlineStart: '50% !custom',
@@ -510,7 +512,7 @@ namespace styles {
510
512
  export const root = style(
511
513
  {
512
514
  boxSizing: 'border-box',
513
- color: 'foreground',
515
+ color: 'content.primary',
514
516
  display: 'inline-flex',
515
517
  flexDirection: 'column',
516
518
  gap: '8',
@@ -520,17 +522,17 @@ namespace styles {
520
522
  )
521
523
 
522
524
  export const title = style(
523
- { textAlign: 'center', typography: 'label.14.strong' },
525
+ { textAlign: 'center', typography: 'body.b2Strong' },
524
526
  { id: 'tds/web/calendar/title' },
525
527
  )
526
528
 
527
529
  export const weekday = style(
528
530
  {
529
- color: 'gray.900',
531
+ color: 'content.secondary',
530
532
  height: '32',
531
533
  padding: '0',
532
534
  textAlign: 'center',
533
- typography: 'label.12',
535
+ typography: 'body.b3',
534
536
  width: '40',
535
537
  },
536
538
  { id: 'tds/web/calendar/weekday' },
@@ -1,9 +1,10 @@
1
1
  import * as BaseUi from '@base-ui/react/checkbox'
2
- import type { ComponentPropsWithRef } from 'react'
2
+ import { type ComponentPropsWithRef, useContext } from 'react'
3
3
  import type * as zyzz from 'zyzz'
4
4
  import { Check } from '../icons/Check.js'
5
5
  import { Minus } from '../icons/Minus.js'
6
6
  import { style, variants } from '../zyzz.config.js'
7
+ import * as RowDisabled from './internal/RowDisabled.js'
7
8
 
8
9
  /**
9
10
  * A checkbox for an independent on or off choice. Base UI renders a `span` with the `checkbox` role
@@ -32,10 +33,12 @@ import { style, variants } from '../zyzz.config.js'
32
33
  */
33
34
  export function Checkbox(props: Checkbox.Props) {
34
35
  const { className, size, vars, ...attributes } = props
36
+ const rowDisabled = useContext(RowDisabled.Context)
35
37
 
36
38
  return (
37
39
  <BaseUi.Checkbox.Root
38
40
  {...attributes}
41
+ disabled={attributes.disabled || rowDisabled}
39
42
  {...styles.checkbox({ className, size, style: props.style, vars })}
40
43
  >
41
44
  <BaseUi.Checkbox.Indicator {...styles.indicator()}>
@@ -79,9 +82,9 @@ namespace styles {
79
82
  {
80
83
  base: {
81
84
  alignItems: 'center',
82
- backgroundColor: 'grayAlpha.300',
85
+ backgroundColor: 'container.strong',
83
86
  boxSizing: 'border-box',
84
- color: 'background.surface',
87
+ color: 'background.elevated',
85
88
  cursor: 'pointer',
86
89
  display: 'inline-flex',
87
90
  flexShrink: '0 !custom',
@@ -98,14 +101,14 @@ namespace styles {
98
101
  selectors: {
99
102
  '&::after': { content: '"" !custom', inset: '-10', position: 'absolute' },
100
103
  '&:active:not([data-disabled])': { transform: 'scale(0.96) !custom' },
101
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
102
- '&:hover:not([data-disabled])': { backgroundColor: 'grayAlpha.400' },
103
- '&[data-checked], &[data-indeterminate]': { backgroundColor: 'foreground' },
104
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
105
+ '&:hover:not([data-disabled])': { backgroundColor: 'line.primary' },
106
+ '&[data-checked], &[data-indeterminate]': { backgroundColor: 'content.primary' },
104
107
  '&[data-checked]:hover:not([data-disabled]), &[data-indeterminate]:hover:not([data-disabled])':
105
- { backgroundColor: 'foreground', opacity: 'hover' },
108
+ { backgroundColor: 'content.primary', opacity: 'hover' },
106
109
  '&[data-disabled]': { cursor: 'default', opacity: 'disabled' },
107
110
  '&[data-invalid]': {
108
- outlineColor: 'red.800',
111
+ outlineColor: 'border.negative',
109
112
  outlineStyle: 'solid !custom',
110
113
  outlineWidth: '1',
111
114
  },
@@ -120,19 +123,19 @@ namespace styles {
120
123
  // Indicator sizes: 16, 20 and 24px. The hit area stays at least 36px.
121
124
  size: {
122
125
  large: {
123
- borderRadius: '8',
126
+ borderRadius: '2xs',
124
127
  height: '24',
125
128
  width: '24',
126
129
  selectors: { '& > span': { fontSize: '18' } },
127
130
  },
128
131
  medium: {
129
- borderRadius: '6',
132
+ borderRadius: '2xs',
130
133
  height: '20',
131
134
  width: '20',
132
135
  selectors: { '& > span': { fontSize: '14' } },
133
136
  },
134
137
  small: {
135
- borderRadius: '4',
138
+ borderRadius: '3xs',
136
139
  height: '16',
137
140
  width: '16',
138
141
  selectors: { '& > span': { fontSize: '12' } },