@mortenbrudvik/waveui 0.4.0 → 0.7.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 (574) hide show
  1. package/README.md +1221 -173
  2. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  3. package/dist/components/button/Button.cjs +2 -0
  4. package/dist/components/button/Button.cjs.map +1 -0
  5. package/dist/components/button/Button.mjs +50 -0
  6. package/dist/components/button/Button.mjs.map +1 -0
  7. package/dist/components/button/Button.semantics.cjs +2 -0
  8. package/dist/components/button/Button.semantics.cjs.map +1 -0
  9. package/dist/components/button/Button.semantics.mjs +61 -0
  10. package/dist/components/button/Button.semantics.mjs.map +1 -0
  11. package/dist/components/button/Button.slots.cjs +2 -0
  12. package/dist/components/button/Button.slots.cjs.map +1 -0
  13. package/dist/components/button/Button.slots.mjs +47 -0
  14. package/dist/components/button/Button.slots.mjs.map +1 -0
  15. package/dist/components/button/CompoundButton.cjs +2 -0
  16. package/dist/components/button/CompoundButton.cjs.map +1 -0
  17. package/dist/components/button/CompoundButton.mjs +53 -0
  18. package/dist/components/button/CompoundButton.mjs.map +1 -0
  19. package/dist/components/button/Link.cjs +2 -0
  20. package/dist/components/button/Link.cjs.map +1 -0
  21. package/dist/components/button/Link.mjs +37 -0
  22. package/dist/components/button/Link.mjs.map +1 -0
  23. package/dist/components/button/MenuButton.cjs +2 -0
  24. package/dist/components/button/MenuButton.cjs.map +1 -0
  25. package/dist/components/button/MenuButton.mjs +45 -0
  26. package/dist/components/button/MenuButton.mjs.map +1 -0
  27. package/dist/components/button/SplitButton.cjs +2 -0
  28. package/dist/components/button/SplitButton.cjs.map +1 -0
  29. package/dist/components/button/SplitButton.mjs +66 -0
  30. package/dist/components/button/SplitButton.mjs.map +1 -0
  31. package/dist/components/button/ToggleButton.cjs +2 -0
  32. package/dist/components/button/ToggleButton.cjs.map +1 -0
  33. package/dist/components/button/ToggleButton.mjs +65 -0
  34. package/dist/components/button/ToggleButton.mjs.map +1 -0
  35. package/dist/components/button/Toolbar.cjs +2 -0
  36. package/dist/components/button/Toolbar.cjs.map +1 -0
  37. package/dist/components/button/Toolbar.context.cjs +2 -0
  38. package/dist/components/button/Toolbar.context.cjs.map +1 -0
  39. package/dist/components/button/Toolbar.context.mjs +31 -0
  40. package/dist/components/button/Toolbar.context.mjs.map +1 -0
  41. package/dist/components/button/Toolbar.mjs +63 -0
  42. package/dist/components/button/Toolbar.mjs.map +1 -0
  43. package/dist/components/button/Toolbar.parts.cjs +2 -0
  44. package/dist/components/button/Toolbar.parts.cjs.map +1 -0
  45. package/dist/components/button/Toolbar.parts.mjs +131 -0
  46. package/dist/components/button/Toolbar.parts.mjs.map +1 -0
  47. package/dist/components/button/buttonStyles.cjs +2 -0
  48. package/dist/components/button/buttonStyles.cjs.map +1 -0
  49. package/dist/components/button/buttonStyles.mjs +39 -0
  50. package/dist/components/button/buttonStyles.mjs.map +1 -0
  51. package/dist/components/data-display/Avatar.cjs +2 -0
  52. package/dist/components/data-display/Avatar.cjs.map +1 -0
  53. package/dist/components/data-display/Avatar.mjs +157 -0
  54. package/dist/components/data-display/Avatar.mjs.map +1 -0
  55. package/dist/components/data-display/AvatarGroup.cjs +2 -0
  56. package/dist/components/data-display/AvatarGroup.cjs.map +1 -0
  57. package/dist/components/data-display/AvatarGroup.mjs +134 -0
  58. package/dist/components/data-display/AvatarGroup.mjs.map +1 -0
  59. package/dist/components/data-display/Badge.cjs +2 -0
  60. package/dist/components/data-display/Badge.cjs.map +1 -0
  61. package/dist/components/data-display/Badge.colors.cjs +2 -0
  62. package/dist/components/data-display/Badge.colors.cjs.map +1 -0
  63. package/dist/components/data-display/Badge.colors.mjs +58 -0
  64. package/dist/components/data-display/Badge.colors.mjs.map +1 -0
  65. package/dist/components/data-display/Badge.mjs +32 -0
  66. package/dist/components/data-display/Badge.mjs.map +1 -0
  67. package/dist/components/data-display/CounterBadge.cjs +2 -0
  68. package/dist/components/data-display/CounterBadge.cjs.map +1 -0
  69. package/dist/components/data-display/CounterBadge.mjs +28 -0
  70. package/dist/components/data-display/CounterBadge.mjs.map +1 -0
  71. package/dist/components/data-display/Divider.cjs +2 -0
  72. package/dist/components/data-display/Divider.cjs.map +1 -0
  73. package/dist/components/data-display/Divider.mjs +52 -0
  74. package/dist/components/data-display/Divider.mjs.map +1 -0
  75. package/dist/components/data-display/Image.cjs +2 -0
  76. package/dist/components/data-display/Image.cjs.map +1 -0
  77. package/dist/components/data-display/Image.mjs +32 -0
  78. package/dist/components/data-display/Image.mjs.map +1 -0
  79. package/dist/components/data-display/InfoLabel.cjs +2 -0
  80. package/dist/components/data-display/InfoLabel.cjs.map +1 -0
  81. package/dist/components/data-display/InfoLabel.mjs +104 -0
  82. package/dist/components/data-display/InfoLabel.mjs.map +1 -0
  83. package/dist/components/data-display/List.cjs +2 -0
  84. package/dist/components/data-display/List.cjs.map +1 -0
  85. package/dist/components/data-display/List.mjs +381 -0
  86. package/dist/components/data-display/List.mjs.map +1 -0
  87. package/dist/components/data-display/List.registry.cjs +2 -0
  88. package/dist/components/data-display/List.registry.cjs.map +1 -0
  89. package/dist/components/data-display/List.registry.mjs +101 -0
  90. package/dist/components/data-display/List.registry.mjs.map +1 -0
  91. package/dist/components/data-display/Persona.cjs +2 -0
  92. package/dist/components/data-display/Persona.cjs.map +1 -0
  93. package/dist/components/data-display/Persona.mjs +48 -0
  94. package/dist/components/data-display/Persona.mjs.map +1 -0
  95. package/dist/components/data-display/PresenceBadge.cjs +2 -0
  96. package/dist/components/data-display/PresenceBadge.cjs.map +1 -0
  97. package/dist/components/data-display/PresenceBadge.mjs +71 -0
  98. package/dist/components/data-display/PresenceBadge.mjs.map +1 -0
  99. package/dist/components/data-display/Tag.cjs +2 -0
  100. package/dist/components/data-display/Tag.cjs.map +1 -0
  101. package/dist/components/data-display/Tag.mjs +147 -0
  102. package/dist/components/data-display/Tag.mjs.map +1 -0
  103. package/dist/components/feedback/MessageBar.cjs +2 -0
  104. package/dist/components/feedback/MessageBar.cjs.map +1 -0
  105. package/dist/components/feedback/MessageBar.mjs +144 -0
  106. package/dist/components/feedback/MessageBar.mjs.map +1 -0
  107. package/dist/components/feedback/MessageBar.status.cjs +2 -0
  108. package/dist/components/feedback/MessageBar.status.cjs.map +1 -0
  109. package/dist/components/feedback/MessageBar.status.mjs +45 -0
  110. package/dist/components/feedback/MessageBar.status.mjs.map +1 -0
  111. package/dist/components/feedback/ProgressBar.cjs +2 -0
  112. package/dist/components/feedback/ProgressBar.cjs.map +1 -0
  113. package/dist/components/feedback/ProgressBar.mjs +72 -0
  114. package/dist/components/feedback/ProgressBar.mjs.map +1 -0
  115. package/dist/components/feedback/Skeleton.cjs +2 -0
  116. package/dist/components/feedback/Skeleton.cjs.map +1 -0
  117. package/dist/components/feedback/Skeleton.mjs +47 -0
  118. package/dist/components/feedback/Skeleton.mjs.map +1 -0
  119. package/dist/components/feedback/Spinner.cjs +2 -0
  120. package/dist/components/feedback/Spinner.cjs.map +1 -0
  121. package/dist/components/feedback/Spinner.mjs +60 -0
  122. package/dist/components/feedback/Spinner.mjs.map +1 -0
  123. package/dist/components/feedback/Toast.cjs +2 -0
  124. package/dist/components/feedback/Toast.cjs.map +1 -0
  125. package/dist/components/feedback/Toast.mjs +347 -0
  126. package/dist/components/feedback/Toast.mjs.map +1 -0
  127. package/dist/components/input/Checkbox.cjs +2 -0
  128. package/dist/components/input/Checkbox.cjs.map +1 -0
  129. package/dist/components/input/Checkbox.mjs +96 -0
  130. package/dist/components/input/Checkbox.mjs.map +1 -0
  131. package/dist/components/input/ColorPicker.cjs +6 -0
  132. package/dist/components/input/ColorPicker.cjs.map +1 -0
  133. package/dist/components/input/ColorPicker.mjs +236 -0
  134. package/dist/components/input/ColorPicker.mjs.map +1 -0
  135. package/dist/components/input/Combobox.cjs +2 -0
  136. package/dist/components/input/Combobox.cjs.map +1 -0
  137. package/dist/components/input/Combobox.expand.cjs +2 -0
  138. package/dist/components/input/Combobox.expand.cjs.map +1 -0
  139. package/dist/components/input/Combobox.expand.mjs +38 -0
  140. package/dist/components/input/Combobox.expand.mjs.map +1 -0
  141. package/dist/components/input/Combobox.mjs +187 -0
  142. package/dist/components/input/Combobox.mjs.map +1 -0
  143. package/dist/components/input/DatePicker.cjs +2 -0
  144. package/dist/components/input/DatePicker.cjs.map +1 -0
  145. package/dist/components/input/DatePicker.mjs +340 -0
  146. package/dist/components/input/DatePicker.mjs.map +1 -0
  147. package/dist/components/input/Dropdown.cjs +2 -0
  148. package/dist/components/input/Dropdown.cjs.map +1 -0
  149. package/dist/components/input/Dropdown.mjs +128 -0
  150. package/dist/components/input/Dropdown.mjs.map +1 -0
  151. package/dist/components/input/Field.cjs +2 -0
  152. package/dist/components/input/Field.cjs.map +1 -0
  153. package/dist/components/input/Field.mjs +200 -0
  154. package/dist/components/input/Field.mjs.map +1 -0
  155. package/dist/components/input/Input.cjs +2 -0
  156. package/dist/components/input/Input.cjs.map +1 -0
  157. package/dist/components/input/Input.mjs +81 -0
  158. package/dist/components/input/Input.mjs.map +1 -0
  159. package/dist/components/input/Label.cjs +2 -0
  160. package/dist/components/input/Label.cjs.map +1 -0
  161. package/dist/components/input/Label.mjs +28 -0
  162. package/dist/components/input/Label.mjs.map +1 -0
  163. package/dist/components/input/Option.cjs +2 -0
  164. package/dist/components/input/Option.cjs.map +1 -0
  165. package/dist/components/input/Option.mjs +169 -0
  166. package/dist/components/input/Option.mjs.map +1 -0
  167. package/dist/components/input/RadioGroup.cjs +2 -0
  168. package/dist/components/input/RadioGroup.cjs.map +1 -0
  169. package/dist/components/input/RadioGroup.mjs +139 -0
  170. package/dist/components/input/RadioGroup.mjs.map +1 -0
  171. package/dist/components/input/Rating.cjs +2 -0
  172. package/dist/components/input/Rating.cjs.map +1 -0
  173. package/dist/components/input/Rating.mjs +196 -0
  174. package/dist/components/input/Rating.mjs.map +1 -0
  175. package/dist/components/input/SearchBox.cjs +2 -0
  176. package/dist/components/input/SearchBox.cjs.map +1 -0
  177. package/dist/components/input/SearchBox.mjs +205 -0
  178. package/dist/components/input/SearchBox.mjs.map +1 -0
  179. package/dist/components/input/Select.cjs +2 -0
  180. package/dist/components/input/Select.cjs.map +1 -0
  181. package/dist/components/input/Select.mjs +33 -0
  182. package/dist/components/input/Select.mjs.map +1 -0
  183. package/dist/components/input/Slider.cjs +2 -0
  184. package/dist/components/input/Slider.cjs.map +1 -0
  185. package/dist/components/input/Slider.mjs +79 -0
  186. package/dist/components/input/Slider.mjs.map +1 -0
  187. package/dist/components/input/SpinButton.cjs +2 -0
  188. package/dist/components/input/SpinButton.cjs.map +1 -0
  189. package/dist/components/input/SpinButton.mjs +157 -0
  190. package/dist/components/input/SpinButton.mjs.map +1 -0
  191. package/dist/components/input/SwatchPicker.cjs +2 -0
  192. package/dist/components/input/SwatchPicker.cjs.map +1 -0
  193. package/dist/components/input/SwatchPicker.mjs +113 -0
  194. package/dist/components/input/SwatchPicker.mjs.map +1 -0
  195. package/dist/components/input/Switch.cjs +2 -0
  196. package/dist/components/input/Switch.cjs.map +1 -0
  197. package/dist/components/input/Switch.mjs +92 -0
  198. package/dist/components/input/Switch.mjs.map +1 -0
  199. package/dist/components/input/TagPicker.cjs +2 -0
  200. package/dist/components/input/TagPicker.cjs.map +1 -0
  201. package/dist/components/input/TagPicker.mjs +249 -0
  202. package/dist/components/input/TagPicker.mjs.map +1 -0
  203. package/dist/components/input/Textarea.cjs +2 -0
  204. package/dist/components/input/Textarea.cjs.map +1 -0
  205. package/dist/components/input/Textarea.mjs +32 -0
  206. package/dist/components/input/Textarea.mjs.map +1 -0
  207. package/dist/components/input/TimePicker.cjs +2 -0
  208. package/dist/components/input/TimePicker.cjs.map +1 -0
  209. package/dist/components/input/TimePicker.mjs +292 -0
  210. package/dist/components/input/TimePicker.mjs.map +1 -0
  211. package/dist/components/input/colorUtils.cjs +2 -0
  212. package/dist/components/input/colorUtils.cjs.map +1 -0
  213. package/dist/components/input/colorUtils.mjs +96 -0
  214. package/dist/components/input/colorUtils.mjs.map +1 -0
  215. package/dist/components/input/dateUtils.cjs +2 -0
  216. package/dist/components/input/dateUtils.cjs.map +1 -0
  217. package/dist/components/input/dateUtils.mjs +250 -0
  218. package/dist/components/input/dateUtils.mjs.map +1 -0
  219. package/dist/components/input/pickerStyles.cjs +2 -0
  220. package/dist/components/input/pickerStyles.cjs.map +1 -0
  221. package/dist/components/input/pickerStyles.mjs +10 -0
  222. package/dist/components/input/pickerStyles.mjs.map +1 -0
  223. package/dist/components/internal/HiddenInput.cjs +2 -0
  224. package/dist/components/internal/HiddenInput.cjs.map +1 -0
  225. package/dist/components/internal/HiddenInput.mjs +88 -0
  226. package/dist/components/internal/HiddenInput.mjs.map +1 -0
  227. package/dist/components/layout/Accordion.cjs +2 -0
  228. package/dist/components/layout/Accordion.cjs.map +1 -0
  229. package/dist/components/layout/Accordion.mjs +236 -0
  230. package/dist/components/layout/Accordion.mjs.map +1 -0
  231. package/dist/components/layout/Card.cjs +2 -0
  232. package/dist/components/layout/Card.cjs.map +1 -0
  233. package/dist/components/layout/Card.mjs +121 -0
  234. package/dist/components/layout/Card.mjs.map +1 -0
  235. package/dist/components/layout/Carousel.cjs +2 -0
  236. package/dist/components/layout/Carousel.cjs.map +1 -0
  237. package/dist/components/layout/Carousel.mjs +205 -0
  238. package/dist/components/layout/Carousel.mjs.map +1 -0
  239. package/dist/components/layout/Flex.cjs +2 -0
  240. package/dist/components/layout/Flex.cjs.map +1 -0
  241. package/dist/components/layout/Flex.mjs +54 -0
  242. package/dist/components/layout/Flex.mjs.map +1 -0
  243. package/dist/components/layout/Grid.cjs +2 -0
  244. package/dist/components/layout/Grid.cjs.map +1 -0
  245. package/dist/components/layout/Grid.mjs +62 -0
  246. package/dist/components/layout/Grid.mjs.map +1 -0
  247. package/dist/components/layout/Overflow.cjs +2 -0
  248. package/dist/components/layout/Overflow.cjs.map +1 -0
  249. package/dist/components/layout/Overflow.mjs +269 -0
  250. package/dist/components/layout/Overflow.mjs.map +1 -0
  251. package/dist/components/layout/Stack.cjs +2 -0
  252. package/dist/components/layout/Stack.cjs.map +1 -0
  253. package/dist/components/layout/Stack.mjs +39 -0
  254. package/dist/components/layout/Stack.mjs.map +1 -0
  255. package/dist/components/layout/TabList.cjs +2 -0
  256. package/dist/components/layout/TabList.cjs.map +1 -0
  257. package/dist/components/layout/TabList.mjs +238 -0
  258. package/dist/components/layout/TabList.mjs.map +1 -0
  259. package/dist/components/layout/Tree.cjs +2 -0
  260. package/dist/components/layout/Tree.cjs.map +1 -0
  261. package/dist/components/layout/Tree.mjs +220 -0
  262. package/dist/components/layout/Tree.mjs.map +1 -0
  263. package/dist/components/layout/disclosureIds.cjs +2 -0
  264. package/dist/components/layout/disclosureIds.cjs.map +1 -0
  265. package/dist/components/layout/disclosureIds.mjs +12 -0
  266. package/dist/components/layout/disclosureIds.mjs.map +1 -0
  267. package/dist/components/motion/Presence.cjs +2 -0
  268. package/dist/components/motion/Presence.cjs.map +1 -0
  269. package/dist/components/motion/Presence.mjs +35 -0
  270. package/dist/components/motion/Presence.mjs.map +1 -0
  271. package/dist/components/navigation/Breadcrumb.cjs +2 -0
  272. package/dist/components/navigation/Breadcrumb.cjs.map +1 -0
  273. package/dist/components/navigation/Breadcrumb.mjs +144 -0
  274. package/dist/components/navigation/Breadcrumb.mjs.map +1 -0
  275. package/dist/components/navigation/Menu.cjs +2 -0
  276. package/dist/components/navigation/Menu.cjs.map +1 -0
  277. package/dist/components/navigation/Menu.context.cjs +2 -0
  278. package/dist/components/navigation/Menu.context.cjs.map +1 -0
  279. package/dist/components/navigation/Menu.context.mjs +82 -0
  280. package/dist/components/navigation/Menu.context.mjs.map +1 -0
  281. package/dist/components/navigation/Menu.group.cjs +2 -0
  282. package/dist/components/navigation/Menu.group.cjs.map +1 -0
  283. package/dist/components/navigation/Menu.group.mjs +58 -0
  284. package/dist/components/navigation/Menu.group.mjs.map +1 -0
  285. package/dist/components/navigation/Menu.items.cjs +2 -0
  286. package/dist/components/navigation/Menu.items.cjs.map +1 -0
  287. package/dist/components/navigation/Menu.items.mjs +127 -0
  288. package/dist/components/navigation/Menu.items.mjs.map +1 -0
  289. package/dist/components/navigation/Menu.link.cjs +2 -0
  290. package/dist/components/navigation/Menu.link.cjs.map +1 -0
  291. package/dist/components/navigation/Menu.link.mjs +41 -0
  292. package/dist/components/navigation/Menu.link.mjs.map +1 -0
  293. package/dist/components/navigation/Menu.mjs +27 -0
  294. package/dist/components/navigation/Menu.mjs.map +1 -0
  295. package/dist/components/navigation/Menu.popover.cjs +2 -0
  296. package/dist/components/navigation/Menu.popover.cjs.map +1 -0
  297. package/dist/components/navigation/Menu.popover.mjs +231 -0
  298. package/dist/components/navigation/Menu.popover.mjs.map +1 -0
  299. package/dist/components/navigation/Menu.root.cjs +2 -0
  300. package/dist/components/navigation/Menu.root.cjs.map +1 -0
  301. package/dist/components/navigation/Menu.root.mjs +308 -0
  302. package/dist/components/navigation/Menu.root.mjs.map +1 -0
  303. package/dist/components/navigation/Menu.selectable.cjs +2 -0
  304. package/dist/components/navigation/Menu.selectable.cjs.map +1 -0
  305. package/dist/components/navigation/Menu.selectable.mjs +89 -0
  306. package/dist/components/navigation/Menu.selectable.mjs.map +1 -0
  307. package/dist/components/navigation/Menu.shared.cjs +2 -0
  308. package/dist/components/navigation/Menu.shared.cjs.map +1 -0
  309. package/dist/components/navigation/Menu.shared.mjs +23 -0
  310. package/dist/components/navigation/Menu.shared.mjs.map +1 -0
  311. package/dist/components/navigation/Menu.splitGroup.cjs +2 -0
  312. package/dist/components/navigation/Menu.splitGroup.cjs.map +1 -0
  313. package/dist/components/navigation/Menu.splitGroup.mjs +51 -0
  314. package/dist/components/navigation/Menu.splitGroup.mjs.map +1 -0
  315. package/dist/components/navigation/Menu.trigger.cjs +2 -0
  316. package/dist/components/navigation/Menu.trigger.cjs.map +1 -0
  317. package/dist/components/navigation/Menu.trigger.mjs +79 -0
  318. package/dist/components/navigation/Menu.trigger.mjs.map +1 -0
  319. package/dist/components/navigation/Nav.cjs +2 -0
  320. package/dist/components/navigation/Nav.cjs.map +1 -0
  321. package/dist/components/navigation/Nav.mjs +276 -0
  322. package/dist/components/navigation/Nav.mjs.map +1 -0
  323. package/dist/components/navigation/Pagination.cjs +2 -0
  324. package/dist/components/navigation/Pagination.cjs.map +1 -0
  325. package/dist/components/navigation/Pagination.mjs +110 -0
  326. package/dist/components/navigation/Pagination.mjs.map +1 -0
  327. package/dist/components/navigation/Stepper.cjs +2 -0
  328. package/dist/components/navigation/Stepper.cjs.map +1 -0
  329. package/dist/components/navigation/Stepper.mjs +204 -0
  330. package/dist/components/navigation/Stepper.mjs.map +1 -0
  331. package/dist/components/overlays/Dialog.cjs +2 -0
  332. package/dist/components/overlays/Dialog.cjs.map +1 -0
  333. package/dist/components/overlays/Dialog.mjs +180 -0
  334. package/dist/components/overlays/Dialog.mjs.map +1 -0
  335. package/dist/components/overlays/Dialog.shared.cjs +2 -0
  336. package/dist/components/overlays/Dialog.shared.cjs.map +1 -0
  337. package/dist/components/overlays/Dialog.shared.mjs +227 -0
  338. package/dist/components/overlays/Dialog.shared.mjs.map +1 -0
  339. package/dist/components/overlays/Drawer.cjs +2 -0
  340. package/dist/components/overlays/Drawer.cjs.map +1 -0
  341. package/dist/components/overlays/Drawer.mjs +192 -0
  342. package/dist/components/overlays/Drawer.mjs.map +1 -0
  343. package/dist/components/overlays/Popover.cjs +2 -0
  344. package/dist/components/overlays/Popover.cjs.map +1 -0
  345. package/dist/components/overlays/Popover.mjs +365 -0
  346. package/dist/components/overlays/Popover.mjs.map +1 -0
  347. package/dist/components/overlays/Popover.shared.cjs +2 -0
  348. package/dist/components/overlays/Popover.shared.cjs.map +1 -0
  349. package/dist/components/overlays/Popover.shared.mjs +182 -0
  350. package/dist/components/overlays/Popover.shared.mjs.map +1 -0
  351. package/dist/components/overlays/TeachingPopover.cjs +2 -0
  352. package/dist/components/overlays/TeachingPopover.cjs.map +1 -0
  353. package/dist/components/overlays/TeachingPopover.mjs +181 -0
  354. package/dist/components/overlays/TeachingPopover.mjs.map +1 -0
  355. package/dist/components/overlays/Tooltip.cjs +2 -0
  356. package/dist/components/overlays/Tooltip.cjs.map +1 -0
  357. package/dist/components/overlays/Tooltip.mjs +160 -0
  358. package/dist/components/overlays/Tooltip.mjs.map +1 -0
  359. package/dist/components/portal/Portal.cjs +2 -0
  360. package/dist/components/portal/Portal.cjs.map +1 -0
  361. package/dist/components/portal/Portal.mjs +45 -0
  362. package/dist/components/portal/Portal.mjs.map +1 -0
  363. package/dist/components/provider/WaveProvider.cjs +2 -0
  364. package/dist/components/provider/WaveProvider.cjs.map +1 -0
  365. package/dist/components/provider/WaveProvider.mjs +51 -0
  366. package/dist/components/provider/WaveProvider.mjs.map +1 -0
  367. package/dist/components/table/DataGrid.cjs +2 -0
  368. package/dist/components/table/DataGrid.cjs.map +1 -0
  369. package/dist/components/table/DataGrid.mjs +489 -0
  370. package/dist/components/table/DataGrid.mjs.map +1 -0
  371. package/dist/components/table/Table.cjs +2 -0
  372. package/dist/components/table/Table.cjs.map +1 -0
  373. package/dist/components/table/Table.mjs +99 -0
  374. package/dist/components/table/Table.mjs.map +1 -0
  375. package/dist/components/table/useGridNavigation.cjs +2 -0
  376. package/dist/components/table/useGridNavigation.cjs.map +1 -0
  377. package/dist/components/table/useGridNavigation.mjs +336 -0
  378. package/dist/components/table/useGridNavigation.mjs.map +1 -0
  379. package/dist/components/typography/Text.cjs +2 -0
  380. package/dist/components/typography/Text.cjs.map +1 -0
  381. package/dist/components/typography/Text.mjs +38 -0
  382. package/dist/components/typography/Text.mjs.map +1 -0
  383. package/dist/hooks/useAnnounce.cjs +2 -0
  384. package/dist/hooks/useAnnounce.cjs.map +1 -0
  385. package/dist/hooks/useAnnounce.mjs +88 -0
  386. package/dist/hooks/useAnnounce.mjs.map +1 -0
  387. package/dist/hooks/useCheckedValues.cjs +2 -0
  388. package/dist/hooks/useCheckedValues.cjs.map +1 -0
  389. package/dist/hooks/useCheckedValues.mjs +102 -0
  390. package/dist/hooks/useCheckedValues.mjs.map +1 -0
  391. package/dist/hooks/useContextMenuAnchor.cjs +2 -0
  392. package/dist/hooks/useContextMenuAnchor.cjs.map +1 -0
  393. package/dist/hooks/useContextMenuAnchor.mjs +132 -0
  394. package/dist/hooks/useContextMenuAnchor.mjs.map +1 -0
  395. package/dist/hooks/useControllable.cjs +2 -0
  396. package/dist/hooks/useControllable.cjs.map +1 -0
  397. package/dist/hooks/useControllable.mjs +37 -0
  398. package/dist/hooks/useControllable.mjs.map +1 -0
  399. package/dist/hooks/useDirection.cjs +2 -0
  400. package/dist/hooks/useDirection.cjs.map +1 -0
  401. package/dist/hooks/useDirection.mjs +57 -0
  402. package/dist/hooks/useDirection.mjs.map +1 -0
  403. package/dist/hooks/useDismiss.cjs +2 -0
  404. package/dist/hooks/useDismiss.cjs.map +1 -0
  405. package/dist/hooks/useDismiss.mjs +57 -0
  406. package/dist/hooks/useDismiss.mjs.map +1 -0
  407. package/dist/hooks/useEventCallback.cjs +2 -0
  408. package/dist/hooks/useEventCallback.cjs.map +1 -0
  409. package/dist/hooks/useEventCallback.mjs +16 -0
  410. package/dist/hooks/useEventCallback.mjs.map +1 -0
  411. package/dist/hooks/useFieldControl.cjs +2 -0
  412. package/dist/hooks/useFieldControl.cjs.map +1 -0
  413. package/dist/hooks/useFieldControl.mjs +62 -0
  414. package/dist/hooks/useFieldControl.mjs.map +1 -0
  415. package/dist/hooks/useFocusTrap.cjs +2 -0
  416. package/dist/hooks/useFocusTrap.cjs.map +1 -0
  417. package/dist/hooks/useFocusTrap.mjs +266 -0
  418. package/dist/hooks/useFocusTrap.mjs.map +1 -0
  419. package/dist/hooks/useFormReset.cjs +2 -0
  420. package/dist/hooks/useFormReset.cjs.map +1 -0
  421. package/dist/hooks/useFormReset.mjs +33 -0
  422. package/dist/hooks/useFormReset.mjs.map +1 -0
  423. package/dist/hooks/useHoverIntent.cjs +2 -0
  424. package/dist/hooks/useHoverIntent.cjs.map +1 -0
  425. package/dist/hooks/useHoverIntent.mjs +201 -0
  426. package/dist/hooks/useHoverIntent.mjs.map +1 -0
  427. package/dist/hooks/useId.cjs +2 -0
  428. package/dist/hooks/useId.cjs.map +1 -0
  429. package/dist/hooks/useId.mjs +11 -0
  430. package/dist/hooks/useId.mjs.map +1 -0
  431. package/dist/hooks/useIsClient.cjs +2 -0
  432. package/dist/hooks/useIsClient.cjs.map +1 -0
  433. package/dist/hooks/useIsClient.mjs +19 -0
  434. package/dist/hooks/useIsClient.mjs.map +1 -0
  435. package/dist/hooks/useListbox.cjs +2 -0
  436. package/dist/hooks/useListbox.cjs.map +1 -0
  437. package/dist/hooks/useListbox.mjs +492 -0
  438. package/dist/hooks/useListbox.mjs.map +1 -0
  439. package/dist/hooks/useMergedRefs.cjs +2 -0
  440. package/dist/hooks/useMergedRefs.cjs.map +1 -0
  441. package/dist/hooks/useMergedRefs.mjs +57 -0
  442. package/dist/hooks/useMergedRefs.mjs.map +1 -0
  443. package/dist/hooks/useModalIsolation.cjs +2 -0
  444. package/dist/hooks/useModalIsolation.cjs.map +1 -0
  445. package/dist/hooks/useModalIsolation.mjs +87 -0
  446. package/dist/hooks/useModalIsolation.mjs.map +1 -0
  447. package/dist/hooks/useModalLayer.cjs +2 -0
  448. package/dist/hooks/useModalLayer.cjs.map +1 -0
  449. package/dist/hooks/useModalLayer.mjs +30 -0
  450. package/dist/hooks/useModalLayer.mjs.map +1 -0
  451. package/dist/hooks/usePopupPosition.cjs +2 -0
  452. package/dist/hooks/usePopupPosition.cjs.map +1 -0
  453. package/dist/hooks/usePopupPosition.mjs +117 -0
  454. package/dist/hooks/usePopupPosition.mjs.map +1 -0
  455. package/dist/hooks/usePrefersReducedMotion.cjs +2 -0
  456. package/dist/hooks/usePrefersReducedMotion.cjs.map +1 -0
  457. package/dist/hooks/usePrefersReducedMotion.mjs +24 -0
  458. package/dist/hooks/usePrefersReducedMotion.mjs.map +1 -0
  459. package/dist/hooks/usePresence.cjs +2 -0
  460. package/dist/hooks/usePresence.cjs.map +1 -0
  461. package/dist/hooks/usePresence.mjs +136 -0
  462. package/dist/hooks/usePresence.mjs.map +1 -0
  463. package/dist/hooks/usePreserveFocus.cjs +2 -0
  464. package/dist/hooks/usePreserveFocus.cjs.map +1 -0
  465. package/dist/hooks/usePreserveFocus.mjs +50 -0
  466. package/dist/hooks/usePreserveFocus.mjs.map +1 -0
  467. package/dist/hooks/useRestoreFocus.cjs +2 -0
  468. package/dist/hooks/useRestoreFocus.cjs.map +1 -0
  469. package/dist/hooks/useRestoreFocus.mjs +271 -0
  470. package/dist/hooks/useRestoreFocus.mjs.map +1 -0
  471. package/dist/hooks/useRovingTabIndex.cjs +2 -0
  472. package/dist/hooks/useRovingTabIndex.cjs.map +1 -0
  473. package/dist/hooks/useRovingTabIndex.mjs +389 -0
  474. package/dist/hooks/useRovingTabIndex.mjs.map +1 -0
  475. package/dist/hooks/useScrollLock.cjs +2 -0
  476. package/dist/hooks/useScrollLock.cjs.map +1 -0
  477. package/dist/hooks/useScrollLock.mjs +71 -0
  478. package/dist/hooks/useScrollLock.mjs.map +1 -0
  479. package/dist/hooks/useTriggerElement.cjs +2 -0
  480. package/dist/hooks/useTriggerElement.cjs.map +1 -0
  481. package/dist/hooks/useTriggerElement.mjs +126 -0
  482. package/dist/hooks/useTriggerElement.mjs.map +1 -0
  483. package/dist/hooks/useTypeahead.cjs +2 -0
  484. package/dist/hooks/useTypeahead.cjs.map +1 -0
  485. package/dist/hooks/useTypeahead.mjs +38 -0
  486. package/dist/hooks/useTypeahead.mjs.map +1 -0
  487. package/dist/index.cjs +1 -1
  488. package/dist/index.d.cts +9099 -0
  489. package/dist/index.d.ts +7688 -1027
  490. package/dist/index.mjs +91 -5695
  491. package/dist/lib/aria.cjs +2 -0
  492. package/dist/lib/aria.cjs.map +1 -0
  493. package/dist/lib/aria.mjs +29 -0
  494. package/dist/lib/aria.mjs.map +1 -0
  495. package/dist/lib/children.cjs +2 -0
  496. package/dist/lib/children.cjs.map +1 -0
  497. package/dist/lib/children.mjs +37 -0
  498. package/dist/lib/children.mjs.map +1 -0
  499. package/dist/lib/cn.cjs +2 -0
  500. package/dist/lib/cn.cjs.map +1 -0
  501. package/dist/lib/cn.mjs +64 -0
  502. package/dist/lib/cn.mjs.map +1 -0
  503. package/dist/lib/composeEventHandlers.cjs +2 -0
  504. package/dist/lib/composeEventHandlers.cjs.map +1 -0
  505. package/dist/lib/composeEventHandlers.mjs +11 -0
  506. package/dist/lib/composeEventHandlers.mjs.map +1 -0
  507. package/dist/lib/dev.cjs +2 -0
  508. package/dist/lib/dev.cjs.map +1 -0
  509. package/dist/lib/dev.mjs +42 -0
  510. package/dist/lib/dev.mjs.map +1 -0
  511. package/dist/lib/direction.cjs +2 -0
  512. package/dist/lib/direction.cjs.map +1 -0
  513. package/dist/lib/direction.mjs +35 -0
  514. package/dist/lib/direction.mjs.map +1 -0
  515. package/dist/lib/events.cjs +2 -0
  516. package/dist/lib/events.cjs.map +1 -0
  517. package/dist/lib/events.mjs +31 -0
  518. package/dist/lib/events.mjs.map +1 -0
  519. package/dist/lib/focus.cjs +2 -0
  520. package/dist/lib/focus.cjs.map +1 -0
  521. package/dist/lib/focus.mjs +119 -0
  522. package/dist/lib/focus.mjs.map +1 -0
  523. package/dist/lib/globalRegistry.cjs +2 -0
  524. package/dist/lib/globalRegistry.cjs.map +1 -0
  525. package/dist/lib/globalRegistry.mjs +13 -0
  526. package/dist/lib/globalRegistry.mjs.map +1 -0
  527. package/dist/lib/icons.cjs +2 -0
  528. package/dist/lib/icons.cjs.map +1 -0
  529. package/dist/lib/icons.mjs +254 -0
  530. package/dist/lib/icons.mjs.map +1 -0
  531. package/dist/lib/labelInName.cjs +2 -0
  532. package/dist/lib/labelInName.cjs.map +1 -0
  533. package/dist/lib/labelInName.mjs +54 -0
  534. package/dist/lib/labelInName.mjs.map +1 -0
  535. package/dist/lib/layers.cjs +2 -0
  536. package/dist/lib/layers.cjs.map +1 -0
  537. package/dist/lib/layers.mjs +224 -0
  538. package/dist/lib/layers.mjs.map +1 -0
  539. package/dist/lib/mergeProps.cjs +2 -0
  540. package/dist/lib/mergeProps.cjs.map +1 -0
  541. package/dist/lib/mergeProps.mjs +21 -0
  542. package/dist/lib/mergeProps.mjs.map +1 -0
  543. package/dist/lib/mergeRefs.cjs +2 -0
  544. package/dist/lib/mergeRefs.cjs.map +1 -0
  545. package/dist/lib/mergeRefs.mjs +29 -0
  546. package/dist/lib/mergeRefs.mjs.map +1 -0
  547. package/dist/lib/renderTrigger.cjs +2 -0
  548. package/dist/lib/renderTrigger.cjs.map +1 -0
  549. package/dist/lib/renderTrigger.mjs +29 -0
  550. package/dist/lib/renderTrigger.mjs.map +1 -0
  551. package/dist/lib/slot.cjs +2 -0
  552. package/dist/lib/slot.cjs.map +1 -0
  553. package/dist/lib/slot.mjs +122 -0
  554. package/dist/lib/slot.mjs.map +1 -0
  555. package/dist/lib/styles.cjs +2 -0
  556. package/dist/lib/styles.cjs.map +1 -0
  557. package/dist/lib/styles.mjs +16 -0
  558. package/dist/lib/styles.mjs.map +1 -0
  559. package/dist/lib/theme.cjs +2 -0
  560. package/dist/lib/theme.cjs.map +1 -0
  561. package/dist/lib/theme.mjs +16 -0
  562. package/dist/lib/theme.mjs.map +1 -0
  563. package/dist/preflight.css +2 -0
  564. package/dist/styles.css +2 -0
  565. package/package.json +149 -100
  566. package/src/styles/animations.css +7 -39
  567. package/src/styles/base.css +103 -0
  568. package/src/styles/globals.css +10 -22
  569. package/src/styles/legacy-tokens.css +184 -0
  570. package/src/styles/preflight.css +7 -0
  571. package/src/styles/styles.css +32 -0
  572. package/src/styles/tailwind.css +17 -0
  573. package/src/styles/tokens.css +561 -221
  574. package/src/styles/variants.css +29 -0
