@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
@@ -4,14 +4,18 @@ import type * as zyzz from 'zyzz'
4
4
  import { variants, vars } from '../zyzz.config.js'
5
5
 
6
6
  /**
7
- * A card container that renders a `div` by default. Pass `render` to swap the element, such as a
8
- * `section`, `button` or link. A `button`, `a[href]` or `role="button"` surface gains hover, press
9
- * and focus-visible styles and spans the full width.
7
+ * A card container that renders a `div` with a 1px border inside its edge by default. Pass
8
+ * `render` to swap the element, such as a `section`, `button` or link. A `button`, `a[href]` or
9
+ * `role="button"` surface gains hover, press and focus-visible styles and spans the full width.
10
10
  *
11
- * - `size` sets the corner radius and padding together.
11
+ * - `size` sets the corner radius and padding together, at the same value.
12
12
  * - Name the card with `Surface.Title`, which renders an `h2`, so headings keep the card navigable.
13
13
  * - A pressable surface should hold no other interactive controls, since nested targets conflict.
14
- * - A direct child `table` or `Rows` bleeds into the padding, so row fills reach the edges.
14
+ * - A direct child `table` bleeds 12px into the padding at the sides and the bottom, as rows pad
15
+ * their cells, so its text stays on the content edge. The surface draws no border around it.
16
+ * - A direct child `plain` `ListGroup` bleeds into the padding, so a hover fill reaches the edges.
17
+ * Each row is 44px, pads its sides by the surface's padding, and shares the height of the
18
+ * tallest row.
15
19
  *
16
20
  * @example
17
21
  * <Surface>
@@ -54,11 +58,20 @@ export namespace Surface {
54
58
  export type Props = ComponentPropsWithRef<'p'> & zyzz.Props.Variants<typeof styles.description>
55
59
  }
56
60
 
57
- /** A row above the content holding a `Surface.Title` and, at the end, any actions. */
61
+ /**
62
+ * A row above the content holding a `Surface.Title` and, at the end, any actions, with 20px of
63
+ * space below it.
64
+ */
58
65
  export function Header(props: Header.Props) {
59
66
  const { className, vars, ...attributes } = props
60
67
 
61
- return <div {...attributes} {...styles.header({ className, style: props.style, vars })} />
68
+ return (
69
+ <div
70
+ {...attributes}
71
+ data-surface-header=""
72
+ {...styles.header({ className, style: props.style, vars })}
73
+ />
74
+ )
62
75
  }
63
76
 
