@tempoxyz/ds 0.2.6 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (662) hide show
  1. package/README.md +2 -0
  2. package/dist/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  3. package/dist/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  4. package/dist/fonts/JetBrainsMono-Bold.woff2 +0 -0
  5. package/dist/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  6. package/dist/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  7. package/dist/fonts/JetBrainsMono-Medium.woff2 +0 -0
  8. package/dist/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  9. package/dist/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  10. package/dist/fonts/JetBrainsMono-Regular.woff2 +0 -0
  11. package/dist/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  12. package/dist/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  13. package/dist/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  14. package/dist/fonts/Pilat-Black-latin.woff2 +0 -0
  15. package/dist/fonts/Pilat-Black-other.woff2 +0 -0
  16. package/dist/fonts/Pilat-Black.woff2 +0 -0
  17. package/dist/fonts/Pilat-Bold-latin.woff2 +0 -0
  18. package/dist/fonts/Pilat-Bold-other.woff2 +0 -0
  19. package/dist/fonts/Pilat-Bold.woff2 +0 -0
  20. package/dist/fonts/Pilat-Book-latin.woff2 +0 -0
  21. package/dist/fonts/Pilat-Book-other.woff2 +0 -0
  22. package/dist/fonts/Pilat-Book.woff2 +0 -0
  23. package/dist/fonts/Pilat-Demi-latin.woff2 +0 -0
  24. package/dist/fonts/Pilat-Demi-other.woff2 +0 -0
  25. package/dist/fonts/Pilat-Demi.woff2 +0 -0
  26. package/dist/fonts/Pilat-Heavy-latin.woff2 +0 -0
  27. package/dist/fonts/Pilat-Heavy-other.woff2 +0 -0
  28. package/dist/fonts/Pilat-Heavy.woff2 +0 -0
  29. package/dist/fonts/Pilat-Light-latin.woff2 +0 -0
  30. package/dist/fonts/Pilat-Light-other.woff2 +0 -0
  31. package/dist/fonts/Pilat-Light.woff2 +0 -0
  32. package/dist/fonts/Pilat-Regular-latin.woff2 +0 -0
  33. package/dist/fonts/Pilat-Regular-other.woff2 +0 -0
  34. package/dist/fonts/Pilat-Regular.woff2 +0 -0
  35. package/dist/fonts/Pilat-Thin-latin.woff2 +0 -0
  36. package/dist/fonts/Pilat-Thin-other.woff2 +0 -0
  37. package/dist/fonts/Pilat-Thin.woff2 +0 -0
  38. package/dist/oxlint/rules/PreferComponent.js +6 -6
  39. package/dist/oxlint/rules/PreferComponent.js.map +1 -1
  40. package/dist/web/components/Accordion.css +1 -1
  41. package/dist/web/components/Accordion.d.ts +7 -7
  42. package/dist/web/components/Accordion.js.map +1 -1
  43. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  44. package/dist/web/components/AgentLogo.css +1 -0
  45. package/dist/web/components/AgentLogo.d.ts +206 -0
  46. package/dist/web/components/AgentLogo.d.ts.map +1 -0
  47. package/dist/web/components/AgentLogo.js +86 -0
  48. package/dist/web/components/AgentLogo.js.map +1 -0
  49. package/dist/web/components/AgentLogo.js.zyzz.json +1 -0
  50. package/dist/web/components/Alert.css +1 -0
  51. package/dist/web/components/Alert.d.ts +161 -0
  52. package/dist/web/components/Alert.d.ts.map +1 -0
  53. package/dist/web/components/Alert.js +97 -0
  54. package/dist/web/components/Alert.js.map +1 -0
  55. package/dist/web/components/Alert.js.zyzz.json +1 -0
  56. package/dist/web/components/AlertDialog.d.ts +40 -28
  57. package/dist/web/components/AlertDialog.d.ts.map +1 -1
  58. package/dist/web/components/AlertDialog.js +31 -36
  59. package/dist/web/components/AlertDialog.js.map +1 -1
  60. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  61. package/dist/web/components/Amount.css +1 -1
  62. package/dist/web/components/Amount.d.ts +5 -5
  63. package/dist/web/components/Amount.d.ts.map +1 -1
  64. package/dist/web/components/Amount.js.map +1 -1
  65. package/dist/web/components/Amount.js.zyzz.json +1 -1
  66. package/dist/web/components/AmountInput.css +1 -1
  67. package/dist/web/components/AmountInput.d.ts +20 -39
  68. package/dist/web/components/AmountInput.d.ts.map +1 -1
  69. package/dist/web/components/AmountInput.js +31 -37
  70. package/dist/web/components/AmountInput.js.map +1 -1
  71. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  72. package/dist/web/components/AppShell.css +1 -1
  73. package/dist/web/components/AppShell.d.ts +172 -28
  74. package/dist/web/components/AppShell.d.ts.map +1 -1
  75. package/dist/web/components/AppShell.js +89 -29
  76. package/dist/web/components/AppShell.js.map +1 -1
  77. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  78. package/dist/web/components/AssetChip.css +1 -0
  79. package/dist/web/components/AssetChip.d.ts +38 -0
  80. package/dist/web/components/AssetChip.d.ts.map +1 -0
  81. package/dist/web/components/AssetChip.js +47 -0
  82. package/dist/web/components/AssetChip.js.map +1 -0
  83. package/dist/web/components/AssetChip.js.zyzz.json +1 -0
  84. package/dist/web/components/Autocomplete.d.ts +2 -2
  85. package/dist/web/components/Autocomplete.js +4 -4
  86. package/dist/web/components/Autocomplete.js.map +1 -1
  87. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  88. package/dist/web/components/Avatar.css +1 -1
  89. package/dist/web/components/Avatar.d.ts +40 -115
  90. package/dist/web/components/Avatar.d.ts.map +1 -1
  91. package/dist/web/components/Avatar.js +19 -32
  92. package/dist/web/components/Avatar.js.map +1 -1
  93. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  94. package/dist/web/components/Badge.css +1 -0
  95. package/dist/web/components/Badge.d.ts +134 -0
  96. package/dist/web/components/Badge.d.ts.map +1 -0
  97. package/dist/web/components/Badge.js +38 -0
  98. package/dist/web/components/Badge.js.map +1 -0
  99. package/dist/web/components/Badge.js.zyzz.json +1 -0
  100. package/dist/web/components/Banner.css +1 -1
  101. package/dist/web/components/Banner.d.ts +12 -12
  102. package/dist/web/components/Banner.d.ts.map +1 -1
  103. package/dist/web/components/Banner.js +5 -5
  104. package/dist/web/components/Banner.js.map +1 -1
  105. package/dist/web/components/Banner.js.zyzz.json +1 -1
  106. package/dist/web/components/BarChart.css +1 -0
  107. package/dist/web/components/BarChart.d.ts +155 -0
  108. package/dist/web/components/BarChart.d.ts.map +1 -0
  109. package/dist/web/components/BarChart.js +119 -0
  110. package/dist/web/components/BarChart.js.map +1 -0
  111. package/dist/web/components/BarChart.js.zyzz.json +1 -0
  112. package/dist/web/components/Breadcrumbs.css +1 -1
  113. package/dist/web/components/Breadcrumbs.d.ts +6 -6
  114. package/dist/web/components/Breadcrumbs.js.map +1 -1
  115. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  116. package/dist/web/components/Button.css +1 -1
  117. package/dist/web/components/Button.d.ts +167 -32
  118. package/dist/web/components/Button.d.ts.map +1 -1
  119. package/dist/web/components/Button.js +14 -9
  120. package/dist/web/components/Button.js.map +1 -1
  121. package/dist/web/components/Button.js.zyzz.json +1 -1
  122. package/dist/web/components/ButtonGroup.css +1 -0
  123. package/dist/web/components/ButtonGroup.d.ts +56 -0
  124. package/dist/web/components/ButtonGroup.d.ts.map +1 -0
  125. package/dist/web/components/ButtonGroup.js +33 -0
  126. package/dist/web/components/ButtonGroup.js.map +1 -0
  127. package/dist/web/components/ButtonGroup.js.zyzz.json +1 -0
  128. package/dist/web/components/Calendar.css +1 -1
  129. package/dist/web/components/Calendar.d.ts.map +1 -1
  130. package/dist/web/components/Calendar.js +7 -7
  131. package/dist/web/components/Calendar.js.map +1 -1
  132. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  133. package/dist/web/components/Checkbox.css +1 -1
  134. package/dist/web/components/Checkbox.d.ts +11 -11
  135. package/dist/web/components/Checkbox.d.ts.map +1 -1
  136. package/dist/web/components/Checkbox.js +4 -1
  137. package/dist/web/components/Checkbox.js.map +1 -1
  138. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  139. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  140. package/dist/web/components/ChoiceGroup.css +1 -1
  141. package/dist/web/components/ChoiceGroup.d.ts +44 -16
  142. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  143. package/dist/web/components/ChoiceGroup.js +32 -8
  144. package/dist/web/components/ChoiceGroup.js.map +1 -1
  145. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  146. package/dist/web/components/Choicebox.css +1 -1
  147. package/dist/web/components/Choicebox.d.ts +9 -9
  148. package/dist/web/components/Choicebox.d.ts.map +1 -1
  149. package/dist/web/components/Choicebox.js +6 -6
  150. package/dist/web/components/Choicebox.js.map +1 -1
  151. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  152. package/dist/web/components/Combobox.css +1 -1
  153. package/dist/web/components/Combobox.d.ts +2 -2
  154. package/dist/web/components/Combobox.d.ts.map +1 -1
  155. package/dist/web/components/Combobox.js +8 -8
  156. package/dist/web/components/Combobox.js.map +1 -1
  157. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  158. package/dist/web/components/Container.js.zyzz.json +1 -1
  159. package/dist/web/components/CopyButton.js +1 -1
  160. package/dist/web/components/CopyButton.js.map +1 -1
  161. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  162. package/dist/web/components/DatePicker.css +1 -1
  163. package/dist/web/components/DatePicker.d.ts +37 -56
  164. package/dist/web/components/DatePicker.d.ts.map +1 -1
  165. package/dist/web/components/DatePicker.js +7 -7
  166. package/dist/web/components/DatePicker.js.map +1 -1
  167. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  168. package/dist/web/components/Dialog.css +1 -1
  169. package/dist/web/components/Dialog.d.ts +189 -20
  170. package/dist/web/components/Dialog.d.ts.map +1 -1
  171. package/dist/web/components/Dialog.js +93 -26
  172. package/dist/web/components/Dialog.js.map +1 -1
  173. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  174. package/dist/web/components/Drawer.css +1 -1
  175. package/dist/web/components/Drawer.d.ts +7 -2
  176. package/dist/web/components/Drawer.d.ts.map +1 -1
  177. package/dist/web/components/Drawer.js +12 -6
  178. package/dist/web/components/Drawer.js.map +1 -1
  179. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  180. package/dist/web/components/Empty.css +1 -1
  181. package/dist/web/components/Empty.d.ts +2 -0
  182. package/dist/web/components/Empty.d.ts.map +1 -1
  183. package/dist/web/components/Empty.js +5 -3
  184. package/dist/web/components/Empty.js.map +1 -1
  185. package/dist/web/components/Empty.js.zyzz.json +1 -1
  186. package/dist/web/components/Field.css +1 -1
  187. package/dist/web/components/Field.d.ts +16 -21
  188. package/dist/web/components/Field.d.ts.map +1 -1
  189. package/dist/web/components/Field.js +38 -36
  190. package/dist/web/components/Field.js.map +1 -1
  191. package/dist/web/components/Field.js.zyzz.json +1 -1
  192. package/dist/web/components/Fieldset.css +1 -1
  193. package/dist/web/components/Fieldset.d.ts +9 -18
  194. package/dist/web/components/Fieldset.d.ts.map +1 -1
  195. package/dist/web/components/Fieldset.js +11 -14
  196. package/dist/web/components/Fieldset.js.map +1 -1
  197. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  198. package/dist/web/components/Frame.css +1 -1
  199. package/dist/web/components/Frame.d.ts +13 -19
  200. package/dist/web/components/Frame.d.ts.map +1 -1
  201. package/dist/web/components/Frame.js +8 -8
  202. package/dist/web/components/Frame.js.map +1 -1
  203. package/dist/web/components/Frame.js.zyzz.json +1 -1
  204. package/dist/web/components/Gauge.css +1 -1
  205. package/dist/web/components/Gauge.d.ts +2 -2
  206. package/dist/web/components/Gauge.d.ts.map +1 -1
  207. package/dist/web/components/Gauge.js.map +1 -1
  208. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  209. package/dist/web/components/Grid.js.zyzz.json +1 -1
  210. package/dist/web/components/Hex.css +1 -1
  211. package/dist/web/components/Hex.d.ts +11 -53
  212. package/dist/web/components/Hex.d.ts.map +1 -1
  213. package/dist/web/components/Hex.js +5 -7
  214. package/dist/web/components/Hex.js.map +1 -1
  215. package/dist/web/components/Hex.js.zyzz.json +1 -1
  216. package/dist/web/components/IconTile.css +1 -0
  217. package/dist/web/components/IconTile.d.ts +62 -0
  218. package/dist/web/components/IconTile.d.ts.map +1 -0
  219. package/dist/web/components/IconTile.js +28 -0
  220. package/dist/web/components/IconTile.js.map +1 -0
  221. package/dist/web/components/IconTile.js.zyzz.json +1 -0
  222. package/dist/web/components/Identicon.css +1 -1
  223. package/dist/web/components/Identicon.d.ts +1 -8
  224. package/dist/web/components/Identicon.d.ts.map +1 -1
  225. package/dist/web/components/Identicon.js +1 -4
  226. package/dist/web/components/Identicon.js.map +1 -1
  227. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  228. package/dist/web/components/Inline.js.zyzz.json +1 -1
  229. package/dist/web/components/Inset.js.zyzz.json +1 -1
  230. package/dist/web/components/Kbd.css +1 -1
  231. package/dist/web/components/Kbd.d.ts +7 -7
  232. package/dist/web/components/Kbd.js.map +1 -1
  233. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  234. package/dist/web/components/ListGroup.css +1 -0
  235. package/dist/web/components/ListGroup.d.ts +530 -0
  236. package/dist/web/components/ListGroup.d.ts.map +1 -0
  237. package/dist/web/components/ListGroup.js +270 -0
  238. package/dist/web/components/ListGroup.js.map +1 -0
  239. package/dist/web/components/ListGroup.js.zyzz.json +1 -0
  240. package/dist/web/components/LoadingDots.css +1 -1
  241. package/dist/web/components/LoadingDots.d.ts.map +1 -1
  242. package/dist/web/components/LoadingDots.js +2 -2
  243. package/dist/web/components/LoadingDots.js.map +1 -1
  244. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  245. package/dist/web/components/Menu.css +1 -1
  246. package/dist/web/components/Menu.d.ts +39 -20
  247. package/dist/web/components/Menu.d.ts.map +1 -1
  248. package/dist/web/components/Menu.js +12 -7
  249. package/dist/web/components/Menu.js.map +1 -1
  250. package/dist/web/components/Menu.js.zyzz.json +1 -1
  251. package/dist/web/components/NetworkLogo.css +1 -0
  252. package/dist/web/components/NetworkLogo.d.ts +58 -0
  253. package/dist/web/components/NetworkLogo.d.ts.map +1 -0
  254. package/dist/web/components/NetworkLogo.js +40 -0
  255. package/dist/web/components/NetworkLogo.js.map +1 -0
  256. package/dist/web/components/NetworkLogo.js.zyzz.json +1 -0
  257. package/dist/web/components/NumberField.css +1 -1
  258. package/dist/web/components/NumberField.d.ts +3 -3
  259. package/dist/web/components/NumberField.d.ts.map +1 -1
  260. package/dist/web/components/NumberField.js +5 -5
  261. package/dist/web/components/NumberField.js.map +1 -1
  262. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  263. package/dist/web/components/OtpField.css +1 -1
  264. package/dist/web/components/OtpField.d.ts +8 -68
  265. package/dist/web/components/OtpField.d.ts.map +1 -1
  266. package/dist/web/components/OtpField.js +12 -9
  267. package/dist/web/components/OtpField.js.map +1 -1
  268. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  269. package/dist/web/components/Pagination.css +1 -1
  270. package/dist/web/components/Pagination.d.ts +16 -14
  271. package/dist/web/components/Pagination.d.ts.map +1 -1
  272. package/dist/web/components/Pagination.js +3 -3
  273. package/dist/web/components/Pagination.js.map +1 -1
  274. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  275. package/dist/web/components/Popover.css +1 -1
  276. package/dist/web/components/Popover.js.map +1 -1
  277. package/dist/web/components/Popover.js.zyzz.json +1 -1
  278. package/dist/web/components/Progress.css +1 -1
  279. package/dist/web/components/Progress.d.ts +2 -2
  280. package/dist/web/components/Progress.d.ts.map +1 -1
  281. package/dist/web/components/Progress.js +5 -5
  282. package/dist/web/components/Progress.js.map +1 -1
  283. package/dist/web/components/Progress.js.zyzz.json +1 -1
  284. package/dist/web/components/Qr.css +1 -1
  285. package/dist/web/components/Qr.d.ts +1 -1
  286. package/dist/web/components/Qr.js.map +1 -1
  287. package/dist/web/components/Qr.js.zyzz.json +1 -1
  288. package/dist/web/components/RadioGroup.css +1 -1
  289. package/dist/web/components/RadioGroup.d.ts.map +1 -1
  290. package/dist/web/components/RadioGroup.js +2 -2
  291. package/dist/web/components/RadioGroup.js.map +1 -1
  292. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  293. package/dist/web/components/SecretValue.css +1 -1
  294. package/dist/web/components/SecretValue.d.ts +7 -7
  295. package/dist/web/components/SecretValue.js +1 -1
  296. package/dist/web/components/SecretValue.js.map +1 -1
  297. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  298. package/dist/web/components/Select.css +1 -1
  299. package/dist/web/components/Select.d.ts +64 -2
  300. package/dist/web/components/Select.d.ts.map +1 -1
  301. package/dist/web/components/Select.js +26 -9
  302. package/dist/web/components/Select.js.map +1 -1
  303. package/dist/web/components/Select.js.zyzz.json +1 -1
  304. package/dist/web/components/Separator.css +1 -1
  305. package/dist/web/components/Separator.d.ts +17 -3
  306. package/dist/web/components/Separator.d.ts.map +1 -1
  307. package/dist/web/components/Separator.js +40 -5
  308. package/dist/web/components/Separator.js.map +1 -1
  309. package/dist/web/components/Separator.js.zyzz.json +1 -1
  310. package/dist/web/components/SidebarMenu.css +1 -1
  311. package/dist/web/components/SidebarMenu.d.ts +238 -39
  312. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  313. package/dist/web/components/SidebarMenu.js +123 -20
  314. package/dist/web/components/SidebarMenu.js.map +1 -1
  315. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  316. package/dist/web/components/Skeleton.css +1 -1
  317. package/dist/web/components/Skeleton.d.ts +5 -3
  318. package/dist/web/components/Skeleton.d.ts.map +1 -1
  319. package/dist/web/components/Skeleton.js +1 -1
  320. package/dist/web/components/Skeleton.js.map +1 -1
  321. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  322. package/dist/web/components/Slider.css +1 -1
  323. package/dist/web/components/Slider.d.ts.map +1 -1
  324. package/dist/web/components/Slider.js +5 -5
  325. package/dist/web/components/Slider.js.map +1 -1
  326. package/dist/web/components/Slider.js.zyzz.json +1 -1
  327. package/dist/web/components/Snippet.css +1 -1
  328. package/dist/web/components/Snippet.d.ts +27 -65
  329. package/dist/web/components/Snippet.d.ts.map +1 -1
  330. package/dist/web/components/Snippet.js +47 -10
  331. package/dist/web/components/Snippet.js.map +1 -1
  332. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  333. package/dist/web/components/Spinner.css +1 -1
  334. package/dist/web/components/Spinner.d.ts +25 -16
  335. package/dist/web/components/Spinner.d.ts.map +1 -1
  336. package/dist/web/components/Spinner.js +11 -6
  337. package/dist/web/components/Spinner.js.map +1 -1
  338. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  339. package/dist/web/components/SplitBar.css +1 -0
  340. package/dist/web/components/SplitBar.d.ts +99 -0
  341. package/dist/web/components/SplitBar.d.ts.map +1 -0
  342. package/dist/web/components/SplitBar.js +49 -0
  343. package/dist/web/components/SplitBar.js.map +1 -0
  344. package/dist/web/components/SplitBar.js.zyzz.json +1 -0
  345. package/dist/web/components/SplitButton.css +1 -1
  346. package/dist/web/components/SplitButton.d.ts +4 -1
  347. package/dist/web/components/SplitButton.d.ts.map +1 -1
  348. package/dist/web/components/SplitButton.js +2 -2
  349. package/dist/web/components/SplitButton.js.map +1 -1
  350. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  351. package/dist/web/components/Stack.js.zyzz.json +1 -1
  352. package/dist/web/components/StatusChip.css +1 -0
  353. package/dist/web/components/StatusChip.d.ts +162 -0
  354. package/dist/web/components/StatusChip.d.ts.map +1 -0
  355. package/dist/web/components/StatusChip.js +37 -0
  356. package/dist/web/components/StatusChip.js.map +1 -0
  357. package/dist/web/components/StatusChip.js.zyzz.json +1 -0
  358. package/dist/web/components/StatusRow.css +1 -0
  359. package/dist/web/components/StatusRow.d.ts +121 -0
  360. package/dist/web/components/StatusRow.d.ts.map +1 -0
  361. package/dist/web/components/StatusRow.js +75 -0
  362. package/dist/web/components/StatusRow.js.map +1 -0
  363. package/dist/web/components/StatusRow.js.zyzz.json +1 -0
  364. package/dist/web/components/Stepper.css +1 -1
  365. package/dist/web/components/Stepper.d.ts +10 -7
  366. package/dist/web/components/Stepper.d.ts.map +1 -1
  367. package/dist/web/components/Stepper.js +5 -4
  368. package/dist/web/components/Stepper.js.map +1 -1
  369. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  370. package/dist/web/components/Surface.css +1 -1
  371. package/dist/web/components/Surface.d.ts +123 -101
  372. package/dist/web/components/Surface.d.ts.map +1 -1
  373. package/dist/web/components/Surface.js +20 -10
  374. package/dist/web/components/Surface.js.map +1 -1
  375. package/dist/web/components/Surface.js.zyzz.json +1 -1
  376. package/dist/web/components/Switch.css +1 -1
  377. package/dist/web/components/Switch.d.ts +14 -18
  378. package/dist/web/components/Switch.d.ts.map +1 -1
  379. package/dist/web/components/Switch.js +13 -15
  380. package/dist/web/components/Switch.js.map +1 -1
  381. package/dist/web/components/Switch.js.zyzz.json +1 -1
  382. package/dist/web/components/Table.css +1 -1
  383. package/dist/web/components/Table.d.ts +152 -67
  384. package/dist/web/components/Table.d.ts.map +1 -1
  385. package/dist/web/components/Table.js +92 -24
  386. package/dist/web/components/Table.js.map +1 -1
  387. package/dist/web/components/Table.js.zyzz.json +1 -1
  388. package/dist/web/components/Tabs.css +1 -1
  389. package/dist/web/components/Tabs.d.ts +49 -42
  390. package/dist/web/components/Tabs.d.ts.map +1 -1
  391. package/dist/web/components/Tabs.js +45 -14
  392. package/dist/web/components/Tabs.js.map +1 -1
  393. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  394. package/dist/web/components/TempoLogo.css +1 -0
  395. package/dist/web/components/TempoLogo.d.ts +47 -0
  396. package/dist/web/components/TempoLogo.d.ts.map +1 -0
  397. package/dist/web/components/TempoLogo.js +48 -0
  398. package/dist/web/components/TempoLogo.js.map +1 -0
  399. package/dist/web/components/TempoLogo.js.zyzz.json +1 -0
  400. package/dist/web/components/TextInput.css +1 -0
  401. package/dist/web/components/{Input.d.ts → TextInput.d.ts} +27 -18
  402. package/dist/web/components/TextInput.d.ts.map +1 -0
  403. package/dist/web/components/TextInput.js +138 -0
  404. package/dist/web/components/TextInput.js.map +1 -0
  405. package/dist/web/components/TextInput.js.zyzz.json +1 -0
  406. package/dist/web/components/Textarea.css +1 -1
  407. package/dist/web/components/Textarea.d.ts +29 -74
  408. package/dist/web/components/Textarea.d.ts.map +1 -1
  409. package/dist/web/components/Textarea.js +5 -12
  410. package/dist/web/components/Textarea.js.map +1 -1
  411. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  412. package/dist/web/components/Toast.css +1 -1
  413. package/dist/web/components/Toast.d.ts +4 -4
  414. package/dist/web/components/Toast.d.ts.map +1 -1
  415. package/dist/web/components/Toast.js +9 -9
  416. package/dist/web/components/Toast.js.map +1 -1
  417. package/dist/web/components/Toast.js.zyzz.json +1 -1
  418. package/dist/web/components/Token.css +1 -1
  419. package/dist/web/components/Token.d.ts +32 -90
  420. package/dist/web/components/Token.d.ts.map +1 -1
  421. package/dist/web/components/Token.js +27 -89
  422. package/dist/web/components/Token.js.map +1 -1
  423. package/dist/web/components/Token.js.zyzz.json +1 -1
  424. package/dist/web/components/TokenLogo.css +1 -0
  425. package/dist/web/components/TokenLogo.d.ts +117 -0
  426. package/dist/web/components/TokenLogo.d.ts.map +1 -0
  427. package/dist/web/components/TokenLogo.js +112 -0
  428. package/dist/web/components/TokenLogo.js.map +1 -0
  429. package/dist/web/components/TokenLogo.js.zyzz.json +1 -0
  430. package/dist/web/components/Tooltip.css +1 -1
  431. package/dist/web/components/Tooltip.js.map +1 -1
  432. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  433. package/dist/web/components/VerificationCode.css +1 -0
  434. package/dist/web/components/VerificationCode.d.ts +47 -0
  435. package/dist/web/components/VerificationCode.d.ts.map +1 -0
  436. package/dist/web/components/VerificationCode.js +55 -0
  437. package/dist/web/components/VerificationCode.js.map +1 -0
  438. package/dist/web/components/VerificationCode.js.zyzz.json +1 -0
  439. package/dist/web/components/Visual.css +1 -0
  440. package/dist/web/components/Visual.d.ts +65 -0
  441. package/dist/web/components/Visual.d.ts.map +1 -0
  442. package/dist/web/components/Visual.js +51 -0
  443. package/dist/web/components/Visual.js.map +1 -0
  444. package/dist/web/components/Visual.js.zyzz.json +1 -0
  445. package/dist/web/components/internal/Field.css +1 -1
  446. package/dist/web/components/internal/Field.d.ts +41 -87
  447. package/dist/web/components/internal/Field.d.ts.map +1 -1
  448. package/dist/web/components/internal/Field.js +8 -7
  449. package/dist/web/components/internal/Field.js.map +1 -1
  450. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  451. package/dist/web/components/internal/InputGroup.css +1 -1
  452. package/dist/web/components/internal/InputGroup.d.ts +38 -99
  453. package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
  454. package/dist/web/components/internal/InputGroup.js +6 -6
  455. package/dist/web/components/internal/InputGroup.js.map +1 -1
  456. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  457. package/dist/web/components/internal/Listbox.css +1 -1
  458. package/dist/web/components/internal/Listbox.d.ts +8 -8
  459. package/dist/web/components/internal/Listbox.js.map +1 -1
  460. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  461. package/dist/web/components/internal/RowDisabled.d.ts +3 -0
  462. package/dist/web/components/internal/RowDisabled.d.ts.map +1 -0
  463. package/dist/web/components/internal/RowDisabled.js +9 -0
  464. package/dist/web/components/internal/RowDisabled.js.map +1 -0
  465. package/dist/web/components/internal/RowsSize.d.ts +2 -3
  466. package/dist/web/components/internal/RowsSize.d.ts.map +1 -1
  467. package/dist/web/components/internal/RowsSize.js +3 -3
  468. package/dist/web/components/internal/RowsSize.js.map +1 -1
  469. package/dist/web/components/internal/TabBar.d.ts +33 -0
  470. package/dist/web/components/internal/TabBar.d.ts.map +1 -0
  471. package/dist/web/components/internal/TabBar.js +30 -0
  472. package/dist/web/components/internal/TabBar.js.map +1 -0
  473. package/dist/web/components/internal/Text.d.ts +9 -0
  474. package/dist/web/components/internal/Text.d.ts.map +1 -0
  475. package/dist/web/components/internal/Text.js +35 -0
  476. package/dist/web/components/internal/Text.js.map +1 -0
  477. package/dist/web/index.d.ts +18 -6
  478. package/dist/web/index.d.ts.map +1 -1
  479. package/dist/web/index.js +18 -6
  480. package/dist/web/index.js.map +1 -1
  481. package/dist/web/index.js.zyzz.json +1 -1
  482. package/dist/web/vars.d.ts +612 -704
  483. package/dist/web/vars.d.ts.map +1 -1
  484. package/dist/web/vars.js +7 -6
  485. package/dist/web/vars.js.map +1 -1
  486. package/dist/web/vars.js.zyzz.json +1 -1
  487. package/dist/web/zyzz.config.d.ts +3041 -3506
  488. package/dist/web/zyzz.config.d.ts.map +1 -1
  489. package/dist/web/zyzz.config.js +29 -3
  490. package/dist/web/zyzz.config.js.map +1 -1
  491. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  492. package/package.json +149 -5
  493. package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  494. package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  495. package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
  496. package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  497. package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  498. package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
  499. package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
  500. package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  501. package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  502. package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
  503. package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  504. package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  505. package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  506. package/src/fonts/Pilat-Black-latin.woff2 +0 -0
  507. package/src/fonts/Pilat-Black-other.woff2 +0 -0
  508. package/src/fonts/Pilat-Black.woff2 +0 -0
  509. package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
  510. package/src/fonts/Pilat-Bold-other.woff2 +0 -0
  511. package/src/fonts/Pilat-Bold.woff2 +0 -0
  512. package/src/fonts/Pilat-Book-latin.woff2 +0 -0
  513. package/src/fonts/Pilat-Book-other.woff2 +0 -0
  514. package/src/fonts/Pilat-Book.woff2 +0 -0
  515. package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
  516. package/src/fonts/Pilat-Demi-other.woff2 +0 -0
  517. package/src/fonts/Pilat-Demi.woff2 +0 -0
  518. package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
  519. package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
  520. package/src/fonts/Pilat-Heavy.woff2 +0 -0
  521. package/src/fonts/Pilat-Light-latin.woff2 +0 -0
  522. package/src/fonts/Pilat-Light-other.woff2 +0 -0
  523. package/src/fonts/Pilat-Light.woff2 +0 -0
  524. package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
  525. package/src/fonts/Pilat-Regular-other.woff2 +0 -0
  526. package/src/fonts/Pilat-Regular.woff2 +0 -0
  527. package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
  528. package/src/fonts/Pilat-Thin-other.woff2 +0 -0
  529. package/src/fonts/Pilat-Thin.woff2 +0 -0
  530. package/src/fonts/README.md +15 -2
  531. package/src/oxlint/rules/PreferComponent.ts +6 -6
  532. package/src/web/README.md +7 -7
  533. package/src/web/components/Accordion.tsx +8 -8
  534. package/src/web/components/AgentLogo.tsx +330 -0
  535. package/src/web/components/Alert.tsx +321 -0
  536. package/src/web/components/AlertDialog.tsx +47 -111
  537. package/src/web/components/Amount.tsx +6 -6
  538. package/src/web/components/AmountInput.tsx +59 -134
  539. package/src/web/components/AppShell.tsx +367 -43
  540. package/src/web/components/AssetChip.tsx +110 -0
  541. package/src/web/components/Autocomplete.tsx +4 -4
  542. package/src/web/components/Avatar.tsx +42 -119
  543. package/src/web/components/Badge.tsx +122 -0
  544. package/src/web/components/Banner.tsx +13 -11
  545. package/src/web/components/BarChart.tsx +427 -0
  546. package/src/web/components/Breadcrumbs.tsx +7 -7
  547. package/src/web/components/Button.tsx +159 -41
  548. package/src/web/components/ButtonGroup.tsx +59 -0
  549. package/src/web/components/Calendar.tsx +15 -13
  550. package/src/web/components/Checkbox.tsx +14 -11
  551. package/src/web/components/ChoiceGroup.tsx +107 -26
  552. package/src/web/components/Choicebox.tsx +30 -28
  553. package/src/web/components/Combobox.tsx +10 -8
  554. package/src/web/components/CopyButton.tsx +1 -1
  555. package/src/web/components/DatePicker.tsx +42 -61
  556. package/src/web/components/Dialog.tsx +273 -71
  557. package/src/web/components/Drawer.tsx +45 -18
  558. package/src/web/components/Empty.tsx +13 -8
  559. package/src/web/components/Field.tsx +78 -132
  560. package/src/web/components/Fieldset.tsx +16 -37
  561. package/src/web/components/Frame.tsx +13 -20
  562. package/src/web/components/Gauge.tsx +4 -4
  563. package/src/web/components/Hex.tsx +13 -56
  564. package/src/web/components/IconTile.tsx +57 -0
  565. package/src/web/components/Identicon.tsx +1 -10
  566. package/src/web/components/Kbd.tsx +8 -8
  567. package/src/web/components/ListGroup.tsx +857 -0
  568. package/src/web/components/LoadingDots.tsx +1 -0
  569. package/src/web/components/Menu.tsx +50 -35
  570. package/src/web/components/NetworkLogo.tsx +208 -0
  571. package/src/web/components/NumberField.tsx +18 -33
  572. package/src/web/components/OtpField.tsx +51 -102
  573. package/src/web/components/Pagination.tsx +16 -14
  574. package/src/web/components/Popover.tsx +8 -8
  575. package/src/web/components/Progress.tsx +7 -5
  576. package/src/web/components/Qr.tsx +1 -1
  577. package/src/web/components/RadioGroup.tsx +9 -7
  578. package/src/web/components/SecretValue.tsx +11 -11
  579. package/src/web/components/Select.tsx +89 -26
  580. package/src/web/components/Separator.tsx +95 -7
  581. package/src/web/components/SidebarMenu.tsx +390 -53
  582. package/src/web/components/Skeleton.tsx +5 -5
  583. package/src/web/components/Slider.tsx +12 -6
  584. package/src/web/components/Snippet.tsx +134 -75
  585. package/src/web/components/Spinner.tsx +38 -12
  586. package/src/web/components/SplitBar.tsx +158 -0
  587. package/src/web/components/SplitButton.tsx +26 -17
  588. package/src/web/components/StatusChip.tsx +138 -0
  589. package/src/web/components/StatusRow.tsx +162 -0
  590. package/src/web/components/Stepper.tsx +11 -8
  591. package/src/web/components/Surface.tsx +172 -93
  592. package/src/web/components/Switch.tsx +25 -29
  593. package/src/web/components/Table.tsx +281 -70
  594. package/src/web/components/Tabs.tsx +93 -50
  595. package/src/web/components/TempoLogo.tsx +89 -0
  596. package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
  597. package/src/web/components/Textarea.tsx +33 -78
  598. package/src/web/components/Toast.tsx +24 -22
  599. package/src/web/components/Token.tsx +106 -172
  600. package/src/web/components/TokenLogo.tsx +217 -0
  601. package/src/web/components/Tooltip.tsx +3 -3
  602. package/src/web/components/VerificationCode.tsx +97 -0
  603. package/src/web/components/Visual.tsx +166 -0
  604. package/src/web/components/internal/Field.ts +63 -72
  605. package/src/web/components/internal/InputGroup.ts +44 -101
  606. package/src/web/components/internal/Listbox.ts +20 -20
  607. package/src/web/components/internal/RowDisabled.ts +9 -0
  608. package/src/web/components/internal/RowsSize.ts +3 -5
  609. package/src/web/components/internal/TabBar.ts +52 -0
  610. package/src/web/components/internal/Text.ts +39 -0
  611. package/src/web/components/visuals/Passkey.svg +21 -0
  612. package/src/web/index.ts +18 -6
  613. package/src/web/logos/Base.svg +10 -0
  614. package/src/web/logos/Ethereum.svg +16 -0
  615. package/src/web/logos/HyperEVM.svg +27 -0
  616. package/src/web/logos/Polygon.svg +15 -0
  617. package/src/web/logos/README.md +14 -0
  618. package/src/web/logos/Solana.svg +11 -0
  619. package/src/web/logos/Tempo.svg +11 -0
  620. package/src/web/vars.ts +493 -534
  621. package/src/web/zyzz.config.ts +255 -12
  622. package/dist/fonts/GeistMono-Variable.woff2 +0 -0
  623. package/dist/web/components/AlertDialog.css +0 -1
  624. package/dist/web/components/Callout.css +0 -1
  625. package/dist/web/components/Callout.d.ts +0 -161
  626. package/dist/web/components/Callout.d.ts.map +0 -1
  627. package/dist/web/components/Callout.js +0 -83
  628. package/dist/web/components/Callout.js.map +0 -1
  629. package/dist/web/components/Callout.js.zyzz.json +0 -1
  630. package/dist/web/components/IconChip.css +0 -1
  631. package/dist/web/components/IconChip.d.ts +0 -53
  632. package/dist/web/components/IconChip.d.ts.map +0 -1
  633. package/dist/web/components/IconChip.js +0 -27
  634. package/dist/web/components/IconChip.js.map +0 -1
  635. package/dist/web/components/IconChip.js.zyzz.json +0 -1
  636. package/dist/web/components/Input.css +0 -1
  637. package/dist/web/components/Input.d.ts.map +0 -1
  638. package/dist/web/components/Input.js +0 -118
  639. package/dist/web/components/Input.js.map +0 -1
  640. package/dist/web/components/Input.js.zyzz.json +0 -1
  641. package/dist/web/components/Rows.css +0 -1
  642. package/dist/web/components/Rows.d.ts +0 -484
  643. package/dist/web/components/Rows.d.ts.map +0 -1
  644. package/dist/web/components/Rows.js +0 -171
  645. package/dist/web/components/Rows.js.map +0 -1
  646. package/dist/web/components/Rows.js.zyzz.json +0 -1
  647. package/dist/web/components/Tag.css +0 -1
  648. package/dist/web/components/Tag.d.ts +0 -171
  649. package/dist/web/components/Tag.d.ts.map +0 -1
  650. package/dist/web/components/Tag.js +0 -52
  651. package/dist/web/components/Tag.js.map +0 -1
  652. package/dist/web/components/Tag.js.zyzz.json +0 -1
  653. package/dist/web/components/internal/FieldVariant.d.ts +0 -4
  654. package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
  655. package/dist/web/components/internal/FieldVariant.js +0 -4
  656. package/dist/web/components/internal/FieldVariant.js.map +0 -1
  657. package/src/fonts/GeistMono-Variable.woff2 +0 -0
  658. package/src/web/components/Callout.tsx +0 -241
  659. package/src/web/components/IconChip.tsx +0 -54
  660. package/src/web/components/Rows.tsx +0 -588
  661. package/src/web/components/Tag.tsx +0 -149
  662. package/src/web/components/internal/FieldVariant.ts +0 -6
