@a-type/ui 3.1.1 → 4.0.0-beta.10

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 (474) hide show
  1. package/dist/cjs/components/actions/ActionBar.d.ts +1 -1
  2. package/dist/cjs/components/actions/ActionBar.js +2 -2
  3. package/dist/cjs/components/actions/ActionBar.js.map +1 -1
  4. package/dist/cjs/components/actions/ActionButton.d.ts +3 -3
  5. package/dist/cjs/components/actions/ActionButton.js +2 -2
  6. package/dist/cjs/components/actions/ActionButton.js.map +1 -1
  7. package/dist/cjs/components/avatar/Avatar.d.ts +4 -2
  8. package/dist/cjs/components/avatar/Avatar.js +4 -14
  9. package/dist/cjs/components/avatar/Avatar.js.map +1 -1
  10. package/dist/cjs/components/avatar/Avatar.stories.d.ts +18 -0
  11. package/dist/cjs/components/avatar/Avatar.stories.js +38 -0
  12. package/dist/cjs/components/avatar/Avatar.stories.js.map +1 -0
  13. package/dist/cjs/components/box/Box.stories.js +1 -1
  14. package/dist/cjs/components/box/Box.stories.js.map +1 -1
  15. package/dist/cjs/components/button/Button.d.ts +5 -5
  16. package/dist/cjs/components/button/Button.js +7 -12
  17. package/dist/cjs/components/button/Button.js.map +1 -1
  18. package/dist/cjs/components/button/Button.stories.d.ts +1 -1
  19. package/dist/cjs/components/button/ConfirmedButton.js +1 -2
  20. package/dist/cjs/components/button/ConfirmedButton.js.map +1 -1
  21. package/dist/cjs/components/camera/Camera.d.ts +4 -4
  22. package/dist/cjs/components/camera/Camera.js +6 -7
  23. package/dist/cjs/components/camera/Camera.js.map +1 -1
  24. package/dist/cjs/components/card/Card.d.ts +8 -2
  25. package/dist/cjs/components/card/Card.js +21 -9
  26. package/dist/cjs/components/card/Card.js.map +1 -1
  27. package/dist/cjs/components/card/Card.stories.js +3 -3
  28. package/dist/cjs/components/card/Card.stories.js.map +1 -1
  29. package/dist/cjs/components/checkbox/Checkbox.d.ts +3 -3
  30. package/dist/cjs/components/checkbox/Checkbox.js +5 -38
  31. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  32. package/dist/cjs/components/chip/Chip.d.ts +3 -2
  33. package/dist/cjs/components/chip/Chip.js +3 -4
  34. package/dist/cjs/components/chip/Chip.js.map +1 -1
  35. package/dist/cjs/components/chip/Chip.stories.d.ts +6 -1
  36. package/dist/cjs/components/chip/Chip.stories.js +9 -3
  37. package/dist/cjs/components/chip/Chip.stories.js.map +1 -1
  38. package/dist/cjs/components/collapsible/Collapsible.d.ts +11 -9
  39. package/dist/cjs/components/collapsible/Collapsible.js +18 -39
  40. package/dist/cjs/components/collapsible/Collapsible.js.map +1 -1
  41. package/dist/cjs/components/collapsible/Collapsible.stories.d.ts +1 -1
  42. package/dist/cjs/components/colorMode/ColorModeToggle.d.ts +4 -2
  43. package/dist/cjs/components/colorMode/ColorModeToggle.js +8 -9
  44. package/dist/cjs/components/colorMode/ColorModeToggle.js.map +1 -1
  45. package/dist/cjs/components/colorPicker/ColorPicker.d.ts +4 -3
  46. package/dist/cjs/components/colorPicker/ColorPicker.js +8 -4
  47. package/dist/cjs/components/colorPicker/ColorPicker.js.map +1 -1
  48. package/dist/cjs/components/contextMenu/contextMenu.d.ts +11 -12
  49. package/dist/cjs/components/contextMenu/contextMenu.js +9 -42
  50. package/dist/cjs/components/contextMenu/contextMenu.js.map +1 -1
  51. package/dist/cjs/components/contextMenu/contextMenu.stories.d.ts +22 -0
  52. package/dist/cjs/components/contextMenu/contextMenu.stories.js +22 -0
  53. package/dist/cjs/components/contextMenu/contextMenu.stories.js.map +1 -0
  54. package/dist/cjs/components/dialog/Dialog.d.ts +27 -22
  55. package/dist/cjs/components/dialog/Dialog.js +110 -80
  56. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  57. package/dist/cjs/components/dialog/Dialog.stories.d.ts +8 -8
  58. package/dist/cjs/components/dialog/Dialog.stories.js +6 -6
  59. package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
  60. package/dist/cjs/components/divider/Divider.js +2 -1
  61. package/dist/cjs/components/divider/Divider.js.map +1 -1
  62. package/dist/cjs/components/dropdownMenu/DropdownMenu.d.ts +26 -21
  63. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +22 -19
  64. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  65. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -26
  66. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js +6 -2
  67. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  68. package/dist/cjs/components/forms/EmojiField.d.ts +3 -2
  69. package/dist/cjs/components/forms/EmojiField.js +1 -1
  70. package/dist/cjs/components/forms/EmojiField.js.map +1 -1
  71. package/dist/cjs/components/forms/FormikForm.d.ts +2 -2
  72. package/dist/cjs/components/forms/FormikForm.stories.d.ts +2 -2
  73. package/dist/cjs/components/forms/SubmitButton.js +1 -1
  74. package/dist/cjs/components/forms/SubmitButton.js.map +1 -1
  75. package/dist/cjs/components/forms/TextField.js.map +1 -1
  76. package/dist/cjs/components/forms/ToggleGroupField.d.ts +3 -2
  77. package/dist/cjs/components/forms/ToggleGroupField.js +9 -2
  78. package/dist/cjs/components/forms/ToggleGroupField.js.map +1 -1
  79. package/dist/cjs/components/horizontalList/HorizontalList.d.ts +1 -3
  80. package/dist/cjs/components/horizontalList/HorizontalList.js +3 -3
  81. package/dist/cjs/components/horizontalList/HorizontalList.js.map +1 -1
  82. package/dist/cjs/components/horizontalList/HorizontalList.stories.js +1 -1
  83. package/dist/cjs/components/horizontalList/HorizontalList.stories.js.map +1 -1
  84. package/dist/cjs/components/icon/Icon.d.ts +7 -3
  85. package/dist/cjs/components/icon/Icon.js +14 -2
  86. package/dist/cjs/components/icon/Icon.js.map +1 -1
  87. package/dist/cjs/components/icon/Icon.stories.d.ts +28 -0
  88. package/dist/cjs/components/icon/Icon.stories.js +34 -0
  89. package/dist/cjs/components/icon/Icon.stories.js.map +1 -0
  90. package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
  91. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  92. package/dist/cjs/components/index.d.ts +1 -1
  93. package/dist/cjs/components/index.js +1 -4
  94. package/dist/cjs/components/index.js.map +1 -1
  95. package/dist/cjs/components/input/Input.d.ts +1 -2
  96. package/dist/cjs/components/input/Input.js +4 -5
  97. package/dist/cjs/components/input/Input.js.map +1 -1
  98. package/dist/cjs/components/input/Input.stories.d.ts +1 -1
  99. package/dist/cjs/components/layouts/layouts.stories.js +6 -6
  100. package/dist/cjs/components/layouts/layouts.stories.js.map +1 -1
  101. package/dist/cjs/components/lightbox/Lightbox.d.ts +18 -16
  102. package/dist/cjs/components/lightbox/Lightbox.js +10 -43
  103. package/dist/cjs/components/lightbox/Lightbox.js.map +1 -1
  104. package/dist/cjs/components/lightbox/Lightbox.stories.d.ts +9 -7
  105. package/dist/cjs/components/marquee/marquee.stories.js +1 -1
  106. package/dist/cjs/components/marquee/marquee.stories.js.map +1 -1
  107. package/dist/cjs/components/navBar/NavBar.d.ts +9 -9
  108. package/dist/cjs/components/navBar/NavBar.js +5 -7
  109. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  110. package/dist/cjs/components/popover/Popover.d.ts +17 -13
  111. package/dist/cjs/components/popover/Popover.js +21 -51
  112. package/dist/cjs/components/popover/Popover.js.map +1 -1
  113. package/dist/cjs/components/popover/Popover.stories.d.ts +2 -23
  114. package/dist/cjs/components/popover/Popover.stories.js +1 -1
  115. package/dist/cjs/components/popover/Popover.stories.js.map +1 -1
  116. package/dist/cjs/components/progress/Progress.d.ts +22 -6
  117. package/dist/cjs/components/progress/Progress.js +17 -42
  118. package/dist/cjs/components/progress/Progress.js.map +1 -1
  119. package/dist/cjs/components/progress/Progress.stories.d.ts +13 -3
  120. package/dist/cjs/components/progress/Progress.stories.js +7 -2
  121. package/dist/cjs/components/progress/Progress.stories.js.map +1 -1
  122. package/dist/cjs/components/pwaInstall/PwaInstall.d.ts +3 -3
  123. package/dist/cjs/components/pwaInstall/PwaInstall.js +6 -4
  124. package/dist/cjs/components/pwaInstall/PwaInstall.js.map +1 -1
  125. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.d.ts +1 -2
  126. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js +1 -1
  127. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -1
  128. package/dist/cjs/components/richEditor/index.js +1 -1
  129. package/dist/cjs/components/richEditor/index.js.map +1 -1
  130. package/dist/cjs/components/scrollArea/ScrollArea.d.ts +23 -28
  131. package/dist/cjs/components/scrollArea/ScrollArea.js +26 -56
  132. package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
  133. package/dist/cjs/components/scrollArea/ScrollArea.stories.d.ts +13 -10
  134. package/dist/cjs/components/scrollArea/ScrollArea.stories.js +16 -12
  135. package/dist/cjs/components/scrollArea/ScrollArea.stories.js.map +1 -1
  136. package/dist/cjs/components/select/Select.d.ts +40 -46
  137. package/dist/cjs/components/select/Select.js +40 -83
  138. package/dist/cjs/components/select/Select.js.map +1 -1
  139. package/dist/cjs/components/select/Select.stories.d.ts +18 -11
  140. package/dist/cjs/components/select/Select.stories.js +23 -2
  141. package/dist/cjs/components/select/Select.stories.js.map +1 -1
  142. package/dist/cjs/components/slider/Slider.d.ts +36 -13
  143. package/dist/cjs/components/slider/Slider.js +26 -41
  144. package/dist/cjs/components/slider/Slider.js.map +1 -1
  145. package/dist/cjs/components/slider/Slider.stories.d.ts +16 -7
  146. package/dist/cjs/components/slider/Slider.stories.js +23 -10
  147. package/dist/cjs/components/slider/Slider.stories.js.map +1 -1
  148. package/dist/cjs/components/switch/Switch.d.ts +4 -4
  149. package/dist/cjs/components/switch/Switch.js +3 -3
  150. package/dist/cjs/components/switch/Switch.js.map +1 -1
  151. package/dist/cjs/components/switch/Switch.stories.d.ts +27 -0
  152. package/dist/cjs/components/switch/Switch.stories.js +24 -0
  153. package/dist/cjs/components/switch/Switch.stories.js.map +1 -0
  154. package/dist/cjs/components/tabs/tabs.d.ts +16 -12
  155. package/dist/cjs/components/tabs/tabs.js +12 -47
  156. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  157. package/dist/cjs/components/tabs/tabs.stories.js +3 -3
  158. package/dist/cjs/components/tabs/tabs.stories.js.map +1 -1
  159. package/dist/cjs/components/textArea/TextArea.d.ts +4 -4
  160. package/dist/cjs/components/textArea/TextArea.js +6 -8
  161. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  162. package/dist/cjs/components/textArea/TextArea.stories.d.ts +1 -1
  163. package/dist/cjs/components/toggleGroup/toggleGroup.d.ts +5 -6
  164. package/dist/cjs/components/toggleGroup/toggleGroup.js +6 -38
  165. package/dist/cjs/components/toggleGroup/toggleGroup.js.map +1 -1
  166. package/dist/cjs/components/toggleGroup/toggleGroup.stories.d.ts +17 -0
  167. package/dist/cjs/components/toggleGroup/toggleGroup.stories.js +21 -0
  168. package/dist/cjs/components/toggleGroup/toggleGroup.stories.js.map +1 -0
  169. package/dist/cjs/components/tooltip/Tooltip.d.ts +12 -9
  170. package/dist/cjs/components/tooltip/Tooltip.js +12 -43
  171. package/dist/cjs/components/tooltip/Tooltip.js.map +1 -1
  172. package/dist/cjs/components/tooltip/Tooltip.stories.d.ts +2 -20
  173. package/dist/cjs/components/tooltip/Tooltip.stories.js +14 -5
  174. package/dist/cjs/components/tooltip/Tooltip.stories.js.map +1 -1
  175. package/dist/cjs/components/utility/ArrowSvg.d.ts +1 -0
  176. package/dist/cjs/components/utility/ArrowSvg.js +9 -0
  177. package/dist/cjs/components/utility/ArrowSvg.js.map +1 -0
  178. package/dist/cjs/components/utility/HideWhileKeyboardOpen.d.ts +1 -2
  179. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js +3 -4
  180. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  181. package/dist/cjs/components/utility/SlotDiv.d.ts +3 -4
  182. package/dist/cjs/components/utility/SlotDiv.js +9 -7
  183. package/dist/cjs/components/utility/SlotDiv.js.map +1 -1
  184. package/dist/cjs/hooks/useTitleBarColor.stories.js +1 -1
  185. package/dist/cjs/hooks/useTitleBarColor.stories.js.map +1 -1
  186. package/dist/cjs/hooks/useVisualViewportOffset.js +31 -10
  187. package/dist/cjs/hooks/useVisualViewportOffset.js.map +1 -1
  188. package/dist/cjs/hooks/withClassName.d.ts +2 -2
  189. package/dist/cjs/hooks/withClassName.js.map +1 -1
  190. package/dist/cjs/hooks/withProps.d.ts +1 -1
  191. package/dist/cjs/hooks/withProps.js +1 -1
  192. package/dist/cjs/hooks/withProps.js.map +1 -1
  193. package/dist/cjs/themes.stories.js +2 -2
  194. package/dist/cjs/themes.stories.js.map +1 -1
  195. package/dist/cjs/uno/preflights/globals.js +29 -25
  196. package/dist/cjs/uno/preflights/globals.js.map +1 -1
  197. package/dist/cjs/uno/rules/util.js +18 -8
  198. package/dist/cjs/uno/rules/util.js.map +1 -1
  199. package/dist/cjs/uno/theme/animations.js +0 -74
  200. package/dist/cjs/uno/theme/animations.js.map +1 -1
  201. package/dist/css/main.css +9 -42
  202. package/dist/esm/components/actions/ActionBar.js +2 -2
  203. package/dist/esm/components/actions/ActionBar.js.map +1 -1
  204. package/dist/esm/components/actions/ActionButton.d.ts +3 -3
  205. package/dist/esm/components/actions/ActionButton.js +2 -2
  206. package/dist/esm/components/actions/ActionButton.js.map +1 -1
  207. package/dist/esm/components/avatar/Avatar.d.ts +4 -2
  208. package/dist/esm/components/avatar/Avatar.js +4 -14
  209. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  210. package/dist/esm/components/avatar/Avatar.stories.d.ts +18 -0
  211. package/dist/esm/components/avatar/Avatar.stories.js +35 -0
  212. package/dist/esm/components/avatar/Avatar.stories.js.map +1 -0
  213. package/dist/esm/components/box/Box.stories.js +1 -1
  214. package/dist/esm/components/box/Box.stories.js.map +1 -1
  215. package/dist/esm/components/button/Button.d.ts +5 -5
  216. package/dist/esm/components/button/Button.js +7 -12
  217. package/dist/esm/components/button/Button.js.map +1 -1
  218. package/dist/esm/components/button/Button.stories.d.ts +1 -1
  219. package/dist/esm/components/button/ConfirmedButton.js +1 -2
  220. package/dist/esm/components/button/ConfirmedButton.js.map +1 -1
  221. package/dist/esm/components/camera/Camera.d.ts +4 -4
  222. package/dist/esm/components/camera/Camera.js +6 -7
  223. package/dist/esm/components/camera/Camera.js.map +1 -1
  224. package/dist/esm/components/card/Card.d.ts +8 -2
  225. package/dist/esm/components/card/Card.js +21 -9
  226. package/dist/esm/components/card/Card.js.map +1 -1
  227. package/dist/esm/components/card/Card.stories.js +3 -3
  228. package/dist/esm/components/card/Card.stories.js.map +1 -1
  229. package/dist/esm/components/checkbox/Checkbox.d.ts +3 -3
  230. package/dist/esm/components/checkbox/Checkbox.js +5 -5
  231. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  232. package/dist/esm/components/chip/Chip.d.ts +3 -2
  233. package/dist/esm/components/chip/Chip.js +3 -4
  234. package/dist/esm/components/chip/Chip.js.map +1 -1
  235. package/dist/esm/components/chip/Chip.stories.d.ts +6 -1
  236. package/dist/esm/components/chip/Chip.stories.js +9 -3
  237. package/dist/esm/components/chip/Chip.stories.js.map +1 -1
  238. package/dist/esm/components/collapsible/Collapsible.d.ts +11 -9
  239. package/dist/esm/components/collapsible/Collapsible.js +17 -5
  240. package/dist/esm/components/collapsible/Collapsible.js.map +1 -1
  241. package/dist/esm/components/collapsible/Collapsible.stories.d.ts +1 -1
  242. package/dist/esm/components/colorMode/ColorModeToggle.d.ts +4 -2
  243. package/dist/esm/components/colorMode/ColorModeToggle.js +8 -9
  244. package/dist/esm/components/colorMode/ColorModeToggle.js.map +1 -1
  245. package/dist/esm/components/colorPicker/ColorPicker.d.ts +4 -3
  246. package/dist/esm/components/colorPicker/ColorPicker.js +9 -5
  247. package/dist/esm/components/colorPicker/ColorPicker.js.map +1 -1
  248. package/dist/esm/components/contextMenu/contextMenu.d.ts +11 -12
  249. package/dist/esm/components/contextMenu/contextMenu.js +9 -9
  250. package/dist/esm/components/contextMenu/contextMenu.js.map +1 -1
  251. package/dist/esm/components/contextMenu/contextMenu.stories.d.ts +22 -0
  252. package/dist/esm/components/contextMenu/contextMenu.stories.js +19 -0
  253. package/dist/esm/components/contextMenu/contextMenu.stories.js.map +1 -0
  254. package/dist/esm/components/dialog/Dialog.d.ts +27 -22
  255. package/dist/esm/components/dialog/Dialog.js +110 -49
  256. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  257. package/dist/esm/components/dialog/Dialog.stories.d.ts +8 -8
  258. package/dist/esm/components/dialog/Dialog.stories.js +6 -6
  259. package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
  260. package/dist/esm/components/divider/Divider.js +2 -1
  261. package/dist/esm/components/divider/Divider.js.map +1 -1
  262. package/dist/esm/components/dropdownMenu/DropdownMenu.d.ts +26 -21
  263. package/dist/esm/components/dropdownMenu/DropdownMenu.js +22 -19
  264. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  265. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -26
  266. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js +5 -1
  267. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  268. package/dist/esm/components/forms/EmojiField.d.ts +3 -2
  269. package/dist/esm/components/forms/EmojiField.js +1 -1
  270. package/dist/esm/components/forms/EmojiField.js.map +1 -1
  271. package/dist/esm/components/forms/FormikForm.d.ts +2 -2
  272. package/dist/esm/components/forms/FormikForm.stories.d.ts +2 -2
  273. package/dist/esm/components/forms/SubmitButton.js +1 -1
  274. package/dist/esm/components/forms/SubmitButton.js.map +1 -1
  275. package/dist/esm/components/forms/TextField.js.map +1 -1
  276. package/dist/esm/components/forms/ToggleGroupField.d.ts +3 -2
  277. package/dist/esm/components/forms/ToggleGroupField.js +9 -2
  278. package/dist/esm/components/forms/ToggleGroupField.js.map +1 -1
  279. package/dist/esm/components/horizontalList/HorizontalList.d.ts +1 -3
  280. package/dist/esm/components/horizontalList/HorizontalList.js +4 -4
  281. package/dist/esm/components/horizontalList/HorizontalList.js.map +1 -1
  282. package/dist/esm/components/horizontalList/HorizontalList.stories.js +1 -1
  283. package/dist/esm/components/horizontalList/HorizontalList.stories.js.map +1 -1
  284. package/dist/esm/components/icon/Icon.d.ts +7 -3
  285. package/dist/esm/components/icon/Icon.js +14 -2
  286. package/dist/esm/components/icon/Icon.js.map +1 -1
  287. package/dist/esm/components/icon/Icon.stories.d.ts +28 -0
  288. package/dist/esm/components/icon/Icon.stories.js +31 -0
  289. package/dist/esm/components/icon/Icon.stories.js.map +1 -0
  290. package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
  291. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  292. package/dist/esm/components/index.d.ts +1 -1
  293. package/dist/esm/components/index.js +1 -1
  294. package/dist/esm/components/index.js.map +1 -1
  295. package/dist/esm/components/input/Input.d.ts +1 -2
  296. package/dist/esm/components/input/Input.js +4 -5
  297. package/dist/esm/components/input/Input.js.map +1 -1
  298. package/dist/esm/components/input/Input.stories.d.ts +1 -1
  299. package/dist/esm/components/layouts/layouts.stories.js +4 -4
  300. package/dist/esm/components/layouts/layouts.stories.js.map +1 -1
  301. package/dist/esm/components/lightbox/Lightbox.d.ts +18 -16
  302. package/dist/esm/components/lightbox/Lightbox.js +6 -6
  303. package/dist/esm/components/lightbox/Lightbox.js.map +1 -1
  304. package/dist/esm/components/lightbox/Lightbox.stories.d.ts +9 -7
  305. package/dist/esm/components/marquee/marquee.stories.js +1 -1
  306. package/dist/esm/components/marquee/marquee.stories.js.map +1 -1
  307. package/dist/esm/components/navBar/NavBar.d.ts +9 -9
  308. package/dist/esm/components/navBar/NavBar.js +5 -7
  309. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  310. package/dist/esm/components/popover/Popover.d.ts +17 -13
  311. package/dist/esm/components/popover/Popover.js +17 -14
  312. package/dist/esm/components/popover/Popover.js.map +1 -1
  313. package/dist/esm/components/popover/Popover.stories.d.ts +2 -23
  314. package/dist/esm/components/popover/Popover.stories.js +1 -1
  315. package/dist/esm/components/popover/Popover.stories.js.map +1 -1
  316. package/dist/esm/components/progress/Progress.d.ts +22 -6
  317. package/dist/esm/components/progress/Progress.js +16 -9
  318. package/dist/esm/components/progress/Progress.js.map +1 -1
  319. package/dist/esm/components/progress/Progress.stories.d.ts +13 -3
  320. package/dist/esm/components/progress/Progress.stories.js +6 -1
  321. package/dist/esm/components/progress/Progress.stories.js.map +1 -1
  322. package/dist/esm/components/pwaInstall/PwaInstall.d.ts +3 -3
  323. package/dist/esm/components/pwaInstall/PwaInstall.js +6 -4
  324. package/dist/esm/components/pwaInstall/PwaInstall.js.map +1 -1
  325. package/dist/esm/components/pwaInstall/PwaInstallTrigger.d.ts +1 -2
  326. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js +1 -1
  327. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -1
  328. package/dist/esm/components/richEditor/index.js +1 -1
  329. package/dist/esm/components/richEditor/index.js.map +1 -1
  330. package/dist/esm/components/scrollArea/ScrollArea.d.ts +23 -28
  331. package/dist/esm/components/scrollArea/ScrollArea.js +25 -21
  332. package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
  333. package/dist/esm/components/scrollArea/ScrollArea.stories.d.ts +13 -10
  334. package/dist/esm/components/scrollArea/ScrollArea.stories.js +13 -12
  335. package/dist/esm/components/scrollArea/ScrollArea.stories.js.map +1 -1
  336. package/dist/esm/components/select/Select.d.ts +40 -46
  337. package/dist/esm/components/select/Select.js +35 -77
  338. package/dist/esm/components/select/Select.js.map +1 -1
  339. package/dist/esm/components/select/Select.stories.d.ts +18 -11
  340. package/dist/esm/components/select/Select.stories.js +22 -1
  341. package/dist/esm/components/select/Select.stories.js.map +1 -1
  342. package/dist/esm/components/slider/Slider.d.ts +36 -13
  343. package/dist/esm/components/slider/Slider.js +23 -7
  344. package/dist/esm/components/slider/Slider.js.map +1 -1
  345. package/dist/esm/components/slider/Slider.stories.d.ts +16 -7
  346. package/dist/esm/components/slider/Slider.stories.js +22 -9
  347. package/dist/esm/components/slider/Slider.stories.js.map +1 -1
  348. package/dist/esm/components/switch/Switch.d.ts +4 -4
  349. package/dist/esm/components/switch/Switch.js +3 -3
  350. package/dist/esm/components/switch/Switch.js.map +1 -1
  351. package/dist/esm/components/switch/Switch.stories.d.ts +27 -0
  352. package/dist/esm/components/switch/Switch.stories.js +21 -0
  353. package/dist/esm/components/switch/Switch.stories.js.map +1 -0
  354. package/dist/esm/components/tabs/tabs.d.ts +16 -12
  355. package/dist/esm/components/tabs/tabs.js +10 -12
  356. package/dist/esm/components/tabs/tabs.js.map +1 -1
  357. package/dist/esm/components/tabs/tabs.stories.js +3 -3
  358. package/dist/esm/components/tabs/tabs.stories.js.map +1 -1
  359. package/dist/esm/components/textArea/TextArea.d.ts +4 -4
  360. package/dist/esm/components/textArea/TextArea.js +7 -9
  361. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  362. package/dist/esm/components/textArea/TextArea.stories.d.ts +1 -1
  363. package/dist/esm/components/toggleGroup/toggleGroup.d.ts +5 -6
  364. package/dist/esm/components/toggleGroup/toggleGroup.js +4 -3
  365. package/dist/esm/components/toggleGroup/toggleGroup.js.map +1 -1
  366. package/dist/esm/components/toggleGroup/toggleGroup.stories.d.ts +17 -0
  367. package/dist/esm/components/toggleGroup/toggleGroup.stories.js +18 -0
  368. package/dist/esm/components/toggleGroup/toggleGroup.stories.js.map +1 -0
  369. package/dist/esm/components/tooltip/Tooltip.d.ts +12 -9
  370. package/dist/esm/components/tooltip/Tooltip.js +11 -9
  371. package/dist/esm/components/tooltip/Tooltip.js.map +1 -1
  372. package/dist/esm/components/tooltip/Tooltip.stories.d.ts +2 -20
  373. package/dist/esm/components/tooltip/Tooltip.stories.js +14 -5
  374. package/dist/esm/components/tooltip/Tooltip.stories.js.map +1 -1
  375. package/dist/esm/components/utility/ArrowSvg.d.ts +1 -0
  376. package/dist/esm/components/utility/ArrowSvg.js +6 -0
  377. package/dist/esm/components/utility/ArrowSvg.js.map +1 -0
  378. package/dist/esm/components/utility/HideWhileKeyboardOpen.d.ts +1 -2
  379. package/dist/esm/components/utility/HideWhileKeyboardOpen.js +3 -4
  380. package/dist/esm/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  381. package/dist/esm/components/utility/SlotDiv.d.ts +3 -4
  382. package/dist/esm/components/utility/SlotDiv.js +9 -7
  383. package/dist/esm/components/utility/SlotDiv.js.map +1 -1
  384. package/dist/esm/hooks/useTitleBarColor.stories.js +1 -1
  385. package/dist/esm/hooks/useTitleBarColor.stories.js.map +1 -1
  386. package/dist/esm/hooks/useVisualViewportOffset.js +31 -10
  387. package/dist/esm/hooks/useVisualViewportOffset.js.map +1 -1
  388. package/dist/esm/hooks/withClassName.d.ts +2 -2
  389. package/dist/esm/hooks/withClassName.js +2 -2
  390. package/dist/esm/hooks/withClassName.js.map +1 -1
  391. package/dist/esm/hooks/withProps.d.ts +1 -1
  392. package/dist/esm/hooks/withProps.js +1 -1
  393. package/dist/esm/hooks/withProps.js.map +1 -1
  394. package/dist/esm/themes.stories.js +2 -2
  395. package/dist/esm/themes.stories.js.map +1 -1
  396. package/dist/esm/uno/preflights/globals.js +29 -25
  397. package/dist/esm/uno/preflights/globals.js.map +1 -1
  398. package/dist/esm/uno/rules/util.js +18 -8
  399. package/dist/esm/uno/rules/util.js.map +1 -1
  400. package/dist/esm/uno/theme/animations.js +0 -74
  401. package/dist/esm/uno/theme/animations.js.map +1 -1
  402. package/package.json +1 -21
  403. package/src/components/actions/ActionBar.tsx +13 -9
  404. package/src/components/actions/ActionButton.tsx +2 -4
  405. package/src/components/avatar/Avatar.stories.tsx +41 -0
  406. package/src/components/avatar/Avatar.tsx +26 -40
  407. package/src/components/box/Box.stories.tsx +1 -1
  408. package/src/components/button/Button.tsx +14 -19
  409. package/src/components/button/ConfirmedButton.tsx +3 -7
  410. package/src/components/camera/Camera.tsx +23 -21
  411. package/src/components/card/Card.stories.tsx +22 -15
  412. package/src/components/card/Card.tsx +57 -40
  413. package/src/components/checkbox/Checkbox.tsx +13 -9
  414. package/src/components/chip/Chip.stories.tsx +13 -6
  415. package/src/components/chip/Chip.tsx +6 -7
  416. package/src/components/collapsible/Collapsible.tsx +36 -18
  417. package/src/components/colorMode/ColorModeToggle.tsx +13 -12
  418. package/src/components/colorPicker/ColorPicker.tsx +33 -27
  419. package/src/components/contextMenu/contextMenu.stories.tsx +39 -0
  420. package/src/components/contextMenu/contextMenu.tsx +33 -32
  421. package/src/components/dialog/Dialog.stories.tsx +15 -37
  422. package/src/components/dialog/Dialog.tsx +218 -102
  423. package/src/components/divider/Divider.tsx +5 -1
  424. package/src/components/dropdownMenu/DropdownMenu.stories.tsx +63 -5
  425. package/src/components/dropdownMenu/DropdownMenu.tsx +86 -47
  426. package/src/components/forms/EmojiField.tsx +18 -15
  427. package/src/components/forms/SubmitButton.tsx +1 -1
  428. package/src/components/forms/TextField.tsx +2 -2
  429. package/src/components/forms/ToggleGroupField.tsx +9 -1
  430. package/src/components/horizontalList/HorizontalList.stories.tsx +2 -2
  431. package/src/components/horizontalList/HorizontalList.tsx +10 -18
  432. package/src/components/icon/Icon.stories.tsx +47 -0
  433. package/src/components/icon/Icon.tsx +30 -17
  434. package/src/components/imageUploader/ImageUploader.tsx +7 -9
  435. package/src/components/index.ts +1 -1
  436. package/src/components/input/Input.tsx +3 -7
  437. package/src/components/layouts/layouts.stories.tsx +10 -16
  438. package/src/components/lightbox/Lightbox.tsx +25 -13
  439. package/src/components/marquee/marquee.stories.tsx +5 -3
  440. package/src/components/navBar/NavBar.tsx +9 -17
  441. package/src/components/popover/Popover.stories.tsx +6 -7
  442. package/src/components/popover/Popover.tsx +86 -39
  443. package/src/components/progress/Progress.stories.tsx +15 -3
  444. package/src/components/progress/Progress.tsx +65 -11
  445. package/src/components/pwaInstall/PwaInstall.tsx +21 -22
  446. package/src/components/pwaInstall/PwaInstallTrigger.stories.tsx +5 -4
  447. package/src/components/pwaInstall/PwaInstallTrigger.tsx +1 -1
  448. package/src/components/richEditor/index.tsx +8 -4
  449. package/src/components/scrollArea/ScrollArea.stories.tsx +86 -45
  450. package/src/components/scrollArea/ScrollArea.tsx +108 -96
  451. package/src/components/select/Select.stories.tsx +39 -10
  452. package/src/components/select/Select.tsx +161 -218
  453. package/src/components/slider/Slider.stories.tsx +40 -15
  454. package/src/components/slider/Slider.tsx +62 -29
  455. package/src/components/switch/Switch.stories.tsx +24 -0
  456. package/src/components/switch/Switch.tsx +9 -8
  457. package/src/components/tabs/tabs.stories.tsx +7 -13
  458. package/src/components/tabs/tabs.tsx +34 -27
  459. package/src/components/textArea/TextArea.tsx +17 -25
  460. package/src/components/toggleGroup/toggleGroup.stories.tsx +27 -0
  461. package/src/components/toggleGroup/toggleGroup.tsx +10 -8
  462. package/src/components/tooltip/Tooltip.stories.tsx +20 -10
  463. package/src/components/tooltip/Tooltip.tsx +72 -30
  464. package/src/components/utility/ArrowSvg.tsx +15 -0
  465. package/src/components/utility/HideWhileKeyboardOpen.tsx +3 -8
  466. package/src/components/utility/SlotDiv.tsx +10 -10
  467. package/src/hooks/useTitleBarColor.stories.tsx +1 -3
  468. package/src/hooks/useVisualViewportOffset.ts +34 -11
  469. package/src/hooks/withClassName.tsx +3 -3
  470. package/src/hooks/withProps.tsx +1 -1
  471. package/src/themes.stories.tsx +10 -20
  472. package/src/uno/preflights/globals.ts +25 -21
  473. package/src/uno/rules/util.ts +18 -8
  474. package/src/uno/theme/animations.ts +0 -74
