@tempoxyz/ds 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/README.md +2 -0
  2. package/dist/fonts/Inter-cyrillic-ext.woff2 +0 -0
  3. package/dist/fonts/Inter-cyrillic.woff2 +0 -0
  4. package/dist/fonts/Inter-greek-ext.woff2 +0 -0
  5. package/dist/fonts/Inter-greek.woff2 +0 -0
  6. package/dist/fonts/Inter-latin-ext.woff2 +0 -0
  7. package/dist/fonts/Inter-latin.woff2 +0 -0
  8. package/dist/fonts/Inter-symbols.woff2 +0 -0
  9. package/dist/fonts/Inter-vietnamese.woff2 +0 -0
  10. package/dist/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  11. package/dist/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  12. package/dist/fonts/JetBrainsMono-Bold.woff2 +0 -0
  13. package/dist/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  14. package/dist/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  15. package/dist/fonts/JetBrainsMono-Medium.woff2 +0 -0
  16. package/dist/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  17. package/dist/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  18. package/dist/fonts/JetBrainsMono-Regular.woff2 +0 -0
  19. package/dist/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  20. package/dist/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  21. package/dist/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  22. package/dist/fonts/Pilat-Black-latin.woff2 +0 -0
  23. package/dist/fonts/Pilat-Black-other.woff2 +0 -0
  24. package/dist/fonts/Pilat-Black.woff2 +0 -0
  25. package/dist/fonts/Pilat-Bold-latin.woff2 +0 -0
  26. package/dist/fonts/Pilat-Bold-other.woff2 +0 -0
  27. package/dist/fonts/Pilat-Bold.woff2 +0 -0
  28. package/dist/fonts/Pilat-Book-latin.woff2 +0 -0
  29. package/dist/fonts/Pilat-Book-other.woff2 +0 -0
  30. package/dist/fonts/Pilat-Book.woff2 +0 -0
  31. package/dist/fonts/Pilat-Demi-latin.woff2 +0 -0
  32. package/dist/fonts/Pilat-Demi-other.woff2 +0 -0
  33. package/dist/fonts/Pilat-Demi.woff2 +0 -0
  34. package/dist/fonts/Pilat-Heavy-latin.woff2 +0 -0
  35. package/dist/fonts/Pilat-Heavy-other.woff2 +0 -0
  36. package/dist/fonts/Pilat-Heavy.woff2 +0 -0
  37. package/dist/fonts/Pilat-Light-latin.woff2 +0 -0
  38. package/dist/fonts/Pilat-Light-other.woff2 +0 -0
  39. package/dist/fonts/Pilat-Light.woff2 +0 -0
  40. package/dist/fonts/Pilat-Regular-latin.woff2 +0 -0
  41. package/dist/fonts/Pilat-Regular-other.woff2 +0 -0
  42. package/dist/fonts/Pilat-Regular.woff2 +0 -0
  43. package/dist/fonts/Pilat-Thin-latin.woff2 +0 -0
  44. package/dist/fonts/Pilat-Thin-other.woff2 +0 -0
  45. package/dist/fonts/Pilat-Thin.woff2 +0 -0
  46. package/dist/mobile/Haptics.d.ts +39 -0
  47. package/dist/mobile/Haptics.d.ts.map +1 -0
  48. package/dist/mobile/Haptics.js +51 -0
  49. package/dist/mobile/Haptics.js.map +1 -0
  50. package/dist/mobile/components/Button.d.ts.map +1 -1
  51. package/dist/mobile/components/Button.js +3 -3
  52. package/dist/mobile/components/Button.js.map +1 -1
  53. package/dist/mobile/components/IconButton.d.ts.map +1 -1
  54. package/dist/mobile/components/IconButton.js +3 -3
  55. package/dist/mobile/components/IconButton.js.map +1 -1
  56. package/dist/mobile/components/Spinner.js +1 -1
  57. package/dist/mobile/components/Spinner.js.map +1 -1
  58. package/dist/mobile/components/TextButton.d.ts.map +1 -1
  59. package/dist/mobile/components/TextButton.js +3 -3
  60. package/dist/mobile/components/TextButton.js.map +1 -1
  61. package/dist/mobile/components/TextInput.js +1 -1
  62. package/dist/mobile/components/TextInput.js.map +1 -1
  63. package/dist/mobile/components/Toast.js +1 -1
  64. package/dist/mobile/components/Toast.js.map +1 -1
  65. package/dist/mobile/components/Toggle.d.ts.map +1 -1
  66. package/dist/mobile/components/Toggle.js +2 -2
  67. package/dist/mobile/components/Toggle.js.map +1 -1
  68. package/dist/mobile/index.d.ts +2 -0
  69. package/dist/mobile/index.d.ts.map +1 -1
  70. package/dist/mobile/index.js +2 -0
  71. package/dist/mobile/index.js.map +1 -1
  72. package/dist/mobile/useColor.d.ts +23 -0
  73. package/dist/mobile/useColor.d.ts.map +1 -0
  74. package/dist/mobile/useColor.js +29 -0
  75. package/dist/mobile/useColor.js.map +1 -0
  76. package/dist/oxlint/rules/PreferComponent.js +6 -6
  77. package/dist/oxlint/rules/PreferComponent.js.map +1 -1
  78. package/dist/web/components/Accordion.css +1 -1
  79. package/dist/web/components/Accordion.d.ts +7 -7
  80. package/dist/web/components/Accordion.js +8 -8
  81. package/dist/web/components/Accordion.js.map +1 -1
  82. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  83. package/dist/web/components/AgentLogo.css +1 -0
  84. package/dist/web/components/AgentLogo.d.ts +206 -0
  85. package/dist/web/components/AgentLogo.d.ts.map +1 -0
  86. package/dist/web/components/AgentLogo.js +86 -0
  87. package/dist/web/components/AgentLogo.js.map +1 -0
  88. package/dist/web/components/AgentLogo.js.zyzz.json +1 -0
  89. package/dist/web/components/Alert.css +1 -0
  90. package/dist/web/components/Alert.d.ts +156 -0
  91. package/dist/web/components/Alert.d.ts.map +1 -0
  92. package/dist/web/components/Alert.js +92 -0
  93. package/dist/web/components/Alert.js.map +1 -0
  94. package/dist/web/components/Alert.js.zyzz.json +1 -0
  95. package/dist/web/components/AlertDialog.d.ts +40 -28
  96. package/dist/web/components/AlertDialog.d.ts.map +1 -1
  97. package/dist/web/components/AlertDialog.js +31 -36
  98. package/dist/web/components/AlertDialog.js.map +1 -1
  99. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  100. package/dist/web/components/Amount.css +1 -1
  101. package/dist/web/components/Amount.d.ts +5 -5
  102. package/dist/web/components/Amount.d.ts.map +1 -1
  103. package/dist/web/components/Amount.js +3 -3
  104. package/dist/web/components/Amount.js.map +1 -1
  105. package/dist/web/components/Amount.js.zyzz.json +1 -1
  106. package/dist/web/components/AmountInput.css +1 -1
  107. package/dist/web/components/AmountInput.d.ts +20 -39
  108. package/dist/web/components/AmountInput.d.ts.map +1 -1
  109. package/dist/web/components/AmountInput.js +32 -38
  110. package/dist/web/components/AmountInput.js.map +1 -1
  111. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  112. package/dist/web/components/AppShell.css +1 -1
  113. package/dist/web/components/AppShell.d.ts +65 -29
  114. package/dist/web/components/AppShell.d.ts.map +1 -1
  115. package/dist/web/components/AppShell.js +33 -21
  116. package/dist/web/components/AppShell.js.map +1 -1
  117. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  118. package/dist/web/components/AssetChip.css +1 -0
  119. package/dist/web/components/AssetChip.d.ts +38 -0
  120. package/dist/web/components/AssetChip.d.ts.map +1 -0
  121. package/dist/web/components/AssetChip.js +47 -0
  122. package/dist/web/components/AssetChip.js.map +1 -0
  123. package/dist/web/components/AssetChip.js.zyzz.json +1 -0
  124. package/dist/web/components/Autocomplete.d.ts +2 -2
  125. package/dist/web/components/Autocomplete.js +4 -4
  126. package/dist/web/components/Autocomplete.js.map +1 -1
  127. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  128. package/dist/web/components/Avatar.css +1 -1
  129. package/dist/web/components/Avatar.d.ts +40 -115
  130. package/dist/web/components/Avatar.d.ts.map +1 -1
  131. package/dist/web/components/Avatar.js +19 -34
  132. package/dist/web/components/Avatar.js.map +1 -1
  133. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  134. package/dist/web/components/Badge.css +1 -0
  135. package/dist/web/components/Badge.d.ts +134 -0
  136. package/dist/web/components/Badge.d.ts.map +1 -0
  137. package/dist/web/components/Badge.js +38 -0
  138. package/dist/web/components/Badge.js.map +1 -0
  139. package/dist/web/components/Badge.js.zyzz.json +1 -0
  140. package/dist/web/components/Banner.css +1 -1
  141. package/dist/web/components/Banner.d.ts +12 -12
  142. package/dist/web/components/Banner.d.ts.map +1 -1
  143. package/dist/web/components/Banner.js +6 -6
  144. package/dist/web/components/Banner.js.map +1 -1
  145. package/dist/web/components/Banner.js.zyzz.json +1 -1
  146. package/dist/web/components/BarChart.css +1 -0
  147. package/dist/web/components/BarChart.d.ts +155 -0
  148. package/dist/web/components/BarChart.d.ts.map +1 -0
  149. package/dist/web/components/BarChart.js +119 -0
  150. package/dist/web/components/BarChart.js.map +1 -0
  151. package/dist/web/components/BarChart.js.zyzz.json +1 -0
  152. package/dist/web/components/Breadcrumbs.css +1 -1
  153. package/dist/web/components/Breadcrumbs.d.ts +6 -6
  154. package/dist/web/components/Breadcrumbs.js +6 -6
  155. package/dist/web/components/Breadcrumbs.js.map +1 -1
  156. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  157. package/dist/web/components/Button.css +1 -1
  158. package/dist/web/components/Button.d.ts +166 -35
  159. package/dist/web/components/Button.d.ts.map +1 -1
  160. package/dist/web/components/Button.js +14 -10
  161. package/dist/web/components/Button.js.map +1 -1
  162. package/dist/web/components/Button.js.zyzz.json +1 -1
  163. package/dist/web/components/ButtonGroup.css +1 -0
  164. package/dist/web/components/ButtonGroup.d.ts +56 -0
  165. package/dist/web/components/ButtonGroup.d.ts.map +1 -0
  166. package/dist/web/components/ButtonGroup.js +33 -0
  167. package/dist/web/components/ButtonGroup.js.map +1 -0
  168. package/dist/web/components/ButtonGroup.js.zyzz.json +1 -0
  169. package/dist/web/components/Calendar.css +1 -1
  170. package/dist/web/components/Calendar.d.ts.map +1 -1
  171. package/dist/web/components/Calendar.js +8 -8
  172. package/dist/web/components/Calendar.js.map +1 -1
  173. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  174. package/dist/web/components/Checkbox.css +1 -1
  175. package/dist/web/components/Checkbox.d.ts +11 -11
  176. package/dist/web/components/Checkbox.d.ts.map +1 -1
  177. package/dist/web/components/Checkbox.js +9 -6
  178. package/dist/web/components/Checkbox.js.map +1 -1
  179. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  180. package/dist/web/components/CheckboxGroup.css +1 -1
  181. package/dist/web/components/CheckboxGroup.js +1 -1
  182. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  183. package/dist/web/components/ChoiceGroup.css +1 -1
  184. package/dist/web/components/ChoiceGroup.d.ts +44 -16
  185. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  186. package/dist/web/components/ChoiceGroup.js +33 -9
  187. package/dist/web/components/ChoiceGroup.js.map +1 -1
  188. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  189. package/dist/web/components/Choicebox.css +1 -1
  190. package/dist/web/components/Choicebox.d.ts +9 -9
  191. package/dist/web/components/Choicebox.d.ts.map +1 -1
  192. package/dist/web/components/Choicebox.js +11 -11
  193. package/dist/web/components/Choicebox.js.map +1 -1
  194. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  195. package/dist/web/components/Combobox.css +1 -1
  196. package/dist/web/components/Combobox.d.ts +2 -2
  197. package/dist/web/components/Combobox.d.ts.map +1 -1
  198. package/dist/web/components/Combobox.js +8 -8
  199. package/dist/web/components/Combobox.js.map +1 -1
  200. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  201. package/dist/web/components/Container.css +1 -1
  202. package/dist/web/components/Container.js +1 -3
  203. package/dist/web/components/Container.js.zyzz.json +1 -1
  204. package/dist/web/components/CopyButton.css +1 -1
  205. package/dist/web/components/CopyButton.js +4 -4
  206. package/dist/web/components/CopyButton.js.map +1 -1
  207. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  208. package/dist/web/components/DatePicker.css +1 -1
  209. package/dist/web/components/DatePicker.d.ts +37 -56
  210. package/dist/web/components/DatePicker.d.ts.map +1 -1
  211. package/dist/web/components/DatePicker.js +8 -8
  212. package/dist/web/components/DatePicker.js.map +1 -1
  213. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  214. package/dist/web/components/Dialog.css +1 -1
  215. package/dist/web/components/Dialog.d.ts +189 -20
  216. package/dist/web/components/Dialog.d.ts.map +1 -1
  217. package/dist/web/components/Dialog.js +94 -27
  218. package/dist/web/components/Dialog.js.map +1 -1
  219. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  220. package/dist/web/components/Drawer.css +1 -1
  221. package/dist/web/components/Drawer.d.ts +7 -2
  222. package/dist/web/components/Drawer.d.ts.map +1 -1
  223. package/dist/web/components/Drawer.js +13 -7
  224. package/dist/web/components/Drawer.js.map +1 -1
  225. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  226. package/dist/web/components/Empty.css +1 -1
  227. package/dist/web/components/Empty.d.ts +2 -0
  228. package/dist/web/components/Empty.d.ts.map +1 -1
  229. package/dist/web/components/Empty.js +7 -5
  230. package/dist/web/components/Empty.js.map +1 -1
  231. package/dist/web/components/Empty.js.zyzz.json +1 -1
  232. package/dist/web/components/Field.css +1 -1
  233. package/dist/web/components/Field.d.ts +16 -21
  234. package/dist/web/components/Field.d.ts.map +1 -1
  235. package/dist/web/components/Field.js +38 -36
  236. package/dist/web/components/Field.js.map +1 -1
  237. package/dist/web/components/Field.js.zyzz.json +1 -1
  238. package/dist/web/components/Fieldset.css +1 -1
  239. package/dist/web/components/Fieldset.d.ts +9 -18
  240. package/dist/web/components/Fieldset.d.ts.map +1 -1
  241. package/dist/web/components/Fieldset.js +12 -15
  242. package/dist/web/components/Fieldset.js.map +1 -1
  243. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  244. package/dist/web/components/Frame.css +1 -1
  245. package/dist/web/components/Frame.d.ts +13 -19
  246. package/dist/web/components/Frame.d.ts.map +1 -1
  247. package/dist/web/components/Frame.js +9 -11
  248. package/dist/web/components/Frame.js.map +1 -1
  249. package/dist/web/components/Frame.js.zyzz.json +1 -1
  250. package/dist/web/components/Gauge.css +1 -1
  251. package/dist/web/components/Gauge.d.ts +2 -2
  252. package/dist/web/components/Gauge.d.ts.map +1 -1
  253. package/dist/web/components/Gauge.js +6 -6
  254. package/dist/web/components/Gauge.js.map +1 -1
  255. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  256. package/dist/web/components/Grid.css +1 -1
  257. package/dist/web/components/Grid.js +1 -3
  258. package/dist/web/components/Grid.js.zyzz.json +1 -1
  259. package/dist/web/components/Hex.css +1 -1
  260. package/dist/web/components/Hex.d.ts +10 -10
  261. package/dist/web/components/Hex.js +6 -6
  262. package/dist/web/components/Hex.js.map +1 -1
  263. package/dist/web/components/Hex.js.zyzz.json +1 -1
  264. package/dist/web/components/IconTile.css +1 -0
  265. package/dist/web/components/IconTile.d.ts +62 -0
  266. package/dist/web/components/IconTile.d.ts.map +1 -0
  267. package/dist/web/components/IconTile.js +28 -0
  268. package/dist/web/components/IconTile.js.map +1 -0
  269. package/dist/web/components/IconTile.js.zyzz.json +1 -0
  270. package/dist/web/components/Identicon.css +1 -1
  271. package/dist/web/components/Identicon.d.ts +1 -0
  272. package/dist/web/components/Identicon.d.ts.map +1 -1
  273. package/dist/web/components/Identicon.js +1 -3
  274. package/dist/web/components/Identicon.js.map +1 -1
  275. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  276. package/dist/web/components/Inline.css +1 -1
  277. package/dist/web/components/Inline.js +1 -3
  278. package/dist/web/components/Inline.js.zyzz.json +1 -1
  279. package/dist/web/components/Inset.css +1 -1
  280. package/dist/web/components/Inset.js +1 -3
  281. package/dist/web/components/Inset.js.zyzz.json +1 -1
  282. package/dist/web/components/Kbd.css +1 -1
  283. package/dist/web/components/Kbd.d.ts +7 -7
  284. package/dist/web/components/Kbd.js +3 -3
  285. package/dist/web/components/Kbd.js.map +1 -1
  286. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  287. package/dist/web/components/ListGroup.css +1 -0
  288. package/dist/web/components/ListGroup.d.ts +483 -0
  289. package/dist/web/components/ListGroup.d.ts.map +1 -0
  290. package/dist/web/components/ListGroup.js +266 -0
  291. package/dist/web/components/ListGroup.js.map +1 -0
  292. package/dist/web/components/ListGroup.js.zyzz.json +1 -0
  293. package/dist/web/components/LoadingDots.css +1 -1
  294. package/dist/web/components/LoadingDots.d.ts.map +1 -1
  295. package/dist/web/components/LoadingDots.js +3 -3
  296. package/dist/web/components/LoadingDots.js.map +1 -1
  297. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  298. package/dist/web/components/Menu.css +1 -1
  299. package/dist/web/components/Menu.d.ts +39 -20
  300. package/dist/web/components/Menu.d.ts.map +1 -1
  301. package/dist/web/components/Menu.js +15 -10
  302. package/dist/web/components/Menu.js.map +1 -1
  303. package/dist/web/components/Menu.js.zyzz.json +1 -1
  304. package/dist/web/components/NetworkLogo.css +1 -0
  305. package/dist/web/components/NetworkLogo.d.ts +58 -0
  306. package/dist/web/components/NetworkLogo.d.ts.map +1 -0
  307. package/dist/web/components/NetworkLogo.js +40 -0
  308. package/dist/web/components/NetworkLogo.js.map +1 -0
  309. package/dist/web/components/NetworkLogo.js.zyzz.json +1 -0
  310. package/dist/web/components/NumberField.css +1 -1
  311. package/dist/web/components/NumberField.d.ts +3 -3
  312. package/dist/web/components/NumberField.d.ts.map +1 -1
  313. package/dist/web/components/NumberField.js +8 -8
  314. package/dist/web/components/NumberField.js.map +1 -1
  315. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  316. package/dist/web/components/OtpField.css +1 -1
  317. package/dist/web/components/OtpField.d.ts +8 -68
  318. package/dist/web/components/OtpField.d.ts.map +1 -1
  319. package/dist/web/components/OtpField.js +13 -10
  320. package/dist/web/components/OtpField.js.map +1 -1
  321. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  322. package/dist/web/components/Pagination.css +1 -1
  323. package/dist/web/components/Pagination.d.ts +16 -14
  324. package/dist/web/components/Pagination.d.ts.map +1 -1
  325. package/dist/web/components/Pagination.js +6 -6
  326. package/dist/web/components/Pagination.js.map +1 -1
  327. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  328. package/dist/web/components/Popover.css +1 -1
  329. package/dist/web/components/Popover.js +5 -5
  330. package/dist/web/components/Popover.js.map +1 -1
  331. package/dist/web/components/Popover.js.zyzz.json +1 -1
  332. package/dist/web/components/Progress.css +1 -1
  333. package/dist/web/components/Progress.d.ts +2 -2
  334. package/dist/web/components/Progress.d.ts.map +1 -1
  335. package/dist/web/components/Progress.js +6 -6
  336. package/dist/web/components/Progress.js.map +1 -1
  337. package/dist/web/components/Progress.js.zyzz.json +1 -1
  338. package/dist/web/components/Qr.css +1 -1
  339. package/dist/web/components/Qr.d.ts +1 -1
  340. package/dist/web/components/Qr.js +1 -3
  341. package/dist/web/components/Qr.js.map +1 -1
  342. package/dist/web/components/Qr.js.zyzz.json +1 -1
  343. package/dist/web/components/RadioGroup.css +1 -1
  344. package/dist/web/components/RadioGroup.d.ts.map +1 -1
  345. package/dist/web/components/RadioGroup.js +4 -4
  346. package/dist/web/components/RadioGroup.js.map +1 -1
  347. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  348. package/dist/web/components/SecretValue.css +1 -1
  349. package/dist/web/components/SecretValue.d.ts +7 -7
  350. package/dist/web/components/SecretValue.js +4 -4
  351. package/dist/web/components/SecretValue.js.map +1 -1
  352. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  353. package/dist/web/components/Select.css +1 -1
  354. package/dist/web/components/Select.d.ts +64 -2
  355. package/dist/web/components/Select.d.ts.map +1 -1
  356. package/dist/web/components/Select.js +24 -7
  357. package/dist/web/components/Select.js.map +1 -1
  358. package/dist/web/components/Select.js.zyzz.json +1 -1
  359. package/dist/web/components/Separator.css +1 -1
  360. package/dist/web/components/Separator.d.ts +17 -3
  361. package/dist/web/components/Separator.d.ts.map +1 -1
  362. package/dist/web/components/Separator.js +40 -5
  363. package/dist/web/components/Separator.js.map +1 -1
  364. package/dist/web/components/Separator.js.zyzz.json +1 -1
  365. package/dist/web/components/SidebarMenu.css +1 -1
  366. package/dist/web/components/SidebarMenu.d.ts +186 -39
  367. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  368. package/dist/web/components/SidebarMenu.js +91 -19
  369. package/dist/web/components/SidebarMenu.js.map +1 -1
  370. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  371. package/dist/web/components/Skeleton.css +1 -1
  372. package/dist/web/components/Skeleton.d.ts +5 -3
  373. package/dist/web/components/Skeleton.d.ts.map +1 -1
  374. package/dist/web/components/Skeleton.js +1 -3
  375. package/dist/web/components/Skeleton.js.map +1 -1
  376. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  377. package/dist/web/components/Slider.css +1 -1
  378. package/dist/web/components/Slider.d.ts.map +1 -1
  379. package/dist/web/components/Slider.js +6 -6
  380. package/dist/web/components/Slider.js.map +1 -1
  381. package/dist/web/components/Slider.js.zyzz.json +1 -1
  382. package/dist/web/components/Snippet.css +1 -1
  383. package/dist/web/components/Snippet.d.ts +27 -65
  384. package/dist/web/components/Snippet.d.ts.map +1 -1
  385. package/dist/web/components/Snippet.js +48 -11
  386. package/dist/web/components/Snippet.js.map +1 -1
  387. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  388. package/dist/web/components/Spinner.css +1 -1
  389. package/dist/web/components/Spinner.d.ts +25 -16
  390. package/dist/web/components/Spinner.d.ts.map +1 -1
  391. package/dist/web/components/Spinner.js +13 -8
  392. package/dist/web/components/Spinner.js.map +1 -1
  393. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  394. package/dist/web/components/SplitBar.css +1 -0
  395. package/dist/web/components/SplitBar.d.ts +99 -0
  396. package/dist/web/components/SplitBar.d.ts.map +1 -0
  397. package/dist/web/components/SplitBar.js +49 -0
  398. package/dist/web/components/SplitBar.js.map +1 -0
  399. package/dist/web/components/SplitBar.js.zyzz.json +1 -0
  400. package/dist/web/components/SplitButton.css +1 -1
  401. package/dist/web/components/SplitButton.d.ts +4 -1
  402. package/dist/web/components/SplitButton.d.ts.map +1 -1
  403. package/dist/web/components/SplitButton.js +2 -2
  404. package/dist/web/components/SplitButton.js.map +1 -1
  405. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  406. package/dist/web/components/Stack.css +1 -1
  407. package/dist/web/components/Stack.js +1 -3
  408. package/dist/web/components/Stack.js.zyzz.json +1 -1
  409. package/dist/web/components/StatusChip.css +1 -0
  410. package/dist/web/components/StatusChip.d.ts +162 -0
  411. package/dist/web/components/StatusChip.d.ts.map +1 -0
  412. package/dist/web/components/StatusChip.js +37 -0
  413. package/dist/web/components/StatusChip.js.map +1 -0
  414. package/dist/web/components/StatusChip.js.zyzz.json +1 -0
  415. package/dist/web/components/StatusRow.css +1 -0
  416. package/dist/web/components/StatusRow.d.ts +121 -0
  417. package/dist/web/components/StatusRow.d.ts.map +1 -0
  418. package/dist/web/components/StatusRow.js +75 -0
  419. package/dist/web/components/StatusRow.js.map +1 -0
  420. package/dist/web/components/StatusRow.js.zyzz.json +1 -0
  421. package/dist/web/components/Stepper.css +1 -1
  422. package/dist/web/components/Stepper.d.ts +10 -7
  423. package/dist/web/components/Stepper.d.ts.map +1 -1
  424. package/dist/web/components/Stepper.js +7 -6
  425. package/dist/web/components/Stepper.js.map +1 -1
  426. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  427. package/dist/web/components/Surface.css +1 -1
  428. package/dist/web/components/Surface.d.ts +56 -119
  429. package/dist/web/components/Surface.d.ts.map +1 -1
  430. package/dist/web/components/Surface.js +19 -14
  431. package/dist/web/components/Surface.js.map +1 -1
  432. package/dist/web/components/Surface.js.zyzz.json +1 -1
  433. package/dist/web/components/Switch.css +1 -1
  434. package/dist/web/components/Switch.d.ts +14 -18
  435. package/dist/web/components/Switch.d.ts.map +1 -1
  436. package/dist/web/components/Switch.js +14 -16
  437. package/dist/web/components/Switch.js.map +1 -1
  438. package/dist/web/components/Switch.js.zyzz.json +1 -1
  439. package/dist/web/components/Table.css +1 -1
  440. package/dist/web/components/Table.d.ts +152 -67
  441. package/dist/web/components/Table.d.ts.map +1 -1
  442. package/dist/web/components/Table.js +91 -25
  443. package/dist/web/components/Table.js.map +1 -1
  444. package/dist/web/components/Table.js.zyzz.json +1 -1
  445. package/dist/web/components/Tabs.css +1 -1
  446. package/dist/web/components/Tabs.d.ts +49 -42
  447. package/dist/web/components/Tabs.d.ts.map +1 -1
  448. package/dist/web/components/Tabs.js +44 -15
  449. package/dist/web/components/Tabs.js.map +1 -1
  450. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  451. package/dist/web/components/TempoLogo.css +1 -0
  452. package/dist/web/components/TempoLogo.d.ts +47 -0
  453. package/dist/web/components/TempoLogo.d.ts.map +1 -0
  454. package/dist/web/components/TempoLogo.js +48 -0
  455. package/dist/web/components/TempoLogo.js.map +1 -0
  456. package/dist/web/components/TempoLogo.js.zyzz.json +1 -0
  457. package/dist/web/components/TextInput.css +1 -0
  458. package/dist/web/components/{Input.d.ts → TextInput.d.ts} +27 -18
  459. package/dist/web/components/TextInput.d.ts.map +1 -0
  460. package/dist/web/components/TextInput.js +138 -0
  461. package/dist/web/components/TextInput.js.map +1 -0
  462. package/dist/web/components/TextInput.js.zyzz.json +1 -0
  463. package/dist/web/components/Textarea.css +1 -1
  464. package/dist/web/components/Textarea.d.ts +29 -74
  465. package/dist/web/components/Textarea.d.ts.map +1 -1
  466. package/dist/web/components/Textarea.js +5 -14
  467. package/dist/web/components/Textarea.js.map +1 -1
  468. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  469. package/dist/web/components/Toast.css +1 -1
  470. package/dist/web/components/Toast.d.ts +4 -4
  471. package/dist/web/components/Toast.d.ts.map +1 -1
  472. package/dist/web/components/Toast.js +10 -10
  473. package/dist/web/components/Toast.js.map +1 -1
  474. package/dist/web/components/Toast.js.zyzz.json +1 -1
  475. package/dist/web/components/Token.css +1 -1
  476. package/dist/web/components/Token.d.ts +32 -90
  477. package/dist/web/components/Token.d.ts.map +1 -1
  478. package/dist/web/components/Token.js +26 -90
  479. package/dist/web/components/Token.js.map +1 -1
  480. package/dist/web/components/Token.js.zyzz.json +1 -1
  481. package/dist/web/components/TokenLogo.css +1 -0
  482. package/dist/web/components/TokenLogo.d.ts +117 -0
  483. package/dist/web/components/TokenLogo.d.ts.map +1 -0
  484. package/dist/web/components/TokenLogo.js +112 -0
  485. package/dist/web/components/TokenLogo.js.map +1 -0
  486. package/dist/web/components/TokenLogo.js.zyzz.json +1 -0
  487. package/dist/web/components/Tooltip.css +1 -1
  488. package/dist/web/components/Tooltip.js +2 -2
  489. package/dist/web/components/Tooltip.js.map +1 -1
  490. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  491. package/dist/web/components/VerificationCode.css +1 -0
  492. package/dist/web/components/VerificationCode.d.ts +47 -0
  493. package/dist/web/components/VerificationCode.d.ts.map +1 -0
  494. package/dist/web/components/VerificationCode.js +55 -0
  495. package/dist/web/components/VerificationCode.js.map +1 -0
  496. package/dist/web/components/VerificationCode.js.zyzz.json +1 -0
  497. package/dist/web/components/Visual.css +1 -0
  498. package/dist/web/components/Visual.d.ts +65 -0
  499. package/dist/web/components/Visual.d.ts.map +1 -0
  500. package/dist/web/components/Visual.js +51 -0
  501. package/dist/web/components/Visual.js.map +1 -0
  502. package/dist/web/components/Visual.js.zyzz.json +1 -0
  503. package/dist/web/components/internal/Field.css +1 -1
  504. package/dist/web/components/internal/Field.d.ts +41 -87
  505. package/dist/web/components/internal/Field.d.ts.map +1 -1
  506. package/dist/web/components/internal/Field.js +9 -8
  507. package/dist/web/components/internal/Field.js.map +1 -1
  508. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  509. package/dist/web/components/internal/InputGroup.css +1 -1
  510. package/dist/web/components/internal/InputGroup.d.ts +38 -99
  511. package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
  512. package/dist/web/components/internal/InputGroup.js +6 -8
  513. package/dist/web/components/internal/InputGroup.js.map +1 -1
  514. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  515. package/dist/web/components/internal/Listbox.css +1 -1
  516. package/dist/web/components/internal/Listbox.d.ts +8 -8
  517. package/dist/web/components/internal/Listbox.js +13 -13
  518. package/dist/web/components/internal/Listbox.js.map +1 -1
  519. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  520. package/dist/web/components/internal/RowDisabled.d.ts +3 -0
  521. package/dist/web/components/internal/RowDisabled.d.ts.map +1 -0
  522. package/dist/web/components/internal/RowDisabled.js +9 -0
  523. package/dist/web/components/internal/RowDisabled.js.map +1 -0
  524. package/dist/web/components/internal/RowsSize.d.ts +2 -3
  525. package/dist/web/components/internal/RowsSize.d.ts.map +1 -1
  526. package/dist/web/components/internal/RowsSize.js +3 -3
  527. package/dist/web/components/internal/RowsSize.js.map +1 -1
  528. package/dist/web/index.d.ts +18 -6
  529. package/dist/web/index.d.ts.map +1 -1
  530. package/dist/web/index.js +18 -6
  531. package/dist/web/index.js.map +1 -1
  532. package/dist/web/index.js.zyzz.json +1 -1
  533. package/dist/web/vars.d.ts +591 -699
  534. package/dist/web/vars.d.ts.map +1 -1
  535. package/dist/web/vars.js +7 -6
  536. package/dist/web/vars.js.map +1 -1
  537. package/dist/web/vars.js.zyzz.json +1 -1
  538. package/dist/web/zyzz.config.d.ts +2935 -3480
  539. package/dist/web/zyzz.config.d.ts.map +1 -1
  540. package/dist/web/zyzz.config.js +39 -3
  541. package/dist/web/zyzz.config.js.map +1 -1
  542. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  543. package/package.json +180 -4
  544. package/src/fonts/Inter-cyrillic-ext.woff2 +0 -0
  545. package/src/fonts/Inter-cyrillic.woff2 +0 -0
  546. package/src/fonts/Inter-greek-ext.woff2 +0 -0
  547. package/src/fonts/Inter-greek.woff2 +0 -0
  548. package/src/fonts/Inter-latin-ext.woff2 +0 -0
  549. package/src/fonts/Inter-latin.woff2 +0 -0
  550. package/src/fonts/Inter-symbols.woff2 +0 -0
  551. package/src/fonts/Inter-vietnamese.woff2 +0 -0
  552. package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
  553. package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
  554. package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
  555. package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
  556. package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
  557. package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
  558. package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
  559. package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
  560. package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
  561. package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
  562. package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
  563. package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
  564. package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  565. package/src/fonts/Pilat-Black-latin.woff2 +0 -0
  566. package/src/fonts/Pilat-Black-other.woff2 +0 -0
  567. package/src/fonts/Pilat-Black.woff2 +0 -0
  568. package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
  569. package/src/fonts/Pilat-Bold-other.woff2 +0 -0
  570. package/src/fonts/Pilat-Bold.woff2 +0 -0
  571. package/src/fonts/Pilat-Book-latin.woff2 +0 -0
  572. package/src/fonts/Pilat-Book-other.woff2 +0 -0
  573. package/src/fonts/Pilat-Book.woff2 +0 -0
  574. package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
  575. package/src/fonts/Pilat-Demi-other.woff2 +0 -0
  576. package/src/fonts/Pilat-Demi.woff2 +0 -0
  577. package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
  578. package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
  579. package/src/fonts/Pilat-Heavy.woff2 +0 -0
  580. package/src/fonts/Pilat-Light-latin.woff2 +0 -0
  581. package/src/fonts/Pilat-Light-other.woff2 +0 -0
  582. package/src/fonts/Pilat-Light.woff2 +0 -0
  583. package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
  584. package/src/fonts/Pilat-Regular-other.woff2 +0 -0
  585. package/src/fonts/Pilat-Regular.woff2 +0 -0
  586. package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
  587. package/src/fonts/Pilat-Thin-other.woff2 +0 -0
  588. package/src/fonts/Pilat-Thin.woff2 +0 -0
  589. package/src/fonts/README.md +22 -1
  590. package/src/mobile/Haptics.ts +55 -0
  591. package/src/mobile/README.md +97 -1
  592. package/src/mobile/components/Button.tsx +3 -3
  593. package/src/mobile/components/IconButton.tsx +3 -3
  594. package/src/mobile/components/Spinner.tsx +1 -1
  595. package/src/mobile/components/TextButton.tsx +3 -3
  596. package/src/mobile/components/TextInput.tsx +1 -1
  597. package/src/mobile/components/Toast.tsx +1 -1
  598. package/src/mobile/components/Toggle.tsx +2 -2
  599. package/src/mobile/index.ts +2 -0
  600. package/src/mobile/useColor.ts +31 -0
  601. package/src/oxlint/rules/PreferComponent.ts +6 -6
  602. package/src/web/README.md +7 -7
  603. package/src/web/components/Accordion.tsx +8 -8
  604. package/src/web/components/AgentLogo.tsx +330 -0
  605. package/src/web/components/Alert.tsx +301 -0
  606. package/src/web/components/AlertDialog.tsx +47 -111
  607. package/src/web/components/Amount.tsx +6 -6
  608. package/src/web/components/AmountInput.tsx +59 -134
  609. package/src/web/components/AppShell.tsx +95 -36
  610. package/src/web/components/AssetChip.tsx +110 -0
  611. package/src/web/components/Autocomplete.tsx +4 -4
  612. package/src/web/components/Avatar.tsx +42 -119
  613. package/src/web/components/Badge.tsx +120 -0
  614. package/src/web/components/Banner.tsx +13 -11
  615. package/src/web/components/BarChart.tsx +427 -0
  616. package/src/web/components/Breadcrumbs.tsx +7 -7
  617. package/src/web/components/Button.tsx +156 -42
  618. package/src/web/components/ButtonGroup.tsx +59 -0
  619. package/src/web/components/Calendar.tsx +15 -13
  620. package/src/web/components/Checkbox.tsx +14 -11
  621. package/src/web/components/ChoiceGroup.tsx +107 -26
  622. package/src/web/components/Choicebox.tsx +30 -28
  623. package/src/web/components/Combobox.tsx +10 -8
  624. package/src/web/components/CopyButton.tsx +1 -1
  625. package/src/web/components/DatePicker.tsx +42 -61
  626. package/src/web/components/Dialog.tsx +267 -71
  627. package/src/web/components/Drawer.tsx +45 -18
  628. package/src/web/components/Empty.tsx +13 -8
  629. package/src/web/components/Field.tsx +78 -132
  630. package/src/web/components/Fieldset.tsx +16 -37
  631. package/src/web/components/Frame.tsx +13 -20
  632. package/src/web/components/Gauge.tsx +4 -4
  633. package/src/web/components/Hex.tsx +11 -11
  634. package/src/web/components/IconTile.tsx +57 -0
  635. package/src/web/components/Identicon.tsx +6 -1
  636. package/src/web/components/Kbd.tsx +8 -8
  637. package/src/web/components/ListGroup.tsx +776 -0
  638. package/src/web/components/LoadingDots.tsx +1 -0
  639. package/src/web/components/Menu.tsx +50 -35
  640. package/src/web/components/NetworkLogo.tsx +208 -0
  641. package/src/web/components/NumberField.tsx +18 -33
  642. package/src/web/components/OtpField.tsx +51 -102
  643. package/src/web/components/Pagination.tsx +16 -14
  644. package/src/web/components/Popover.tsx +8 -8
  645. package/src/web/components/Progress.tsx +7 -5
  646. package/src/web/components/Qr.tsx +1 -1
  647. package/src/web/components/RadioGroup.tsx +9 -7
  648. package/src/web/components/SecretValue.tsx +11 -11
  649. package/src/web/components/Select.tsx +87 -26
  650. package/src/web/components/Separator.tsx +95 -7
  651. package/src/web/components/SidebarMenu.tsx +294 -51
  652. package/src/web/components/Skeleton.tsx +5 -5
  653. package/src/web/components/Slider.tsx +12 -6
  654. package/src/web/components/Snippet.tsx +134 -75
  655. package/src/web/components/Spinner.tsx +38 -12
  656. package/src/web/components/SplitBar.tsx +158 -0
  657. package/src/web/components/SplitButton.tsx +26 -17
  658. package/src/web/components/StatusChip.tsx +138 -0
  659. package/src/web/components/StatusRow.tsx +162 -0
  660. package/src/web/components/Stepper.tsx +11 -8
  661. package/src/web/components/Surface.tsx +70 -95
  662. package/src/web/components/Switch.tsx +25 -29
  663. package/src/web/components/Table.tsx +281 -70
  664. package/src/web/components/Tabs.tsx +93 -50
  665. package/src/web/components/TempoLogo.tsx +89 -0
  666. package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
  667. package/src/web/components/Textarea.tsx +33 -78
  668. package/src/web/components/Toast.tsx +24 -22
  669. package/src/web/components/Token.tsx +106 -172
  670. package/src/web/components/TokenLogo.tsx +217 -0
  671. package/src/web/components/Tooltip.tsx +3 -3
  672. package/src/web/components/VerificationCode.tsx +97 -0
  673. package/src/web/components/Visual.tsx +166 -0
  674. package/src/web/components/internal/Field.ts +63 -72
  675. package/src/web/components/internal/InputGroup.ts +44 -101
  676. package/src/web/components/internal/Listbox.ts +20 -20
  677. package/src/web/components/internal/RowDisabled.ts +9 -0
  678. package/src/web/components/internal/RowsSize.ts +3 -5
  679. package/src/web/components/visuals/Passkey.svg +21 -0
  680. package/src/web/index.ts +18 -6
  681. package/src/web/logos/Base.svg +10 -0
  682. package/src/web/logos/Ethereum.svg +16 -0
  683. package/src/web/logos/HyperEVM.svg +27 -0
  684. package/src/web/logos/Polygon.svg +15 -0
  685. package/src/web/logos/README.md +14 -0
  686. package/src/web/logos/Solana.svg +11 -0
  687. package/src/web/logos/Tempo.svg +11 -0
  688. package/src/web/vars.ts +481 -526
  689. package/src/web/zyzz.config.ts +326 -12
  690. package/dist/fonts/GeistMono-Variable.woff2 +0 -0
  691. package/dist/mobile/internal/useColor.d.ts +0 -4
  692. package/dist/mobile/internal/useColor.d.ts.map +0 -1
  693. package/dist/mobile/internal/useColor.js +0 -12
  694. package/dist/mobile/internal/useColor.js.map +0 -1
  695. package/dist/web/components/AlertDialog.css +0 -1
  696. package/dist/web/components/Callout.css +0 -1
  697. package/dist/web/components/Callout.d.ts +0 -161
  698. package/dist/web/components/Callout.d.ts.map +0 -1
  699. package/dist/web/components/Callout.js +0 -83
  700. package/dist/web/components/Callout.js.map +0 -1
  701. package/dist/web/components/Callout.js.zyzz.json +0 -1
  702. package/dist/web/components/IconChip.css +0 -1
  703. package/dist/web/components/IconChip.d.ts +0 -53
  704. package/dist/web/components/IconChip.d.ts.map +0 -1
  705. package/dist/web/components/IconChip.js +0 -29
  706. package/dist/web/components/IconChip.js.map +0 -1
  707. package/dist/web/components/IconChip.js.zyzz.json +0 -1
  708. package/dist/web/components/Input.css +0 -1
  709. package/dist/web/components/Input.d.ts.map +0 -1
  710. package/dist/web/components/Input.js +0 -118
  711. package/dist/web/components/Input.js.map +0 -1
  712. package/dist/web/components/Input.js.zyzz.json +0 -1
  713. package/dist/web/components/Rows.css +0 -1
  714. package/dist/web/components/Rows.d.ts +0 -432
  715. package/dist/web/components/Rows.d.ts.map +0 -1
  716. package/dist/web/components/Rows.js +0 -160
  717. package/dist/web/components/Rows.js.map +0 -1
  718. package/dist/web/components/Rows.js.zyzz.json +0 -1
  719. package/dist/web/components/Tag.css +0 -1
  720. package/dist/web/components/Tag.d.ts +0 -171
  721. package/dist/web/components/Tag.d.ts.map +0 -1
  722. package/dist/web/components/Tag.js +0 -52
  723. package/dist/web/components/Tag.js.map +0 -1
  724. package/dist/web/components/Tag.js.zyzz.json +0 -1
  725. package/dist/web/components/internal/FieldVariant.d.ts +0 -4
  726. package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
  727. package/dist/web/components/internal/FieldVariant.js +0 -4
  728. package/dist/web/components/internal/FieldVariant.js.map +0 -1
  729. package/src/fonts/GeistMono-Variable.woff2 +0 -0
  730. package/src/mobile/internal/useColor.ts +0 -13
  731. package/src/web/components/Callout.tsx +0 -241
  732. package/src/web/components/IconChip.tsx +0 -54
  733. package/src/web/components/Rows.tsx +0 -529
  734. package/src/web/components/Tag.tsx +0 -149
  735. package/src/web/components/internal/FieldVariant.ts +0 -6
