@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
@@ -132,22 +132,14 @@ export namespace DatePicker {
132
132
  * `DatePicker.Root`.
133
133
  */
134
134
  export function Trigger(props: Trigger.Props) {
135
- const {
136
- children,
137
- className,
138
- placeholder = 'Select date',
139
- size,
140
- variant,
141
- vars,
142
- ...attributes
143
- } = props
135
+ const { children, className, placeholder = 'Select date', variant, vars, ...attributes } = props
144
136
  const { calendar, locale } = useDatePicker()
145
137
  const label = format(calendar.value, locale)
146
138
 
147
139
  return (
148
140
  <BaseUi.Popover.Trigger
149
141
  {...attributes}
150
- {...styles.trigger({ className, size, style: props.style, variant, vars })}
142
+ {...styles.trigger({ className, style: props.style, variant, vars })}
151
143
  data-placeholder={label === undefined || undefined}
152
144
  >
153
145
  <span {...styles.value()}>{children ?? label ?? placeholder}</span>
@@ -235,14 +227,10 @@ function format(value: Date | CalendarRoot.Range | null | undefined, locale: str
235
227
  namespace styles {
236
228
  export const icon = style(
237
229
  {
238
- color: 'gray.900',
230
+ color: 'content.secondary',
239
231
  flexShrink: '0 !custom',
240
232
  height: '16',
241
233
  width: '16',
242
- selectors: {
243
- '[data-size="medium"] > &': { height: '14', width: '14' },
244
- '[data-size="small"] > &': { height: '12', width: '12' },
245
- },
246
234
  },
247
235
  { id: 'tds/web/date-picker/icon' },
248
236
  )
@@ -250,11 +238,11 @@ namespace styles {
250
238
  export const popup = variants(
251
239
  {
252
240
  base: {
253
- backgroundColor: 'background.surface',
254
- borderRadius: '16',
255
- boxShadow: 'popover',
241
+ backgroundColor: 'background.elevated',
242
+ borderRadius: 'sm',
243
+ boxShadow: 'regular',
256
244
  boxSizing: 'border-box',
257
- color: 'foreground',
245
+ color: 'content.primary',
258
246
  opacity: '1 !custom',
259
247
  padding: '8',
260
248
  transformOrigin: 'var(--transform-origin) !custom',
@@ -292,36 +280,43 @@ namespace styles {
292
280
  {
293
281
  base: {
294
282
  alignItems: 'center',
283
+ // The 48px field of `TextInput.Group` and `Field.styles.field`.
284
+ borderRadius: 'xs',
295
285
  boxSizing: 'border-box',
296
- color: 'foreground',
286
+ color: 'content.primary',
287
+ columnGap: '8',
297
288
  cursor: 'pointer',
298
289
  display: 'inline-flex',
290
+ height: '48',
299
291
  justifyContent: 'space-between',
300
- minWidth: '224',
301
- position: 'relative',
292
+ minWidth: '240',
293
+ // Forced colors paint transparent outlines, so this outline is the focus ring only there.
302
294
  outlineColor: 'transparent !custom',
303
295
  outlineOffset: '2',
304
296
  outlineStyle: 'solid !custom',
305
297
  outlineWidth: '2',
298
+ paddingInline: '16',
299
+ position: 'relative',
306
300
  textAlign: 'start',
307
301
  transitionDuration: '160',
308
302
  transitionProperty:
309
303
  'background-color, border-color, color, opacity, outline-color, scale !custom',
310
304
  transitionTimingFunction: 'snappy',
305
+ typography: 'body.b2',
311
306
  selectors: {
312
307
  '&:active:not(:disabled)': {
313
308
  scale: 'press',
314
309
  transitionDuration: '100',
315
310
  },
316
- '&:disabled': { cursor: 'default', opacity: 'disabled' },
317
- '&:focus-visible': { outlineColor: 'blue.700' },
311
+ // The focus border is inset, so focus never moves the content.
318
312
  '&::before': {
319
313
  borderColor: 'transparent !custom',
320
314
  borderRadius: 'inherit !custom',
321
315
  borderStyle: 'solid !custom',
322
- borderWidth: '2',
316
+ borderWidth: 'regular',
323
317
  boxSizing: 'border-box',
324
318
  content: '"" !custom',
319
+ cornerShape: 'inherit !custom',
325
320
  inset: '0',
326
321
  pointerEvents: 'none',
327
322
  position: 'absolute',
@@ -329,10 +324,14 @@ namespace styles {
329
324
  transitionProperty: 'border-color !custom',
330
325
  transitionTimingFunction: 'snappy',
331
326
  },
332
- '&[aria-invalid="true"]::before': { borderColor: 'red.800' },
333
- '&[aria-invalid="true"]:focus-visible': { outlineColor: 'red.800' },
334
- '&:focus-visible::before': { borderColor: 'transparent !custom' },
335
- '&[data-placeholder]': { color: 'gray.900' },
327
+ '&:focus-visible::before': { borderColor: 'border.focus' },
328
+ '&[data-placeholder]': { color: 'content.tertiary' },
329
+ '&[aria-invalid="true"]': { backgroundColor: 'container.negative' },
330
+ '&:disabled': {
331
+ backgroundColor: 'container.subtle',
332
+ color: 'content.subtle',
333
+ cursor: 'default',
334
+ },
336
335
  },
337
336
  '@media (forced-colors: active)': {
338
337
  outlineStyle: 'none !custom',
@@ -344,44 +343,26 @@ namespace styles {
344
343
  selectors: { '&:active:not(:disabled)': { scale: 'none !custom' } },
345
344
  },
346
345
  },
347
- defaultVariants: { size: 'medium', variant: 'filled' },
346
+ defaultVariants: { variant: 'filled' },
348
347
  variants: {
349
- // The `size` scale of `Input.Group` and `Field.styles.field`.
350
- size: {
351
- large: {
352
- borderRadius: '16',
353
- columnGap: '12',
354
- height: '56',
355
- paddingInline: '20',
356
- typography: 'copy.16',
357
- },
358
- medium: {
359
- borderRadius: '12',
360
- columnGap: '8',
361
- height: '40',
362
- paddingInline: '16',
363
- typography: 'copy.14',
364
- },
365
- small: {
366
- borderRadius: '8',
367
- columnGap: '6',
368
- height: '32',
369
- paddingInline: '12',
370
- typography: 'copy.13',
371
- },
372
- },
373
348
  variant: {
349
+ // `:where` keeps the hover and focus fills below the invalid and disabled fills.
374
350
  filled: {
375
- backgroundColor: 'grayAlpha.100',
351
+ backgroundColor: 'container.regular',
376
352
  border: 'none !custom',
377
- selectors: { '&:hover:not(:disabled)': { backgroundColor: 'grayAlpha.200' } },
353
+ selectors: {
354
+ '&:where(:hover:not(:disabled))': { backgroundColor: 'container.strong' },
355
+ '&:where(:focus-visible)': { backgroundColor: 'background.elevated' },
356
+ },
378
357
  },
358
+ // A 1px line and no fill. Focus darkens the line, and an invalid value fills it red.
379
359
  outlined: {
380
- backgroundColor: 'background.surface',
381
- borderColor: 'grayAlpha.200',
382
- borderStyle: 'solid !custom',
383
- borderWidth: '1',
384
- selectors: { '&:hover:not(:disabled)': { borderColor: 'grayAlpha.400' } },
360
+ backgroundColor: 'transparent !custom',
361
+ border: 'none !custom',
362
+ selectors: {
363
+ '&::before': { borderColor: 'line.primary' },
364
+ '&:where([aria-invalid="true"])::before': { borderColor: 'border.negative' },
365
+ },
385
366
  },
386
367
  },
387
368
  },
@@ -1,26 +1,34 @@
1
1
  import * as BaseUi from '@base-ui/react/dialog'
2
2
  import type { ComponentPropsWithRef } from 'react'
3
3
  import type * as zyzz from 'zyzz'
4
+ import { ArrowLeft } from '../icons/ArrowLeft.js'
4
5
  import { Close as CloseIcon } from '../icons/Close.js'
5
- import { style } from '../zyzz.config.js'
6
+ import { style, variants } from '../zyzz.config.js'
6
7
  import { Button } from './Button.js'
7
8
 
8
9
  /**
9
10
  * A `role="dialog"` popup over a dimmed backdrop. Base UI makes it modal by default: focus is
10
11
  * trapped, page scroll is locked, Escape and outside presses close it, and focus returns to the
11
- * trigger. Viewports up to 40rem wide present it as a bottom sheet.
12
+ * trigger. Viewports up to 37.5rem wide present it at the bottom, full width with a 16px gutter.
12
13
  *
13
14
  * - Always render a `Dialog.Title`. Base UI points `aria-labelledby` at it to name the dialog.
14
- * - Keep each dialog to one task, and avoid opening a dialog from another dialog.
15
+ * - Pick `size` from what the dialog holds, and keep one size for every step of a flow.
16
+ * - Stack `Dialog.Header`, `Dialog.Body` and a `ButtonGroup` of `large` buttons in the popup.
17
+ * - Keep each dialog to one task. Swap its content for the next step instead of opening another.
15
18
  * - Include a visible close control, such as `closeButton` or a `Dialog.Close` action.
16
- * - Use `AlertDialog` for destructive confirmations that need an explicit decision.
17
19
  *
18
20
  * @example
19
21
  * <Dialog.Root>
20
- * <Dialog.Trigger render={<Button />}>Rename wallet</Dialog.Trigger>
21
- * <Dialog.Popup closeButton>
22
- * <Dialog.Title>Rename wallet</Dialog.Title>
23
- * <Dialog.Description>The name is only visible to you.</Dialog.Description>
22
+ * <Dialog.Trigger render={<Button />}>Revoke all</Dialog.Trigger>
23
+ * <Dialog.Popup closeButton size="small">
24
+ * <Dialog.Header>
25
+ * <Dialog.Title>Revoke all connections?</Dialog.Title>
26
+ * <Dialog.Description>Apps and agents lose access right away.</Dialog.Description>
27
+ * </Dialog.Header>
28
+ * <ButtonGroup>
29
+ * <Dialog.Close render={<Button size="large" variant="secondary" />}>Cancel</Dialog.Close>
30
+ * <Button size="large">Revoke all</Button>
31
+ * </ButtonGroup>
24
32
  * </Dialog.Popup>
25
33
  * </Dialog.Root>
26
34
  *
@@ -34,18 +42,50 @@ export namespace Dialog {
34
42
  /** Closes the dialog when pressed. Renders a `<button>` unless `render` supplies another. */
35
43
  export const Close = BaseUi.Dialog.Close
36
44
 
45
+ /** Opens the dialog when pressed. Renders a `<button>` unless `render` supplies another. */
46
+ export const Trigger = BaseUi.Dialog.Trigger
47
+
37
48
  /**
38
- * Owns the open state and renders no element. Pass `open` and `onOpenChange` to control it.
39
- * Set `modal` to `false` to keep the page interactive, or to `'trap-focus'` to trap focus
40
- * without locking scroll.
49
+ * Renders a 40px circular `Button` labelled "Back" with a left arrow, for step 2 onward of a
50
+ * flow. Place it first in a `Dialog.Nav`, and handle `onClick` to show the previous step.
41
51
  */
42
- export const Root = BaseUi.Dialog.Root
52
+ export function Back(props: Back.Props) {
53
+ return (
54
+ <Button
55
+ aria-label="Back"
56
+ {...props}
57
+ data-dialog-back=""
58
+ shape="icon"
59
+ size="medium"
60
+ variant="secondary"
61
+ >
62
+ <ArrowLeft />
63
+ </Button>
64
+ )
65
+ }
43
66
 
44
- /** Opens the dialog when pressed. Renders a `<button>` unless `render` supplies another. */
45
- export const Trigger = BaseUi.Dialog.Trigger
67
+ export namespace Back {
68
+ export type Props = Omit<Button.Props, 'children' | 'shape' | 'size' | 'variant'>
69
+ }
46
70
 
47
- export namespace Root {
48
- export type Props = BaseUi.Dialog.Root.Props
71
+ /**
72
+ * Renders the content `<div>` between the header and the footer, with sections 24px apart. Past
73
+ * 420px it scrolls, while the header and the footer stay in place.
74
+ */
75
+ export function Body(props: Body.Props) {
76
+ const { className, vars, ...attributes } = props
77
+
78
+ return (
79
+ <div
80
+ {...attributes}
81
+ data-dialog-body=""
82
+ {...styles.body({ className, style: props.style, vars })}
83
+ />
84
+ )
85
+ }
86
+
87
+ export namespace Body {
88
+ export type Props = ComponentPropsWithRef<'div'> & zyzz.Props.Variants<typeof styles.body>
49
89
  }
50
90
 
51
91
  /** Renders a `<p>` that Base UI references from the popup's `aria-describedby`. */
@@ -65,12 +105,59 @@ export namespace Dialog {
65
105
  }
66
106
 
67
107
  /**
68
- * Renders the portal, scrim, viewport and popup. Narrow viewports present a bottom sheet.
69
- * `ref`, `className` and `style` reach the popup. `initialFocus` and `finalFocus` override
70
- * where focus moves on open and on close.
108
+ * Renders the `<div>` that holds a `Dialog.Title`, an optional `Dialog.Description`, and above
109
+ * them an optional `Dialog.Nav` and one hero, such as an `IconTile` or a `Visual`. The title
110
+ * renders at 20px in a `small` popup and 32px otherwise.
111
+ *
112
+ * `layout` places the parts:
113
+ * - `inline` (default): keeps the text clear of `closeButton`, for single-step dialogs.
114
+ * - `stacked`: puts a `Dialog.Nav` above left-aligned text, for step 2 onward of a flow.
115
+ * - `centered`: centers the hero and the text below a `Dialog.Nav`, for acknowledgments,
116
+ * onboarding, progress and success.
117
+ */
118
+ export function Header(props: Header.Props) {
119
+ const { className, layout, vars, ...attributes } = props
120
+
121
+ return (
122
+ <div {...attributes} {...styles.header({ className, layout, style: props.style, vars })} />
123
+ )
124
+ }
125
+
126
+ export namespace Header {
127
+ export type Props = ComponentPropsWithRef<'div'> & zyzz.Props.Variants<typeof styles.header>
128
+ }
129
+
130
+ /**
131
+ * Renders the 40px `<div>` row at the top of a `stacked` or `centered` header. A `Dialog.Back`
132
+ * takes the first cell, any other child, such as a `Stepper`, centers in the middle, and the last
133
+ * cell stays clear for `closeButton`.
134
+ */
135
+ export function Nav(props: Nav.Props) {
136
+ const { className, vars, ...attributes } = props
137
+
138
+ return (
139
+ <div
140
+ {...attributes}
141
+ data-dialog-nav=""
142
+ {...styles.nav({ className, style: props.style, vars })}
143
+ />
144
+ )
145
+ }
146
+
147
+ export namespace Nav {
148
+ export type Props = ComponentPropsWithRef<'div'> & zyzz.Props.Variants<typeof styles.nav>
149
+ }
150
+
151
+ /**
152
+ * Renders the portal, scrim, viewport and popup. `size` sets the width with the radius and
153
+ * padding: `small` is 400px with radius `md` and 24px padding, for one decision or outcome.
154
+ * `medium` (default) is 460px and `large` is 620px, both with radius `lg` and 32px padding. Viewports up to 37.5rem
155
+ * wide present every size at the bottom, full width with a 16px gutter. `ref`, `className` and
156
+ * `style` reach the popup. `initialFocus` and `finalFocus` override where focus moves on open and
157
+ * on close.
71
158
  */
72
159
  export function Popup(props: Popup.Props) {
73
- const { children, className, closeButton = false, vars, ...attributes } = props
160
+ const { children, className, closeButton = false, size, vars, ...attributes } = props
74
161
 
75
162
  return (
76
163
  <BaseUi.Dialog.Portal>
@@ -79,7 +166,8 @@ export namespace Dialog {
79
166
  <BaseUi.Dialog.Popup
80
167
  {...attributes}
81
168
  data-close-button={closeButton || undefined}
82
- {...styles.popup({ className, style: props.style, vars })}
169
+ data-dialog-size={size ?? 'medium'}
170
+ {...styles.popup({ className, size, style: props.style, vars })}
83
171
  >
84
172
  {children}
85
173
  {/* Follows the content in the DOM, so initial focus lands on the content first. */}
@@ -112,7 +200,22 @@ export namespace Dialog {
112
200
  }
113
201
  }
114
202
 
115
- /** Renders an `<h2>` that Base UI references from the popup's `aria-labelledby`. */
203
+ /**
204
+ * Owns the open state and renders no element. Pass `open` and `onOpenChange` to control it. The
205
+ * dialog is always modal: it traps focus, locks page scroll and makes the page behind inert.
206
+ */
207
+ export function Root(props: Root.Props) {
208
+ return <BaseUi.Dialog.Root {...props} />
209
+ }
210
+
211
+ export namespace Root {
212
+ export type Props = Omit<BaseUi.Dialog.Root.Props, 'modal'>
213
+ }
214
+
215
+ /**
216
+ * Renders an `<h2>` that Base UI references from the popup's `aria-labelledby`, at 20px in a
217
+ * `small` popup and 32px otherwise.
218
+ */
116
219
  export function Title(props: Title.Props) {
117
220
  const { className, vars, ...attributes } = props
118
221
 
@@ -129,10 +232,12 @@ export namespace Dialog {
129
232
  }
130
233
  }
131
234
 
235
+ // Drawer shares `close`, `description` and `title`. Outside a sized popup, they take the values of
236
+ // the `small` size.
132
237
  export namespace styles {
133
238
  export const backdrop = style(
134
239
  {
135
- backgroundColor: 'black',
240
+ backgroundColor: 'neutral.100',
136
241
  inset: '0',
137
242
  opacity: 'disabled',
138
243
  position: 'fixed',
@@ -147,85 +252,179 @@ export namespace styles {
147
252
  { id: 'tds/web/dialog/backdrop' },
148
253
  )
149
254
 
150
- // The 36px close circle is inset 22px, so it centres on the first line of the 24px-padded title.
255
+ // Bleeds 4px into the popup padding with matching padding, so the scroll container keeps room
256
+ // for focus rings. The bottom margins are the section gaps less those 4px.
257
+ export const body = style(
258
+ {
259
+ display: 'flex',
260
+ flexDirection: 'column',
261
+ marginBottom: '20',
262
+ marginInline: '-4',
263
+ marginTop: '-4',
264
+ maxHeight: '26.25rem !custom',
265
+ overflowY: 'auto',
266
+ overscrollBehavior: 'contain',
267
+ padding: '4',
268
+ rowGap: '24',
269
+ selectors: {
270
+ '[data-dialog-size="small"] &': { marginBottom: '16' },
271
+ '[data-dialog-size] &:last-child, [data-close-button] > &:nth-last-child(2)': {
272
+ marginBottom: '-4',
273
+ },
274
+ },
275
+ },
276
+ { id: 'tds/web/dialog/body' },
277
+ )
278
+
279
+ // The 40px circle sits in the popup's padding corner, which the header keeps clear.
151
280
  export const close = style(
152
281
  {
153
- height: '36',
154
- insetBlockStart: '22',
155
- insetInlineEnd: '22',
282
+ insetBlockStart: '24',
283
+ insetInlineEnd: '24',
156
284
  position: 'absolute',
285
+ selectors: {
286
+ '[data-dialog-size="large"] > &, [data-dialog-size="medium"] > &': {
287
+ insetBlockStart: '32',
288
+ insetInlineEnd: '32',
289
+ },
290
+ },
157
291
  },
158
292
  { id: 'tds/web/dialog/close' },
159
293
  )
160
294
 
161
295
  export const description = style(
162
296
  {
163
- color: 'gray.900',
297
+ color: 'content.secondary',
164
298
  margin: '0',
165
- typography: 'copy.15',
299
+ typography: 'body.b2',
300
+ selectors: { 'h2 + &': { marginTop: '8' } },
166
301
  },
167
302
  { id: 'tds/web/dialog/description' },
168
303
  )
169
304
 
170
- export const popup = style(
305
+ export const header = variants(
171
306
  {
172
- backgroundColor: 'background.raised',
173
- borderRadius: '16',
174
- boxShadow: 'modal',
175
- boxSizing: 'border-box',
176
- color: 'foreground',
177
- maxWidth: '448',
178
- outline: 'none !custom',
179
- padding: '24',
180
- position: 'relative',
181
- transitionDuration: '280',
182
- transitionProperty: 'opacity, scale, transform',
183
- transitionTimingFunction: 'spring',
184
- typography: 'copy.14',
185
- width: '100% !custom',
186
- selectors: {
187
- '&[data-ending-style]': {
188
- opacity: '0 !custom',
189
- scale: 'enter',
190
- transitionDuration: '180',
307
+ base: {
308
+ display: 'flex',
309
+ flexDirection: 'column',
310
+ marginBottom: '24',
311
+ selectors: {
312
+ // A hero, such as an `IconTile` or a `Visual`, sits 24px above the text.
313
+ '& > :not(h2, p, [data-dialog-nav])': { marginBottom: '24' },
314
+ // The close button follows the content in the DOM, so it never counts as a next section.
315
+ '[data-dialog-size] &:last-child, [data-close-button] > &:nth-last-child(2)': {
316
+ marginBottom: '0',
317
+ },
318
+ '[data-dialog-size="small"] &': { marginBottom: '20' },
191
319
  },
192
- '&[data-starting-style]': {
193
- opacity: '0 !custom',
194
- scale: 'enter',
320
+ },
321
+ defaultVariants: { layout: 'inline' },
322
+ variants: {
323
+ layout: {
324
+ // Block parts, such as `Dialog.Nav` and a `Visual`, keep the full width.
325
+ centered: {
326
+ alignItems: 'center',
327
+ textAlign: 'center',
328
+ selectors: { '& > :is(div, h2, p)': { alignSelf: 'stretch' } },
329
+ },
330
+ // The text keeps 16px clear of the 40px close button, and starts 8px lower to meet it.
331
+ inline: {
332
+ selectors: { '[data-close-button] &': { paddingInlineEnd: '56', paddingTop: '8' } },
333
+ },
334
+ stacked: {},
195
335
  },
196
336
  },
197
- '@media (max-width: 40rem)': {
198
- borderBottomLeftRadius: '0',
199
- borderBottomRightRadius: '0',
200
- maxWidth: 'none !custom',
201
- paddingBottom: 'calc(24px + env(safe-area-inset-bottom, 0px)) !custom',
337
+ },
338
+ { id: 'tds/web/dialog/header' },
339
+ )
340
+
341
+ export const nav = style(
342
+ {
343
+ alignItems: 'center',
344
+ columnGap: '12',
345
+ display: 'grid',
346
+ gridTemplateColumns: '2.5rem 1fr 2.5rem !custom',
347
+ height: '40',
348
+ marginBottom: '16',
349
+ selectors: {
350
+ '& > *': { gridColumn: '2 !custom', justifySelf: 'center' },
351
+ '& > [data-dialog-back]': { gridColumn: '1 !custom' },
352
+ },
353
+ },
354
+ { id: 'tds/web/dialog/nav' },
355
+ )
356
+
357
+ // The Wallet Modal shadow has no Platform equivalent, so it stays a literal.
358
+ export const popup = variants(
359
+ {
360
+ base: {
361
+ backgroundColor: 'background.elevated',
362
+ boxShadow: '0 1px 2px #0000000a, 0 16px 48px -12px #00000024 !custom',
363
+ boxSizing: 'border-box',
364
+ color: 'content.primary',
365
+ outline: 'none !custom',
366
+ position: 'relative',
367
+ transitionDuration: '280',
368
+ transitionProperty: 'opacity, scale, transform',
369
+ transitionTimingFunction: 'spring',
370
+ typography: 'body.b2',
371
+ width: '100% !custom',
202
372
  selectors: {
203
- '&[data-ending-style]': { scale: 'none !custom', transform: 'translateY(100%) !custom' },
373
+ '&[data-ending-style]': {
374
+ opacity: '0 !custom',
375
+ scale: 'enter',
376
+ transitionDuration: '180',
377
+ },
204
378
  '&[data-starting-style]': {
205
- scale: 'none !custom',
206
- transform: 'translateY(100%) !custom',
379
+ opacity: '0 !custom',
380
+ scale: 'enter',
207
381
  },
208
382
  },
209
- },
210
- '@media (prefers-reduced-motion: reduce)': {
211
- transitionProperty: 'opacity',
212
- selectors: {
213
- '&[data-ending-style], &[data-starting-style]': {
214
- scale: 'none !custom',
215
- transform: 'none !custom',
383
+ '@media (max-width: 37.5rem)': {
384
+ selectors: {
385
+ // Outranks the max width of every size.
386
+ '&[data-dialog-size]': { maxWidth: 'none !custom' },
387
+ '&[data-ending-style]': {
388
+ scale: 'none !custom',
389
+ transform: 'translateY(calc(100% + 1rem)) !custom',
390
+ },
391
+ '&[data-starting-style]': {
392
+ scale: 'none !custom',
393
+ transform: 'translateY(calc(100% + 1rem)) !custom',
394
+ },
395
+ },
396
+ },
397
+ '@media (prefers-reduced-motion: reduce)': {
398
+ transitionProperty: 'opacity',
399
+ selectors: {
400
+ '&[data-ending-style], &[data-starting-style]': {
401
+ scale: 'none !custom',
402
+ transform: 'none !custom',
403
+ },
216
404
  },
217
405
  },
218
406
  },
407
+ defaultVariants: { size: 'medium' },
408
+ variants: {
409
+ size: {
410
+ large: { borderRadius: 'lg', maxWidth: '38.75rem !custom', padding: '32' },
411
+ medium: { borderRadius: 'lg', maxWidth: '28.75rem !custom', padding: '32' },
412
+ small: { borderRadius: 'md', maxWidth: '25rem !custom', padding: '24' },
413
+ },
414
+ },
219
415
  },
220
416
  { id: 'tds/web/dialog/popup' },
221
417
  )
222
418
 
223
419
  export const title = style(
224
420
  {
225
- typography: 'heading.24',
226
421
  margin: '0',
227
- marginBottom: '8',
228
- selectors: { '[data-close-button] &': { paddingInlineEnd: '44' } },
422
+ typography: 'heading.h3',
423
+ selectors: {
424
+ '[data-dialog-size="large"] &, [data-dialog-size="medium"] &': {
425
+ typography: 'heading.h1',
426
+ },
427
+ },
229
428
  },
230
429
  { id: 'tds/web/dialog/title' },
231
430
  )
@@ -240,7 +439,10 @@ export namespace styles {
240
439
  overflowY: 'auto',
241
440
  padding: '16',
242
441
  position: 'fixed',
243
- '@media (max-width: 40rem)': { alignItems: 'end', padding: '0' },
442
+ '@media (max-width: 37.5rem)': {
443
+ alignItems: 'end',
444
+ paddingBottom: 'calc(1rem + env(safe-area-inset-bottom, 0px)) !custom',
445
+ },
244
446
  },
245
447
  { id: 'tds/web/dialog/viewport' },
246
448
  )