@@ -1,10 +1,10 @@
1
- import { Root, SwitchProps, Thumb } from '@radix-ui/react-switch';
1
+ import { Switch as BaseSwitch, SwitchRootProps } from '@base-ui/react/switch';
2
2
  import { withClassName } from '../../hooks/withClassName.js';
3
3
 
4
4
  const SwitchRoot = withClassName(
5
- Root,
6
- 'layer-components:(unset transition-all cursor-pointer w-42px h-25px bg-white rounded-lg relative border-default flex-shrink-0 shadow-sm)',
7
- 'layer-components:[&[data-state=checked]]:bg-main',
5
+ BaseSwitch.Root,
6
+ 'layer-components:(unset appearance-none flex transition-all cursor-pointer w-42px h-25px p-2px bg-gray-light rounded-lg relative border-default flex-shrink-0 shadow-sm)',
7
+ 'layer-components:data-[checked]:bg-main',
8
8
  'layer-components:hover:[&:not(:disabled)]:(bg-lighten-2 ring-2 ring-bg)',
9
9
  'layer-components:active:[&:not(:disabled)]:(bg-darken-1 ring-4)',
10
10
  'layer-components:focus:outline-none',
@@ -12,16 +12,17 @@ const SwitchRoot = withClassName(
12
12
  );
13
13
 
14
14
  const SwitchThumb = withClassName(
15
- Thumb,
16
- 'layer-components:(block w-21px h-21px bg-white rounded-lg border-default transition-transform will-change-transform)',
17
- 'layer-components:[&[data-state=checked]]:translate-x-18px',
15
+ BaseSwitch.Thumb,
16
+ 'layer-components:(block aspect-1 h-full bg-white rounded-lg border-default transition-transform will-change-transform)',
17
+ 'layer-components:data-[checked]:(translate-x-1rem)',
18
+ 'layer-components:data-[checked]:before:(content-["✓"] flex items-center justify-center absolute top-0 left-0 w-full h-full text-xs text-main-ink)',
18
19
  );
19
20
 
20
21
  export const Switch = Object.assign(
21
22
  function Switch({
22
23
  ref,
23
24
  ...props
24
- }: SwitchProps & {
25
+ }: SwitchRootProps & {
25
26
  ref?: React.Ref<HTMLButtonElement>;
26
27
  }) {
27
28
  return (
@@ -7,7 +7,7 @@ const meta = {
7
7
  argTypes: {
8
8
  color: {
9
9
  control: 'select',
10
- options: ['default', 'primary'],
10
+ options: ['gray', 'primary'],
11
11
  },
12
12
  },
13
13
  parameters: {
@@ -24,16 +24,10 @@ export const Default: Story = {
24
24
  const [value, setValue] = useState('tab1');
25
25
  return (
26
26
  <TabsRoot value={value} onValueChange={setValue}>
27
- <TabsList>
28
- <TabsTrigger value="tab1" color={args.color}>
29
- Tab 1
30
- </TabsTrigger>
31
- <TabsTrigger value="tab2" color={args.color}>
32
- Tab 2 (long)
33
- </TabsTrigger>
34
- <TabsTrigger value="tab3" color={args.color}>
35
- Tab 3
36
- </TabsTrigger>
27
+ <TabsList color={args.color}>
28
+ <TabsTrigger value="tab1">Tab 1</TabsTrigger>
29
+ <TabsTrigger value="tab2">Tab 2 (long)</TabsTrigger>
30
+ <TabsTrigger value="tab3">Tab 3</TabsTrigger>
37
31
  </TabsList>
38
32
  <TabsContent value="tab1">
39
33
  <div>Tab 1 content</div>
@@ -54,9 +48,9 @@ export const WithManyTabs: Story = {
54
48
  const [value, setValue] = useState('tab1');
55
49
  return (
56
50
  <TabsRoot value={value} onValueChange={setValue}>
57
- <TabsList>
51
+ <TabsList color={args.color}>
58
52
  {Array.from({ length: 20 }).map((_, i) => (
59
- <TabsTrigger key={i} value={`tab${i + 1}`} color={args.color}>
53
+ <TabsTrigger key={i} value={`tab${i + 1}`}>
60
54
  Tab {i + 1}
61
55
  </TabsTrigger>
62
56
  ))}
@@ -1,57 +1,64 @@
1
- import * as TabsPrimitive from '@radix-ui/react-tabs';
1
+ import {
2
+ TabsListProps,
3
+ Tabs as TabsPrimitive,
4
+ TabsTabProps,
5
+ } from '@base-ui/react/tabs';
2
6
  import clsx from 'clsx';
3
7
  import { withClassName } from '../../hooks/withClassName.js';
4
8
 
5
9
  export const TabsRoot = withClassName(TabsPrimitive.Root, '');
6
10
 
7
- export const TabsList = withClassName(
11
+ const StyledTabsList = withClassName(
8
12
  TabsPrimitive.List,
9
- 'layer-components:(flex flex-row items-start gap-2)',
13
+ 'layer-components:(flex flex-row items-start gap-2 relative)',
10
14
  'layer-components:(border-solid border-thin border-fg rounded-xl)',
11
15
  'layer-components:(shadow-sm bg-white)',
12
- 'layer-components:(overflow-x-auto overflow-unstable w-max-content max-w-full)',
16
+ 'layer-components:(overflow-x-auto overflow-y-clip overflow-unstable w-max-content max-w-full)',
13
17
  );
14
18
 
15
- export const TabsTriggerBase = withClassName(
16
- TabsPrimitive.Trigger,
17
- 'layer-components:(flex flex-row items-center justify-center gap-2 py-xs px-lg)',
19
+ export const TabsTrigger = withClassName(
20
+ TabsPrimitive.Tab,
21
+ 'layer-components:(flex flex-row items-center justify-center gap-2 py-xs px-lg relative z-1)',
18
22
  'layer-components:(transition-all cursor-pointer select-none)',
19
23
  'layer-components:(text-center text-md font-semibold color-gray-ink font-inherit text-nowrap)',
20
24
  'layer-components:(min-w-100px min-h-touch flex-shrink-0)',
21
25
  'layer-components:(bg-transparent border border-transparent rounded-lg)',
22
26
  'layer-components:hover:[&[data-state=inactive]]:(bg-gray-light bg-darken-1 ring-4 ring-bg)',
23
27
  'layer-components:focus-visible:(bg-darken-1 ring-4 ring-accent outline-off border border-black)',
24
- '[&[data-state=active]]:(cursor-default border-gray-dark relative z-1)',
28
+ 'data-[active]:(cursor-default)',
25
29
  );
26
30
 
27
- const colorClasses = {
28
- default: 'layer-variants:[&[data-state=active]]:(bg-gray)',
29
- primary: 'layer-variants:[&[data-state=active]]:(bg-main-light)',
30
- };
31
+ export const TabsIndicator = withClassName(
32
+ TabsPrimitive.Indicator,
33
+ 'layer-components:(absolute block [transition-property:transform,width,color] duration-300 ease-out rounded-full b-gray-dark bg-main-light)',
34
+ 'layer-components:(left-0 top-1/2 translate-x-[--active-tab-left] -translate-y-1/2 w-[--active-tab-width] h-full z-0)',
35
+ 'layer-components:(b-1 b-gray-dark)',
36
+ );
37
+
38
+ export interface TabsTriggerProps extends Omit<TabsTabProps, 'color'> {}
31
39
 
32
- export interface TabsTriggerProps
33
- extends Omit<TabsPrimitive.TabsTriggerProps, 'color'> {
34
- color?: 'default' | 'primary';
35
- }
40
+ export const TabsContent = withClassName(
41
+ TabsPrimitive.Panel,
42
+ 'layer-components:(focus:outline-none focus-visible:(outline-none ring-inset ring-2 ring-gray))',
43
+ );
36
44
 
37
- export const TabsTrigger = ({
45
+ export const TabsList = ({
46
+ children,
38
47
  className,
39
48
  color = 'primary',
40
49
  ...props
41
- }: TabsTriggerProps) => (
42
- <TabsTriggerBase
43
- className={clsx(colorClasses[color], `btn-color-${color}`, className)}
44
- {...props}
45
- />
46
- );
47
-
48
- export const TabsContent = withClassName(
49
- TabsPrimitive.Content,
50
- 'layer-components:(focus:outline-none focus-visible:(outline-none ring-inset ring-2 ring-gray))',
50
+ }: TabsListProps & {
51
+ color?: 'gray' | 'primary';
52
+ }) => (
53
+ <StyledTabsList {...props} className={clsx(`palette-${color}`, className)}>
54
+ {children}
55
+ <TabsIndicator />
56
+ </StyledTabsList>
51
57
  );
52
58
 
53
59
  export const Tabs = Object.assign(TabsRoot, {
54
60
  List: TabsList,
55
61
  Trigger: TabsTrigger,
56
62
  Content: TabsContent,
63
+ Indicator: TabsIndicator,
57
64
  });
@@ -1,20 +1,13 @@
1
1
  'use client';
2
2
 
3
+ import { Input, InputProps } from '@base-ui/react/input';
3
4
  import classNames from 'clsx';
4
- import {
5
- ChangeEvent,
6
- HTMLProps,
7
- useCallback,
8
- useLayoutEffect,
9
- useRef,
10
- useState,
11
- } from 'react';
5
+ import { useCallback, useLayoutEffect, useRef, useState } from 'react';
12
6
  import useMergedRef from '../../hooks/useMergedRef.js';
13
7
  import { useRotatingShuffledValue } from '../../hooks/useRotatingShuffledValue.js';
14
8
  import { inputClassName } from '../input/index.js';
15
9
 
16
- export interface TextAreaProps
17
- extends Omit<HTMLProps<HTMLTextAreaElement>, 'ref'> {
10
+ export interface TextAreaProps extends InputProps {
18
11
  className?: string;
19
12
  autoSize?: boolean;
20
13
  autoSelect?: boolean;
@@ -22,9 +15,11 @@ export interface TextAreaProps
22
15
  padBottomPixels?: number;
23
16
  placeholders?: string[];
24
17
  placeholdersIntervalMs?: number;
25
- onValueChange?: (value: string) => void;
18
+ rows?: number;
26
19
  }
27
20
 
21
+ type HandleChange = Exclude<InputProps['onValueChange'], undefined>;
22
+
28
23
  export const TextArea = function TextArea({
29
24
  ref,
30
25
  autoSize,
@@ -40,9 +35,9 @@ export const TextArea = function TextArea({
40
35
  onValueChange,
41
36
  ...rest
42
37
  }: TextAreaProps & {
43
- ref?: React.Ref<HTMLTextAreaElement>;
38
+ ref?: React.Ref<any>;
44
39
  }) {
45
- const innerRef = useRef<HTMLTextAreaElement>(null);
40
+ const innerRef = useRef<any>(null);
46
41
  const finalRef = useMergedRef(innerRef, ref);
47
42
 
48
43
  const [innerValue, setInnerValue] = useState('');
@@ -61,21 +56,18 @@ export const TextArea = function TextArea({
61
56
  }
62
57
  }, [autoSize, padBottomPixels, finalValue]);
63
58
 
64
- const handleChange = useCallback(
65
- (e: ChangeEvent<HTMLTextAreaElement>) => {
66
- setInnerValue((e.target as HTMLTextAreaElement).value);
67
- if (onChange) {
68
- onChange(e);
69
- }
59
+ const handleValueChange = useCallback<HandleChange>(
60
+ (value, eventDetails) => {
61
+ setInnerValue(value);
70
62
  if (onValueChange) {
71
- onValueChange(e.target.value);
63
+ onValueChange(value, eventDetails);
72
64
  }
73
65
  },
74
66
  [onChange, onValueChange],
75
67
  );
76
68
 
77
- const handleFocus = useCallback(
78
- (e: React.FocusEvent<HTMLTextAreaElement>) => {
69
+ const handleFocus = useCallback<Exclude<InputProps['onFocus'], undefined>>(
70
+ (e) => {
79
71
  if (autoSelect) {
80
72
  e.target.select();
81
73
  }
@@ -92,7 +84,8 @@ export const TextArea = function TextArea({
92
84
  );
93
85
 
94
86
  return (
95
- <textarea
87
+ <Input
88
+ render={<textarea rows={autoSize ? 1 : rows} />}
96
89
  ref={finalRef}
97
90
  className={classNames(
98
91
  inputClassName,
@@ -104,8 +97,7 @@ export const TextArea = function TextArea({
104
97
  },
105
98
  className,
106
99
  )}
107
- rows={autoSize ? 1 : rows}
108
- onChange={handleChange}
100
+ onValueChange={handleValueChange}
109
101
  onFocus={handleFocus}
110
102
  placeholder={placeholder ?? randomPlaceholder}
111
103
  {...rest}
@@ -0,0 +1,27 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ToggleGroup } from './toggleGroup.js';
3
+
4
+ const meta = {
5
+ title: 'Components/ToggleGroup',
6
+ component: ToggleGroup,
7
+ argTypes: {},
8
+ parameters: {
9
+ controls: { expanded: true },
10
+ },
11
+ } satisfies Meta<typeof ToggleGroup>;
12
+
13
+ export default meta;
14
+
15
+ type Story = StoryObj<typeof ToggleGroup>;
16
+
17
+ export const Default: Story = {
18
+ render(args) {
19
+ return (
20
+ <ToggleGroup {...args}>
21
+ <ToggleGroup.Item>Option 1</ToggleGroup.Item>
22
+ <ToggleGroup.Item>Option 2</ToggleGroup.Item>
23
+ <ToggleGroup.Item>Option 3</ToggleGroup.Item>
24
+ </ToggleGroup>
25
+ );
26
+ },
27
+ };
@@ -1,22 +1,24 @@
1
- import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
1
+ import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
2
+ import {
3
+ ToggleGroup as ToggleGroupPrimitive,
4
+ ToggleGroupProps,
5
+ } from '@base-ui/react/toggle-group';
2
6
  import { withClassName } from '../../hooks/withClassName.js';
3
7
 
4
- export const ToggleGroupRoot = withClassName(
5
- ToggleGroupPrimitive.Root,
8
+ const ToggleGroupRoot = withClassName(
9
+ ToggleGroupPrimitive,
6
10
  'layer-components:(inline-flex bg-main-light/20 rounded-lg gap-sm w-fit)',
7
11
  );
8
12
  export const ToggleGroupItem = withClassName(
9
- ToggleGroupPrimitive.Item,
13
+ TogglePrimitive,
10
14
  'layer-components:(rounded-full text-nowrap transition-all color-black bg-gray/30 py-sm px-md flex items-center border-transparent border-1 border-solid justify-center cursor-pointer)',
11
15
  'layer-components:hover:(bg-lighten-2 border-main-ink/20 ring-bg ring-2)',
12
16
  'layer-components:active:(bg-darken-1 border-main-ink/30 ring-4)',
13
17
  'layer-components:focus-visible:(ring-4 ring-accent outline-off)',
14
- 'layer-components:[&[data-state=on]]:(bg-main border-default shadow-sm hover:border-default)',
18
+ 'layer-components:data-[pressed]:(bg-main border-default shadow-sm hover:border-default)',
15
19
  );
16
20
 
17
- export type ToggleGroupProps =
18
- | ToggleGroupPrimitive.ToggleGroupMultipleProps
19
- | ToggleGroupPrimitive.ToggleGroupSingleProps;
21
+ export type { ToggleGroupProps };
20
22
  export const ToggleGroup = Object.assign(ToggleGroupRoot, {
21
23
  Item: ToggleGroupItem,
22
24
  });
@@ -1,11 +1,17 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { Box } from '../box/Box.js';
3
+ import { Button } from '../button/index.js';
3
4
  import { Tooltip } from './Tooltip.js';
4
5
 
5
- const meta = {
6
+ const meta: Meta = {
6
7
  title: 'Components/Tooltip',
7
8
  component: Tooltip,
8
- argTypes: {},
9
+ argTypes: {
10
+ color: {
11
+ control: 'select',
12
+ options: ['contrast', 'white', 'neutral', 'attention'],
13
+ },
14
+ },
9
15
  parameters: {
10
16
  controls: { expanded: true },
11
17
  },
@@ -13,7 +19,7 @@ const meta = {
13
19
  content: 'hello world',
14
20
  color: 'contrast',
15
21
  },
16
- } satisfies Meta<typeof Tooltip>;
22
+ };
17
23
 
18
24
  export default meta;
19
25
 
@@ -21,24 +27,27 @@ type Story = StoryObj<typeof Tooltip>;
21
27
 
22
28
  export const Default: Story = {
23
29
  render: (args) => (
24
- <Tooltip {...args}>
25
- <button>Hover me</button>
30
+ <Tooltip open {...args}>
31
+ <Button>Hover me</Button>
26
32
  </Tooltip>
27
33
  ),
28
34
  };
29
35
 
30
36
  export const Disabled: Story = {
31
37
  render: (args) => (
32
- <Tooltip {...args} disabled>
33
- <button>Hover me</button>
38
+ <Tooltip {...args}>
39
+ <Button>Hover me</Button>
34
40
  </Tooltip>
35
41
  ),
42
+ args: {
43
+ disabled: true,
44
+ },
36
45
  };
37
46
 
38
47
  export const Color: Story = {
39
48
  render: (args) => (
40
- <Tooltip {...args}>
41
- <button>Hover me</button>
49
+ <Tooltip open {...args}>
50
+ <Button>Hover me</Button>
42
51
  </Tooltip>
43
52
  ),
44
53
  args: {
@@ -50,6 +59,7 @@ export const Customized: Story = {
50
59
  render: (args) => (
51
60
  <Tooltip
52
61
  className="bg-attention"
62
+ open
53
63
  {...args}
54
64
  content={
55
65
  <Box d="col" p>
@@ -57,7 +67,7 @@ export const Customized: Story = {
57
67
  </Box>
58
68
  }
59
69
  >
60
- <button>Hover me</button>
70
+ <Button>Hover me</Button>
61
71
  </Tooltip>
62
72
  ),
63
73
  };
@@ -1,9 +1,19 @@
1
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
1
+ import {
2
+ TooltipPopupProps,
3
+ TooltipPositionerProps,
4
+ Tooltip as TooltipPrimitive,
5
+ TooltipTriggerProps,
6
+ } from '@base-ui/react/tooltip';
2
7
  import classNames from 'clsx';
8
+ import { ReactElement, ReactNode } from 'react';
3
9
  import { GroupScaleReset } from '../../systems/GroupScale.js';
10
+ import { ArrowSvg } from '../utility/ArrowSvg.js';
11
+
12
+ export type * from '@base-ui/react/tooltip';
4
13
 
5
14
  export interface TooltipContentProps
6
- extends TooltipPrimitive.TooltipContentProps {
15
+ extends TooltipPopupProps,
16
+ Omit<TooltipPositionerProps, 'className' | 'style' | 'render'> {
7
17
  color?: 'contrast' | 'white' | 'neutral' | 'attention';
8
18
  }
9
19
 
@@ -11,32 +21,63 @@ function Content({
11
21
  children,
12
22
  className,
13
23
  color = 'contrast',
24
+ render,
25
+ side,
26
+ sideOffset,
27
+ align,
28
+ alignOffset,
29
+ anchor,
30
+ disableAnchorTracking,
31
+ sticky,
32
+ arrowPadding,
33
+ collisionAvoidance,
34
+ collisionBoundary,
35
+ collisionPadding,
36
+ positionMethod,
14
37
  ...props
15
- }: TooltipPrimitive.TooltipContentProps) {
38
+ }: TooltipContentProps) {
16
39
  return (
17
40
  <TooltipPrimitive.Portal>
18
41
  <GroupScaleReset>
19
- <TooltipPrimitive.Content
20
- className={classNames(
21
- 'layer-components:(relative rounded-sm py-2 px-3 text-sm leading-tight shadow-sm select-none hidden z-tooltip)',
22
- '[&[data-state=delayed-open]]:flex',
23
- '[&[data-state=instant-open]]:flex',
24
- 'layer-components:transform-origin-[var(--radix-tooltip-content-transform-origin)]',
25
- 'layer-components:[&[data-state=delayed-open]]:animate-popover-in',
26
- {
27
- 'layer-variants:(bg-black color-white)': color === 'contrast',
28
- 'layer-variants:(bg-white color-black)':
29
- color === 'white' || color === 'neutral',
30
- 'layer-variants:(bg-attention-ink color-white)':
31
- color === 'attention',
32
- },
33
- className,
34
- )}
35
- {...props}
42
+ <TooltipPrimitive.Positioner
43
+ side={side}
44
+ sideOffset={sideOffset}
45
+ align={align}
46
+ alignOffset={alignOffset}
47
+ anchor={anchor}
48
+ disableAnchorTracking={disableAnchorTracking}
49
+ sticky={sticky}
50
+ arrowPadding={arrowPadding}
51
+ collisionAvoidance={collisionAvoidance}
52
+ collisionBoundary={collisionBoundary}
53
+ collisionPadding={collisionPadding}
54
+ positionMethod={positionMethod}
36
55
  >
37
- {children}
38
- <TooltipPrimitive.Arrow className="layer-components:arrow" />
39
- </TooltipPrimitive.Content>
56
+ <TooltipPrimitive.Popup
57
+ render={render}
58
+ className={classNames(
59
+ 'layer-components:(relative rounded-sm py-xs px-sm text-sm leading-tight shadow-sm select-none flex transition)',
60
+ 'layer-components:data-[instant]:transition-none',
61
+ 'layer-components:data-[starting-style]:(opacity-0 scale-95)',
62
+ 'layer-components:data-[ending-style]:(opacity-0 scale-95)',
63
+ 'layer-components:transform-origin-[var(--transform-origin)]',
64
+ {
65
+ 'layer-variants:(bg-black color-white)': color === 'contrast',
66
+ 'layer-variants:(bg-white color-black border border-gray)':
67
+ color === 'white' || color === 'neutral',
68
+ 'layer-variants:(bg-attention-ink color-white)':
69
+ color === 'attention',
70
+ },
71
+ className,
72
+ )}
73
+ {...props}
74
+ >
75
+ {children}
76
+ <TooltipPrimitive.Arrow className="layer-components:arrow">
77
+ <ArrowSvg />
78
+ </TooltipPrimitive.Arrow>
79
+ </TooltipPrimitive.Popup>
80
+ </TooltipPrimitive.Positioner>
40
81
  </GroupScaleReset>
41
82
  </TooltipPrimitive.Portal>
42
83
  );
@@ -45,8 +86,10 @@ function Content({
45
86
  export const TooltipProvider = TooltipPrimitive.Provider;
46
87
 
47
88
  export interface TooltipProps
48
- extends Omit<TooltipPrimitive.TooltipTriggerProps, 'content'> {
49
- content: React.ReactNode;
89
+ extends Omit<TooltipTriggerProps, 'content' | 'children'>,
90
+ Pick<TooltipContentProps, 'side' | 'sideOffset' | 'color'> {
91
+ content: ReactNode;
92
+ children?: ReactElement;
50
93
  open?: boolean;
51
94
  disabled?: boolean;
52
95
  }
@@ -65,15 +108,13 @@ export const Tooltip = Object.assign(
65
108
  ...rest
66
109
  }: TooltipProps & {
67
110
  ref?: React.Ref<HTMLButtonElement>;
68
- } & Pick<TooltipContentProps, 'color' | 'sideOffset' | 'side'>) {
111
+ }) {
69
112
  return (
70
113
  <TooltipPrimitive.Root open={open}>
71
114
  {disabled ? (
72
115
  children
73
116
  ) : (
74
- <TooltipPrimitive.TooltipTrigger asChild ref={ref} {...rest}>
75
- {children}
76
- </TooltipPrimitive.TooltipTrigger>
117
+ <TooltipPrimitive.Trigger ref={ref} {...rest} render={children} />
77
118
  )}
78
119
  <Content
79
120
  color={color}
@@ -87,7 +128,8 @@ export const Tooltip = Object.assign(
87
128
  );
88
129
  },
89
130
  {
90
- Trigger: TooltipPrimitive.TooltipTrigger,
131
+ Trigger: TooltipPrimitive.Trigger,
91
132
  Content,
133
+ createHandle: TooltipPrimitive.createHandle,
92
134
  },
93
135
  );
@@ -0,0 +1,15 @@
1
+ export function ArrowSvg(props: React.ComponentProps<'svg'>) {
2
+ return (
3
+ <svg
4
+ width="10"
5
+ height="5"
6
+ viewBox="0 0 30 10"
7
+ preserveAspectRatio="none"
8
+ style={{ display: 'block', width: '100%', height: '100%' }}
9
+ {...props}
10
+ >
11
+ <polygon points="0,0 30,0 15,10" stroke="none"></polygon>
12
+ <path d="M0,0 L15,10 L30,0" fill="none" stroke="inherit" />
13
+ </svg>
14
+ );
15
+ }
@@ -1,16 +1,13 @@
1
- import { Slot } from '@radix-ui/react-slot';
2
1
  import clsx from 'clsx';
3
2
  import { HTMLAttributes } from 'react';
4
3
  import { useIsKeyboardOpen } from '../../hooks.js';
4
+ import { SlotDiv } from './SlotDiv.js';
5
5
 
6
6
  export interface HideWhileKeyboardOpenProps
7
- extends HTMLAttributes<HTMLDivElement> {
8
- asChild?: boolean;
9
- }
7
+ extends HTMLAttributes<HTMLDivElement> {}
10
8
 
11
9
  export const HideWhileKeyboardOpen = function HideWhileKeyboardOpen({
12
10
  ref,
13
- asChild,
14
11
  className,
15
12
  ...rest
16
13
  }: HideWhileKeyboardOpenProps & {
@@ -18,10 +15,8 @@ export const HideWhileKeyboardOpen = function HideWhileKeyboardOpen({
18
15
  }) {
19
16
  const isKeyboardOpen = useIsKeyboardOpen();
20
17
 
21
- const Comp = asChild ? Slot : 'div';
22
-
23
18
  return (
24
- <Comp
19
+ <SlotDiv
25
20
  ref={ref}
26
21
  className={clsx(isKeyboardOpen && 'layer-responsive:hidden', className)}
27
22
  {...rest}
@@ -1,16 +1,16 @@
1
- import { Slot } from '@radix-ui/react-slot';
2
- import { HTMLProps } from 'react';
1
+ import { useRender, UseRenderComponentProps } from '@base-ui/react/use-render';
3
2
 
4
- export interface SlotDivProps extends HTMLProps<HTMLDivElement> {
5
- asChild?: boolean;
6
- }
3
+ export interface SlotDivProps extends UseRenderComponentProps<'div'> {}
7
4
  export const SlotDiv = function SlotDiv({
8
5
  ref,
9
- asChild,
6
+ render,
10
7
  ...rest
11
8
  }: SlotDivProps) {
12
- if (asChild) {
13
- return <Slot ref={ref} {...rest} />;
14
- }
15
- return <div ref={ref} {...rest} />;
9
+ const result = useRender({
10
+ defaultTagName: 'div',
11
+ props: rest,
12
+ ref,
13
+ render,
14
+ });
15
+ return result;
16
16
  };
@@ -28,9 +28,7 @@ export const Default: Story = {
28
28
  </p>
29
29
  </Box>
30
30
  <Dialog>
31
- <Dialog.Trigger asChild>
32
- <Button>Override</Button>
33
- </Dialog.Trigger>
31
+ <Dialog.Trigger render={<Button />}>Override</Dialog.Trigger>
34
32
  <Dialog.Content>
35
33
  <Dialog.Title>Overriding color</Dialog.Title>
36
34
  <Dialog.Description>