@@ -1,13 +1,12 @@
1
- import { type ComponentPropsWithRef, useState } from 'react'
1
+ import { useState } from 'react'
2
2
  import { TextMorph } from 'torph/react'
3
- import type * as zyzz from 'zyzz'
4
3
  import { style } from '../zyzz.config.js'
5
- import { Input } from './Input.js'
4
+ import { TextInput } from './TextInput.js'
6
5
  import * as AmountContext from './internal/AmountContext.js'
7
6
 
8
7
  /**
9
- * Decimal amount entry. The value is a raw string with a dot separator and no grouping
10
- * separators, and input that is not a non-negative decimal is rejected.
8
+ * The amount card: a filled surface with heading-size digits. The value is a raw string with a dot
9
+ * separator and no grouping separators, and input that is not a non-negative decimal is rejected.
11
10
  *
12
11
  * The text around a comma decides whether it groups thousands or separates decimals:
13
12
  *
@@ -25,17 +24,20 @@ import * as AmountContext from './internal/AmountContext.js'
25
24
  * `Control` is a text input with `inputMode="decimal"`, so mobile keyboards show digits without
26
25
  * the scroll and spinner behavior of `type="number"`.
27
26
  *
28
- * - Give the field a visible label, such as `Field.Label`. Show the unit with `Prefix` or
29
- * `Suffix`.
30
- * - Explain an invalid amount with text, such as `Field.Error`, not only the red ring.
31
- * - Wire `Max` to set the value yourself, and name what it fills when the label is ambiguous.
27
+ * - Inside a `Field.Root`, put the `Field.Label` and `Field.Description` in the root. They take
28
+ * their own rows above and below the amount.
29
+ * - Name the token beside the digits with a `Token`, which opens a token picker.
30
+ * - Explain an invalid amount with text, such as `Field.Error`, not only the red fill.
32
31
  *
33
32
  * @example
34
- * <AmountInput.Root onValueChange={setValue} value={value}>
35
- * <AmountInput.Prefix>$</AmountInput.Prefix>
36
- * <AmountInput.Control aria-label="Amount" placeholder="0.00" />
37
- * <AmountInput.Max onClick={() => setValue(balance)} />
38
- * </AmountInput.Root>
33
+ * <Field.Root>
34
+ * <AmountInput.Root onValueChange={setValue} value={value}>
35
+ * <Field.Label>You send</Field.Label>
36
+ * <AmountInput.Control placeholder="0.00" />
37
+ * <Token symbol="pathUSD" />
38
+ * <Field.Description>Balance 2,480.32</Field.Description>
39
+ * </AmountInput.Root>
40
+ * </Field.Root>
39
41
  *
40
42
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/text | MDN input type text}
41
43
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode | MDN inputmode attribute}
@@ -45,12 +47,12 @@ import * as AmountContext from './internal/AmountContext.js'
45
47
  */