@@ -7,11 +7,16 @@ 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
+ * - Use `danger` for the action that confirms a destructive outcome, such as Revoke key.
16
+ * - Set `appearance="inverse"` on an inverse surface, such as a dark banner on a light page, and
17
+ * `appearance="overlay"` over an image or video.
18
+ * - Use `large` for the actions in a dialog footer. Keep `xsmall` pills for actions inside a row
19
+ * or field, never for the main action.
15
20
  * - Set `focusableWhenDisabled` when a disabled button needs to stay reachable while nearby text
16
21
  * explains why it is unavailable.
17
22
  *
@@ -28,6 +33,7 @@ import { Spinner } from './Spinner.js'
28
33
  */
29
34
  export function Button(props: Button.Props) {
30
35
  const {
36
+ appearance,
31
37
  children,
32
38
  className,
33
39
  disabled,
@@ -42,7 +48,7 @@ export function Button(props: Button.Props) {
42
48
  return (
43
49
  <BaseUi.Button
44
50
  {...attributes}
45
- {...styles.button({ className, shape, size, style: props.style, variant, vars })}
51
+ {...styles.button({ appearance, className, shape, size, style: props.style, variant, vars })}
46
52
  aria-busy={loading || undefined}
47
53
  data-loading={loading || undefined}
48
54
  disabled={disabled || loading}
@@ -71,13 +77,24 @@ export namespace Button {
71
77
  * `render` takes a router's link, such as `<Link to="/" />`.
72
78
  */
73
79
  export function Link(props: Link.Props) {
74
- const { children, className, ref, render, shape, size, variant, vars, ...attributes } = props
80
+ const {
81
+ appearance,
82
+ children,
83
+ className,
84
+ ref,
85
+ render,
86
+ shape,
87
+ size,
88
+ variant,
89
+ vars,
90
+ ...attributes
91
+ } = props
75
92
 
76
93
  return useRender({
77
94
  defaultTagName: 'a',
78
95
  props: {
79
96
  ...attributes,
80
- ...styles.button({ className, shape, size, style: props.style, variant, vars }),
97
+ ...styles.button({ appearance, className, shape, size, style: props.style, variant, vars }),
81
98
  children: <span {...styles.content({ loading: false })}>{children}</span>,
82
99
  },
83
100
  ref,
@@ -96,30 +113,32 @@ namespace styles {
96
113
  base: {
97
114
  alignItems: 'center',
98
115
  border: 'none !custom',
116
+ borderRadius: 'xs',
99
117
  boxSizing: 'border-box',
100
- columnGap: '8',
118
+ columnGap: '4',
101
119
  cursor: 'pointer',
102
120
  display: 'inline-flex',
103
121
  justifyContent: 'center',
104
122
  outlineColor: 'transparent !custom',
105
- outlineOffset: '2',
123
+ outlineOffset: '0',
106
124
  outlineStyle: 'solid !custom',
107
125
  outlineWidth: '2',
108
126
  position: 'relative',
109
127
  textDecoration: 'none !custom',
110
128
  transitionDuration: '160',
111
- transitionProperty:
112
- 'background-color, box-shadow, color, opacity, outline-color, scale !custom',
129
+ transitionProperty: 'background-color, color, opacity, outline-color, scale !custom',
113
130
  transitionTimingFunction: 'snappy',
131
+ typography: 'body.b2Strong',
114
132
  userSelect: 'none',
115
133
  whiteSpace: 'nowrap',
116
134
  selectors: {
135
+ '& > span > svg': { flexShrink: '0 !custom', fontSize: '16' },
117
136
  '&:active:not(:disabled)': {
118
137
  scale: 'press',
119
138
  transitionDuration: '100',
120
139
  },
121
140
  '&:disabled': { cursor: 'default', opacity: 'disabled' },
122
- '&:focus-visible': { outlineColor: 'blue.700' },
141
+ '&:focus-visible': { outlineColor: 'action.focusRing' },
123
142
  '&[data-loading]': { opacity: '1 !custom' },
124
143
  },
125
144
  '@media (forced-colors: active)': {
@@ -131,64 +150,162 @@ namespace styles {
131
150
  selectors: { '&:active:not(:disabled)': { scale: 'none !custom' } },
132
151
  },
133
152
  },
134
- // Icon buttons are circles at every size, so the shape outranks the size radius and padding.
153
+ // Icon buttons are circles at every size, so the shape outranks the size padding and width.
135
154
  compoundVariants: [
136
- { when: { shape: 'icon' }, style: { borderRadius: 'full', paddingInline: '0' } },
155
+ {
156
+ when: { shape: 'icon' },
157
+ style: {
158
+ borderRadius: 'full',
159
+ cornerShape: 'round',
160
+ flexShrink: '0 !custom',
161
+ minWidth: '0',
162
+ paddingInline: '0',
163
+ selectors: { '& > span:first-child': { minWidth: '0 !custom' } },
164
+ },
165
+ },
166
+ // The Platform Icon Button fills its primary circle a step lighter than the primary
167
+ // Button in light mode.
168
+ {
169
+ when: { appearance: 'base', shape: 'icon', variant: 'primary' },
170
+ style: { backgroundColor: 'inverse.background.secondary' },
171
+ },
172
+ // The focus ring of the page blends into an inverse surface, so an inverse button draws
173
+ // its ring in the inverse text color, 2px out, where the surface separates it from a fill
174
+ // of the same color.
175
+ {
176
+ when: { appearance: 'inverse' },
177
+ style: {
178
+ selectors: {
179
+ '&:focus-visible': { outlineColor: 'inverse.content.primary', outlineOffset: '2' },
180
+ },
181
+ },
182
+ },
183
+ // The inverse and overlay appearances have no pressed design, so a press keeps the hover
184
+ // fill. Their primary fill also stays the same on hover.
185
+ {
186
+ when: { appearance: ['inverse', 'overlay'], variant: 'primary' },
187
+ style: {
188
+ backgroundColor: 'background.secondary',
189
+ color: 'content.primary',
190
+ selectors: {
191
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: 'background.secondary' },
192
+ },
193
+ },
194
+ },
195
+ {
196
+ when: { appearance: 'inverse', variant: 'secondary' },
197
+ style: {
198
+ backgroundColor: 'inverse.container.regular',
199
+ color: 'inverse.content.primary',
200
+ selectors: {
201
+ '&:is(:hover, :active):not(:disabled)': {
202
+ backgroundColor: 'inverse.container.regular',
203
+ },
204
+ },
205
+ },
206
+ },
207
+ // Figma paints the overlay fills as gray literals that no variable holds. Hover lightens
208
+ // the fill.
209
+ {
210
+ when: { appearance: 'overlay', variant: 'secondary' },
211
+ style: {
212
+ backgroundColor: '#70707052 !custom',
213
+ color: 'inverse.content.primary',
214
+ selectors: {
215
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: '#70707048 !custom' },
216
+ },
217
+ },
218
+ },
219
+ {
220
+ when: { appearance: ['inverse', 'overlay'], variant: 'tertiary' },
221
+ style: {
222
+ color: 'inverse.content.primary',
223
+ selectors: {
224
+ '&:is(:hover, :active):not(:disabled)': { backgroundColor: 'neutral.tint.012' },
225
+ },
226
+ },
227
+ },
137
228
  ],
138
- defaultVariants: { shape: 'default', size: 'medium', variant: 'primary' },
229
+ defaultVariants: { appearance: 'base', shape: 'default', size: 'medium', variant: 'primary' },
139
230
  variants: {
231
+ /**
232
+ * The surface under the button: the page for `base`, an inverse surface, such as
233
+ * `inverse.background.primary`, for `inverse`, and an image or video for `overlay`. On
234
+ * both of the last two, `primary` takes the page's background and text colors, and
235
+ * `secondary` and `tertiary` take the inverse text color.
236
+ *
237
+ * @default 'base'
238
+ */
239
+ appearance: { base: {}, inverse: {}, overlay: {} },
140
240
  shape: {
141
241
  default: {},
142
242
  icon: { aspectRatio: '1 !custom' },
143
243
  },
144
- // Heights and radii match the `size` scale of the text fields.
244
+ // `xsmall` is a pill for actions inside a row or field. The others keep radius `xs` and an 80px
245
+ // minimum width, set on the label net of the padding, so a flex row never shrinks a button
246
+ // below its label.
145
247
  size: {
146
248
  large: {
147
- borderRadius: '16',
148
- height: '56',
249
+ height: '48',
149
250
  paddingInline: '32',
150
- typography: 'button.16',
251
+ selectors: { '& > span:first-child': { minWidth: '1rem !custom' } },
151
252
  },
152
253
  medium: {
153
- borderRadius: '12',
154
254
  height: '40',
155
- paddingInline: '20',
156
- typography: 'button.14',
255
+ paddingInline: '24',
256
+ selectors: { '& > span:first-child': { minWidth: '2rem !custom' } },
157
257
  },
158
258
  small: {
159
- borderRadius: '8',
160
259
  height: '32',
260
+ paddingInline: '16',
261
+ selectors: { '& > span:first-child': { minWidth: '3rem !custom' } },
262
+ },
263
+ xsmall: {
264
+ borderRadius: 'full',
265
+ cornerShape: 'round',
266
+ height: '24',
161
267
  paddingInline: '12',
162
- typography: 'button.12',
268
+ typography: 'body.b3Strong',
269
+ selectors: { '& > span > svg': { fontSize: '12' } },
163
270
  },
164
271
  },
272
+ // Each pressed fill follows its hover fill, so it wins while the pointer stays over the
273
+ // button.
165
274
  variant: {
166
- negative: {
167
- backgroundColor: 'red.800',
168
- color: 'white',
169
- selectors: { '&:hover:not(:disabled)': { backgroundColor: 'red.900' } },
275
+ // The Platform Button has no pressed design for `danger`, so a press keeps the hover fill.
276
+ danger: {
277
+ backgroundColor: 'action.danger.fill.rest',
278
+ color: 'action.danger.label.rest',
279
+ selectors: {
280
+ '&:is(:hover, :active):not(:disabled)': {
281
+ backgroundColor: 'action.danger.fill.hover',
282
+ },
283
+ },
170
284
  },
285
+ // The Platform Button paints its primary fill and label with the inverse colors.
171
286
  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' } },
287
+ backgroundColor: 'inverse.background.primary',
288
+ color: 'inverse.content.primary',
289
+ selectors: {
290
+ '&:hover:not(:disabled)': { backgroundColor: 'action.primary.fill.hover' },
291
+ '&:active:not(:disabled)': { backgroundColor: 'action.primary.fill.pressed' },
292
+ },
178
293
  },
179
- // Matches the Input field fill.
180
294
  secondary: {
181
- backgroundColor: 'grayAlpha.100',
182
- color: 'foreground',
295
+ backgroundColor: 'component.button.secondary.fill',
296
+ color: 'content.primary',
183
297
  selectors: {
184
- '&:hover:not(:disabled)': { backgroundColor: 'grayAlpha.200' },
185
- '&:active:not(:disabled)': { backgroundColor: 'grayAlpha.300' },
298
+ '&:hover:not(:disabled)': { backgroundColor: 'action.secondary.fill.hover' },
299
+ '&:active:not(:disabled)': { backgroundColor: 'action.secondary.fill.pressed' },
186
300
  },
187
301
  },
188
- text: {
189
- backgroundColor: 'transparent !custom',
190
- color: 'foreground',
191
- selectors: { '&:hover:not(:disabled)': { backgroundColor: 'grayAlpha.100' } },
302
+ tertiary: {
303
+ backgroundColor: 'component.button.tertiary.fill',
304
+ color: 'content.primary',
305
+ selectors: {
306
+ '&:hover:not(:disabled)': { backgroundColor: 'action.tertiary.fill.hover' },
307
+ '&:active:not(:disabled)': { backgroundColor: 'action.tertiary.fill.pressed' },
308
+ },
192
309
  },
193
310
  },
194
311
  },
@@ -202,6 +319,7 @@ namespace styles {
202
319
  alignItems: 'inherit !custom',
203
320
  columnGap: 'inherit !custom',
204
321
  display: 'inline-flex',
322
+ justifyContent: 'center',
205
323
  transitionDuration: '160',
206
324
  transitionProperty: 'opacity, visibility !custom',
207
325
  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' } },