64
77
  export namespace Header {
@@ -85,7 +98,10 @@ export namespace Surface {
85
98
  disabled?: boolean | undefined
86
99
  }
87
100
 
88
- /** The card heading, rendered as an `h2`. A leading `svg` icon renders at 24px. */
101
+ /**
102
+ * The card heading, rendered as an `h2`. A leading `svg` icon renders at 24px. In a surface that
103
+ * holds a direct child `table`, the title renders at the size of a section heading.
104
+ */
89
105
  export function Title(props: Title.Props) {
90
106
  const { className, vars, ...attributes } = props
91
107
 
@@ -101,10 +117,10 @@ namespace styles {
101
117
  export const description = variants(
102
118
  {
103
119
  base: {
104
- color: 'gray.900',
120
+ color: 'content.secondary',
105
121
  margin: '0',
106
122
  selectors: { '& + *': { marginBlockStart: '24' } },
107
- typography: 'copy.15',
123
+ typography: 'body.b1',
108
124
  },
109
125
  },
110
126
  { id: 'tds/web/surface/description' },
@@ -117,23 +133,23 @@ namespace styles {
117
133
  columnGap: '16',
118
134
  display: 'flex',
119
135
  justifyContent: 'space-between',
120
- marginBlockEnd: '16',
136
+ marginBlockEnd: '20',
121
137
  minWidth: '0',
122
138
  selectors: {
123
- // A trailing text button bleeds by its inline padding, so its label aligns with the content
124
- // edge, but never past the surface padding.
125
- '& > [data-variant="text"]:not([data-shape="icon"]):last-child': {
126
- marginInlineEnd: '-20',
139
+ // A trailing tertiary button bleeds by its inline padding, so its label aligns with the
140
+ // content edge, but never past the surface padding.
141
+ '& > [data-variant="tertiary"]:not([data-shape="icon"]):last-child': {
142
+ marginInlineEnd: '-24',
127
143
  },
128
- '& > [data-variant="text"][data-size="small"]:not([data-shape="icon"]):last-child': {
129
- marginInlineEnd: '-12',
144
+ '& > [data-variant="tertiary"][data-size="small"]:not([data-shape="icon"]):last-child': {
145
+ marginInlineEnd: '-16',
130
146
  },
131
- '& > [data-variant="text"][data-size="large"]:not([data-shape="icon"]):last-child': {
132
- marginInlineEnd: '-24',
147
+ '& > [data-variant="tertiary"][data-size="xsmall"]:not([data-shape="icon"]):last-child': {
148
+ marginInlineEnd: '-12',
133
149
  },
134
- '[data-surface-size="medium"] > & > [data-variant="text"]:is([data-size="medium"], [data-size="large"]):not([data-shape="icon"]):last-child':
150
+ '[data-surface-size="medium"] > & > [data-variant="tertiary"]:is([data-size="medium"], [data-size="large"]):not([data-shape="icon"]):last-child':
135
151
  { marginInlineEnd: '-16' },
136
- '[data-surface-size="small"] > & > [data-variant="text"]:is([data-size="medium"], [data-size="large"]):not([data-shape="icon"]):last-child':
152
+ '[data-surface-size="small"] > & > [data-variant="tertiary"]:is([data-size="small"], [data-size="medium"], [data-size="large"]):not([data-shape="icon"]):last-child':
137
153
  { marginInlineEnd: '-12' },
138
154
  },
139
155
  },
@@ -153,8 +169,8 @@ namespace styles {
153
169
  appearance: 'none !custom',
154
170
  backgroundColor: 'transparent !custom',
155
171
  border: 'none !custom',
156
- borderRadius: '2',
157
- color: 'foreground',
172
+ borderRadius: '3xs',
173
+ color: 'content.primary',
158
174
  cursor: 'pointer',
159
175
  font: 'inherit !custom',
160
176
  outlineColor: 'transparent !custom',
@@ -171,9 +187,9 @@ namespace styles {
171
187
  transitionTimingFunction: 'snappy',
172
188
  },
173
189
  '& > :is(a, button):hover': { textDecorationColor: 'currentColor !custom' },
174
- '& > :is(a, button):focus-visible': { outlineColor: 'blue.700' },
190
+ '& > :is(a, button):focus-visible': { outlineColor: 'border.focus' },
175
191
  },
176
- typography: 'label.16.strong',
192
+ typography: 'body.b1Strong',
177
193
  },
178
194
  },
179
195
  { id: 'tds/web/surface/links' },
@@ -182,9 +198,12 @@ namespace styles {
182
198
  export const surface = variants(
183
199
  {
184
200
  base: {
185
- backgroundColor: 'background.surface',
201
+ backgroundColor: 'background.elevated',
202
+ borderColor: 'line.secondary',
203
+ borderStyle: 'solid',
204
+ borderWidth: 'regular',
186
205
  boxSizing: 'border-box',
187
- color: 'foreground',
206
+ color: 'content.primary',
188
207
  display: 'block',
189
208
  outlineColor: 'transparent !custom',
190
209
  outlineOffset: '0',
@@ -194,40 +213,79 @@ namespace styles {
194
213
  transitionDuration: '160',
195
214
  transitionProperty: 'background-color, opacity, outline-color, outline-offset, scale',
196
215
  transitionTimingFunction: 'snappy',
197
- typography: 'copy.14',
216
+ typography: 'body.b2',
198
217
  selectors: {
199
218
  '&:is(button, a[href], [role="button"])': {
200
- border: 'none !custom',
201
219
  cursor: 'pointer',
202
220
  textDecoration: 'none !custom',
203
221
  width: '100% !custom',
204
222
  },
205
223
  '&:is(button, a[href], [role="button"]):hover:not(:disabled, [aria-disabled="true"])': {
206
- backgroundColor: 'gray.100',
224
+ backgroundColor: 'container.regular',
207
225
  },
208
226
  '&:is(button, a[href], [role="button"]):active:not(:disabled, [aria-disabled="true"])': {
209
- backgroundColor: 'gray.200',
227
+ backgroundColor: 'container.strong',
210
228
  scale: 'press',
211
229
  },
212
230
  '&:is(button, a[href], [role="button"]):focus-visible': {
213
- outlineColor: 'blue.700',
231
+ outlineColor: 'border.focus',
214
232
  outlineOffset: '2',
215
233
  },
216
- // Edge-to-edge row fills would otherwise cross the rounded corners. A table clips rather
217
- // than hides its overflow, so a sticky header still sticks to the scrolling ancestor.
218
- '&:has(> [data-rows])': { overflow: 'hidden' },
219
- '&:has(> table)': { overflow: 'clip !custom' },
234
+ // Row fills reach the edges of a small surface and would otherwise cross its corners. A
235
+ // table clips rather than hides its overflow, so a sticky header still sticks to the
236
+ // scrolling ancestor. The surface draws no border around the rows.
237
+ '&:has(> table)': { borderStyle: 'none', overflow: 'clip !custom' },
238
+ // Every row takes the height of the tallest, such as a row that holds a 48px field. The
239
+ // column can shrink below a row's content, so a long value truncates inside the surface.
240
+ '& > [data-list-group][data-variant="plain"]': {
241
+ display: 'grid',
242
+ gridAutoRows: '1fr !custom',
243
+ gridTemplateColumns: 'minmax(0, 1fr) !custom',
244
+ },
245
+ // Rows are 44px, with 4px above and below a 32px control. Their fills stay square, except
246
+ // at the surface's corners, where each size rounds them inside the border.
247
+ '& > [data-list-group][data-variant="plain"] > [data-divider]': {
248
+ borderRadius: 'none',
249
+ minHeight: '44',
250
+ paddingBlock: '4',
251
+ },
252
+ // A row of a title over a description, or of a meter, keeps its own block padding.
253
+ '& > [data-list-group][data-variant="plain"] > [data-divider]:has([data-info])': {
254
+ paddingBlock: '12',
255
+ },
256
+ '& > [data-list-group][data-variant="plain"] > [data-divider]:has([role="meter"])': {
257
+ paddingBlock: '10',
258
+ },
259
+ // The rows already reach the surface's edges, so their fills draw no bleed past them.
260
+ '& > [data-list-group][data-variant="plain"] > [data-divider]:is(:hover, :active)': {
261
+ boxShadow: 'none !custom',
262
+ },
263
+ // After a header, the list rises by the 14px above the text of a one-line row, so the
264
+ // text keeps the header's 20px gap. After other content, the list keeps its place, so its
265
+ // fills never cover that content.
266
+ '& > [data-surface-header] + [data-list-group][data-variant="plain"]:has(> [data-divider])':
267
+ {
268
+ marginBlockStart: 'calc((1rem - 2.75rem) / 2) !custom',
269
+ },
270
+ // A table bleeds by the 12px that its rows pad their edge cells, so the rows sit 12px
271
+ // inside the padding and their text on the content edge.
272
+ '& > table': {
273
+ marginInline: '-12',
274
+ width: `calc(100% + ${vars.spacing['24']}) !custom`,
275
+ },
220
276
  // A table at the top or bottom edge insets its text by the padding alone, as at the sides.
221
277
  // The header row bleeds to the top edge, so a sticky header keeps the padding above its
222
- // text. The caption drops its outer padding. Without a caption, the last row bleeds to the
223
- // bottom edge and keeps the half gap above its text from its 32, 40 or 56px height with
224
- // 20px type.
278
+ // text. The caption drops its outer padding. Without a caption, the last row bleeds 12px
279
+ // into the bottom padding and keeps the half gap above its text from its 32, 40 or 56px
280
+ // height with 20px type.
225
281
  '& > table:last-child > caption': { paddingBlockEnd: '0px !custom' },
282
+ '& > table:last-child:not(:has(> caption))': { marginBlockEnd: '-12' },
226
283
  '& > table:last-child:not(:has(> caption)) > tbody > tr:last-child > td': {
227
284
  height: 'auto !custom',
285
+ paddingBlockEnd: '12',
228
286
  },
229
287
  '& > table[data-size="large"]:last-child:not(:has(> caption)) > tbody > tr:last-child > td':
230
- { paddingBlockStart: '18' },
288
+ { paddingBlockStart: '20' },
231
289
  '& > table[data-size="medium"]:last-child:not(:has(> caption)) > tbody > tr:last-child > td':
232
290
  { paddingBlockStart: '10' },
233
291
  '& > table[data-size="small"]:last-child:not(:has(> caption)) > tbody > tr:last-child > td':
@@ -248,84 +306,99 @@ namespace styles {
248
306
  },
249
307
  defaultVariants: { size: 'large' },
250
308
  variants: {
251
- // Padding is one and a half times the radius, and they scale together. A direct child
252
- // table or Rows bleeds into the inline padding so fills reach the edges. Table cells at the
253
- // edges take back exactly the padding, so their text aligns with the content edge, while rows
254
- // keep their own side padding. Rows at the top or bottom edge take the full block padding,
255
- // since each row brings its own, and take half beside other content.
309
+ // Each size pads by its own radius, and they scale together. A direct child table with a
310
+ // header bleeds into the top padding, and its header cells take back exactly the padding.
311
+ // A direct child list bleeds into the padding at the sides, and above and below it at the
312
+ // surface's edges once it holds a row, so an empty list keeps the padding. Its rows take
313
+ // back the padding at the sides.
256
314
  size: {
257
315
  large: {
258
- borderRadius: '16',
316
+ borderRadius: 'md',
259
317
  padding: '24',
260
318
  selectors: {
261
- '& > table, & > [data-rows]': { marginInline: '-24' },
262
- '& > [data-rows]': { marginBlock: '-12' },
263
- '& > [data-rows]:first-child': { marginBlockStart: '-24' },
264
- '& > [data-rows]:last-child': { marginBlockEnd: '-24' },
265
- '& > table': { width: `calc(100% + ${vars.spacing['48']}) !custom` },
266
- '& > table > caption, & > table tr > :first-child': {
267
- paddingInlineStart: '24',
268
- },
269
- '& > table tr > :last-child': { paddingInlineEnd: '24' },
270
319
  '& > table:first-child:has(> thead)': { marginBlockStart: '-24' },
271
- '& > table:first-child > thead > tr:first-child > th': {
272
- paddingBlockStart: '24',
320
+ '& > [data-list-group][data-variant="plain"]': { marginInline: '-24' },
321
+ '& > [data-list-group][data-variant="plain"]:first-child:has(> [data-divider])': {
322
+ marginBlockStart: '-24',
273
323
  },
274
- '& > table:last-child:not(:has(> caption))': {
324
+ '& > [data-list-group][data-variant="plain"]:last-child:has(> [data-divider])': {
275
325
  marginBlockEnd: '-24',
276
326
  },
277
- '& > table:last-child:not(:has(> caption)) > tbody > tr:last-child > td': {
278
- paddingBlockEnd: '24',
327
+ '& > [data-list-group][data-variant="plain"]:first-child > [data-divider]:first-child':
328
+ {
329
+ borderStartEndRadius: `calc(${vars.radius.md} - 1px) !custom`,
330
+ borderStartStartRadius: `calc(${vars.radius.md} - 1px) !custom`,
331
+ },
332
+ '& > [data-list-group][data-variant="plain"]:last-child > [data-divider]:last-child':
333
+ {
334
+ borderEndEndRadius: `calc(${vars.radius.md} - 1px) !custom`,
335
+ borderEndStartRadius: `calc(${vars.radius.md} - 1px) !custom`,
336
+ },
337
+ '& > [data-list-group][data-variant="plain"] > [data-divider]': {
338
+ paddingInline: '24',
339
+ },
340
+ '& > table:first-child > thead > tr:first-child > th': {
341
+ paddingBlockStart: '24',
279
342
  },
280
343
  },
281
344
  },
282
345
  medium: {
283
- borderRadius: '12',
346
+ borderRadius: 'sm',
284
347
  padding: '16',
285
348
  selectors: {
286
- '& > table, & > [data-rows]': { marginInline: '-16' },
287
- '& > [data-rows]': { marginBlock: '-8' },
288
- '& > [data-rows]:first-child': { marginBlockStart: '-16' },
289
- '& > [data-rows]:last-child': { marginBlockEnd: '-16' },
290
- '& > table': { width: `calc(100% + ${vars.spacing['32']}) !custom` },
291
- '& > table > caption, & > table tr > :first-child': {
292
- paddingInlineStart: '16',
293
- },
294
- '& > table tr > :last-child': { paddingInlineEnd: '16' },
295
349
  '& > table:first-child:has(> thead)': { marginBlockStart: '-16' },
296
- '& > table:first-child > thead > tr:first-child > th': {
297
- paddingBlockStart: '16',
350
+ '& > [data-list-group][data-variant="plain"]': { marginInline: '-16' },
351
+ '& > [data-list-group][data-variant="plain"]:first-child:has(> [data-divider])': {
352
+ marginBlockStart: '-16',
298
353
  },
299
- '& > table:last-child:not(:has(> caption))': {
354
+ '& > [data-list-group][data-variant="plain"]:last-child:has(> [data-divider])': {
300
355
  marginBlockEnd: '-16',
301
356
  },
302
- '& > table:last-child:not(:has(> caption)) > tbody > tr:last-child > td': {
303
- paddingBlockEnd: '16',
357
+ '& > [data-list-group][data-variant="plain"]:first-child > [data-divider]:first-child':
358
+ {
359
+ borderStartEndRadius: `calc(${vars.radius.sm} - 1px) !custom`,
360
+ borderStartStartRadius: `calc(${vars.radius.sm} - 1px) !custom`,
361
+ },
362
+ '& > [data-list-group][data-variant="plain"]:last-child > [data-divider]:last-child':
363
+ {
364
+ borderEndEndRadius: `calc(${vars.radius.sm} - 1px) !custom`,
365
+ borderEndStartRadius: `calc(${vars.radius.sm} - 1px) !custom`,
366
+ },
367
+ '& > [data-list-group][data-variant="plain"] > [data-divider]': {
368
+ paddingInline: '16',
369
+ },
370
+ '& > table:first-child > thead > tr:first-child > th': {
371
+ paddingBlockStart: '16',
304
372
  },
305
373
  },
306
374
  },
307
375
  small: {
308
- borderRadius: '8',
376
+ borderRadius: 'xs',
309
377
  padding: '12',
310
378
  selectors: {
311
- '& > table, & > [data-rows]': { marginInline: '-12' },
312
- '& > [data-rows]': { marginBlock: '-6' },
313
- '& > [data-rows]:first-child': { marginBlockStart: '-12' },
314
- '& > [data-rows]:last-child': { marginBlockEnd: '-12' },
315
- '& > table': { width: `calc(100% + ${vars.spacing['24']}) !custom` },
316
- '& > table > caption, & > table tr > :first-child': {
317
- paddingInlineStart: '12',
318
- },
319
- '& > table tr > :last-child': { paddingInlineEnd: '12' },
320
379
  '& > table:first-child:has(> thead)': { marginBlockStart: '-12' },
321
- '& > table:first-child > thead > tr:first-child > th': {
322
- paddingBlockStart: '12',
380
+ '& > [data-list-group][data-variant="plain"]': { marginInline: '-12' },
381
+ '& > [data-list-group][data-variant="plain"]:first-child:has(> [data-divider])': {
382
+ marginBlockStart: '-12',
323
383
  },
324
- '& > table:last-child:not(:has(> caption))': {
384
+ '& > [data-list-group][data-variant="plain"]:last-child:has(> [data-divider])': {
325
385
  marginBlockEnd: '-12',
326
386
  },
327
- '& > table:last-child:not(:has(> caption)) > tbody > tr:last-child > td': {
328
- paddingBlockEnd: '12',
387
+ '& > [data-list-group][data-variant="plain"]:first-child > [data-divider]:first-child':
388
+ {
389
+ borderStartEndRadius: `calc(${vars.radius.xs} - 1px) !custom`,
390
+ borderStartStartRadius: `calc(${vars.radius.xs} - 1px) !custom`,
391
+ },
392
+ '& > [data-list-group][data-variant="plain"]:last-child > [data-divider]:last-child':
393
+ {
394
+ borderEndEndRadius: `calc(${vars.radius.xs} - 1px) !custom`,
395
+ borderEndStartRadius: `calc(${vars.radius.xs} - 1px) !custom`,
396
+ },
397
+ '& > [data-list-group][data-variant="plain"] > [data-divider]': {
398
+ paddingInline: '12',
399
+ },
400
+ '& > table:first-child > thead > tr:first-child > th': {
401
+ paddingBlockStart: '12',
329
402
  },
330
403
  },
331
404
  },
@@ -339,13 +412,19 @@ namespace styles {
339
412
  {
340
413
  base: {
341
414
  alignItems: 'center',
342
- color: 'foreground',
415
+ color: 'content.primary',
343
416
  columnGap: '12',
344
417
  display: 'flex',
345
418
  margin: '0',
346
419
  minWidth: '0',
347
- selectors: { '& > svg': { flexShrink: '0 !custom', fontSize: '24' } },
348
- typography: 'heading.20',
420
+ selectors: {
421
+ '& > svg': { flexShrink: '0 !custom', fontSize: '24' },
422
+ // A card that holds a table titles it as a section of the page.
423
+ '[data-surface-size]:has(> table) > &, [data-surface-size]:has(> table) > * > &': {
424
+ typography: 'heading.h3',
425
+ },
426
+ },
427
+ typography: 'body.b2Strong',
349
428
  },
350
429
  },
351
430
  { id: 'tds/web/surface/title' },
@@ -2,24 +2,25 @@ import * as BaseUi from '@base-ui/react/switch'
2
2
  import { type ComponentPropsWithRef, useContext } from 'react'
3
3
  import type * as zyzz from 'zyzz'
4
4
  import { style, variants } from '../zyzz.config.js'
5
- import * as FieldVariant from './internal/FieldVariant.js'
5
+ import * as RowDisabled from './internal/RowDisabled.js'
6
6
  import * as RowsSize from './internal/RowsSize.js'
7
7
 
8
8
  /**
9
9
  * A pill toggle for a setting that applies immediately. Base UI renders a `span` with the `switch`
10
10
  * role beside a hidden checkbox input that submits with `name`. Click, Space and Enter toggle it.
11
- * Inside a `setting` field it defaults to `small` and sits beside the label. Inside `Rows` it
12
- * defaults to `small` in `small` and `medium` rows and to `medium` in `large` rows.
11
+ * Inside `ListGroup`, it defaults to `small`.
13
12
  *
14
13
  * - Use it when the change takes effect at once. Use `Checkbox` for choices submitted later.
15
14
  * - Name the setting in the label, not its state. Use `Field.Label` or `aria-label`.
16
15
  * - Thumb position shows the state alongside color, so keep custom styles from hiding it.
17
16
  *
18
17
  * @example
19
- * <Field.Root variant="setting">
20
- * <Field.Label>Notifications</Field.Label>
18
+ * <Field.Root>
19
+ * <Field.Item>
20
+ * <Switch />
21
+ * <Field.Label>Notifications</Field.Label>
22
+ * </Field.Item>
21
23
  * <Field.Description>Email me when a payment settles.</Field.Description>
22
- * <Switch />
23
24
  * </Field.Root>
24
25
  *
25
26
  * @see {@link https://base-ui.com/react/components/switch | Base UI Switch}
@@ -30,20 +31,19 @@ import * as RowsSize from './internal/RowsSize.js'
30
31
  */
31
32
  export function Switch(props: Switch.Props) {
32
33
  const { className, size, vars, ...attributes } = props
33
- const inherited = useContext(FieldVariant.Context)
34
34
  const row = useContext(RowsSize.Context)
35
+ const rowDisabled = useContext(RowDisabled.Context)
35
36
 
36
37
  return (
37
38
  <BaseUi.Switch.Root
38
39
  {...attributes}
40
+ disabled={attributes.disabled || rowDisabled}
39
41
  {...styles.track({
40
42
  className,
41
43
  size: (() => {
42
44
  if (size !== undefined) return size
43
- if (inherited === 'setting') return 'small'
44
- if (row === undefined) return undefined
45
- // Keep the track near two thirds of the row height.
46
- return row === 'large' ? 'medium' : 'small'
45
+ if (row) return 'small'
46
+ return undefined
47
47
  })(),
48
48
  style: props.style,
49
49
  vars,
@@ -78,9 +78,10 @@ export namespace Switch {
78
78
  namespace styles {
79
79
  export const thumb = style(
80
80
  {
81
- backgroundColor: 'white',
81
+ backgroundColor: 'neutral.000',
82
82
  borderRadius: 'full',
83
- boxShadow: 'raised',
83
+ boxShadow: 'small',
84
+ cornerShape: 'round',
84
85
  flexShrink: '0 !custom',
85
86
  height: '24px !custom',
86
87
  // The thumb stretches its width while pressed, which a transform would distort.
@@ -90,14 +91,14 @@ namespace styles {
90
91
  width: '24px !custom',
91
92
  selectors: {
92
93
  '&[data-checked]': {
93
- backgroundColor: 'background.surface',
94
+ backgroundColor: 'background.elevated',
94
95
  boxShadow: 'none !custom',
95
96
  translate: '22px 0 !custom',
96
97
  },
97
- '[data-size="large"] > &': { height: '30', width: '30' },
98
- '[data-size="large"] > &[data-checked]': { translate: '30' },
98
+ '[data-size="large"] > &': { height: '32', width: '32' },
99
+ '[data-size="large"] > &[data-checked]': { translate: '32' },
99
100
  '[data-size="large"]:active:not([data-disabled]) > &': { width: '36' },
100
- '[data-size="large"]:active:not([data-disabled]) > &[data-checked]': { translate: '24' },
101
+ '[data-size="large"]:active:not([data-disabled]) > &[data-checked]': { translate: '28' },
101
102
  '[data-size="medium"]:active:not([data-disabled]) > &': { width: '30px !custom' },
102
103
  '[data-size="medium"]:active:not([data-disabled]) > &[data-checked]': {
103
104
  translate: '16px 0 !custom',
@@ -118,9 +119,10 @@ namespace styles {
118
119
  {
119
120
  base: {
120
121
  alignItems: 'center',
121
- backgroundColor: 'grayAlpha.200',
122
+ backgroundColor: 'container.strong',
122
123
  borderRadius: 'full',
123
124
  boxSizing: 'border-box',
125
+ cornerShape: 'round',
124
126
  cursor: 'pointer',
125
127
  display: 'inline-flex',
126
128
  flexShrink: '0 !custom',
@@ -134,22 +136,16 @@ namespace styles {
134
136
  transitionTimingFunction: 'snappy',
135
137
  selectors: {
136
138
  '&::after': { content: '"" !custom', inset: '-8', position: 'absolute' },
137
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
138
- '&:hover:not([data-disabled]):not([data-checked])': { backgroundColor: 'grayAlpha.300' },
139
- '&[data-checked]': { backgroundColor: 'foreground' },
139
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
140
+ '&:hover:not([data-disabled]):not([data-checked])': { backgroundColor: 'line.primary' },
141
+ '&[data-checked]': { backgroundColor: 'content.primary' },
140
142
  '&[data-checked]:hover:not([data-disabled])': { opacity: 'hover' },
141
143
  '&[data-disabled]': { cursor: 'default', opacity: 'disabled' },
142
144
  '&[data-invalid]': {
143
- outlineColor: 'red.800',
145
+ outlineColor: 'border.negative',
144
146
  outlineStyle: 'solid !custom',
145
147
  outlineWidth: '1',
146
148
  },
147
- '[data-variant="setting"] > &': {
148
- alignSelf: 'center !custom',
149
- gridColumn: '2 !custom',
150
- gridRow: '1 / span 2 !custom',
151
- justifySelf: 'end !custom',
152
- },
153
149
  },
154
150
  '@media (prefers-reduced-motion: reduce)': {
155
151
  transitionProperty: 'background-color, opacity, outline-color',
@@ -158,7 +154,7 @@ namespace styles {
158
154
  defaultVariants: { size: 'medium' },
159
155
  variants: {
160
156
  size: {
161
- large: { height: '38', padding: '4', width: '68' },
157
+ large: { height: '40', padding: '4', width: '72' },
162
158
  // The track, thumb, and checked translation of each size add up exactly, so a size uses
163
159
  // tokens or px throughout. Medium stays in px, since its 3px padding has no spacing step.
164
160
  medium: { height: '30px !custom', padding: '3px !custom', width: '52px !custom' },