@tempoxyz/ds 0.2.0 → 0.2.4

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 (428) hide show
  1. package/README.md +36 -0
  2. package/dist/mobile/components/Avatar.d.ts +1 -1
  3. package/dist/mobile/components/Avatar.d.ts.map +1 -1
  4. package/dist/mobile/components/Avatar.js.map +1 -1
  5. package/dist/mobile/components/Button.d.ts +2 -2
  6. package/dist/mobile/components/Button.d.ts.map +1 -1
  7. package/dist/mobile/components/Button.js +6 -2
  8. package/dist/mobile/components/Button.js.map +1 -1
  9. package/dist/mobile/components/CodeInput.d.ts +1 -1
  10. package/dist/mobile/components/CodeInput.d.ts.map +1 -1
  11. package/dist/mobile/components/CodeInput.js.map +1 -1
  12. package/dist/mobile/components/IconButton.d.ts +2 -2
  13. package/dist/mobile/components/IconButton.d.ts.map +1 -1
  14. package/dist/mobile/components/IconButton.js +6 -2
  15. package/dist/mobile/components/IconButton.js.map +1 -1
  16. package/dist/mobile/components/Skeleton.d.ts.map +1 -1
  17. package/dist/mobile/components/Skeleton.js.map +1 -1
  18. package/dist/mobile/components/Spinner.d.ts +4 -4
  19. package/dist/mobile/components/Spinner.d.ts.map +1 -1
  20. package/dist/mobile/components/Spinner.js +3 -3
  21. package/dist/mobile/components/Spinner.js.map +1 -1
  22. package/dist/mobile/components/TextButton.d.ts.map +1 -1
  23. package/dist/mobile/components/TextButton.js +7 -2
  24. package/dist/mobile/components/TextButton.js.map +1 -1
  25. package/dist/mobile/components/TextInput.d.ts.map +1 -1
  26. package/dist/mobile/components/TextInput.js +1 -1
  27. package/dist/mobile/components/TextInput.js.map +1 -1
  28. package/dist/mobile/components/Toast.d.ts +1 -1
  29. package/dist/mobile/components/Toast.d.ts.map +1 -1
  30. package/dist/mobile/components/Toast.js +1 -1
  31. package/dist/mobile/components/Toast.js.map +1 -1
  32. package/dist/mobile/components/Toggle.d.ts +2 -2
  33. package/dist/mobile/components/Toggle.js +2 -2
  34. package/dist/mobile/components/Toggle.js.map +1 -1
  35. package/dist/mobile/vars.d.ts +24 -0
  36. package/dist/mobile/vars.d.ts.map +1 -1
  37. package/dist/mobile/vars.js +12 -0
  38. package/dist/mobile/vars.js.map +1 -1
  39. package/dist/mobile/zyzz.config.d.ts +96 -0
  40. package/dist/mobile/zyzz.config.d.ts.map +1 -1
  41. package/dist/oxlint/index.d.ts +43 -0
  42. package/dist/oxlint/index.d.ts.map +1 -0
  43. package/dist/oxlint/index.js +68 -0
  44. package/dist/oxlint/index.js.map +1 -0
  45. package/dist/oxlint/internal/Imports.d.ts +22 -0
  46. package/dist/oxlint/internal/Imports.d.ts.map +1 -0
  47. package/dist/oxlint/internal/Imports.js +52 -0
  48. package/dist/oxlint/internal/Imports.js.map +1 -0
  49. package/dist/oxlint/rules/NoCrossSurface.d.ts +16 -0
  50. package/dist/oxlint/rules/NoCrossSurface.d.ts.map +1 -0
  51. package/dist/oxlint/rules/NoCrossSurface.js +55 -0
  52. package/dist/oxlint/rules/NoCrossSurface.js.map +1 -0
  53. package/dist/oxlint/rules/NoInternalImports.d.ts +8 -0
  54. package/dist/oxlint/rules/NoInternalImports.d.ts.map +1 -0
  55. package/dist/oxlint/rules/NoInternalImports.js +22 -0
  56. package/dist/oxlint/rules/NoInternalImports.js.map +1 -0
  57. package/dist/oxlint/rules/NoRawValues.d.ts +9 -0
  58. package/dist/oxlint/rules/NoRawValues.d.ts.map +1 -0
  59. package/dist/oxlint/rules/NoRawValues.js +73 -0
  60. package/dist/oxlint/rules/NoRawValues.js.map +1 -0
  61. package/dist/oxlint/rules/PreferComponent.d.ts +16 -0
  62. package/dist/oxlint/rules/PreferComponent.d.ts.map +1 -0
  63. package/dist/oxlint/rules/PreferComponent.js +92 -0
  64. package/dist/oxlint/rules/PreferComponent.js.map +1 -0
  65. package/dist/oxlint/rules/RequireAccessibleName.d.ts +9 -0
  66. package/dist/oxlint/rules/RequireAccessibleName.d.ts.map +1 -0
  67. package/dist/oxlint/rules/RequireAccessibleName.js +104 -0
  68. package/dist/oxlint/rules/RequireAccessibleName.js.map +1 -0
  69. package/dist/web/components/Accordion.css +1 -1
  70. package/dist/web/components/Accordion.d.ts +7 -7
  71. package/dist/web/components/Accordion.js.map +1 -1
  72. package/dist/web/components/Accordion.js.zyzz.json +1 -1
  73. package/dist/web/components/AlertDialog.css +1 -1
  74. package/dist/web/components/AlertDialog.d.ts.map +1 -1
  75. package/dist/web/components/AlertDialog.js +1 -1
  76. package/dist/web/components/AlertDialog.js.map +1 -1
  77. package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
  78. package/dist/web/components/Amount.d.ts +10 -3
  79. package/dist/web/components/Amount.d.ts.map +1 -1
  80. package/dist/web/components/Amount.js +19 -9
  81. package/dist/web/components/Amount.js.map +1 -1
  82. package/dist/web/components/Amount.js.zyzz.json +1 -1
  83. package/dist/web/components/AmountInput.css +1 -1
  84. package/dist/web/components/AmountInput.d.ts +15 -2
  85. package/dist/web/components/AmountInput.d.ts.map +1 -1
  86. package/dist/web/components/AmountInput.js +43 -12
  87. package/dist/web/components/AmountInput.js.map +1 -1
  88. package/dist/web/components/AmountInput.js.zyzz.json +1 -1
  89. package/dist/web/components/AppShell.css +1 -1
  90. package/dist/web/components/AppShell.d.ts +10 -10
  91. package/dist/web/components/AppShell.js.map +1 -1
  92. package/dist/web/components/AppShell.js.zyzz.json +1 -1
  93. package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
  94. package/dist/web/components/Avatar.css +1 -1
  95. package/dist/web/components/Avatar.d.ts +3 -3
  96. package/dist/web/components/Avatar.js.map +1 -1
  97. package/dist/web/components/Avatar.js.zyzz.json +1 -1
  98. package/dist/web/components/Banner.css +1 -1
  99. package/dist/web/components/Banner.js +3 -3
  100. package/dist/web/components/Banner.js.map +1 -1
  101. package/dist/web/components/Banner.js.zyzz.json +1 -1
  102. package/dist/web/components/Breadcrumbs.css +1 -1
  103. package/dist/web/components/Breadcrumbs.d.ts +4 -4
  104. package/dist/web/components/Breadcrumbs.js.map +1 -1
  105. package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
  106. package/dist/web/components/Button.css +1 -1
  107. package/dist/web/components/Button.d.ts +12 -11
  108. package/dist/web/components/Button.d.ts.map +1 -1
  109. package/dist/web/components/Button.js +2 -2
  110. package/dist/web/components/Button.js.map +1 -1
  111. package/dist/web/components/Button.js.zyzz.json +1 -1
  112. package/dist/web/components/Calendar.css +1 -1
  113. package/dist/web/components/Calendar.d.ts.map +1 -1
  114. package/dist/web/components/Calendar.js +7 -5
  115. package/dist/web/components/Calendar.js.map +1 -1
  116. package/dist/web/components/Calendar.js.zyzz.json +1 -1
  117. package/dist/web/components/Callout.css +1 -1
  118. package/dist/web/components/Callout.d.ts +6 -6
  119. package/dist/web/components/Callout.d.ts.map +1 -1
  120. package/dist/web/components/Callout.js +5 -2
  121. package/dist/web/components/Callout.js.map +1 -1
  122. package/dist/web/components/Callout.js.zyzz.json +1 -1
  123. package/dist/web/components/Checkbox.css +1 -1
  124. package/dist/web/components/Checkbox.d.ts +8 -8
  125. package/dist/web/components/Checkbox.js.map +1 -1
  126. package/dist/web/components/Checkbox.js.zyzz.json +1 -1
  127. package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
  128. package/dist/web/components/ChoiceGroup.css +1 -1
  129. package/dist/web/components/ChoiceGroup.d.ts +2 -2
  130. package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
  131. package/dist/web/components/ChoiceGroup.js +2 -2
  132. package/dist/web/components/ChoiceGroup.js.map +1 -1
  133. package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
  134. package/dist/web/components/Choicebox.css +1 -1
  135. package/dist/web/components/Choicebox.d.ts +4 -4
  136. package/dist/web/components/Choicebox.js +1 -1
  137. package/dist/web/components/Choicebox.js.map +1 -1
  138. package/dist/web/components/Choicebox.js.zyzz.json +1 -1
  139. package/dist/web/components/Combobox.css +1 -1
  140. package/dist/web/components/Combobox.js.map +1 -1
  141. package/dist/web/components/Combobox.js.zyzz.json +1 -1
  142. package/dist/web/components/Container.js.zyzz.json +1 -1
  143. package/dist/web/components/CopyButton.js.zyzz.json +1 -1
  144. package/dist/web/components/DatePicker.css +1 -1
  145. package/dist/web/components/DatePicker.d.ts +20 -20
  146. package/dist/web/components/DatePicker.d.ts.map +1 -1
  147. package/dist/web/components/DatePicker.js +2 -2
  148. package/dist/web/components/DatePicker.js.map +1 -1
  149. package/dist/web/components/DatePicker.js.zyzz.json +1 -1
  150. package/dist/web/components/Dialog.css +1 -1
  151. package/dist/web/components/Dialog.d.ts.map +1 -1
  152. package/dist/web/components/Dialog.js +3 -3
  153. package/dist/web/components/Dialog.js.map +1 -1
  154. package/dist/web/components/Dialog.js.zyzz.json +1 -1
  155. package/dist/web/components/Drawer.css +1 -1
  156. package/dist/web/components/Drawer.js +2 -2
  157. package/dist/web/components/Drawer.js.map +1 -1
  158. package/dist/web/components/Drawer.js.zyzz.json +1 -1
  159. package/dist/web/components/Empty.js.zyzz.json +1 -1
  160. package/dist/web/components/Field.css +1 -1
  161. package/dist/web/components/Field.d.ts +7 -0
  162. package/dist/web/components/Field.d.ts.map +1 -1
  163. package/dist/web/components/Field.js +25 -3
  164. package/dist/web/components/Field.js.map +1 -1
  165. package/dist/web/components/Field.js.zyzz.json +1 -1
  166. package/dist/web/components/Fieldset.js.zyzz.json +1 -1
  167. package/dist/web/components/Frame.css +1 -1
  168. package/dist/web/components/Frame.d.ts +27 -10
  169. package/dist/web/components/Frame.d.ts.map +1 -1
  170. package/dist/web/components/Frame.js +12 -5
  171. package/dist/web/components/Frame.js.map +1 -1
  172. package/dist/web/components/Frame.js.zyzz.json +1 -1
  173. package/dist/web/components/Gauge.css +1 -1
  174. package/dist/web/components/Gauge.js.map +1 -1
  175. package/dist/web/components/Gauge.js.zyzz.json +1 -1
  176. package/dist/web/components/Grid.js.zyzz.json +1 -1
  177. package/dist/web/components/Hex.css +1 -1
  178. package/dist/web/components/Hex.d.ts +5 -5
  179. package/dist/web/components/Hex.js +1 -1
  180. package/dist/web/components/Hex.js.map +1 -1
  181. package/dist/web/components/Hex.js.zyzz.json +1 -1
  182. package/dist/web/components/IconChip.css +1 -1
  183. package/dist/web/components/IconChip.d.ts +1 -1
  184. package/dist/web/components/IconChip.js.map +1 -1
  185. package/dist/web/components/IconChip.js.zyzz.json +1 -1
  186. package/dist/web/components/Identicon.js.zyzz.json +1 -1
  187. package/dist/web/components/Inline.js.zyzz.json +1 -1
  188. package/dist/web/components/Input.css +1 -1
  189. package/dist/web/components/Input.js.map +1 -1
  190. package/dist/web/components/Input.js.zyzz.json +1 -1
  191. package/dist/web/components/Inset.js.zyzz.json +1 -1
  192. package/dist/web/components/Kbd.css +1 -1
  193. package/dist/web/components/Kbd.d.ts +32 -10
  194. package/dist/web/components/Kbd.d.ts.map +1 -1
  195. package/dist/web/components/Kbd.js +55 -13
  196. package/dist/web/components/Kbd.js.map +1 -1
  197. package/dist/web/components/Kbd.js.zyzz.json +1 -1
  198. package/dist/web/components/LoadingDots.css +1 -1
  199. package/dist/web/components/LoadingDots.d.ts +2 -2
  200. package/dist/web/components/LoadingDots.js.map +1 -1
  201. package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
  202. package/dist/web/components/Menu.css +1 -1
  203. package/dist/web/components/Menu.d.ts +11 -11
  204. package/dist/web/components/Menu.d.ts.map +1 -1
  205. package/dist/web/components/Menu.js +2 -2
  206. package/dist/web/components/Menu.js.map +1 -1
  207. package/dist/web/components/Menu.js.zyzz.json +1 -1
  208. package/dist/web/components/NumberField.css +1 -1
  209. package/dist/web/components/NumberField.js +1 -1
  210. package/dist/web/components/NumberField.js.map +1 -1
  211. package/dist/web/components/NumberField.js.zyzz.json +1 -1
  212. package/dist/web/components/OtpField.css +1 -1
  213. package/dist/web/components/OtpField.d.ts.map +1 -1
  214. package/dist/web/components/OtpField.js +1 -1
  215. package/dist/web/components/OtpField.js.map +1 -1
  216. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  217. package/dist/web/components/Pagination.css +1 -1
  218. package/dist/web/components/Pagination.d.ts +13 -13
  219. package/dist/web/components/Pagination.js +1 -1
  220. package/dist/web/components/Pagination.js.map +1 -1
  221. package/dist/web/components/Pagination.js.zyzz.json +1 -1
  222. package/dist/web/components/Popover.css +1 -1
  223. package/dist/web/components/Popover.d.ts.map +1 -1
  224. package/dist/web/components/Popover.js +1 -1
  225. package/dist/web/components/Popover.js.map +1 -1
  226. package/dist/web/components/Popover.js.zyzz.json +1 -1
  227. package/dist/web/components/Progress.css +1 -1
  228. package/dist/web/components/Progress.js.map +1 -1
  229. package/dist/web/components/Progress.js.zyzz.json +1 -1
  230. package/dist/web/components/Qr.js.zyzz.json +1 -1
  231. package/dist/web/components/RadioGroup.css +1 -1
  232. package/dist/web/components/RadioGroup.d.ts +4 -4
  233. package/dist/web/components/RadioGroup.js.map +1 -1
  234. package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
  235. package/dist/web/components/Rows.css +1 -1
  236. package/dist/web/components/Rows.d.ts +7 -7
  237. package/dist/web/components/Rows.d.ts.map +1 -1
  238. package/dist/web/components/Rows.js +3 -3
  239. package/dist/web/components/Rows.js.map +1 -1
  240. package/dist/web/components/Rows.js.zyzz.json +1 -1
  241. package/dist/web/components/SecretValue.css +1 -1
  242. package/dist/web/components/SecretValue.d.ts +4 -4
  243. package/dist/web/components/SecretValue.js +1 -1
  244. package/dist/web/components/SecretValue.js.map +1 -1
  245. package/dist/web/components/SecretValue.js.zyzz.json +1 -1
  246. package/dist/web/components/Select.css +1 -1
  247. package/dist/web/components/Select.js.map +1 -1
  248. package/dist/web/components/Select.js.zyzz.json +1 -1
  249. package/dist/web/components/Separator.js.zyzz.json +1 -1
  250. package/dist/web/components/SidebarMenu.css +1 -1
  251. package/dist/web/components/SidebarMenu.d.ts +11 -11
  252. package/dist/web/components/SidebarMenu.d.ts.map +1 -1
  253. package/dist/web/components/SidebarMenu.js +1 -1
  254. package/dist/web/components/SidebarMenu.js.map +1 -1
  255. package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
  256. package/dist/web/components/Skeleton.js.zyzz.json +1 -1
  257. package/dist/web/components/Slider.css +1 -1
  258. package/dist/web/components/Slider.d.ts.map +1 -1
  259. package/dist/web/components/Slider.js.map +1 -1
  260. package/dist/web/components/Slider.js.zyzz.json +1 -1
  261. package/dist/web/components/Snippet.css +1 -1
  262. package/dist/web/components/Snippet.d.ts +4 -4
  263. package/dist/web/components/Snippet.js +2 -2
  264. package/dist/web/components/Snippet.js.map +1 -1
  265. package/dist/web/components/Snippet.js.zyzz.json +1 -1
  266. package/dist/web/components/Spinner.js.zyzz.json +1 -1
  267. package/dist/web/components/SplitButton.css +1 -1
  268. package/dist/web/components/SplitButton.d.ts.map +1 -1
  269. package/dist/web/components/SplitButton.js +1 -1
  270. package/dist/web/components/SplitButton.js.map +1 -1
  271. package/dist/web/components/SplitButton.js.zyzz.json +1 -1
  272. package/dist/web/components/Stack.js.zyzz.json +1 -1
  273. package/dist/web/components/Stepper.css +1 -1
  274. package/dist/web/components/Stepper.d.ts +1 -1
  275. package/dist/web/components/Stepper.js.map +1 -1
  276. package/dist/web/components/Stepper.js.zyzz.json +1 -1
  277. package/dist/web/components/Surface.css +1 -1
  278. package/dist/web/components/Surface.d.ts +46 -46
  279. package/dist/web/components/Surface.js +2 -2
  280. package/dist/web/components/Surface.js.map +1 -1
  281. package/dist/web/components/Surface.js.zyzz.json +1 -1
  282. package/dist/web/components/Switch.css +1 -1
  283. package/dist/web/components/Switch.d.ts +14 -14
  284. package/dist/web/components/Switch.d.ts.map +1 -1
  285. package/dist/web/components/Switch.js.map +1 -1
  286. package/dist/web/components/Switch.js.zyzz.json +1 -1
  287. package/dist/web/components/Table.css +1 -1
  288. package/dist/web/components/Table.d.ts +10 -7
  289. package/dist/web/components/Table.d.ts.map +1 -1
  290. package/dist/web/components/Table.js +5 -2
  291. package/dist/web/components/Table.js.map +1 -1
  292. package/dist/web/components/Table.js.zyzz.json +1 -1
  293. package/dist/web/components/Tabs.css +1 -1
  294. package/dist/web/components/Tabs.d.ts +14 -14
  295. package/dist/web/components/Tabs.js +1 -1
  296. package/dist/web/components/Tabs.js.map +1 -1
  297. package/dist/web/components/Tabs.js.zyzz.json +1 -1
  298. package/dist/web/components/Tag.css +1 -1
  299. package/dist/web/components/Tag.d.ts +10 -10
  300. package/dist/web/components/Tag.js +1 -1
  301. package/dist/web/components/Tag.js.map +1 -1
  302. package/dist/web/components/Tag.js.zyzz.json +1 -1
  303. package/dist/web/components/Textarea.css +1 -1
  304. package/dist/web/components/Textarea.d.ts +15 -15
  305. package/dist/web/components/Textarea.js.map +1 -1
  306. package/dist/web/components/Textarea.js.zyzz.json +1 -1
  307. package/dist/web/components/Toast.css +1 -1
  308. package/dist/web/components/Toast.d.ts.map +1 -1
  309. package/dist/web/components/Toast.js +7 -3
  310. package/dist/web/components/Toast.js.map +1 -1
  311. package/dist/web/components/Toast.js.zyzz.json +1 -1
  312. package/dist/web/components/Token.js.zyzz.json +1 -1
  313. package/dist/web/components/Tooltip.css +1 -1
  314. package/dist/web/components/Tooltip.d.ts.map +1 -1
  315. package/dist/web/components/Tooltip.js +1 -1
  316. package/dist/web/components/Tooltip.js.map +1 -1
  317. package/dist/web/components/Tooltip.js.zyzz.json +1 -1
  318. package/dist/web/components/internal/Field.css +1 -1
  319. package/dist/web/components/internal/Field.d.ts +7 -7
  320. package/dist/web/components/internal/Field.js.map +1 -1
  321. package/dist/web/components/internal/Field.js.zyzz.json +1 -1
  322. package/dist/web/components/internal/InputGroup.css +1 -1
  323. package/dist/web/components/internal/InputGroup.d.ts +12 -12
  324. package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
  325. package/dist/web/components/internal/InputGroup.js +1 -1
  326. package/dist/web/components/internal/InputGroup.js.map +1 -1
  327. package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
  328. package/dist/web/components/internal/Listbox.css +1 -1
  329. package/dist/web/components/internal/Listbox.d.ts +9 -9
  330. package/dist/web/components/internal/Listbox.d.ts.map +1 -1
  331. package/dist/web/components/internal/Listbox.js +1 -1
  332. package/dist/web/components/internal/Listbox.js.map +1 -1
  333. package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
  334. package/dist/web/icons/BadgeX.d.ts.map +1 -1
  335. package/dist/web/icons/BadgeX.js.map +1 -1
  336. package/dist/web/icons/InfinityIcon.d.ts.map +1 -1
  337. package/dist/web/icons/InfinityIcon.js.map +1 -1
  338. package/dist/web/icons/LightMode.d.ts.map +1 -1
  339. package/dist/web/icons/LightMode.js.map +1 -1
  340. package/dist/web/icons/OctagonAlert.d.ts.map +1 -1
  341. package/dist/web/icons/OctagonAlert.js.map +1 -1
  342. package/dist/web/icons/Unlink.d.ts.map +1 -1
  343. package/dist/web/icons/Unlink.js.map +1 -1
  344. package/dist/web/index.js.zyzz.json +1 -1
  345. package/dist/web/vars.d.ts +91 -0
  346. package/dist/web/vars.d.ts.map +1 -1
  347. package/dist/web/vars.js.map +1 -1
  348. package/dist/web/vars.js.zyzz.json +1 -1
  349. package/dist/web/zyzz.config.d.ts +455 -0
  350. package/dist/web/zyzz.config.d.ts.map +1 -1
  351. package/dist/web/zyzz.config.js.zyzz.json +1 -1
  352. package/package.json +7 -1
  353. package/src/mobile/components/Avatar.tsx +2 -2
  354. package/src/mobile/components/Button.tsx +6 -3
  355. package/src/mobile/components/CodeInput.tsx +2 -2
  356. package/src/mobile/components/IconButton.tsx +6 -3
  357. package/src/mobile/components/Skeleton.tsx +1 -1
  358. package/src/mobile/components/Spinner.tsx +4 -5
  359. package/src/mobile/components/TextButton.tsx +6 -2
  360. package/src/mobile/components/TextInput.tsx +1 -1
  361. package/src/mobile/components/Toast.tsx +1 -2
  362. package/src/mobile/components/Toggle.tsx +2 -2
  363. package/src/mobile/vars.ts +14 -0
  364. package/src/oxlint/index.ts +89 -0
  365. package/src/oxlint/internal/Imports.ts +68 -0
  366. package/src/oxlint/rules/NoCrossSurface.ts +71 -0
  367. package/src/oxlint/rules/NoInternalImports.ts +25 -0
  368. package/src/oxlint/rules/NoRawValues.ts +76 -0
  369. package/src/oxlint/rules/PreferComponent.ts +113 -0
  370. package/src/oxlint/rules/RequireAccessibleName.ts +132 -0
  371. package/src/web/components/Accordion.tsx +8 -8
  372. package/src/web/components/AlertDialog.tsx +11 -8
  373. package/src/web/components/Amount.tsx +29 -9
  374. package/src/web/components/AmountInput.tsx +60 -24
  375. package/src/web/components/AppShell.tsx +23 -23
  376. package/src/web/components/Avatar.tsx +3 -3
  377. package/src/web/components/Banner.tsx +16 -16
  378. package/src/web/components/Breadcrumbs.tsx +4 -4
  379. package/src/web/components/Button.tsx +15 -12
  380. package/src/web/components/Calendar.tsx +10 -11
  381. package/src/web/components/Callout.tsx +19 -16
  382. package/src/web/components/Checkbox.tsx +9 -9
  383. package/src/web/components/ChoiceGroup.tsx +13 -14
  384. package/src/web/components/Choicebox.tsx +21 -21
  385. package/src/web/components/Combobox.tsx +3 -3
  386. package/src/web/components/DatePicker.tsx +25 -25
  387. package/src/web/components/Dialog.tsx +28 -19
  388. package/src/web/components/Drawer.tsx +8 -8
  389. package/src/web/components/Field.tsx +46 -11
  390. package/src/web/components/Frame.tsx +30 -9
  391. package/src/web/components/Gauge.tsx +1 -1
  392. package/src/web/components/Hex.tsx +5 -5
  393. package/src/web/components/IconChip.tsx +1 -1
  394. package/src/web/components/Input.tsx +11 -11
  395. package/src/web/components/Kbd.tsx +77 -21
  396. package/src/web/components/LoadingDots.tsx +4 -4
  397. package/src/web/components/Menu.tsx +17 -14
  398. package/src/web/components/NumberField.tsx +17 -17
  399. package/src/web/components/OtpField.tsx +14 -6
  400. package/src/web/components/Pagination.tsx +13 -13
  401. package/src/web/components/Popover.tsx +14 -11
  402. package/src/web/components/Progress.tsx +2 -2
  403. package/src/web/components/RadioGroup.tsx +11 -11
  404. package/src/web/components/Rows.tsx +8 -9
  405. package/src/web/components/SecretValue.tsx +4 -4
  406. package/src/web/components/Select.tsx +2 -2
  407. package/src/web/components/SidebarMenu.tsx +14 -15
  408. package/src/web/components/Slider.tsx +6 -7
  409. package/src/web/components/Snippet.tsx +9 -9
  410. package/src/web/components/SplitButton.tsx +17 -5
  411. package/src/web/components/Stepper.tsx +1 -1
  412. package/src/web/components/Surface.tsx +47 -47
  413. package/src/web/components/Switch.tsx +21 -23
  414. package/src/web/components/Table.tsx +11 -7
  415. package/src/web/components/Tabs.tsx +14 -14
  416. package/src/web/components/Tag.tsx +12 -12
  417. package/src/web/components/Textarea.tsx +15 -15
  418. package/src/web/components/Toast.tsx +28 -21
  419. package/src/web/components/Tooltip.tsx +12 -9
  420. package/src/web/components/internal/Field.ts +20 -20
  421. package/src/web/components/internal/InputGroup.ts +13 -14
  422. package/src/web/components/internal/Listbox.ts +19 -16
  423. package/src/web/icons/BadgeX.tsx +1 -1
  424. package/src/web/icons/InfinityIcon.tsx +1 -1
  425. package/src/web/icons/LightMode.tsx +1 -1
  426. package/src/web/icons/OctagonAlert.tsx +1 -1
  427. package/src/web/icons/Unlink.tsx +1 -1
  428. package/src/web/vars.ts +81 -2