@@ -1,221 +1,561 @@
1
- :root {
2
- /* Light theme colors */
3
- --background: #ffffff;
4
- --foreground: #242424;
5
- --card: #fafafa;
6
- --primary: #0f6cbd;
7
- --secondary: #f5f5f5;
8
- --muted: #f0f0f0;
9
- --muted-foreground: #707070;
10
- --accent: #0f6cbd;
11
- --destructive: #c50f1f;
12
- --subtle: transparent;
13
- --border: #e0e0e0;
14
- --input: #d1d1d1;
15
- --ring: #0f6cbd;
16
-
17
- /* Foreground on colored backgrounds */
18
- --primary-foreground: #ffffff;
19
- --destructive-foreground: #ffffff;
20
- --accent-foreground: #ffffff;
21
- --card-foreground: var(--foreground);
22
- --secondary-foreground: var(--foreground);
23
-
24
- /* Semantic / status colors */
25
- --success: #107c10;
26
- --warning: #fde300;
27
- --error: #c50f1f;
28
- --info: #0f6cbd;
29
- --severe: #da3b01;
30
-
31
- /* Brand ramp */
32
- --brand-10: #061724;
33
- --brand-20: #082338;
34
- --brand-30: #0a2e4a;
35
- --brand-40: #0c3b5e;
36
- --brand-50: #0e4775;
37
- --brand-60: #0f548c;
38
- --brand-70: #115ea3;
39
- --brand-80: #0f6cbd;
40
- --brand-90: #2886de;
41
- --brand-100: #479ef5;
42
- --brand-110: #62abf5;
43
- --brand-120: #77b7f7;
44
- --brand-130: #96c6fa;
45
- --brand-140: #b4d6fa;
46
- --brand-150: #cfe4fa;
47
- --brand-160: #ebf3fc;
48
-
49
- /* Neutral grey palette */
50
- --grey-2: #050505;
51
- --grey-4: #0a0a0a;
52
- --grey-6: #0f0f0f;
53
- --grey-8: #141414;
54
- --grey-10: #1a1a1a;
55
- --grey-12: #1f1f1f;
56
- --grey-14: #242424;
57
- --grey-16: #292929;
58
- --grey-20: #333333;
59
- --grey-24: #3d3d3d;
60
- --grey-26: #424242;
61
- --grey-30: #4d4d4d;
62
- --grey-34: #575757;
63
- --grey-38: #616161;
64
- --grey-40: #666666;
65
- --grey-44: #707070;
66
- --grey-50: #808080;
67
- --grey-60: #999999;
68
- --grey-68: #adadad;
69
- --grey-74: #bdbdbd;
70
- --grey-78: #c7c7c7;
71
- --grey-82: #d1d1d1;
72
- --grey-86: #dbdbdb;
73
- --grey-88: #e0e0e0;
74
- --grey-90: #e6e6e6;
75
- --grey-92: #ebebeb;
76
- --grey-94: #f0f0f0;
77
- --grey-96: #f5f5f5;
78
- --grey-98: #fafafa;
79
- }
80
-
81
- /* Dark theme */
82
- .dark {
83
- --background: #292929;
84
- --foreground: #ffffff;
85
- --primary: #479ef5;
86
- --secondary: #333333;
87
- --muted: #383838;
88
- --muted-foreground: #adadad;
89
- --accent: #479ef5;
90
- --card: #333333;
91
- --destructive: #dc626d;
92
- --border: #666666;
93
- --input: #666666;
94
- --ring: #479ef5;
95
- --subtle: transparent;
96
- --primary-foreground: #ffffff;
97
- --destructive-foreground: #ffffff;
98
- --accent-foreground: #ffffff;
99
- --card-foreground: var(--foreground);
100
- --secondary-foreground: var(--foreground);
101
- --success: #54b054;
102
- --warning: #fde300;
103
- --error: #dc626d;
104
- --info: #479ef5;
105
- --severe: #e97548;
106
- }
107
-
108
- /* High-contrast theme — WCAG AAA compliant */
109
- .high-contrast {
110
- --background: #000000;
111
- --foreground: #ffffff;
112
- --primary: #1aebff;
113
- --secondary: #000000;
114
- --muted: #1a1a1a;
115
- --muted-foreground: #ffffff;
116
- --accent: #1aebff;
117
- --card: #000000;
118
- --destructive: #ff6060;
119
- --border: #ffffff;
120
- --input: #ffffff;
121
- --ring: #ffff00;
122
- --subtle: transparent;
123
- --success: #3ff23f;
124
- --warning: #ffff00;
125
- --error: #ff6060;
126
- --info: #1aebff;
127
- --severe: #ff8c00;
128
-
129
- /* Primary foreground needs to be black for contrast on cyan background */
130
- --primary-foreground: #000000;
131
- --destructive-foreground: #000000;
132
- --accent-foreground: #000000;
133
- --card-foreground: var(--foreground);
134
- --secondary-foreground: var(--foreground);
135
- }
136
-
137
- /* --- Tailwind 4 theme (replaces tailwind.config.ts) --- */
138
- @theme inline {
139
- /* Colors */
140
- --color-border: var(--border);
141
- --color-input: var(--input);
142
- --color-ring: var(--ring);
143
- --color-background: var(--background);
144
- --color-foreground: var(--foreground);
145
- --color-primary: var(--primary);
146
- --color-primary-foreground: var(--primary-foreground);
147
- --color-secondary: var(--secondary);
148
- --color-secondary-foreground: var(--secondary-foreground);
149
- --color-destructive: var(--destructive);
150
- --color-destructive-foreground: var(--destructive-foreground);
151
- --color-muted: var(--muted);
152
- --color-muted-foreground: var(--muted-foreground);
153
- --color-accent: var(--accent);
154
- --color-accent-foreground: var(--accent-foreground);
155
- --color-card: var(--card);
156
- --color-card-foreground: var(--card-foreground);
157
- --color-subtle: var(--subtle);
158
- --color-success: var(--success);
159
- --color-warning: var(--warning);
160
- --color-error: var(--error);
161
- --color-info: var(--info);
162
- --color-severe: var(--severe);
163
-
164
- /* Font family */
165
- --font-sans: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif;
166
-
167
- /* Font sizes */
168
- --text-caption-2: 10px;
169
- --text-caption-2--line-height: 14px;
170
- --text-caption-1: 12px;
171
- --text-caption-1--line-height: 16px;
172
- --text-body-1: 14px;
173
- --text-body-1--line-height: 20px;
174
- --text-body-2: 16px;
175
- --text-body-2--line-height: 22px;
176
- --text-subtitle-2: 16px;
177
- --text-subtitle-2--line-height: 22px;
178
- --text-subtitle-2--font-weight: 600;
179
- --text-subtitle-1: 20px;
180
- --text-subtitle-1--line-height: 28px;
181
- --text-subtitle-1--font-weight: 600;
182
- --text-title-3: 24px;
183
- --text-title-3--line-height: 32px;
184
- --text-title-3--font-weight: 600;
185
- --text-title-2: 28px;
186
- --text-title-2--line-height: 36px;
187
- --text-title-2--font-weight: 600;
188
- --text-title-1: 32px;
189
- --text-title-1--line-height: 40px;
190
- --text-title-1--font-weight: 600;
191
- --text-large-title: 40px;
192
- --text-large-title--line-height: 52px;
193
- --text-large-title--font-weight: 600;
194
- --text-display: 68px;
195
- --text-display--line-height: 92px;
196
- --text-display--font-weight: 600;
197
-
198
- /* Border radius */
199
- --radius-none: 0;
200
- --radius-sm: 2px;
201
- --radius-DEFAULT: 4px;
202
- --radius-md: 4px;
203
- --radius-lg: 6px;
204
- --radius-xl: 8px;
205
- --radius-2xl: 12px;
206
- --radius-3xl: 16px;
207
- --radius-full: 10000px;
208
-
209
- /* Box shadows */
210
- --shadow-2: 0 0 2px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.14);
211
- --shadow-4: 0 0 2px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.14);
212
- --shadow-8: 0 0 2px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.14);
213
- --shadow-16: 0 0 2px rgba(0,0,0,0.12), 0 8px 16px rgba(0,0,0,0.14);
214
- --shadow-28: 0 0 8px rgba(0,0,0,0.12), 0 14px 28px rgba(0,0,0,0.14);
215
- --shadow-64: 0 0 8px rgba(0,0,0,0.12), 0 32px 64px rgba(0,0,0,0.14);
216
-
217
- /* Animations */
218
- --animate-wave-spin: wave-spin 0.8s linear infinite;
219
- --animate-wave-pulse: wave-pulse 1.5s ease-in-out infinite;
220
- --animate-wave-indeterminate: wave-indeterminate 1.5s ease-in-out infinite;
221
- }
1
+ /*
2
+ * Wave design tokens.
3
+ *
4
+ * - Runtime variables are prefixed `--wave-*`. Tailwind utilities keep their names
5
+ * (`bg-primary` -> `--color-primary: var(--wave-primary)`, see the `@theme inline` block).
6
+ * - Theme classes: `.wave-light` (also `:root`), `.wave-dark`, `.wave-high-contrast`.
7
+ * `.dark` and `.high-contrast` are deprecated aliases; they set only `--wave-*` variables.
8
+ * - Every theme group declares every token, including the derived ones, so a nested theme
9
+ * re-resolves all of them.
10
+ * - To override a semantic token, target the theme selector: `:root, .wave-light { --wave-primary: … }`.
11
+ * To re-brand, override the ramp on `:root` (`--wave-brand-80`, or the 0.4 name `--brand-80`).
12
+ * - Contrast ratios of every pair, and of every text token on every surface it can sit on (4.5:1,
13
+ * unrounded), are asserted by `src/styles/__tests__/tokens.test.ts`.
14
+ */
15
+
16
+ /* ---------------------------------------------------------------------------------------------
17
+ * Theme-independent constants: ramps (read the 0.4 names as fallbacks), font family, z-index,
18
+ * motion.
19
+ * ------------------------------------------------------------------------------------------- */
20
+ :root {
21
+ --wave-font-family:
22
+ 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto,
23
+ 'Helvetica Neue', sans-serif;
24
+
25
+ --wave-z-overlay: 1000;
26
+ --wave-z-toast: 1100;
27
+ --wave-z-tooltip: 1200;
28
+
29
+ /* Motion: Fluent's motionTokens (react-motion 9.16.4). Theme-independent; components pair their
30
+ motion with motion-reduce: variants (C-MOTION), the tokens are never zeroed. */
31
+ --wave-duration-ultra-fast: 50ms;
32
+ --wave-duration-faster: 100ms;
33
+ --wave-duration-fast: 150ms;
34
+ --wave-duration-normal: 200ms;
35
+ --wave-duration-gentle: 250ms;
36
+ --wave-duration-slow: 300ms;
37
+ --wave-duration-slower: 400ms;
38
+ --wave-duration-ultra-slow: 500ms;
39
+ --wave-curve-accelerate-max: cubic-bezier(0.9, 0.1, 1, 0.2);
40
+ --wave-curve-accelerate-mid: cubic-bezier(1, 0, 1, 1);
41
+ --wave-curve-accelerate-min: cubic-bezier(0.8, 0, 0.78, 1);
42
+ --wave-curve-decelerate-max: cubic-bezier(0.1, 0.9, 0.2, 1);
43
+ --wave-curve-decelerate-mid: cubic-bezier(0, 0, 0, 1);
44
+ --wave-curve-decelerate-min: cubic-bezier(0.33, 0, 0.1, 1);
45
+ --wave-curve-easy-ease-max: cubic-bezier(0.8, 0, 0.2, 1);
46
+ --wave-curve-easy-ease: cubic-bezier(0.33, 0, 0.67, 1);
47
+ --wave-curve-linear: cubic-bezier(0, 0, 1, 1);
48
+
49
+ /* Brand ramp */
50
+ --wave-brand-10: var(--brand-10, #061724);
51
+ --wave-brand-20: var(--brand-20, #082338);
52
+ --wave-brand-30: var(--brand-30, #0a2e4a);
53
+ --wave-brand-40: var(--brand-40, #0c3b5e);
54
+ --wave-brand-50: var(--brand-50, #0e4775);
55
+ --wave-brand-60: var(--brand-60, #0f548c);
56
+ --wave-brand-70: var(--brand-70, #115ea3);
57
+ --wave-brand-80: var(--brand-80, #0f6cbd);
58
+ --wave-brand-90: var(--brand-90, #2886de);
59
+ --wave-brand-100: var(--brand-100, #479ef5);
60
+ --wave-brand-110: var(--brand-110, #62abf5);
61
+ --wave-brand-120: var(--brand-120, #77b7f7);
62
+ --wave-brand-130: var(--brand-130, #96c6fa);
63
+ --wave-brand-140: var(--brand-140, #b4d6fa);
64
+ --wave-brand-150: var(--brand-150, #cfe4fa);
65
+ --wave-brand-160: var(--brand-160, #ebf3fc);
66
+
67
+ /* Neutral grey ramp */
68
+ --wave-grey-2: var(--grey-2, #050505);
69
+ --wave-grey-4: var(--grey-4, #0a0a0a);
70
+ --wave-grey-6: var(--grey-6, #0f0f0f);
71
+ --wave-grey-8: var(--grey-8, #141414);
72
+ --wave-grey-10: var(--grey-10, #1a1a1a);
73
+ --wave-grey-12: var(--grey-12, #1f1f1f);
74
+ --wave-grey-14: var(--grey-14, #242424);
75
+ --wave-grey-16: var(--grey-16, #292929);
76
+ --wave-grey-20: var(--grey-20, #333333);
77
+ --wave-grey-24: var(--grey-24, #3d3d3d);
78
+ --wave-grey-26: var(--grey-26, #424242);
79
+ --wave-grey-30: var(--grey-30, #4d4d4d);
80
+ --wave-grey-34: var(--grey-34, #575757);
81
+ --wave-grey-38: var(--grey-38, #616161);
82
+ --wave-grey-40: var(--grey-40, #666666);
83
+ --wave-grey-44: var(--grey-44, #707070);
84
+ --wave-grey-50: var(--grey-50, #808080);
85
+ --wave-grey-60: var(--grey-60, #999999);
86
+ --wave-grey-68: var(--grey-68, #adadad);
87
+ --wave-grey-74: var(--grey-74, #bdbdbd);
88
+ --wave-grey-78: var(--grey-78, #c7c7c7);
89
+ --wave-grey-82: var(--grey-82, #d1d1d1);
90
+ --wave-grey-86: var(--grey-86, #dbdbdb);
91
+ --wave-grey-88: var(--grey-88, #e0e0e0);
92
+ --wave-grey-90: var(--grey-90, #e6e6e6);
93
+ --wave-grey-92: var(--grey-92, #ebebeb);
94
+ --wave-grey-94: var(--grey-94, #f0f0f0);
95
+ --wave-grey-96: var(--grey-96, #f5f5f5);
96
+ --wave-grey-98: var(--grey-98, #fafafa);
97
+ }
98
+
99
+ /* ---------------------------------------------------------------------------------------------
100
+ * Light theme
101
+ * ------------------------------------------------------------------------------------------- */
102
+ :root,
103
+ .wave-light {
104
+ /* Surfaces and text */
105
+ --wave-background: #ffffff;
106
+ --wave-foreground: #242424;
107
+ --wave-card: #fafafa;
108
+ --wave-secondary: #f5f5f5;
109
+ --wave-muted: #f0f0f0;
110
+ --wave-muted-foreground: #616161;
111
+
112
+ /* Primary (brand) */
113
+ --wave-primary: var(--wave-brand-80);
114
+ --wave-primary-foreground: #ffffff;
115
+ --wave-primary-hover: var(--wave-brand-70);
116
+ --wave-primary-pressed: var(--wave-brand-40);
117
+
118
+ /* Destructive / error */
119
+ --wave-destructive: #c50f1f;
120
+ --wave-destructive-foreground: #ffffff;
121
+ --wave-error: #c50f1f;
122
+ --wave-error-foreground: #ffffff;
123
+
124
+ /* Subtle (transparent) controls and selection. Pressed is grey-92 like selected, not Fluent's
125
+ grey-88 #e0e0e0 (primary text 4.08:1, success 4.07): primary 4.52, success 4.50 */
126
+ --wave-subtle: transparent;
127
+ --wave-subtle-hover: #f5f5f5;
128
+ --wave-subtle-pressed: #ebebeb;
129
+ --wave-subtle-selected: #ebebeb;
130
+ --wave-selected: var(--wave-brand-160);
131
+ --wave-selected-foreground: var(--wave-brand-60);
132
+
133
+ /* Strokes */
134
+ --wave-border: #e0e0e0;
135
+ --wave-stroke: #d1d1d1;
136
+ --wave-stroke-hover: #c7c7c7;
137
+ --wave-stroke-accessible: #616161;
138
+ --wave-input: #d1d1d1;
139
+ --wave-ring: var(--wave-brand-80);
140
+
141
+ /* Status */
142
+ --wave-success: #107c10;
143
+ --wave-success-foreground: #ffffff;
144
+ --wave-success-tint: #f1faf1;
145
+ --wave-success-tint-foreground: #0e700e;
146
+ --wave-warning: #fde300;
147
+ --wave-warning-foreground: #242424;
148
+ --wave-warning-tint: #fffbe6;
149
+ --wave-warning-tint-foreground: #6d5b00;
150
+ --wave-error-tint: #fdf3f4;
151
+ --wave-error-tint-foreground: #b10e1c;
152
+ --wave-severe: #da3b01;
153
+ --wave-severe-foreground: #ffffff;
154
+ --wave-severe-tint: #fdf6f3;
155
+ --wave-severe-tint-foreground: #a52c00;
156
+ --wave-info: #0f6cbd;
157
+ --wave-info-foreground: #ffffff;
158
+ --wave-info-tint: #ebf3fc;
159
+ --wave-info-tint-foreground: #0f548c;
160
+
161
+ /* Inverted surfaces (tooltips) */
162
+ --wave-inverted: #292929;
163
+ --wave-inverted-foreground: #ffffff;
164
+ --wave-inverted-border: transparent;
165
+
166
+ /* Tracks, placeholders, rating, presence, backdrop */
167
+ --wave-track: #e0e0e0;
168
+ --wave-skeleton: #e0e0e0;
169
+ --wave-rating: #b86e00;
170
+ --wave-presence-available: #107c10;
171
+ --wave-presence-busy: #c50f1f;
172
+ --wave-presence-away: #a67c00;
173
+ --wave-presence-offline: #616161;
174
+ --wave-presence-oof: #b4009e;
175
+ --wave-presence-glyph: #ffffff;
176
+ --wave-backdrop: rgb(0 0 0 / 0.4);
177
+
178
+ /* Derived (re-declared per theme so nested themes re-resolve them) */
179
+ --wave-card-foreground: var(--wave-foreground);
180
+ --wave-secondary-foreground: var(--wave-foreground);
181
+ --wave-accent: var(--wave-primary);
182
+ --wave-accent-foreground: var(--wave-primary-foreground);
183
+ }
184
+
185
+ /* ---------------------------------------------------------------------------------------------
186
+ * Dark theme (`.dark` is a deprecated alias)
187
+ * ------------------------------------------------------------------------------------------- */
188
+ .wave-dark,
189
+ .dark {
190
+ /* Surfaces and text */
191
+ --wave-background: #292929;
192
+ --wave-foreground: #ffffff;
193
+ --wave-card: #333333;
194
+ --wave-secondary: #333333;
195
+ --wave-muted: #383838;
196
+ --wave-muted-foreground: #adadad;
197
+
198
+ /* Primary (brand): brand-110 fill with black text (8.66:1) */
199
+ --wave-primary: var(--wave-brand-110);
200
+ --wave-primary-foreground: #000000;
201
+ --wave-primary-hover: var(--wave-brand-120);
202
+ --wave-primary-pressed: var(--wave-brand-90);
203
+
204
+ /* Destructive / error */
205
+ --wave-destructive: #f48a94;
206
+ --wave-destructive-foreground: #000000;
207
+ --wave-error: #f48a94;
208
+ --wave-error-foreground: #000000;
209
+
210
+ /* Subtle (transparent) controls and selection */
211
+ --wave-subtle: transparent;
212
+ --wave-subtle-hover: #333333;
213
+ --wave-subtle-pressed: #2e2e2e;
214
+ --wave-subtle-selected: #383838;
215
+ --wave-selected: var(--wave-brand-20);
216
+ --wave-selected-foreground: var(--wave-brand-110);
217
+
218
+ /* Strokes */
219
+ --wave-border: #666666;
220
+ --wave-stroke: #666666;
221
+ --wave-stroke-hover: #757575;
222
+ --wave-stroke-accessible: #adadad;
223
+ --wave-input: #666666;
224
+ --wave-ring: var(--wave-brand-100);
225
+
226
+ /* Status. success is text too (4.60:1 on muted and subtle-selected #383838, where Fluent's
227
+ green tint30 #54b054 reaches 4.31); info text uses info-tint-foreground, brand-110 like
228
+ primary (4.84 on #383838; #479ef5 was 4.499 on card). */
229
+ --wave-success: #5db55d;
230
+ --wave-success-foreground: #000000;
231
+ --wave-success-tint: #052505;
232
+ --wave-success-tint-foreground: #54b054;
233
+ --wave-warning: #fde300;
234
+ --wave-warning-foreground: #000000;
235
+ --wave-warning-tint: #463100;
236
+ --wave-warning-tint-foreground: #fde300;
237
+ --wave-error-tint: #3b0509;
238
+ --wave-error-tint-foreground: #f48a94;
239
+ --wave-severe: #e97548;
240
+ --wave-severe-foreground: #000000;
241
+ --wave-severe-tint: #411200;
242
+ --wave-severe-tint-foreground: #e97548;
243
+ --wave-info: #479ef5;
244
+ --wave-info-foreground: #000000;
245
+ --wave-info-tint: #082338;
246
+ --wave-info-tint-foreground: #62abf5;
247
+
248
+ /* Inverted surfaces (tooltips) */
249
+ --wave-inverted: #ffffff;
250
+ --wave-inverted-foreground: #242424;
251
+ --wave-inverted-border: transparent;
252
+
253
+ /* Tracks, placeholders, rating, presence, backdrop */
254
+ --wave-track: #3d3d3d;
255
+ --wave-skeleton: #3d3d3d;
256
+ --wave-rating: #f7b538;
257
+ --wave-presence-available: #54b054;
258
+ --wave-presence-busy: #f48a94;
259
+ --wave-presence-away: #f7b538;
260
+ --wave-presence-offline: #adadad;
261
+ --wave-presence-oof: #d696c8;
262
+ --wave-presence-glyph: #000000;
263
+ --wave-backdrop: rgb(0 0 0 / 0.5);
264
+
265
+ /* Derived (re-declared per theme so nested themes re-resolve them) */
266
+ --wave-card-foreground: var(--wave-foreground);
267
+ --wave-secondary-foreground: var(--wave-foreground);
268
+ --wave-accent: var(--wave-primary);
269
+ --wave-accent-foreground: var(--wave-primary-foreground);
270
+ }
271
+
272
+ /* ---------------------------------------------------------------------------------------------
273
+ * High-contrast theme (`.high-contrast` is a deprecated alias)
274
+ * ------------------------------------------------------------------------------------------- */
275
+ .wave-high-contrast,
276
+ .high-contrast {
277
+ /* Surfaces and text */
278
+ --wave-background: #000000;
279
+ --wave-foreground: #ffffff;
280
+ --wave-card: #000000;
281
+ --wave-secondary: #000000;
282
+ --wave-muted: #1a1a1a;
283
+ --wave-muted-foreground: #ffffff;
284
+
285
+ /* Primary */
286
+ --wave-primary: #1aebff;
287
+ --wave-primary-foreground: #000000;
288
+ --wave-primary-hover: #6ef3ff;
289
+ --wave-primary-pressed: #00c4d6;
290
+
291
+ /* Destructive / error: error text stays 4.5:1 on the grey subtle states and the cyan selection
292
+ (4.64 on #333333, 4.59 on #003a40; #ff6060 was 4.27 and 4.22) */
293
+ --wave-destructive: #ff6e6e;
294
+ --wave-destructive-foreground: #000000;
295
+ --wave-error: #ff6e6e;
296
+ --wave-error-foreground: #000000;
297
+
298
+ /* Subtle (transparent) controls and selection: a dark cyan tint keeps white text,
299
+ cyan primary text, error text and the yellow ring readable on selected items */
300
+ --wave-subtle: transparent;
301
+ --wave-subtle-hover: #1f1f1f;
302
+ --wave-subtle-pressed: #333333;
303
+ --wave-subtle-selected: #333333;
304
+ --wave-selected: #003a40;
305
+ --wave-selected-foreground: #ffffff;
306
+
307
+ /* Strokes */
308
+ --wave-border: #ffffff;
309
+ --wave-stroke: #ffffff;
310
+ --wave-stroke-hover: #ffffff;
311
+ --wave-stroke-accessible: #ffffff;
312
+ --wave-input: #ffffff;
313
+ --wave-ring: #ffff00;
314
+
315
+ /* Status */
316
+ --wave-success: #3ff23f;
317
+ --wave-success-foreground: #000000;
318
+ --wave-success-tint: #000000;
319
+ --wave-success-tint-foreground: #3ff23f;
320
+ --wave-warning: #ffff00;
321
+ --wave-warning-foreground: #000000;
322
+ --wave-warning-tint: #000000;
323
+ --wave-warning-tint-foreground: #ffff00;
324
+ --wave-error-tint: #000000;
325
+ --wave-error-tint-foreground: #ff6060;
326
+ --wave-severe: #ff8c00;
327
+ --wave-severe-foreground: #000000;
328
+ --wave-severe-tint: #000000;
329
+ --wave-severe-tint-foreground: #ff8c00;
330
+ --wave-info: #1aebff;
331
+ --wave-info-foreground: #000000;
332
+ --wave-info-tint: #000000;
333
+ --wave-info-tint-foreground: #1aebff;
334
+
335
+ /* Inverted surfaces (tooltips) */
336
+ --wave-inverted: #000000;
337
+ --wave-inverted-foreground: #ffffff;
338
+ --wave-inverted-border: #ffffff;
339
+
340
+ /* Tracks, placeholders, rating, presence, backdrop */
341
+ --wave-track: #4d4d4d;
342
+ --wave-skeleton: #333333;
343
+ --wave-rating: #ffff00;
344
+ --wave-presence-available: #3ff23f;
345
+ --wave-presence-busy: #ff6060;
346
+ --wave-presence-away: #ffff00;
347
+ --wave-presence-offline: #ffffff;
348
+ --wave-presence-oof: #ff80ff;
349
+ --wave-presence-glyph: #000000;
350
+ --wave-backdrop: rgb(0 0 0 / 0.8);
351
+
352
+ /* Derived (re-declared per theme so nested themes re-resolve them) */
353
+ --wave-card-foreground: var(--wave-foreground);
354
+ --wave-secondary-foreground: var(--wave-foreground);
355
+ --wave-accent: var(--wave-primary);
356
+ --wave-accent-foreground: var(--wave-primary-foreground);
357
+ }
358
+
359
+ /* ---------------------------------------------------------------------------------------------
360
+ * color-scheme only on the theme classes (never on :root), so a page without WaveProvider keeps
361
+ * its own scrollbars and native-control scheme.
362
+ * ------------------------------------------------------------------------------------------- */
363
+ .wave-light {
364
+ color-scheme: light;
365
+ }
366
+
367
+ .wave-dark,
368
+ .wave-high-contrast {
369
+ color-scheme: dark;
370
+ }
371
+
372
+ /* ---------------------------------------------------------------------------------------------
373
+ * Tailwind 4 mapping. No overrides of Tailwind defaults (radius, font-sans): Wave uses Tailwind's
374
+ * default radius names and its own `font-wave` family.
375
+ * ------------------------------------------------------------------------------------------- */
376
+ @theme inline {
377
+ /* Colors */
378
+ --color-background: var(--wave-background);
379
+ --color-foreground: var(--wave-foreground);
380
+ --color-card: var(--wave-card);
381
+ --color-card-foreground: var(--wave-card-foreground);
382
+ --color-secondary: var(--wave-secondary);
383
+ --color-secondary-foreground: var(--wave-secondary-foreground);
384
+ --color-muted: var(--wave-muted);
385
+ --color-muted-foreground: var(--wave-muted-foreground);
386
+ --color-primary: var(--wave-primary);
387
+ --color-primary-foreground: var(--wave-primary-foreground);
388
+ --color-primary-hover: var(--wave-primary-hover);
389
+ --color-primary-pressed: var(--wave-primary-pressed);
390
+ --color-accent: var(--wave-accent);
391
+ --color-accent-foreground: var(--wave-accent-foreground);
392
+ --color-destructive: var(--wave-destructive);
393
+ --color-destructive-foreground: var(--wave-destructive-foreground);
394
+ --color-error: var(--wave-error);
395
+ --color-error-foreground: var(--wave-error-foreground);
396
+ --color-subtle: var(--wave-subtle);
397
+ --color-subtle-hover: var(--wave-subtle-hover);
398
+ --color-subtle-pressed: var(--wave-subtle-pressed);
399
+ --color-subtle-selected: var(--wave-subtle-selected);
400
+ --color-selected: var(--wave-selected);
401
+ --color-selected-foreground: var(--wave-selected-foreground);
402
+ --color-border: var(--wave-border);
403
+ --color-stroke: var(--wave-stroke);
404
+ --color-stroke-hover: var(--wave-stroke-hover);
405
+ --color-stroke-accessible: var(--wave-stroke-accessible);
406
+ --color-input: var(--wave-input);
407
+ --color-ring: var(--wave-ring);
408
+ --color-success: var(--wave-success);
409
+ --color-success-foreground: var(--wave-success-foreground);
410
+ --color-success-tint: var(--wave-success-tint);
411
+ --color-success-tint-foreground: var(--wave-success-tint-foreground);
412
+ --color-warning: var(--wave-warning);
413
+ --color-warning-foreground: var(--wave-warning-foreground);
414
+ --color-warning-tint: var(--wave-warning-tint);
415
+ --color-warning-tint-foreground: var(--wave-warning-tint-foreground);
416
+ --color-error-tint: var(--wave-error-tint);
417
+ --color-error-tint-foreground: var(--wave-error-tint-foreground);
418
+ --color-severe: var(--wave-severe);
419
+ --color-severe-foreground: var(--wave-severe-foreground);
420
+ --color-severe-tint: var(--wave-severe-tint);
421
+ --color-severe-tint-foreground: var(--wave-severe-tint-foreground);
422
+ --color-info: var(--wave-info);
423
+ --color-info-foreground: var(--wave-info-foreground);
424
+ --color-info-tint: var(--wave-info-tint);
425
+ --color-info-tint-foreground: var(--wave-info-tint-foreground);
426
+ --color-inverted: var(--wave-inverted);
427
+ --color-inverted-foreground: var(--wave-inverted-foreground);
428
+ --color-inverted-border: var(--wave-inverted-border);
429
+ --color-track: var(--wave-track);
430
+ --color-skeleton: var(--wave-skeleton);
431
+ --color-rating: var(--wave-rating);
432
+ --color-presence-available: var(--wave-presence-available);
433
+ --color-presence-busy: var(--wave-presence-busy);
434
+ --color-presence-away: var(--wave-presence-away);
435
+ --color-presence-offline: var(--wave-presence-offline);
436
+ --color-presence-oof: var(--wave-presence-oof);
437
+ --color-presence-glyph: var(--wave-presence-glyph);
438
+ --color-backdrop: var(--wave-backdrop);
439
+
440
+ /* Brand ramp (for designers; components use the semantic colors) */
441
+ --color-brand-10: var(--wave-brand-10);
442
+ --color-brand-20: var(--wave-brand-20);
443
+ --color-brand-30: var(--wave-brand-30);
444
+ --color-brand-40: var(--wave-brand-40);
445
+ --color-brand-50: var(--wave-brand-50);
446
+ --color-brand-60: var(--wave-brand-60);
447
+ --color-brand-70: var(--wave-brand-70);
448
+ --color-brand-80: var(--wave-brand-80);
449
+ --color-brand-90: var(--wave-brand-90);
450
+ --color-brand-100: var(--wave-brand-100);
451
+ --color-brand-110: var(--wave-brand-110);
452
+ --color-brand-120: var(--wave-brand-120);
453
+ --color-brand-130: var(--wave-brand-130);
454
+ --color-brand-140: var(--wave-brand-140);
455
+ --color-brand-150: var(--wave-brand-150);
456
+ --color-brand-160: var(--wave-brand-160);
457
+
458
+ /* Font family (utility `font-wave`) */
459
+ --font-wave: var(--wave-font-family);
460
+
461
+ /* Type ramp */
462
+ --text-caption-2: 10px;
463
+ --text-caption-2--line-height: 14px;
464
+ --text-caption-1: 12px;
465
+ --text-caption-1--line-height: 16px;
466
+ --text-body-1: 14px;
467
+ --text-body-1--line-height: 20px;
468
+ --text-body-2: 16px;
469
+ --text-body-2--line-height: 22px;
470
+ --text-subtitle-2: 16px;
471
+ --text-subtitle-2--line-height: 22px;
472
+ --text-subtitle-2--font-weight: 600;
473
+ --text-subtitle-1: 20px;
474
+ --text-subtitle-1--line-height: 28px;
475
+ --text-subtitle-1--font-weight: 600;
476
+ --text-title-3: 24px;
477
+ --text-title-3--line-height: 32px;
478
+ --text-title-3--font-weight: 600;
479
+ --text-title-2: 28px;
480
+ --text-title-2--line-height: 36px;
481
+ --text-title-2--font-weight: 600;
482
+ --text-title-1: 32px;
483
+ --text-title-1--line-height: 40px;
484
+ --text-title-1--font-weight: 600;
485
+ --text-large-title: 40px;
486
+ --text-large-title--line-height: 52px;
487
+ --text-large-title--font-weight: 600;
488
+ --text-display: 68px;
489
+ --text-display--line-height: 92px;
490
+ --text-display--font-weight: 600;
491
+
492
+ /* Box shadows */
493
+ --shadow-2: 0 0 2px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.14);
494
+ --shadow-4: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.14);
495
+ --shadow-8: 0 0 2px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.14);
496
+ --shadow-16: 0 0 2px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(0, 0, 0, 0.14);
497
+ --shadow-28: 0 0 8px rgba(0, 0, 0, 0.12), 0 14px 28px rgba(0, 0, 0, 0.14);
498
+ --shadow-64: 0 0 8px rgba(0, 0, 0, 0.12), 0 32px 64px rgba(0, 0, 0, 0.14);
499
+
500
+ /* Motion durations and curves (utilities `duration-wave-*`, `ease-wave-*`). No keyframes. */
501
+ --transition-duration-wave-ultra-fast: var(--wave-duration-ultra-fast);
502
+ --transition-duration-wave-faster: var(--wave-duration-faster);
503
+ --transition-duration-wave-fast: var(--wave-duration-fast);
504
+ --transition-duration-wave-normal: var(--wave-duration-normal);
505
+ --transition-duration-wave-gentle: var(--wave-duration-gentle);
506
+ --transition-duration-wave-slow: var(--wave-duration-slow);
507
+ --transition-duration-wave-slower: var(--wave-duration-slower);
508
+ --transition-duration-wave-ultra-slow: var(--wave-duration-ultra-slow);
509
+ --ease-wave-accelerate-max: var(--wave-curve-accelerate-max);
510
+ --ease-wave-accelerate-mid: var(--wave-curve-accelerate-mid);
511
+ --ease-wave-accelerate-min: var(--wave-curve-accelerate-min);
512
+ --ease-wave-decelerate-max: var(--wave-curve-decelerate-max);
513
+ --ease-wave-decelerate-mid: var(--wave-curve-decelerate-mid);
514
+ --ease-wave-decelerate-min: var(--wave-curve-decelerate-min);
515
+ --ease-wave-easy-ease-max: var(--wave-curve-easy-ease-max);
516
+ --ease-wave-easy-ease: var(--wave-curve-easy-ease);
517
+ --ease-wave-linear: var(--wave-curve-linear);
518
+
519
+ /* Animations. Reduced-motion alternates are applied per component (C-MOTION):
520
+ Spinner `motion-reduce:animate-wave-spin-slow`, indeterminate ProgressBar
521
+ `motion-reduce:animate-wave-pulse` at full width, Skeleton `motion-reduce:animate-none`. */
522
+ --animate-wave-spin: wave-spin 0.8s linear infinite;
523
+ --animate-wave-spin-slow: wave-spin 2.4s linear infinite;
524
+ --animate-wave-pulse: wave-pulse 1.5s ease-in-out infinite;
525
+ --animate-wave-indeterminate: wave-indeterminate 1.5s ease-in-out infinite;
526
+ --animate-wave-indeterminate-rtl: wave-indeterminate-rtl 1.5s ease-in-out infinite;
527
+
528
+ @keyframes wave-spin {
529
+ to {
530
+ transform: rotate(360deg);
531
+ }
532
+ }
533
+
534
+ @keyframes wave-pulse {
535
+ 0%,
536
+ 100% {
537
+ opacity: 1;
538
+ }
539
+ 50% {
540
+ opacity: 0.4;
541
+ }
542
+ }
543
+
544
+ @keyframes wave-indeterminate {
545
+ 0% {
546
+ transform: translateX(-100%);
547
+ }
548
+ 100% {
549
+ transform: translateX(350%);
550
+ }
551
+ }
552
+
553
+ @keyframes wave-indeterminate-rtl {
554
+ 0% {
555
+ transform: translateX(100%);
556
+ }
557
+ 100% {
558
+ transform: translateX(-350%);
559
+ }
560
+ }
561
+ }