46
48
  export namespace AmountInput {
47
49
  /**
48
- * Owns the amount and renders an `Input.Group`, so `size`, `variant` and `invalid` apply here.
49
- * Pass `value` and `onValueChange` to control it. A rejected keystroke leaves the value
50
- * unchanged and does not call `onValueChange`.
50
+ * Owns the amount and renders the card as a `TextInput.Group`, so `invalid` applies here. Pass
51
+ * `value` and `onValueChange` to control it. A rejected keystroke leaves the value unchanged and
52
+ * does not call `onValueChange`.
51
53
  */
52
54
  export function Root(props: Root.Props) {
53
- const { defaultValue = '', onValueChange, value: controlled, ...attributes } = props
55
+ const { className, defaultValue = '', onValueChange, value: controlled, ...attributes } = props
54
56
  const [uncontrolled, setUncontrolled] = useState(defaultValue)
55
57
  const value = controlled ?? uncontrolled
56
58
 
@@ -64,13 +66,16 @@ export namespace AmountInput {
64
66
  },
65
67
  }}
66
68
  >
67
- <Input.Group {...attributes} />
69
+ <TextInput.Group {...attributes} {...styles.root({ className, style: props.style })} />
68
70
  </AmountContext.Context.Provider>
69
71
  )
70
72
  }