@@ -1,7 +1,7 @@
1
1
  import * as BaseUi from '@base-ui/react/button'
2
2
  import type { ComponentPropsWithRef } from 'react'
3
3
  import type * as zyzz from 'zyzz'
4
- import { Close } from '../icons/index.js'
4
+ import { Close } from '../icons/Close.js'
5
5
  import { style, variants } from '../zyzz.config.js'
6
6
 
7
7
  /**
@@ -102,28 +102,28 @@ namespace styles {
102
102
  flexShrink: '0 !custom',
103
103
  // Inline padding keeps the focus ring off the label. The matching negative margin holds the label
104
104
  // where it sits without padding.
105
- marginInline: '-4px !custom',
105
+ marginInline: '-4',
106
106
  outlineColor: 'transparent !custom',
107
- outlineOffset: '0px !custom',
107
+ outlineOffset: '0',
108
108
  outlineStyle: 'solid !custom',
109
- outlineWidth: '2px !custom',
109
+ outlineWidth: '2',
110
110
  paddingBlock: '0',
111
111
  paddingInline: '4',
112
112
  textDecoration: 'underline !custom',
113
113
  textUnderlineOffset: '2px !custom',
114
- transitionDuration: '160ms',
115
- transitionProperty: 'outline-color, outline-offset, text-decoration-color, transform',
114
+ transitionDuration: '160',
115
+ transitionProperty: 'outline-color, outline-offset, text-decoration-color, scale',
116
116
  transitionTimingFunction: 'snappy',
117
117
  typography: 'copy.14.strong',
118
118
  whiteSpace: 'nowrap',
119
119
  selectors: {
120
- '&:active': { transform: 'scale(0.97) !custom' },
121
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
120
+ '&:active': { scale: 'press' },
121
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
122
122
  '&:hover': { textDecorationColor: 'transparent !custom' },
123
123
  },
124
124
  '@media (prefers-reduced-motion: reduce)': {
125
125
  transitionProperty: 'outline-color, text-decoration-color',
126
- selectors: { '&:active': { transform: 'none !custom' } },
126
+ selectors: { '&:active': { scale: 'none !custom' } },
127
127
  },
128
128
  },
129
129
  { id: 'tds/web/banner/action' },
@@ -179,24 +179,24 @@ namespace styles {
179
179
  insetInlineEnd: '8',
180
180
  justifyContent: 'center',
181
181
  outlineColor: 'transparent !custom',
182
- outlineOffset: '0px !custom',
182
+ outlineOffset: '0',
183
183
  outlineStyle: 'solid !custom',
184
- outlineWidth: '2px !custom',
184
+ outlineWidth: '2',
185
185
  padding: '0',
186
186
  position: 'absolute',
187
- transitionDuration: '160ms',
188
- transitionProperty: 'background-color, outline-color, outline-offset, transform',
187
+ transitionDuration: '160',
188
+ transitionProperty: 'background-color, outline-color, outline-offset, scale',
189
189
  transitionTimingFunction: 'snappy',
190
190
  translate: '0 -50% !custom',
191
191
  width: '32',
192
192
  selectors: {
193
- '&:active': { transform: 'scale(0.94) !custom' },
194
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
193
+ '&:active': { scale: 'press' },
194
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
195
195
  '&:hover': { backgroundColor: 'grayAlpha.200' },
196
196
  },
197
197
  '@media (prefers-reduced-motion: reduce)': {
198
198
  transitionProperty: 'background-color, outline-color',
199
- selectors: { '&:active': { transform: 'none !custom' } },
199
+ selectors: { '&:active': { scale: 'none !custom' } },
200
200
  },
201
201
  },
202
202
  { id: 'tds/web/banner/dismiss' },
@@ -101,17 +101,17 @@ namespace styles {
101
101
  borderRadius: '6',
102
102
  color: 'gray.900',
103
103
  outlineColor: 'transparent !custom',
104
- outlineOffset: '0px !custom',
104
+ outlineOffset: '0',
105
105
  outlineStyle: 'solid !custom',
106
- outlineWidth: '2px !custom',
106
+ outlineWidth: '2',
107
107
  textDecoration: 'none !custom',
108
- transitionDuration: '160ms',
108
+ transitionDuration: '160',
109
109
  transitionProperty: 'color, outline-color, outline-offset',
110
110
  transitionTimingFunction: 'snappy',
111
111
  // Weight overrides the typography token, so it stays after it.
112
112
  typography: 'copy.14',
113
113
  selectors: {
114
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
114
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
115
115
  '&:hover:is(a)': { color: 'foreground' },
116
116
  },
117
117
  '@media (prefers-reduced-motion: reduce)': { transitionProperty: 'color, outline-color' },
@@ -10,7 +10,7 @@ import { Spinner } from './Spinner.js'
10
10
  * shows a blue outline on keyboard focus.
11
11
  *
12
12
  * - Use `Button` for actions and `Button.Link` for navigation.
13
- * - Label with a specific verb, such as Send payment. Give `shape="icon"` buttons an `aria-label`.
13
+ * - Label with a specific verb, such as Send payment. Give `shape="icon"` buttons, which render as circles, an `aria-label`.
14
14
  * - Keep one `primary` button per view or section. Reserve `negative` for destructive actions.
15
15
  * - Set `focusableWhenDisabled` when a disabled button needs to stay reachable while nearby text
16
16
  * explains why it is unavailable.
@@ -102,23 +102,23 @@ namespace styles {
102
102
  display: 'inline-flex',
103
103
  justifyContent: 'center',
104
104
  outlineColor: 'transparent !custom',
105
- outlineOffset: '2px !custom',
105
+ outlineOffset: '2',
106
106
  outlineStyle: 'solid !custom',
107
- outlineWidth: '2px !custom',
107
+ outlineWidth: '2',
108
108
  position: 'relative',
109
109
  textDecoration: 'none !custom',
110
- transitionDuration: '160ms !custom',
110
+ transitionDuration: '160',
111
111
  transitionProperty:
112
- 'background-color, box-shadow, color, opacity, outline-color, transform !custom',
112
+ 'background-color, box-shadow, color, opacity, outline-color, scale !custom',
113
113
  transitionTimingFunction: 'snappy',
114
114
  userSelect: 'none',
115
115
  whiteSpace: 'nowrap',
116
116
  selectors: {
117
117
  '&:active:not(:disabled)': {
118
- transform: 'scale(0.97) !custom',
119
- transitionDuration: '100ms !custom',
118
+ scale: 'press',
119
+ transitionDuration: '100',
120
120
  },
121
- '&:disabled': { cursor: 'default', opacity: '0.4 !custom' },
121
+ '&:disabled': { cursor: 'default', opacity: 'disabled' },
122
122
  '&:focus-visible': { outlineColor: 'blue.700' },
123
123
  '&[data-loading]': { opacity: '1 !custom' },
124
124
  },
@@ -128,10 +128,13 @@ namespace styles {
128
128
  },
129
129
  '@media (prefers-reduced-motion: reduce)': {
130
130
  transitionProperty: 'background-color, color, opacity, outline-color !custom',
131
- selectors: { '&:active:not(:disabled)': { transform: 'none !custom' } },
131
+ selectors: { '&:active:not(:disabled)': { scale: 'none !custom' } },
132
132
  },
133
133
  },
134
- compoundVariants: [{ when: { shape: 'icon' }, style: { paddingInline: '0' } }],
134
+ // Icon buttons are circles at every size, so the shape outranks the size radius and padding.
135
+ compoundVariants: [
136
+ { when: { shape: 'icon' }, style: { borderRadius: 'full', paddingInline: '0' } },
137
+ ],
135
138
  defaultVariants: { shape: 'default', size: 'medium', variant: 'primary' },
136
139
  variants: {
137
140
  shape: {
@@ -171,7 +174,7 @@ namespace styles {
171
174
  'linear-gradient(rgb(255 255 255 / 0.08), rgb(255 255 255 / 0)) !custom',
172
175
  boxShadow: 'raised',
173
176
  color: 'background.primary',
174
- selectors: { '&:hover:not(:disabled)': { opacity: '0.86 !custom' } },
177
+ selectors: { '&:hover:not(:disabled)': { opacity: 'hover' } },
175
178
  },
176
179
  // Matches the Input field fill.
177
180
  secondary: {
@@ -199,7 +202,7 @@ namespace styles {
199
202
  alignItems: 'inherit !custom',
200
203
  columnGap: 'inherit !custom',
201
204
  display: 'inline-flex',
202
- transitionDuration: '160ms !custom',
205
+ transitionDuration: '160',
203
206
  transitionProperty: 'opacity, visibility !custom',
204
207
  transitionTimingFunction: 'snappy',
205
208
  },
@@ -165,12 +165,11 @@ export function Calendar(props: Calendar.Props) {
165
165
  if (!target) return
166
166
 
167
167
  event.preventDefault()
168
- const clamped =
169
- min !== undefined && key(target) < key(min)
170
- ? min
171
- : max !== undefined && key(target) > key(max)
172
- ? max
173
- : target
168
+ const clamped = (() => {
169
+ if (min !== undefined && key(target) < key(min)) return min
170
+ if (max !== undefined && key(target) > key(max)) return max
171
+ return target
172
+ })()
174
173
  pendingFocus.current = true
175
174
  setFocused(clamped)
176
175
  if (!sameMonth(clamped, month)) showMonth(clamped)
@@ -458,12 +457,12 @@ namespace styles {
458
457
  height: '40',
459
458
  justifyContent: 'center',
460
459
  outlineColor: 'transparent !custom',
461
- outlineOffset: '0px !custom',
460
+ outlineOffset: '0',
462
461
  outlineStyle: 'solid !custom',
463
- outlineWidth: '2px !custom',
462
+ outlineWidth: '2',
464
463
  padding: '0',
465
464
  position: 'relative',
466
- transitionDuration: '160ms',
465
+ transitionDuration: '160',
467
466
  transitionProperty:
468
467
  'background-color, color, opacity, outline-color, outline-offset, transform',
469
468
  transitionTimingFunction: 'snappy',
@@ -471,11 +470,11 @@ namespace styles {
471
470
  width: '40',
472
471
  selectors: {
473
472
  '&:active:not([aria-disabled="true"])': { transform: 'scale(0.96) !custom' },
474
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
473
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
475
474
  '&:hover:not([aria-disabled="true"]):not([data-selected])': {
476
475
  backgroundColor: 'grayAlpha.200',
477
476
  },
478
- '&[aria-disabled="true"]': { cursor: 'default', opacity: '0.4 !custom' },
477
+ '&[aria-disabled="true"]': { cursor: 'default', opacity: 'disabled' },
479
478
  '&[data-selected]': { backgroundColor: 'foreground', color: 'background.primary' },
480
479
  '&[data-today]::after': {
481
480
  backgroundColor: 'blue.700',
@@ -2,7 +2,10 @@ import * as BaseUi from '@base-ui/react/button'
2
2
  import { createContext, useContext } from 'react'
3
3
  import type { ComponentPropsWithRef } from 'react'
4
4
  import type * as zyzz from 'zyzz'
5
- import { AlertCircle, AlertTriangle, CheckCircle, InfoCircle } from '../icons/index.js'
5
+ import { AlertCircle } from '../icons/AlertCircle.js'
6
+ import { AlertTriangle } from '../icons/AlertTriangle.js'
7
+ import { CheckCircle } from '../icons/CheckCircle.js'
8
+ import { InfoCircle } from '../icons/InfoCircle.js'
6
9
  import { style, variants } from '../zyzz.config.js'
7
10
 
8
11
  type Intent = NonNullable<zyzz.Props.Variants<typeof styles.note>['intent']>
@@ -129,30 +132,30 @@ namespace styles {
129
132
  flexShrink: '0 !custom',
130
133
  // Inline padding keeps the focus ring off the label. The negative end margin holds the label at
131
134
  // the callout's edge.
132
- marginInlineEnd: '-4px !custom',
135
+ marginInlineEnd: '-4',
133
136
  marginInlineStart: 'auto !custom',
134
137
  outlineColor: 'transparent !custom',
135
- outlineOffset: '0px !custom',
138
+ outlineOffset: '0',
136
139
  outlineStyle: 'solid !custom',
137
- outlineWidth: '2px !custom',
140
+ outlineWidth: '2',
138
141
  paddingBlock: '0',
139
142
  paddingInline: '4',
140
143
  textDecoration: 'underline !custom',
141
144
  textUnderlineOffset: '2px !custom',
142
- transitionDuration: '160ms',
143
- transitionProperty: 'outline-color, outline-offset, text-decoration-color, transform',
145
+ transitionDuration: '160',
146
+ transitionProperty: 'outline-color, outline-offset, text-decoration-color, scale',
144
147
  transitionTimingFunction: 'snappy',
145
148
  // The shorthand takes the callout's type, so actions match the message text.
146
149
  font: 'inherit !custom',
147
150
  whiteSpace: 'nowrap',
148
151
  selectors: {
149
- '&:active': { transform: 'scale(0.97) !custom' },
150
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
152
+ '&:active': { scale: 'press' },
153
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
151
154
  '&:hover': { textDecorationColor: 'transparent !custom' },
152
155
  },
153
156
  '@media (prefers-reduced-motion: reduce)': {
154
157
  transitionProperty: 'outline-color, text-decoration-color',
155
- selectors: { '&:active': { transform: 'none !custom' } },
158
+ selectors: { '&:active': { scale: 'none !custom' } },
156
159
  },
157
160
  },
158
161
  { id: 'tds/web/callout/action' },
@@ -164,7 +167,7 @@ namespace styles {
164
167
  selectors: {
165
168
  // The action's start padding would narrow the message, so the message gives the 4px back
166
169
  // and wraps at the same point.
167
- '&:not(:last-child)': { marginInlineEnd: '-4px !custom' },
170
+ '&:not(:last-child)': { marginInlineEnd: '-4' },
168
171
  },
169
172
  },
170
173
  { id: 'tds/web/callout/content' },
@@ -198,10 +201,10 @@ namespace styles {
198
201
  // Light mode takes step 300, since step 100 nearly matches the page background. Dark mode
199
202
  // keeps step 100, which already stands apart from the page while keeping the text legible.
200
203
  intent: {
201
- info: { backgroundColor: 'light-dark(#e6eefe, #161b29) !custom', color: 'blue.900' },
202
- negative: { backgroundColor: 'light-dark(#ffe6e0, #2a1410) !custom', color: 'red.900' },
203
- positive: { backgroundColor: 'light-dark(#d3f8df, #052315) !custom', color: 'green.900' },
204
- warning: { backgroundColor: 'light-dark(#ffede2, #2d1504) !custom', color: 'amber.900' },
204
+ info: { backgroundColor: 'background.info', color: 'blue.900' },
205
+ negative: { backgroundColor: 'background.negative', color: 'red.900' },
206
+ positive: { backgroundColor: 'background.positive', color: 'green.900' },
207
+ warning: { backgroundColor: 'background.warning', color: 'amber.900' },
205
208
  },
206
209
  shape: {
207
210
  default: {},
@@ -218,7 +221,7 @@ namespace styles {
218
221
  },
219
222
  medium: {
220
223
  columnGap: '12',
221
- paddingBlock: '10px !custom',
224
+ paddingBlock: '10',
222
225
  paddingInline: '16',
223
226
  typography: 'copy.14',
224
227
  selectors: { '& [data-callout-icon]': { fontSize: '16', height: '20' } },
@@ -228,7 +231,7 @@ namespace styles {
228
231
  paddingBlock: '7px !custom',
229
232
  paddingInline: '12',
230
233
  typography: 'copy.13',
231
- selectors: { '& [data-callout-icon]': { fontSize: '14', height: '18px !custom' } },
234
+ selectors: { '& [data-callout-icon]': { fontSize: '14', height: '18' } },
232
235
  },
233
236
  },
234
237
  },
@@ -87,27 +87,27 @@ namespace styles {
87
87
  flexShrink: '0 !custom',
88
88
  justifyContent: 'center',
89
89
  outlineColor: 'transparent !custom',
90
- outlineOffset: '0px !custom',
90
+ outlineOffset: '0',
91
91
  outlineStyle: 'solid !custom',
92
- outlineWidth: '2px !custom',
92
+ outlineWidth: '2',
93
93
  padding: '0',
94
94
  position: 'relative',
95
- transitionDuration: '160ms',
95
+ transitionDuration: '160',
96
96
  transitionProperty: 'background-color, opacity, outline-color, outline-offset, transform',
97
97
  transitionTimingFunction: 'snappy',
98
98
  selectors: {
99
- '&::after': { content: '"" !custom', inset: '-10px !custom', position: 'absolute' },
99
+ '&::after': { content: '"" !custom', inset: '-10', position: 'absolute' },
100
100
  '&:active:not([data-disabled])': { transform: 'scale(0.96) !custom' },
101
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
101
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
102
102
  '&:hover:not([data-disabled])': { backgroundColor: 'grayAlpha.400' },
103
103
  '&[data-checked], &[data-indeterminate]': { backgroundColor: 'foreground' },
104
104
  '&[data-checked]:hover:not([data-disabled]), &[data-indeterminate]:hover:not([data-disabled])':
105
- { backgroundColor: 'foreground', opacity: '0.86 !custom' },
106
- '&[data-disabled]': { cursor: 'default', opacity: '0.4 !custom' },
105
+ { backgroundColor: 'foreground', opacity: 'hover' },
106
+ '&[data-disabled]': { cursor: 'default', opacity: 'disabled' },
107
107
  '&[data-invalid]': {
108
108
  outlineColor: 'red.800',
109
109
  outlineStyle: 'solid !custom',
110
- outlineWidth: '1px !custom',
110
+ outlineWidth: '1',
111
111
  },
112
112
  },
113
113
  '@media (prefers-reduced-motion: reduce)': {
@@ -146,7 +146,7 @@ namespace styles {
146
146
  export const indicator = style(
147
147
  {
148
148
  display: 'flex',
149
- transitionDuration: '200ms',
149
+ transitionDuration: '200',
150
150
  transitionProperty: 'opacity, transform',
151
151
  transitionTimingFunction: 'overshoot',
152
152
  selectors: {
@@ -3,7 +3,7 @@ import * as BaseUi from '@base-ui/react/radio'
3
3
  import * as BaseUiGroup from '@base-ui/react/radio-group'
4
4
  import { type ComponentPropsWithRef, useCallback, useLayoutEffect, useRef } from 'react'
5
5
  import type * as zyzz from 'zyzz'
6
- import { style, variants } from '../zyzz.config.js'
6
+ import { style, variants, vars } from '../zyzz.config.js'
7
7
 
8
8
  /**
9
9
  * A single-select segmented control built on Base UI Radio Group. The root has
@@ -195,27 +195,26 @@ namespace styles {
195
195
  flexShrink: '0 !custom',
196
196
  justifyContent: 'center',
197
197
  outlineColor: 'transparent !custom',
198
- outlineOffset: '0px !custom',
198
+ outlineOffset: '0',
199
199
  outlineStyle: 'solid !custom',
200
- outlineWidth: '2px !custom',
200
+ outlineWidth: '2',
201
201
  position: 'relative',
202
- transitionDuration: '160ms',
203
- transitionProperty:
204
- 'background-color, color, opacity, outline-color, outline-offset, transform',
202
+ transitionDuration: '160',
203
+ transitionProperty: 'background-color, color, opacity, outline-color, outline-offset, scale',
205
204
  transitionTimingFunction: 'snappy',
206
205
  userSelect: 'none',
207
206
  whiteSpace: 'nowrap',
208
207
  zIndex: '1 !custom',
209
208
  selectors: {
210
- '&:active:not([data-disabled])': { transform: 'scale(0.97) !custom' },
211
- '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2px !custom' },
209
+ '&:active:not([data-disabled])': { scale: 'press' },
210
+ '&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
212
211
  '&:hover:not([data-disabled])': { color: 'foreground' },
213
212
  '&[data-checked]': { color: 'foreground' },
214
- '&[data-disabled]': { cursor: 'default', opacity: '0.4 !custom' },
213
+ '&[data-disabled]': { cursor: 'default', opacity: 'disabled' },
215
214
  },
216
215
  '@media (prefers-reduced-motion: reduce)': {
217
216
  transitionProperty: 'background-color, color, opacity, outline-color',
218
- selectors: { '&:active:not([data-disabled])': { transform: 'none !custom' } },
217
+ selectors: { '&:active:not([data-disabled])': { scale: 'none !custom' } },
219
218
  },
220
219
  },
221
220
  { id: 'tds/web/choice-group/item' },
@@ -223,7 +222,7 @@ namespace styles {
223
222
 
224
223
  export const pill = style(
225
224
  {
226
- backgroundColor: 'light-dark(white, rgb(255 255 255 / 0.16)) !custom',
225
+ backgroundColor: 'background.indicator',
227
226
  boxShadow: 'raised',
228
227
  boxSizing: 'border-box',
229
228
  insetBlock: '4',
@@ -232,7 +231,7 @@ namespace styles {
232
231
  selectors: {
233
232
  // The pill matches each item's width, so it transitions width with its position.
234
233
  '&[data-ready]': {
235
- transitionDuration: '240ms',
234
+ transitionDuration: '240',
236
235
  transitionProperty: 'transform, width',
237
236
  transitionTimingFunction: 'spring',
238
237
  },
@@ -315,8 +314,8 @@ namespace styles {
315
314
  chips: {
316
315
  columnGap: '8',
317
316
  height: 'auto !custom',
318
- margin: '-4px !custom',
319
- maxWidth: 'calc(100% + 8px) !custom',
317
+ margin: '-4',
318
+ maxWidth: `calc(100% + ${vars.spacing['8']}) !custom`,
320
319
  overflowX: 'auto',
321
320
  padding: '4',
322
321
  scrollbarWidth: 'none !custom',
@@ -301,7 +301,7 @@ namespace styles {
301
301
  {
302
302
  display: 'inline-flex',
303
303
  fontSize: '14',
304
- transitionDuration: '200ms',
304
+ transitionDuration: '200',
305
305
  transitionProperty: 'opacity, transform',
306
306
  transitionTimingFunction: 'overshoot',
307
307
  selectors: {
@@ -340,7 +340,7 @@ namespace styles {
340
340
  height: '20',
341
341
  justifyContent: 'center',
342
342
  padding: '0',
343
- transitionDuration: '160ms',
343
+ transitionDuration: '160',
344
344
  transitionProperty: 'background-color, border-color',
345
345
  transitionTimingFunction: 'snappy',
346
346
  width: '20',
@@ -387,7 +387,7 @@ namespace styles {
387
387
  borderRadius: 'full',
388
388
  height: '8',
389
389
  width: '8',
390
- transitionDuration: '200ms',
390
+ transitionDuration: '200',
391
391
  transitionProperty: 'opacity, transform',
392
392
  transitionTimingFunction: 'overshoot',
393
393
  selectors: {
@@ -437,7 +437,7 @@ namespace styles {
437
437
  '& [data-choicebox-description]': { typography: 'copy.15' },
438
438
  '& :is([role="checkbox"], [role="radio"])': { height: '24', width: '24' },
439
439
  '& [role="checkbox"]': { borderRadius: '8' },
440
- '& [role="radio"] > span': { height: '10px !custom', width: '10px !custom' },
440
+ '& [role="radio"] > span': { height: '10', width: '10' },
441
441
  },
442
442
  },
443
443
  medium: {},
@@ -453,7 +453,7 @@ namespace styles {
453
453
  '& [data-choicebox-description]': { typography: 'copy.13' },
454
454
  '& :is([role="checkbox"], [role="radio"])': { height: '16', width: '16' },
455
455
  '& [role="checkbox"]': { borderRadius: '4' },
456
- '& [role="radio"] > span': { height: '6px !custom', width: '6px !custom' },
456
+ '& [role="radio"] > span': { height: '6', width: '6' },
457
457
  },
458
458
  },
459
459
  },
@@ -476,7 +476,7 @@ namespace styles {
476
476
  height: '20',
477
477
  justifyContent: 'center',
478
478
  padding: '0',
479
- transitionDuration: '160ms',
479
+ transitionDuration: '160',
480
480
  transitionProperty: 'background-color, border-color',
481
481
  transitionTimingFunction: 'snappy',
482
482
  width: '20',
@@ -502,33 +502,33 @@ namespace styles {
502
502
  outlineColor: 'grayAlpha.200',
503
503
  outlineOffset: '-1px !custom',
504
504
  outlineStyle: 'solid !custom',
505
- outlineWidth: '1px !custom',
505
+ outlineWidth: '1',
506
506
  padding: '16',
507
- transitionDuration: '160ms',
508
- transitionProperty: 'opacity, outline-color, outline-offset, outline-width, transform',
507
+ transitionDuration: '160',
508
+ transitionProperty: 'opacity, outline-color, outline-offset, outline-width, scale',
509
509
  transitionTimingFunction: 'snappy',
510
510
  userSelect: 'none',
511
511
  selectors: {
512
- '&:active:not(:has([data-disabled]))': { transform: 'scale(0.98) !custom' },
512
+ '&:active:not(:has([data-disabled]))': { scale: 'press' },
513
513
  '&:hover:not(:disabled, :focus-visible, :has([data-checked], [data-disabled], :focus-visible))':
514
514
  {
515
515
  outlineColor: 'grayAlpha.400',
516
516
  },
517
517
  '&:has(:focus-visible)': {
518
518
  outlineColor: 'blue.700',
519
- outlineOffset: '2px !custom',
520
- outlineWidth: '2px !custom',
519
+ outlineOffset: '2',
520
+ outlineWidth: '2',
521
521
  },
522
522
  '&:has([data-checked])': {
523
523
  outlineColor: 'foreground',
524
- outlineOffset: '-2px !custom',
525
- outlineWidth: '2px !custom',
524
+ outlineOffset: '-2',
525
+ outlineWidth: '2',
526
526
  },
527
527
  '&:has([data-checked]):has(:focus-visible)': {
528
528
  outlineColor: 'blue.700',
529
- outlineOffset: '2px !custom',
529
+ outlineOffset: '2',
530
530
  },
531
- '&:has([data-disabled])': { cursor: 'default', opacity: '0.4 !custom' },
531
+ '&:has([data-disabled])': { cursor: 'default', opacity: 'disabled' },
532
532
  // Button tiles drop native button styles and take their own focus and disabled states.
533
533
  '&:is(button)': {
534
534
  border: 'none !custom',
@@ -538,15 +538,15 @@ namespace styles {
538
538
  },
539
539
  '&:is(button):focus-visible': {
540
540
  outlineColor: 'blue.700',
541
- outlineOffset: '2px !custom',
542
- outlineWidth: '2px !custom',
541
+ outlineOffset: '2',
542
+ outlineWidth: '2',
543
543
  },
544
- '&:is(button):disabled': { cursor: 'default', opacity: '0.4 !custom' },
545
- '&:is(button):disabled:active': { transform: 'none !custom' },
544
+ '&:is(button):disabled': { cursor: 'default', opacity: 'disabled' },
545
+ '&:is(button):disabled:active': { scale: 'none !custom' },
546
546
  },
547
547
  '@media (prefers-reduced-motion: reduce)': {
548
548
  transitionProperty: 'opacity, outline-color, outline-width',
549
- selectors: { '&:active:not(:has([data-disabled]))': { transform: 'none !custom' } },
549
+ selectors: { '&:active:not(:has([data-disabled]))': { scale: 'none !custom' } },
550
550
  },
551
551
  },
552
552
  { id: 'tds/web/choicebox/tile' },
@@ -463,7 +463,7 @@ namespace styles {
463
463
  outline: 'none !custom',
464
464
  paddingInlineEnd: '4',
465
465
  paddingInlineStart: '12',
466
- transitionDuration: '120ms !custom',
466
+ transitionDuration: '120',
467
467
  transitionProperty: 'background-color, color, opacity !custom',
468
468
  transitionTimingFunction: 'snappy',
469
469
  typography: 'copy.14',
@@ -472,7 +472,7 @@ namespace styles {
472
472
  backgroundColor: 'foreground',
473
473
  color: 'background.primary',
474
474
  },
475
- '&[data-disabled]': { opacity: '0.4 !custom' },
475
+ '&[data-disabled]': { opacity: 'disabled' },
476
476
  },
477
477
  },
478
478
  { id: 'tds/web/combobox/chip' },
@@ -492,7 +492,7 @@ namespace styles {
492
492
  justifyContent: 'center',
493
493
  opacity: '0.72 !custom',
494
494
  padding: '0',
495
- transitionDuration: '120ms !custom',
495
+ transitionDuration: '120',
496
496
  transitionProperty: 'opacity, transform !custom',
497
497
  transitionTimingFunction: 'snappy',
498
498
  width: '24',