@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
package/package.json CHANGED
@@ -1,100 +1,149 @@
1
- {
2
- "name": "@mortenbrudvik/waveui",
3
- "version": "0.4.0",
4
- "type": "module",
5
- "description": "A comprehensive React component library with modern design tokens — accessible, composable components built with TypeScript and Tailwind CSS",
6
- "license": "MIT",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/waveui/wave-ui-react.git"
10
- },
11
- "homepage": "https://github.com/waveui/wave-ui-react#readme",
12
- "bugs": {
13
- "url": "https://github.com/waveui/wave-ui-react/issues"
14
- },
15
- "engines": {
16
- "node": ">=20.19.0"
17
- },
18
- "keywords": [
19
- "react",
20
- "component-library",
21
- "waveui",
22
- "design-system",
23
- "typescript",
24
- "tailwind",
25
- "accessible"
26
- ],
27
- "sideEffects": [
28
- "*.css"
29
- ],
30
- "main": "./dist/index.cjs",
31
- "module": "./dist/index.mjs",
32
- "types": "./dist/index.d.ts",
33
- "exports": {
34
- ".": {
35
- "types": "./dist/index.d.ts",
36
- "import": "./dist/index.mjs",
37
- "require": "./dist/index.cjs"
38
- },
39
- "./styles": "./src/styles/globals.css",
40
- "./tokens": "./src/styles/tokens.css"
41
- },
42
- "files": [
43
- "dist",
44
- "src/styles"
45
- ],
46
- "scripts": {
47
- "dev": "storybook dev -p 6006",
48
- "build": "tsc --noEmit && vite build",
49
- "test": "vitest run",
50
- "test:watch": "vitest",
51
- "test:coverage": "vitest run --coverage",
52
- "storybook": "storybook dev -p 6006",
53
- "build-storybook": "storybook build",
54
- "typecheck": "tsc --noEmit",
55
- "lint": "eslint src/ stories/",
56
- "lint:fix": "eslint src/ stories/ --fix",
57
- "format": "prettier --write \"src/**/*.{ts,tsx}\" \"stories/**/*.{ts,tsx}\"",
58
- "format:check": "prettier --check \"src/**/*.{ts,tsx}\" \"stories/**/*.{ts,tsx}\"",
59
- "prepublishOnly": "npm run build && npm test"
60
- },
61
- "peerDependencies": {
62
- "react": "^19.0.0",
63
- "react-dom": "^19.0.0"
64
- },
65
- "dependencies": {
66
- "clsx": "^2.1.1",
67
- "tailwind-merge": "^3.5.0"
68
- },
69
- "devDependencies": {
70
- "@eslint/js": "^10.0.1",
71
- "@storybook/addon-a11y": "^10.2.19",
72
- "@storybook/react": "^10.2.19",
73
- "@storybook/react-vite": "^10.2.19",
74
- "@tailwindcss/vite": "^4.2.1",
75
- "@testing-library/dom": "^10.4.1",
76
- "@testing-library/jest-dom": "^6.6.0",
77
- "@testing-library/react": "^16.3.2",
78
- "@testing-library/user-event": "^14.6.1",
79
- "@types/react": "^19.2.14",
80
- "@types/react-dom": "^19.2.3",
81
- "@vitejs/plugin-react": "^6.0.1",
82
- "@vitest/coverage-v8": "^4.1.0",
83
- "ajv": "^8.18.0",
84
- "eslint": "^10.0.3",
85
- "eslint-config-prettier": "^10.1.8",
86
- "eslint-plugin-react-hooks": "^7.0.1",
87
- "jsdom": "^29.0.0",
88
- "prettier": "^3.8.1",
89
- "react": "^19.2.4",
90
- "react-dom": "^19.2.4",
91
- "storybook": "^10.2.19",
92
- "tailwindcss": "^4.2.1",
93
- "typescript": "^5.7.0",
94
- "typescript-eslint": "^8.57.1",
95
- "vite": "^8.0.0",
96
- "vite-plugin-dts": "^4.5.4",
97
- "vitest": "^4.1.0",
98
- "vitest-axe": "^0.1.0"
99
- }
100
- }
1
+ {
2
+ "name": "@mortenbrudvik/waveui",
3
+ "version": "0.7.0",
4
+ "type": "module",
5
+ "description": "A comprehensive React component library with modern design tokens — accessible, composable components built with TypeScript and Tailwind CSS",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/mortenbrudvik/waveui.git"
10
+ },
11
+ "homepage": "https://github.com/mortenbrudvik/waveui#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/mortenbrudvik/waveui/issues"
14
+ },
15
+ "engines": {
16
+ "node": ">=22.12.0"
17
+ },
18
+ "devEngines": {
19
+ "runtime": {
20
+ "name": "node",
21
+ "version": "^22.22.2 || ^24.15.0 || >=26.0.0",
22
+ "onFail": "error"
23
+ },
24
+ "packageManager": {
25
+ "name": "npm",
26
+ "version": ">=11.11.0",
27
+ "onFail": "warn"
28
+ }
29
+ },
30
+ "keywords": [
31
+ "react",
32
+ "component-library",
33
+ "waveui",
34
+ "design-system",
35
+ "typescript",
36
+ "tailwind",
37
+ "accessible"
38
+ ],
39
+ "sideEffects": [
40
+ "*.css"
41
+ ],
42
+ "main": "./dist/index.cjs",
43
+ "module": "./dist/index.mjs",
44
+ "types": "./dist/index.d.ts",
45
+ "exports": {
46
+ ".": {
47
+ "import": {
48
+ "types": "./dist/index.d.ts",
49
+ "default": "./dist/index.mjs"
50
+ },
51
+ "require": {
52
+ "types": "./dist/index.d.cts",
53
+ "default": "./dist/index.cjs"
54
+ }
55
+ },
56
+ "./styles": "./dist/styles.css",
57
+ "./styles.css": "./dist/styles.css",
58
+ "./preflight.css": "./dist/preflight.css",
59
+ "./tailwind": "./src/styles/tailwind.css",
60
+ "./tailwind.css": "./src/styles/tailwind.css",
61
+ "./tokens": "./src/styles/tokens.css",
62
+ "./tokens.css": "./src/styles/tokens.css",
63
+ "./variants": "./src/styles/variants.css",
64
+ "./variants.css": "./src/styles/variants.css",
65
+ "./legacy-tokens.css": "./src/styles/legacy-tokens.css",
66
+ "./package.json": "./package.json"
67
+ },
68
+ "files": [
69
+ "dist",
70
+ "src/styles",
71
+ "!src/styles/__tests__"
72
+ ],
73
+ "publishConfig": {
74
+ "access": "public"
75
+ },
76
+ "scripts": {
77
+ "dev": "storybook dev -p 6006",
78
+ "build": "tsc -p tsconfig.json --noEmit && vite build && node scripts/build-css.mjs && node scripts/verify-dist.mjs",
79
+ "test": "vitest run",
80
+ "test:watch": "vitest",
81
+ "test:coverage": "vitest run --coverage",
82
+ "storybook": "storybook dev -p 6006",
83
+ "build-storybook": "storybook build && node scripts/verify-storybook.mjs",
84
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit && tsc -p tsconfig.node.json --noEmit && node scripts/check-ts-coverage.mjs",
85
+ "lint": "eslint --max-warnings 0 src/ stories/ .storybook/ scripts/",
86
+ "lint:fix": "eslint src/ stories/ .storybook/ scripts/ --fix",
87
+ "format": "prettier --write \"src/**/*.{ts,tsx}\" \"stories/**/*.{ts,tsx}\" \".storybook/**/*.{ts,tsx,css}\" \"scripts/**/*.{js,mjs,cjs,ts,mts,cts,tsx,css,json}\"",
88
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\" \"stories/**/*.{ts,tsx}\" \".storybook/**/*.{ts,tsx,css}\" \"scripts/**/*.{js,mjs,cjs,ts,mts,cts,tsx,css,json}\"",
89
+ "check:package": "publint && node scripts/attw-pack.mjs --profile node16 --exclude-entrypoints styles styles.css preflight.css tailwind tailwind.css tokens tokens.css variants variants.css legacy-tokens.css",
90
+ "test:pack": "node scripts/pack-smoke.mjs",
91
+ "prepublishOnly": "npm run typecheck && npm run build && node scripts/verify-dist.mjs --final && npm test && npm run check:package && npm run test:pack"
92
+ },
93
+ "peerDependencies": {
94
+ "react": "^19.0.0",
95
+ "react-dom": "^19.0.0",
96
+ "tailwindcss": "^4.1.0"
97
+ },
98
+ "peerDependenciesMeta": {
99
+ "tailwindcss": {
100
+ "optional": true
101
+ }
102
+ },
103
+ "dependencies": {
104
+ "@floating-ui/react-dom": "^2.1.9",
105
+ "clsx": "^2.1.1",
106
+ "tailwind-merge": "^3.7.0"
107
+ },
108
+ "devDependencies": {
109
+ "@arethetypeswrong/cli": "^0.18.5",
110
+ "@eslint/js": "^10.0.1",
111
+ "@storybook/addon-a11y": "^10.6.0",
112
+ "@storybook/addon-docs": "^10.6.0",
113
+ "@storybook/addon-mcp": "^10.6.0",
114
+ "@storybook/react": "^10.6.0",
115
+ "@storybook/react-vite": "^10.6.0",
116
+ "@tailwindcss/cli": "^4.3.3",
117
+ "@tailwindcss/vite": "^4.3.3",
118
+ "@testing-library/dom": "^10.4.2",
119
+ "@testing-library/jest-dom": "^7.0.1",
120
+ "@testing-library/react": "^16.3.3",
121
+ "@testing-library/user-event": "^14.6.7",
122
+ "@types/node": "^22.20.4",
123
+ "@types/react": "^19.3.0",
124
+ "@types/react-dom": "^19.3.0",
125
+ "@vitejs/plugin-react": "^6.1.1",
126
+ "@vitest/coverage-v8": "^5.0.2",
127
+ "ajv": "^8.20.0",
128
+ "eslint": "^10.11.0",
129
+ "eslint-config-prettier": "^10.1.8",
130
+ "eslint-plugin-react-hooks": "^7.1.1",
131
+ "jsdom": "^30.1.1",
132
+ "prettier": "^3.9.9",
133
+ "publint": "^0.3.24",
134
+ "react": "^19.3.0",
135
+ "react-dom": "^19.3.0",
136
+ "storybook": "^10.6.0",
137
+ "tailwindcss": "^4.3.3",
138
+ "typescript": "~6.0.3",
139
+ "typescript-eslint": "^8.70.1",
140
+ "vite": "^8.3.1",
141
+ "vite-plugin-dts": "^4.5.4",
142
+ "vitest": "^5.0.2",
143
+ "vitest-axe": "^0.1.0"
144
+ },
145
+ "allowScripts": {
146
+ "esbuild": false,
147
+ "@parcel/watcher": false
148
+ }
149
+ }
@@ -1,39 +1,7 @@
1
- @keyframes wave-spin {
2
- from {
3
- transform: rotate(0deg);
4
- }
5
- to {
6
- transform: rotate(360deg);
7
- }
8
- }
9
-
10
- @keyframes wave-pulse {
11
- 0%,
12
- 100% {
13
- opacity: 1;
14
- }
15
- 50% {
16
- opacity: 0.4;
17
- }
18
- }
19
-
20
- @keyframes wave-indeterminate {
21
- 0% {
22
- transform: translateX(-100%);
23
- }
24
- 100% {
25
- transform: translateX(350%);
26
- }
27
- }
28
-
29
- /* Respect user preference for reduced motion (WCAG 2.1 SC 2.3.3) */
30
- @media (prefers-reduced-motion: reduce) {
31
- *,
32
- *::before,
33
- *::after {
34
- animation-duration: 0.01ms !important;
35
- animation-iteration-count: 1 !important;
36
- transition-duration: 0.01ms !important;
37
- scroll-behavior: auto !important;
38
- }
39
- }
1
+ /*
2
+ * Deprecated (0.5): intentionally empty; will be removed in 1.0.
3
+ *
4
+ * The `wave-*` keyframes moved into the `@theme` block of tokens.css, so Tailwind emits them
5
+ * together with the `animate-wave-*` utilities. The former global `*` reduced-motion override
6
+ * was removed: reduced motion is handled per component with `motion-reduce:` variants.
7
+ */
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Wave base styles, scoped to WaveProvider roots (`.wave-root`) and portal wrappers
3
+ * (`.wave-portal`). Nothing here touches the rest of the page: no Preflight, no `body` rules,
4
+ * no global `*` rules. WaveProvider is therefore required for the precompiled `./styles` path.
5
+ *
6
+ * Unlayered in `dist/styles.css`, `layer(base)` in the `./tailwind` entry. The two root rules are
7
+ * class selectors (0,1,0). Every other selector is inside `:where()` (zero specificity), except
8
+ * the descendant `::before`/`::after` selectors of the box-sizing rule: pseudo-elements cannot sit
9
+ * inside `:where()` (the selector would be dropped), so those two are (0,0,1). An author
10
+ * `::before`/`::after` of the same specificity wins or loses by source order. The only
11
+ * `!important` declaration is the `hidden` rule at the end.
12
+ */
13
+
14
+ .wave-root,
15
+ .wave-portal {
16
+ font-family: var(--wave-font-family);
17
+ color: var(--wave-foreground);
18
+ font-size: 14px;
19
+ line-height: 20px;
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+
24
+ /* Portal wrappers never paint a background; surfaces paint their own. */
25
+ .wave-root {
26
+ background-color: var(--wave-background);
27
+ }
28
+
29
+ /* Pseudo-elements stay outside :where(): they are invalid inside it and forgiving selector
30
+ parsing would drop them silently. */
31
+ :where(.wave-root, .wave-portal) :where(*),
32
+ :where(.wave-root, .wave-portal) :where(*)::before,
33
+ :where(.wave-root, .wave-portal) :where(*)::after {
34
+ box-sizing: border-box;
35
+ border-color: var(--wave-border);
36
+ }
37
+
38
+ /* Native-element reset, limited to what Wave renders (C-NATIVE). `border: 0 solid` removes the
39
+ UA button border so a single `border-b-2` utility draws only the bottom edge. */
40
+ :where(.wave-root, .wave-portal) :where(button, input, select, textarea) {
41
+ font: inherit;
42
+ color: inherit;
43
+ letter-spacing: inherit;
44
+ margin: 0;
45
+ padding: 0;
46
+ border: 0 solid;
47
+ background-color: transparent;
48
+ }
49
+
50
+ :where(.wave-root, .wave-portal) :where(button, [role='button']) {
51
+ cursor: pointer;
52
+ }
53
+
54
+ :where(.wave-root, .wave-portal) :where(ul, ol) {
55
+ list-style: none;
56
+ margin: 0;
57
+ padding: 0;
58
+ }
59
+
60
+ :where(.wave-root, .wave-portal) :where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
61
+ margin: 0;
62
+ }
63
+
64
+ :where(.wave-root, .wave-portal) :where(h1, h2, h3, h4, h5, h6) {
65
+ font-size: inherit;
66
+ font-weight: inherit;
67
+ }
68
+
69
+ :where(.wave-root, .wave-portal) :where(fieldset) {
70
+ margin: 0;
71
+ padding: 0;
72
+ border: 0;
73
+ min-width: 0;
74
+ }
75
+
76
+ :where(.wave-root, .wave-portal) :where(legend) {
77
+ padding: 0;
78
+ }
79
+
80
+ :where(.wave-root, .wave-portal) :where(table) {
81
+ border-collapse: collapse;
82
+ text-indent: 0;
83
+ }
84
+
85
+ :where(.wave-root, .wave-portal) :where(hr) {
86
+ height: 0;
87
+ border: 0 solid;
88
+ border-top-width: 1px;
89
+ color: inherit;
90
+ margin: 0;
91
+ }
92
+
93
+ :where(.wave-root, .wave-portal) :where(img, svg, video) {
94
+ vertical-align: middle;
95
+ }
96
+
97
+ /* Preflight's `hidden` rule. Without Preflight, a display utility on an element (a component
98
+ root's `inline-flex`, an option's `flex`) beats the user-agent `[hidden] { display: none }`
99
+ rule and `hidden` does nothing. `!important` wins over every utility, unlayered or in a later
100
+ layer; `hidden="until-found"` keeps the browser's own behaviour. */
101
+ :where(.wave-root, .wave-portal) :where([hidden]:not([hidden='until-found'])) {
102
+ display: none !important;
103
+ }
@@ -1,22 +1,10 @@
1
- @import 'tailwindcss';
2
- @import './tokens.css';
3
- @import './animations.css';
4
-
5
- @layer base {
6
- body {
7
- font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system,
8
- BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif;
9
- color: var(--foreground);
10
- background-color: var(--background);
11
- font-size: 14px;
12
- line-height: 20px;
13
- -webkit-font-smoothing: antialiased;
14
- -moz-osx-font-smoothing: grayscale;
15
- }
16
-
17
- *,
18
- *::before,
19
- *::after {
20
- border-color: var(--border);
21
- }
22
- }
1
+ /*
2
+ * Development entry (not exported). Mirrors the Tailwind consumer path of
3
+ * `@mortenbrudvik/waveui/tailwind`: Tailwind with its own sources, Wave tokens in the `theme`
4
+ * layer, Wave's scoped base in the `base` layer and the `wave-rtl:` variant.
5
+ */
6
+
7
+ @import 'tailwindcss';
8
+ @import './tokens.css' layer(theme);
9
+ @import './base.css' layer(base);
10
+ @import './variants.css';
@@ -0,0 +1,184 @@
1
+ /*
2
+ * DEPRECATED 0.4 compatibility layer (`@mortenbrudvik/waveui/legacy-tokens.css`); removed in 1.0.
3
+ *
4
+ * 0.5 renamed the runtime variables to `--wave-*`. Import this file only if your app reads or
5
+ * overrides the 0.4 names (`--primary`, `--background`, `--border`, `--brand-80`, …), and load it
6
+ * AFTER `@mortenbrudvik/waveui/styles` or `@mortenbrudvik/waveui/tailwind`.
7
+ *
8
+ * Never import it in an app that defines shadcn/ui-style variables (`--primary`, `--background`,
9
+ * …): the names collide, which is why 0.5 prefixed them. Migration: rename your overrides to the
10
+ * `--wave-*` names and drop this import.
11
+ *
12
+ * - The 0.4 ramp names are declared as literal constants, so code that reads them keeps working.
13
+ * They never reference `--wave-brand-*` (tokens.css reads them as fallbacks: no cycle).
14
+ * - The 0.4 semantic names are re-declared per theme with the 0.5 values, and the `--wave-*`
15
+ * semantics point at them, so reading and overriding the 0.4 names both work.
16
+ * - Light values sit on `:root` (as in 0.4, so `:root { --primary: … }` overrides reach a light
17
+ * WaveProvider) and on a light subtree nested inside another theme.
18
+ */
19
+
20
+ /* 0.4 ramp names (constants, read-only compatibility) */
21
+ :root {
22
+ --brand-10: #061724;
23
+ --brand-20: #082338;
24
+ --brand-30: #0a2e4a;
25
+ --brand-40: #0c3b5e;
26
+ --brand-50: #0e4775;
27
+ --brand-60: #0f548c;
28
+ --brand-70: #115ea3;
29
+ --brand-80: #0f6cbd;
30
+ --brand-90: #2886de;
31
+ --brand-100: #479ef5;
32
+ --brand-110: #62abf5;
33
+ --brand-120: #77b7f7;
34
+ --brand-130: #96c6fa;
35
+ --brand-140: #b4d6fa;
36
+ --brand-150: #cfe4fa;
37
+ --brand-160: #ebf3fc;
38
+
39
+ --grey-2: #050505;
40
+ --grey-4: #0a0a0a;
41
+ --grey-6: #0f0f0f;
42
+ --grey-8: #141414;
43
+ --grey-10: #1a1a1a;
44
+ --grey-12: #1f1f1f;
45
+ --grey-14: #242424;
46
+ --grey-16: #292929;
47
+ --grey-20: #333333;
48
+ --grey-24: #3d3d3d;
49
+ --grey-26: #424242;
50
+ --grey-30: #4d4d4d;
51
+ --grey-34: #575757;
52
+ --grey-38: #616161;
53
+ --grey-40: #666666;
54
+ --grey-44: #707070;
55
+ --grey-50: #808080;
56
+ --grey-60: #999999;
57
+ --grey-68: #adadad;
58
+ --grey-74: #bdbdbd;
59
+ --grey-78: #c7c7c7;
60
+ --grey-82: #d1d1d1;
61
+ --grey-86: #dbdbdb;
62
+ --grey-88: #e0e0e0;
63
+ --grey-90: #e6e6e6;
64
+ --grey-92: #ebebeb;
65
+ --grey-94: #f0f0f0;
66
+ --grey-96: #f5f5f5;
67
+ --grey-98: #fafafa;
68
+ }
69
+
70
+ /* 0.4 semantic names — light */
71
+ :root,
72
+ :where(.wave-dark, .dark, .wave-high-contrast, .high-contrast) .wave-light {
73
+ --background: #ffffff;
74
+ --foreground: #242424;
75
+ --card: #fafafa;
76
+ --card-foreground: var(--foreground);
77
+ --primary: var(--wave-brand-80);
78
+ --primary-foreground: #ffffff;
79
+ --secondary: #f5f5f5;
80
+ --secondary-foreground: var(--foreground);
81
+ --muted: #f0f0f0;
82
+ --muted-foreground: #616161;
83
+ --accent: var(--primary);
84
+ --accent-foreground: var(--primary-foreground);
85
+ --destructive: #c50f1f;
86
+ --destructive-foreground: #ffffff;
87
+ --subtle: transparent;
88
+ --border: #e0e0e0;
89
+ --input: #d1d1d1;
90
+ --ring: var(--wave-brand-80);
91
+ --success: #107c10;
92
+ --warning: #fde300;
93
+ --error: #c50f1f;
94
+ --info: #0f6cbd;
95
+ --severe: #da3b01;
96
+ }
97
+
98
+ /* 0.4 semantic names — dark */
99
+ .wave-dark,
100
+ .dark {
101
+ --background: #292929;
102
+ --foreground: #ffffff;
103
+ --card: #333333;
104
+ --card-foreground: var(--foreground);
105
+ --primary: var(--wave-brand-110);
106
+ --primary-foreground: #000000;
107
+ --secondary: #333333;
108
+ --secondary-foreground: var(--foreground);
109
+ --muted: #383838;
110
+ --muted-foreground: #adadad;
111
+ --accent: var(--primary);
112
+ --accent-foreground: var(--primary-foreground);
113
+ --destructive: #f48a94;
114
+ --destructive-foreground: #000000;
115
+ --subtle: transparent;
116
+ --border: #666666;
117
+ --input: #666666;
118
+ --ring: var(--wave-brand-100);
119
+ --success: #5db55d;
120
+ --warning: #fde300;
121
+ --error: #f48a94;
122
+ --info: #479ef5;
123
+ --severe: #e97548;
124
+ }
125
+
126
+ /* 0.4 semantic names — high contrast */
127
+ .wave-high-contrast,
128
+ .high-contrast {
129
+ --background: #000000;
130
+ --foreground: #ffffff;
131
+ --card: #000000;
132
+ --card-foreground: var(--foreground);
133
+ --primary: #1aebff;
134
+ --primary-foreground: #000000;
135
+ --secondary: #000000;
136
+ --secondary-foreground: var(--foreground);
137
+ --muted: #1a1a1a;
138
+ --muted-foreground: #ffffff;
139
+ --accent: var(--primary);
140
+ --accent-foreground: var(--primary-foreground);
141
+ --destructive: #ff6e6e;
142
+ --destructive-foreground: #000000;
143
+ --subtle: transparent;
144
+ --border: #ffffff;
145
+ --input: #ffffff;
146
+ --ring: #ffff00;
147
+ --success: #3ff23f;
148
+ --warning: #ffff00;
149
+ --error: #ff6e6e;
150
+ --info: #1aebff;
151
+ --severe: #ff8c00;
152
+ }
153
+
154
+ /* The `--wave-*` semantics read the 0.4 names in every theme group. */
155
+ :root,
156
+ .wave-light,
157
+ .wave-dark,
158
+ .dark,
159
+ .wave-high-contrast,
160
+ .high-contrast {
161
+ --wave-background: var(--background);
162
+ --wave-foreground: var(--foreground);
163
+ --wave-card: var(--card);
164
+ --wave-card-foreground: var(--card-foreground);
165
+ --wave-primary: var(--primary);
166
+ --wave-primary-foreground: var(--primary-foreground);
167
+ --wave-secondary: var(--secondary);
168
+ --wave-secondary-foreground: var(--secondary-foreground);
169
+ --wave-muted: var(--muted);
170
+ --wave-muted-foreground: var(--muted-foreground);
171
+ --wave-accent: var(--accent);
172
+ --wave-accent-foreground: var(--accent-foreground);
173
+ --wave-destructive: var(--destructive);
174
+ --wave-destructive-foreground: var(--destructive-foreground);
175
+ --wave-subtle: var(--subtle);
176
+ --wave-border: var(--border);
177
+ --wave-input: var(--input);
178
+ --wave-ring: var(--ring);
179
+ --wave-success: var(--success);
180
+ --wave-warning: var(--warning);
181
+ --wave-error: var(--error);
182
+ --wave-info: var(--info);
183
+ --wave-severe: var(--severe);
184
+ }
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Opt-in Tailwind Preflight (`@mortenbrudvik/waveui/preflight.css`), compiled unlayered to
3
+ * `dist/preflight.css` by `scripts/build-css.mjs`. Wave does not need it (base.css resets the
4
+ * native elements it renders inside `.wave-root`/`.wave-portal`); it applies to the whole page.
5
+ */
6
+
7
+ @import 'tailwindcss/preflight.css';
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Build input for the precompiled, unlayered `dist/styles.css` (`@mortenbrudvik/waveui/styles`),
3
+ * compiled by `scripts/build-css.mjs`. For apps without Tailwind; Tailwind users import
4
+ * `@mortenbrudvik/waveui/tailwind` instead.
5
+ *
6
+ * - `theme(inline)` inlines Tailwind's default theme into the utilities, so no `--spacing`,
7
+ * `--font-sans`, `--radius-*` or palette variables are emitted.
8
+ * - `source(none)` disables automatic source detection; only the sources below are scanned
9
+ * (tests excluded, stories never included).
10
+ * - Utilities come last so they beat the equal-specificity root rules of base.css.
11
+ * - The `animate-wave-*` utilities are always emitted, so the keyframes they reference are
12
+ * always part of the precompiled CSS.
13
+ * - Tailwind reads every word of the sources, comments and non-class strings included. The
14
+ * `@source not inline()` list holds such words that name a Tailwind utility no component uses
15
+ * as a class (`visibility === 'collapse'`, `addEventListener('blur', …)`, JSDoc prose), so
16
+ * the unlayered file never restyles an app's own `.collapse`, `.container` or `.table`.
17
+ * `scripts/build-css.mjs` fails on any class that no class string of the library uses: add
18
+ * such a word here (or rephrase the comment).
19
+ */
20
+
21
+ @import 'tailwindcss/theme.css' theme(inline);
22
+ @import './tokens.css';
23
+ @import './base.css';
24
+ @import './variants.css';
25
+ @import 'tailwindcss/utilities.css' source(none);
26
+
27
+ @source '../components';
28
+ @source '../lib';
29
+ @source not '../components/**/__tests__';
30
+ @source not '../lib/**/__tests__';
31
+ @source inline('animate-wave-spin animate-wave-spin-slow animate-wave-pulse animate-wave-indeterminate animate-wave-indeterminate-rtl');
32
+ @source not inline('blur collapse container end filter hover:bg-error! inline list-item lowercase not-disabled:not-aria-disabled:hover:bg-error outline resize ring select-all shadow sm:inline start static table text-input transform visible');