71
73
 
72
74
  export namespace Root {
73
- export type Props = Omit<Input.Group.Props, 'defaultValue' | 'onChange'> & {
75
+ export type Props = Omit<
76
+ TextInput.Group.Props,
77
+ 'defaultValue' | 'onChange' | 'success' | 'variant'
78
+ > & {
74
79
  /** @default '' */
75
80
  defaultValue?: string | undefined
76
81
  onValueChange?: ((value: string) => void) | undefined
@@ -82,14 +87,14 @@ export namespace AmountInput {
82
87
  export function Control(props: Control.Props) {
83
88
  const amount = AmountContext.use()
84
89
  const [typed, setTyped] = useState<{ caret: number | null; text: string; value: string }>()
85
- // Typed edits morph at the caret. Other changes, such as Max, roll digits by place value.
90
+ // Typed edits morph at the caret. Values the app sets roll digits by place value.
86
91
  const edit = typed?.value === amount.value ? typed : undefined
87
92
  const caret = edit?.caret ?? undefined
88
93
  const text = edit?.text ?? amount.value
89
94
 
90
95
  return (
91
96
  <span {...styles.control()}>
92
- <Input.Control
97
+ <TextInput.Control
93
98
  autoComplete="off"
94
99
  inputMode="decimal"
95
100
  {...props}
@@ -116,39 +121,10 @@ export namespace AmountInput {
116
121
 
117
122
  export namespace Control {
118
123
  export type Props = Omit<
119
- Input.Control.Props,
124
+ TextInput.Control.Props,
120
125
  'defaultValue' | 'onChange' | 'onValueChange' | 'type' | 'value'
121
126
  >
122
127
  }
123
-
124
- /**
125
- * Shortcut for the largest allowed amount. Hidden while the field is invalid. It renders a
126
- * `type="button"` labelled "Max" by default and does not change the value itself, so set the
127
- * amount from `onClick`.
128
- */
129
- export function Max(props: Max.Props) {
130
- const { children, className, vars, ...attributes } = props
131
-
132
- return (
133
- <button
134
- type="button"
135
- {...attributes}
136
- {...styles.max({ className, style: props.style, vars })}
137
- >
138
- {children ?? 'Max'}
139
- </button>
140
- )
141
- }
142
-
143
- export namespace Max {
144
- export type Props = ComponentPropsWithRef<'button'> & zyzz.Props.Variants<typeof styles.max>
145
- }
146
-
147
- /** Leading adornment, such as a currency symbol. Same component as `Input.Prefix`. */
148
- export const Prefix = Input.Prefix
149
-
150
- /** Trailing adornment, such as a token code. Same component as `Input.Suffix`. */
151
- export const Suffix = Input.Suffix
152
128
  }
153
129
 
154
130
  /** Returns the raw decimal for typed text, or `undefined` when it is not a non-negative decimal. */
@@ -181,108 +157,57 @@ namespace styles {
181
157
  { id: 'tds/web/amount-input/control' },
182
158
  )
183
159
 
160
+ // The placeholder takes the subtle color, lighter than the tertiary placeholder of a text field.
184
161
  export const input = style(
185
162
  {
186
163
  gridArea: '1 / 1 !custom',
187
164
  WebkitTextFillColor: 'transparent !custom',
188
165
  width: '100% !custom',
189
- selectors: { '&::placeholder': { WebkitTextFillColor: 'currentColor !custom' } },
190
- },
191
- { id: 'tds/web/amount-input/input' },
192
- )
193
-
194
- export const max = style(
195
- {
196
- backgroundColor: 'grayAlpha.200',
197
- border: 'none !custom',
198
- color: 'foreground',
199
- cursor: 'pointer',
200
- flexShrink: '0 !custom',
201
- outlineColor: 'transparent !custom',
202
- outlineOffset: '0',
203
- outlineStyle: 'solid !custom',
204
- outlineWidth: '2',
205
- position: 'relative',
206
- transitionDuration: '160',
207
- transitionProperty: 'background-color, outline-color, outline-offset, scale',
208
- transitionTimingFunction: 'snappy',
209
166
  selectors: {
210
- // Each field size insets Max equally from the end and the top, with a concentric radius.
211
- '[data-size="large"] > &': {
212
- borderRadius: '8',
213
- height: '40',
214
- marginInlineEnd: '-12',
215
- paddingInline: '16',
216
- typography: 'button.14',
217
- },
218
- '[data-size="medium"] > &': {
219
- borderRadius: '6',
220
- height: '28',
221
- marginInlineEnd: '-10',
222
- paddingInline: '12',
223
- typography: 'button.12',
224
- },
225
- '[data-size="small"] > &': {
226
- borderRadius: '4',
227
- height: '24',
228
- marginInlineEnd: '-8',
229
- paddingInline: '8',
230
- typography: 'button.12',
231
- },
232
- // A small stacked field takes the medium size, so Max takes the medium inset.
233
- '[data-variant="stacked"] > [data-size="small"] > &': {
234
- borderRadius: '6',
235
- height: '28',
236
- marginInlineEnd: '-10',
237
- paddingInline: '12',
238
- typography: 'button.12',
239
- },
240
- // A card group keeps its padding, so Max sits on the content edge.
241
- '[data-variant="card"] > &': {
242
- borderRadius: '8',
243
- height: '32',
244
- marginInlineEnd: '0',
245
- paddingInline: '12',
246
- typography: 'button.12',
247
- },
248
- '&::after': { content: '"" !custom', inset: '-4', position: 'absolute' },
249
- '&:active': { scale: 'press' },
250
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
251
- '&:hover': { backgroundColor: 'grayAlpha.300' },
252
- '[data-invalid] &': { display: 'none' },
253
- },
254
- '@media (prefers-reduced-motion: reduce)': {
255
- transitionProperty: 'background-color, outline-color',
256
- selectors: { '&:active': { scale: 'none !custom' } },
167
+ '&::placeholder': { color: 'content.subtle', WebkitTextFillColor: 'currentColor !custom' },
257
168
  },
258
169
  },
259
- { id: 'tds/web/amount-input/max' },
170
+ { id: 'tds/web/amount-input/input' },
260
171
  )
261
172
 
262
- // Mirrors the typography of `Input.Control` so the morphing text sits over the transparent input text.
173
+ // Inherits the root's type, as `TextInput.Control` does, so the morphing text covers the input text.
263
174
  export const morph = style(
264
175
  {
265
- color: 'foreground',
176
+ color: 'content.primary',
266
177
  font: 'inherit !custom',
267
178
  gridArea: '1 / 1 !custom',
268
179
  overflow: 'hidden',
269
180
  pointerEvents: 'none !custom',
270
181
  whiteSpace: 'pre',
182
+ selectors: { ':has(> input:disabled) > &': { color: 'content.subtle' } },
183
+ },
184
+ { id: 'tds/web/amount-input/morph' },
185
+ )
186
+
187
+ /**
188
+ * Overrides the 48px field of `TextInput.Group`, whose rules load first. It wraps onto rows, so a
189
+ * `Field.Label` and `Field.Description` inside take their own lines.
190
+ */
191
+ export const root = style(
192
+ {
193
+ borderRadius: 'sm',
194
+ flexWrap: 'wrap',
195
+ height: 'auto !custom',
196
+ paddingBlock: '16',
197
+ paddingInline: '20',
198
+ rowGap: '8',
199
+ typography: 'heading.h1',
271
200
  selectors: {
272
- '[data-variant="card"] > &': {
273
- typography: 'heading.24',
274
- },
275
- '[data-variant="card"][data-size="small"] &': {
276
- typography: 'heading.20',
201
+ '& > label': {
202
+ color: 'content.secondary',
203
+ flexBasis: '100% !custom',
204
+ typography: 'body.b3',
277
205
  },
278
- '[data-variant="card"][data-size="large"] &': {
279
- typography: 'heading.32',
280
- },
281
- // The value sits below the floating label, which needs more room in a large field.
282
- '[data-variant="stacked"] &': { paddingTop: '12' },
283
- '[data-variant="stacked"] [data-size="large"] &': { paddingTop: '16' },
206
+ '& > :is(p, [data-field-error])': { flexBasis: '100% !custom' },
207
+ // A `Field.Description`, such as the balance, takes the tertiary color.
208
+ '& > p': { color: 'content.tertiary' },
284
209
  },
285
210
  },
286
- { id: 'tds/web/amount-input/morph' },
211
+ { id: 'tds/web/amount-input' },
287
212
  )
288
213
  }
@@ -8,7 +8,7 @@ import {
8
8
  } from 'react'
9
9
  import type * as zyzz from 'zyzz'
10
10
  import { keyframes } from 'zyzz/web'
11
- import { style, variants } from '../zyzz.config.js'
11
+ import { style, variants, vars } from '../zyzz.config.js'
12
12
 
13
13
  type Context = {
14
14
  container: HTMLDivElement | null
@@ -42,7 +42,8 @@ function useShell() {
42
42
 
43
43
  /**
44
44
  * Application frame with a sticky sidebar beside a content column. `align="center"` centers both
45
- * on wide viewports, and `align="start"` pins the sidebar left with content filling the rest.
45
+ * on wide viewports, with the sidebar fill to the start edge and the header bar to the end edge.
46
+ * `align="start"` pins the sidebar left with content filling the rest.
46
47
  * Below 1024px the sidebar moves into a drawer that `AppShell.Trigger` opens from the right edge.
47
48
  *
48
49
  * - Name the `Sidebar` with `aria-label`. It labels the `aside` on wide viewports and the drawer
@@ -69,11 +70,23 @@ function useShell() {
69
70
  * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html | WCAG 2.2 Focus Order}
70
71
  */
71
72
  export namespace AppShell {
72
- /** Page header row holding the title, actions and the compact-viewport `Trigger`. */
73
+ /**
74
+ * Renders the 56px page header bar at the top of `Main`, in the fill of the sidebar with a bottom
75
+ * border, holding the title, actions and the compact-viewport `Trigger`. It spans the full width
76
+ * of `Main`. With `align="center"` on wide viewports, its fill and border continue to the end
77
+ * edge. A `Main` that scrolls itself clips them at its own edge, so scroll the root instead when
78
+ * the shell fills a fixed-height region.
79
+ */
73
80
  export function Header(props: Header.Props) {
74
81
  const { className, vars, ...attributes } = props
75
82
 
76
- return <header {...attributes} {...styles.header({ className, style: props.style, vars })} />
83
+ return (
84
+ <header
85
+ {...attributes}
86
+ {...styles.header({ className, style: props.style, vars })}
87
+ data-app-shell-header=""
88
+ />
89
+ )
77
90
  }
78
91
 
79
92
  export namespace Header {
@@ -156,7 +169,7 @@ export namespace AppShell {
156
169
  }
157
170
 
158
171
  /**
159
- * Renders a sticky `aside` from 1024px, `var(--sidebar-width, 16.25rem)` wide. Below that it
172
+ * Renders a sticky `aside` from 1024px, `var(--sidebar-width, 16rem)` wide. Below that it
160
173
  * renders a modal Base UI drawer popup as an `aside` with the dialog role, which takes focus on
161
174
  * open, returns it to the trigger on close, and dismisses with Escape, the backdrop or a swipe
162
175
  * right. Server rendering always emits the wide layout.
@@ -206,6 +219,7 @@ export namespace AppShell {
206
219
  zyzz.Props.Variants<typeof styles.sidebarBody>
207
220
  }
208
221
 
222
+ /** The bottom of the sidebar, such as the account menu. It stays at the bottom edge. */
209
223
  export function SidebarFooter(props: SidebarFooter.Props) {
210
224
  const { className, vars, ...attributes } = props
211
225
 
@@ -219,6 +233,7 @@ export namespace AppShell {
219
233
  zyzz.Props.Variants<typeof styles.sidebarFooter>
220
234
  }
221
235
 
236
+ /** The top of the sidebar, such as the product or project switcher. */
222
237
  export function SidebarHeader(props: SidebarHeader.Props) {
223
238
  const { className, vars, ...attributes } = props
224
239
 
@@ -290,7 +305,7 @@ const fadeOut = keyframes(
290
305
  namespace styles {
291
306
  export const backdrop = style(
292
307
  {
293
- backgroundColor: 'black',
308
+ backgroundColor: 'neutral.100',
294
309
  inset: '0',
295
310
  opacity: '0.6 !custom',
296
311
  position: 'fixed',
@@ -310,6 +325,7 @@ namespace styles {
310
325
  {
311
326
  backgroundColor: 'currentColor !custom',
312
327
  borderRadius: 'full',
328
+ cornerShape: 'round',
313
329
  height: '2',
314
330
  insetInlineStart: '0',
315
331
  position: 'absolute',
@@ -341,7 +357,7 @@ namespace styles {
341
357
 
342
358
  export const drawer = style(
343
359
  {
344
- borderInlineStartColor: 'grayAlpha.200',
360
+ borderInlineStartColor: 'line.secondary',
345
361
  borderInlineStartStyle: 'solid',
346
362
  borderInlineStartWidth: '1px !custom',
347
363
  height: '100% !custom',
@@ -373,19 +389,30 @@ namespace styles {
373
389
  { id: 'tds/web/app-shell/drawer' },
374
390
  )
375
391
 
392
+ // The bar bleeds into the padding of `Main`, so it spans the column and starts at its top edge.
393
+ // The header takes the fill of the sidebar, so the two frame the page.
376
394
  export const header = variants(
377
395
  {
378
396
  base: {
379
397
  alignItems: 'center',
398
+ backgroundColor: 'background.sidebar',
399
+ borderBottomColor: 'line.secondary',
400
+ borderBottomStyle: 'solid',
401
+ borderBottomWidth: '1px !custom',
402
+ boxSizing: 'border-box',
380
403
  columnGap: '8',
381
404
  display: 'flex',
382
405
  justifyContent: 'space-between',
383
406
  marginBottom: '24',
407
+ marginInline: '-16',
408
+ marginTop: '-20',
409
+ minHeight: '56',
384
410
  minWidth: '0',
385
- // Below 1024px the fixed trigger covers the top-right corner, so header actions end 8px
386
- // before it: its 40px plus 16px inset, less the main column's own side padding.
387
- '@media (max-width: 1023px)': { paddingInlineEnd: '48' },
388
- '@media (min-width: 640px) and (max-width: 1023px)': { paddingInlineEnd: '32' },
411
+ paddingInline: '16',
412
+ '@media (min-width: 640px)': { marginInline: '-2rem !custom', paddingInline: '24' },
413
+ // Below 1024px the fixed trigger covers the end of the bar, so header actions end 8px
414
+ // before it: its 40px plus its 16px inset.
415
+ '@media (max-width: 1023px)': { paddingInlineEnd: '64' },
389
416
  },
390
417
  },
391
418
  { id: 'tds/web/app-shell/header' },
@@ -413,14 +440,16 @@ namespace styles {
413
440
  {
414
441
  base: {
415
442
  backgroundColor: 'background.primary',
416
- color: 'foreground',
443
+ color: 'content.primary',
417
444
  display: 'flex',
418
445
  minHeight: '100dvh !custom',
419
446
  position: 'relative',
420
- typography: 'copy.14',
447
+ typography: 'body.b2',
421
448
  selectors: {
422
- // Equal gutters center the sidebar and content column on wide viewports.
449
+ // Equal gutters center the sidebar and content column on wide viewports. The start
450
+ // gutter takes the fill of the sidebar, so the sidebar reaches the start edge.
423
451
  '&::after, &::before': { content: '"" !custom', flex: '1 !custom' },
452
+ '&::before': { backgroundColor: 'background.sidebar' },
424
453
  },
425
454
  '@media (max-width: 1023px)': {
426
455
  selectors: { '&::after, &::before': { display: 'none !custom' } },
@@ -429,7 +458,23 @@ namespace styles {
429
458
  defaultVariants: { align: 'center' },
430
459
  variants: {
431
460
  align: {
432
- center: {},
461
+ // The header bar continues across the end gutter as the outset of a border image, which
462
+ // is ink overflow. It adds no scroll and changes no layout, and a scrolling `Main` clips
463
+ // it at its own edge. The image draws the fill and the 1px bottom border of the header.
464
+ // The outset takes the gutter from the viewport width, since the root of an application
465
+ // frame spans the viewport.
466
+ center: {
467
+ '@media (min-width: 1024px)': {
468
+ selectors: {
469
+ '& > main > [data-app-shell-header]': {
470
+ borderImageOutset: `0 max(0px, calc((100vw - var(--sidebar-width, 16rem) - ${vars.container['1024']}) / 2)) 0 0 !custom`,
471
+ borderImageSlice: '0 fill !custom',
472
+ borderImageSource: `linear-gradient(${vars.color.background.sidebar} calc(100% - 1px), ${vars.color.line.secondary} 0) !custom`,
473
+ borderImageWidth: '0 !custom',
474
+ },
475
+ },
476
+ },
477
+ },
433
478
  start: {
434
479
  selectors: {
435
480
  '&::after, &::before': { display: 'none !custom' },
@@ -445,15 +490,15 @@ namespace styles {
445
490
  export const sidebar = variants(
446
491
  {
447
492
  base: {
448
- backgroundColor: 'background.primary',
493
+ backgroundColor: 'background.sidebar',
449
494
  boxSizing: 'border-box',
450
495
  display: 'flex',
451
496
  flexDirection: 'column',
452
497
  flexShrink: '0 !custom',
453
498
  minHeight: '0',
454
- paddingBottom: '20',
455
- paddingInline: '10',
456
- rowGap: '24',
499
+ paddingBottom: '16',
500
+ paddingInline: '12',
501
+ rowGap: '16',
457
502
  },
458
503
  },
459
504
  { id: 'tds/web/app-shell/sidebar' },
@@ -463,14 +508,14 @@ namespace styles {
463
508
  // server-rendered markup, which always emits the wide layout.
464
509
  export const inline = style(
465
510
  {
466
- borderInlineEndColor: 'grayAlpha.200',
511
+ borderInlineEndColor: 'line.secondary',
467
512
  borderInlineEndStyle: 'solid',
468
513
  borderInlineEndWidth: '1px !custom',
469
514
  height: '100dvh !custom',
470
515
  insetBlockStart: '0',
471
516
  overflowY: 'auto',
472
517
  position: 'sticky',
473
- width: 'var(--sidebar-width, 16.25rem) !custom',
518
+ width: 'var(--sidebar-width, 16rem) !custom',
474
519
  '@media (max-width: 1023px)': { display: 'none !custom' },
475
520
  },
476
521
  { id: 'tds/web/app-shell/inline' },
@@ -479,20 +524,24 @@ namespace styles {
479
524
  export const sidebarBody = variants(
480
525
  {
481
526
  base: {
527
+ // Custom string values only take literal CSS, so the thumb color reaches `scrollbarColor` through a property.
528
+ '--tds-sidebar-scrollbar-thumb': `${vars.color.line.primary}`,
482
529
  flex: '1 !custom',
483
530
  // Bleeding into the sidebar's inline padding puts the scrollbar at the sidebar edge.
484
- marginInline: '-10',
531
+ marginInline: '-12',
485
532
  minHeight: '0',
486
533
  overflowY: 'auto',
487
534
  overscrollBehavior: 'contain',
488
- paddingInline: '10',
535
+ paddingInline: '12',
536
+ // A transparent track leaves only the thin thumb over the sidebar fill.
537
+ scrollbarColor: 'var(--tds-sidebar-scrollbar-thumb) transparent !custom',
489
538
  // Classic scrollbars keep their own lane instead of covering content at the edge.
490
539
  scrollbarGutter: 'stable',
491
540
  scrollbarWidth: 'thin',
492
541
  selectors: {
493
542
  // Curtains fade content into the sidebar at whichever end has more to scroll.
494
543
  '&::after, &::before': {
495
- backgroundColor: 'background.primary',
544
+ backgroundColor: 'background.sidebar',
496
545
  content: '"" !custom',
497
546
  display: 'block',
498
547
  height: '24',
@@ -530,23 +579,32 @@ namespace styles {
530
579
  { id: 'tds/web/app-shell/sidebar-body' },
531
580
  )
532
581
 
582
+ // The automatic top margin keeps the footer at the bottom edge when no `SidebarBody` grows.
533
583
  export const sidebarFooter = variants(
534
- { base: { display: 'flex', flexDirection: 'column', flexShrink: '0 !custom', rowGap: '12' } },
584
+ {
585
+ base: {
586
+ display: 'flex',
587
+ flexDirection: 'column',
588
+ flexShrink: '0 !custom',
589
+ marginTop: 'auto !custom',
590
+ rowGap: '8',
591
+ },
592
+ },
535
593
  { id: 'tds/web/app-shell/sidebar-footer' },
536
594
  )
537
595
 
538
596
  export const sidebarHeader = variants(
539
- { base: { flexShrink: '0 !custom', paddingTop: '20' } },
597
+ { base: { flexShrink: '0 !custom', paddingTop: '16' } },
540
598
  { id: 'tds/web/app-shell/sidebar-header' },
541
599
  )
542
600
 
543
601
  export const title = variants(
544
602
  {
545
603
  base: {
546
- color: 'foreground',
604
+ color: 'content.primary',
547
605
  margin: '0',
548
606
  minWidth: '0',
549
- typography: 'heading.24',
607
+ typography: 'heading.h2',
550
608
  },
551
609
  },
552
610
  { id: 'tds/web/app-shell/title' },
@@ -556,18 +614,19 @@ namespace styles {
556
614
  {
557
615
  base: {
558
616
  alignItems: 'center',
559
- backgroundColor: 'background.surface',
560
- borderColor: 'grayAlpha.200',
617
+ backgroundColor: 'background.elevated',
618
+ borderColor: 'line.secondary',
561
619
  borderRadius: 'full',
562
620
  borderStyle: 'solid',
563
- borderWidth: '1',
564
- boxShadow: 'raised',
621
+ borderWidth: 'regular',
565
622
  boxSizing: 'border-box',
566
- color: 'foreground',
623
+ color: 'content.primary',
624
+ cornerShape: 'round',
567
625
  cursor: 'pointer',
568
626
  display: 'inline-flex',
569
627
  height: '40',
570
- insetBlockStart: '16',
628
+ // Centers the button on the 56px header bar.
629
+ insetBlockStart: '8',
571
630
  insetInlineEnd: '16',
572
631
  justifyContent: 'center',
573
632
  outlineColor: 'transparent !custom',
@@ -584,8 +643,8 @@ namespace styles {
584
643
  zIndex: 'modal',
585
644
  selectors: {
586
645
  '&:active': { transform: 'scale(0.96) !custom' },
587
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
588
- '&:hover': { backgroundColor: 'gray.100' },
646
+ '&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
647
+ '&:hover': { backgroundColor: 'container.regular' },
589
648
  // While open, the button rides out with the drawer and rests 8px outside its left edge,
590
649
  // so the close mark never covers the sidebar. The width matches the drawer's.
591
650
  '&[data-popup-open]': {