@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,16 +1,17 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Box } from '../box/Box.js';
2
3
  import { Button } from '../button/Button.js';
3
4
  import { Icon } from '../icon/index.js';
4
5
  import { DropdownMenu } from './DropdownMenu.js';
5
6
 
6
- const meta = {
7
+ const meta: Meta<typeof DropdownMenu> = {
7
8
  title: 'Components/DropdownMenu',
8
9
  component: DropdownMenu,
9
10
  argTypes: {},
10
11
  parameters: {
11
12
  controls: { expanded: true },
12
13
  },
13
- } satisfies Meta<typeof DropdownMenu>;
14
+ };
14
15
 
15
16
  export default meta;
16
17
 
@@ -20,9 +21,7 @@ export const Default: Story = {
20
21
  args: {
21
22
  children: (
22
23
  <>
23
- <DropdownMenu.Trigger asChild>
24
- <Button>Open</Button>
25
- </DropdownMenu.Trigger>
24
+ <DropdownMenu.Trigger render={<Button />}>Open</DropdownMenu.Trigger>
26
25
  <DropdownMenu.Content>
27
26
  <DropdownMenu.Item color="attention">
28
27
  <DropdownMenu.Label>Item 1</DropdownMenu.Label>
@@ -41,3 +40,62 @@ export const Default: Story = {
41
40
  ),
42
41
  },
43
42
  };
43
+
44
+ export const Sides: Story = {
45
+ render: (args) => (
46
+ <Box
47
+ col
48
+ gap="xl"
49
+ items="center"
50
+ justify="center"
51
+ full
52
+ p="xl"
53
+ className="mt-200px"
54
+ >
55
+ <DropdownMenu open={args.open}>
56
+ <DropdownMenu.Trigger render={<Button />}>Top</DropdownMenu.Trigger>
57
+ <DropdownMenu.Content side="top">
58
+ <DropdownMenu.Item>
59
+ <DropdownMenu.Label>Item 1</DropdownMenu.Label>
60
+ </DropdownMenu.Item>
61
+ <DropdownMenu.Item>
62
+ <DropdownMenu.Label>Item 2</DropdownMenu.Label>
63
+ </DropdownMenu.Item>
64
+ </DropdownMenu.Content>
65
+ </DropdownMenu>
66
+ <DropdownMenu open={args.open}>
67
+ <DropdownMenu.Trigger render={<Button />}>Right</DropdownMenu.Trigger>
68
+ <DropdownMenu.Content side="right">
69
+ <DropdownMenu.Item>
70
+ <DropdownMenu.Label>Item 1</DropdownMenu.Label>
71
+ </DropdownMenu.Item>
72
+ <DropdownMenu.Item>
73
+ <DropdownMenu.Label>Item 2</DropdownMenu.Label>
74
+ </DropdownMenu.Item>
75
+ </DropdownMenu.Content>
76
+ </DropdownMenu>
77
+ <DropdownMenu open={args.open}>
78
+ <DropdownMenu.Trigger render={<Button />}>Left</DropdownMenu.Trigger>
79
+ <DropdownMenu.Content side="left" sideOffset={8}>
80
+ <DropdownMenu.Item>
81
+ <DropdownMenu.Label>Item 1</DropdownMenu.Label>
82
+ </DropdownMenu.Item>
83
+ <DropdownMenu.Item>
84
+ <DropdownMenu.Label>Item 2</DropdownMenu.Label>
85
+ </DropdownMenu.Item>
86
+ </DropdownMenu.Content>
87
+ </DropdownMenu>
88
+ <DropdownMenu open={args.open}>
89
+ <DropdownMenu.Trigger render={<Button />}>Bottom</DropdownMenu.Trigger>
90
+ <DropdownMenu.Content side="bottom" sideOffset={8}>
91
+ <DropdownMenu.Item>
92
+ <DropdownMenu.Label>Item 1</DropdownMenu.Label>
93
+ </DropdownMenu.Item>
94
+ <DropdownMenu.Item>
95
+ <DropdownMenu.Label>Item 2</DropdownMenu.Label>
96
+ </DropdownMenu.Item>
97
+ </DropdownMenu.Content>
98
+ </DropdownMenu>
99
+ </Box>
100
+ ),
101
+ };
@@ -1,28 +1,43 @@
1
1
  'use client';
2
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
2
+ import {
3
+ Menu as BaseMenu,
4
+ MenuArrowProps,
5
+ MenuItemProps,
6
+ MenuPopupProps,
7
+ MenuPositionerProps,
8
+ MenuTriggerProps,
9
+ } from '@base-ui/react/menu';
3
10
  import classNames, { clsx } from 'clsx';
4
11
  import { Ref } from 'react';
5
12
  import { withClassName } from '../../hooks/withClassName.js';
6
13
  import { GroupScaleReset } from '../../systems/GroupScale.js';
7
14
  import { PaletteName } from '../../uno/index.js';
15
+ import { ArrowSvg } from '../utility/ArrowSvg.js';
8
16
  import { SlotDiv } from '../utility/SlotDiv.js';
9
17
  import { DropdownTriggerProvider } from './DropdownTriggerContext.js';
10
18
 
11
19
  const StyledContent = withClassName(
12
- function DropdownMenuContent(
13
- props: DropdownMenuPrimitive.DropdownMenuContentProps,
14
- ) {
20
+ function DropdownMenuContent(props: MenuPopupProps) {
15
21
  return (
16
22
  <GroupScaleReset>
17
- <DropdownMenuPrimitive.Content {...props} />
23
+ <BaseMenu.Popup {...props} />
18
24
  </GroupScaleReset>
19
25
  );
20
26
  },
21
- 'layer-components:(min-w-220px bg-white z-menu shadow-lg rounded-md border border-gray-dark flex flex-col)',
22
- 'layer-components:transform-origin-[var(--radix-dropdown-menu-transform-origin)]',
23
- 'layer-components:[&[data-state=open]]:animate-popover-in',
24
- 'layer-components:[&[data-state=closed]]:animate-popover-out',
25
- 'layer-components:(max-h-[var(--radix-dropdown-menu-content-available-height)])',
27
+ 'layer-components:(min-w-220px bg-white z-menu shadow-lg rounded-md border border-black flex flex-col transition)',
28
+ 'layer-components:transform-origin-[var(--transform-origin)]',
29
+
30
+ 'layer-components:data-[starting-style]:data-[side=bottom]:(opacity-0 translate-y-4px)',
31
+ 'layer-components:data-[ending-style]:data-[side=bottom]:(opacity-0 translate-y-4px)',
32
+ 'layer-components:data-[starting-style]:data-[side=top]:(opacity-0 translate-y--4px)',
33
+ 'layer-components:data-[ending-style]:data-[side=top]:(opacity-0 translate-y-0)',
34
+ 'layer-components:data-[starting-style]:data-[side=right]:(opacity-0 translate-x-4px)',
35
+ 'layer-components:data-[ending-style]:data-[side=right]:(opacity-0 translate-x-0)',
36
+ 'layer-components:data-[starting-style]:data-[side=left]:(opacity-0 translate-x--4px)',
37
+ 'layer-components:data-[ending-style]:data-[side=left]:(opacity-0 translate-x-0)',
38
+
39
+ 'layer-components:(max-h-[--available-height] max-w-[--available-width])',
40
+
26
41
  'important:motion-reduce:animate-none',
27
42
  'will-change-transform',
28
43
  );
@@ -33,9 +48,8 @@ const itemClassName = classNames(
33
48
  'layer-components:hover:(bg-main-light color-black)',
34
49
  'layer-components:focus:outline-none',
35
50
  );
36
- const StyledItemBase = withClassName(DropdownMenuPrimitive.Item, itemClassName);
37
- export interface DropdownMenuItemProps
38
- extends DropdownMenuPrimitive.DropdownMenuItemProps {
51
+ const StyledItemBase = withClassName(BaseMenu.Item, itemClassName);
52
+ export interface DropdownMenuItemProps extends MenuItemProps {
39
53
  color?: PaletteName;
40
54
  ref?: Ref<HTMLDivElement>;
41
55
  }
@@ -53,56 +67,51 @@ const StyledItem = ({
53
67
  />
54
68
  );
55
69
  };
56
- const StyledCheckboxItem = withClassName(
57
- DropdownMenuPrimitive.CheckboxItem,
58
- itemClassName,
59
- );
60
- const StyledRadioItem = withClassName(
61
- DropdownMenuPrimitive.RadioItem,
62
- itemClassName,
63
- );
70
+ const StyledCheckboxItem = withClassName(BaseMenu.CheckboxItem, itemClassName);
71
+ const StyledRadioItem = withClassName(BaseMenu.RadioItem, itemClassName);
64
72
 
65
73
  const StyledLabel = withClassName(
66
- DropdownMenuPrimitive.Label,
74
+ 'span',
67
75
  'layer-components:(pl-3 py-1 font-bold text-sm leading-6)',
68
76
  );
69
77
 
70
78
  const StyledSeparator = withClassName(
71
- DropdownMenuPrimitive.Separator,
79
+ BaseMenu.Separator,
72
80
  'layer-components:(h-1px bg-gray m-5px)',
73
81
  );
74
82
 
75
83
  const StyledItemIndicator = withClassName(
76
- DropdownMenuPrimitive.ItemIndicator,
84
+ BaseMenu.CheckboxItemIndicator,
77
85
  'layer-components:(absolute left-0 w-25px inline-flex items-center justify-center)',
78
86
  );
79
87
 
80
88
  const StyledArrow = withClassName(
81
- DropdownMenuPrimitive.Arrow,
89
+ (props: MenuArrowProps) => (
90
+ <BaseMenu.Arrow {...props}>
91
+ <ArrowSvg />
92
+ </BaseMenu.Arrow>
93
+ ),
82
94
  'layer-components:(arrow)',
95
+ 'layer-components:data-[closed]:(opacity-0 scale-0)',
96
+ 'layer-components:data-[open]:(opacity-100 scale-100)',
83
97
  );
84
98
 
85
- const StyledTrigger = withClassName(
86
- DropdownMenuPrimitive.Trigger,
87
- 'select-none',
88
- );
99
+ const StyledTrigger = withClassName(BaseMenu.Trigger, 'select-none');
89
100
 
90
- const StyledPortal = DropdownMenuPrimitive.Portal;
101
+ const StyledPortal = BaseMenu.Portal;
91
102
 
92
103
  // Exports
93
- export const DropdownMenuRoot = DropdownMenuPrimitive.Root;
104
+ export const DropdownMenuRoot = BaseMenu.Root;
94
105
  export const DropdownMenuItem = StyledItem;
95
106
  export const DropdownMenuCheckboxItem = StyledCheckboxItem;
96
- export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
107
+ export const DropdownMenuRadioGroup = BaseMenu.RadioGroup;
97
108
  export const DropdownMenuRadioItem = StyledRadioItem;
98
109
  export const DropdownMenuItemIndicator = StyledItemIndicator;
99
110
  export const DropdownMenuLabel = StyledLabel;
100
111
  export const DropdownMenuSeparator = StyledSeparator;
101
112
  export const DropdownMenuArrow = StyledArrow;
102
113
 
103
- export function DropdownMenuTrigger(
104
- props: DropdownMenuPrimitive.DropdownMenuTriggerProps,
105
- ) {
114
+ export function DropdownMenuTrigger({ ...props }: MenuTriggerProps) {
106
115
  return (
107
116
  <DropdownTriggerProvider>
108
117
  <StyledTrigger {...props} />
@@ -111,24 +120,53 @@ export function DropdownMenuTrigger(
111
120
  }
112
121
  export const DropdownMenuTriggerIcon = withClassName(
113
122
  SlotDiv,
114
- 'layer-components:[[data-state=open]>&]:rotate-180 layer-components:transition-transform',
123
+ 'layer-components:[[data-popup-open]>&]:rotate-180 layer-components:transition-transform',
115
124
  );
116
125
 
117
126
  export const DropdownMenuContent = ({
118
127
  children,
119
128
  forceMount,
129
+ keepMounted,
130
+ side,
131
+ sideOffset = 8,
132
+ align,
133
+ alignOffset,
134
+ anchor,
135
+ arrowPadding = 2,
136
+ collisionAvoidance,
137
+ collisionBoundary,
138
+ collisionPadding,
139
+ sticky,
140
+ positionMethod,
120
141
  ...props
121
- }: DropdownMenuPrimitive.DropdownMenuContentProps & {
122
- forceMount?: boolean;
123
- }) => {
142
+ }: MenuPopupProps &
143
+ MenuPositionerProps & {
144
+ /** @deprecated - use keepMounted */
145
+ forceMount?: boolean;
146
+ keepMounted?: boolean;
147
+ }) => {
124
148
  return (
125
- <StyledPortal forceMount={forceMount}>
126
- <StyledContent {...props}>
127
- <div className="layer-components:(overflow-y-auto overflow-x-hidden overflow-unstable max-h-full rounded-md min-h-0)">
128
- {children}
129
- </div>
130
- <StyledArrow />
131
- </StyledContent>
149
+ <StyledPortal keepMounted={keepMounted ?? forceMount}>
150
+ <BaseMenu.Positioner
151
+ sideOffset={sideOffset}
152
+ side={side}
153
+ align={align}
154
+ alignOffset={alignOffset}
155
+ anchor={anchor}
156
+ arrowPadding={arrowPadding}
157
+ collisionAvoidance={collisionAvoidance}
158
+ collisionBoundary={collisionBoundary}
159
+ collisionPadding={collisionPadding}
160
+ sticky={sticky}
161
+ positionMethod={positionMethod}
162
+ >
163
+ <StyledContent {...props}>
164
+ <div className="layer-components:(overflow-y-auto overflow-x-hidden overflow-unstable max-h-full rounded-md min-h-0)">
165
+ {children}
166
+ </div>
167
+ <StyledArrow />
168
+ </StyledContent>
169
+ </BaseMenu.Positioner>
132
170
  </StyledPortal>
133
171
  );
134
172
  };
@@ -140,7 +178,7 @@ export const DropdownMenu = Object.assign(DropdownMenuRoot, {
140
178
  Trigger: DropdownMenuTrigger,
141
179
  Item: StyledItem,
142
180
  CheckboxItem: StyledCheckboxItem,
143
- RadioGroup: DropdownMenuPrimitive.RadioGroup,
181
+ RadioGroup: BaseMenu.RadioGroup,
144
182
  RadioItem: StyledRadioItem,
145
183
  ItemIndicator: StyledItemIndicator,
146
184
  Label: StyledLabel,
@@ -148,4 +186,5 @@ export const DropdownMenu = Object.assign(DropdownMenuRoot, {
148
186
  Arrow: StyledArrow,
149
187
  ItemRightSlot: DropdownMenuItemRightSlot,
150
188
  TriggerIcon: DropdownMenuTriggerIcon,
189
+ createHandle: BaseMenu.createHandle,
151
190
  });
@@ -9,11 +9,12 @@ import { Icon } from '../icon/Icon.js';
9
9
  import { Popover } from '../popover/Popover.js';
10
10
  import { HorizontalFieldLabel } from './FieldLabel.js';
11
11
 
12
- export interface EmojiFieldProps extends ButtonProps {
12
+ export type EmojiFieldProps = Omit<ButtonProps, 'className'> & {
13
13
  name: string;
14
14
  label?: string;
15
15
  required?: string;
16
- }
16
+ className?: string;
17
+ };
17
18
 
18
19
  export function EmojiField({
19
20
  name,
@@ -29,19 +30,21 @@ export function EmojiField({
29
30
  return (
30
31
  <Box gap="sm" className={className}>
31
32
  <Popover open={open} onOpenChange={setOpen}>
32
- <Popover.Trigger asChild>
33
- <Button
34
- id={id}
35
- aria-label="Select emoji"
36
- size="small"
37
- className={clsx('p-0 transition-color', className)}
38
- {...rest}
39
- >
40
- <Button.Icon className="text-[19px] w-touch h-touch flex items-center justify-center">
41
- {props.value || <Icon name="smile" />}
42
- </Button.Icon>
43
- </Button>
44
- </Popover.Trigger>
33
+ <Popover.Trigger
34
+ render={
35
+ <Button
36
+ id={id}
37
+ aria-label="Select emoji"
38
+ size="small"
39
+ className={clsx('p-0 transition-color', className)}
40
+ {...rest}
41
+ >
42
+ <Button.Icon className="text-[19px] w-touch h-touch flex items-center justify-center">
43
+ {props.value || <Icon name="smile" />}
44
+ </Button.Icon>
45
+ </Button>
46
+ }
47
+ />
45
48
  <Popover.Content>
46
49
  <EmojiPicker
47
50
  onValueChange={(v) => {
@@ -9,8 +9,8 @@ export function SubmitButton(props: ButtonProps) {
9
9
  disabled={!isValid}
10
10
  color="primary"
11
11
  emphasis="primary"
12
- type="submit"
13
12
  {...props}
13
+ type="submit"
14
14
  />
15
15
  );
16
16
  }
@@ -108,12 +108,12 @@ export function TextAreaField({
108
108
  const [props] = useField(name);
109
109
  const { submitForm } = useFormikContext();
110
110
  const onKeyDownInner = useCallback(
111
- (e: KeyboardEvent<HTMLTextAreaElement>) => {
111
+ (e: KeyboardEvent<HTMLInputElement>) => {
112
112
  if (submitOnEnter && e.key === 'Enter' && !e.shiftKey) {
113
113
  e.preventDefault();
114
114
  submitForm();
115
115
  }
116
- onKeyDown?.(e);
116
+ onKeyDown?.(e as any);
117
117
  },
118
118
  [submitOnEnter, onKeyDown, submitForm],
119
119
  );
@@ -9,6 +9,7 @@ export type ToggleGroupFieldProps = ToggleGroupProps & {
9
9
  required?: boolean;
10
10
  className?: string;
11
11
  id?: string;
12
+ type?: 'single' | 'multiple';
12
13
  };
13
14
 
14
15
  function ToggleGroupFieldDefault({
@@ -16,6 +17,7 @@ function ToggleGroupFieldDefault({
16
17
  label,
17
18
  required,
18
19
  className,
20
+ type = 'single',
19
21
  id,
20
22
  ...props
21
23
  }: ToggleGroupFieldProps) {
@@ -26,7 +28,13 @@ function ToggleGroupFieldDefault({
26
28
  {label && <FieldLabel htmlFor={id}>{label}</FieldLabel>}
27
29
  <ToggleGroup
28
30
  {...fieldProps}
29
- onValueChange={(v: any) => tools.setValue(v)}
31
+ onValueChange={(v) => {
32
+ if (type === 'multiple') {
33
+ tools.setValue(v);
34
+ } else {
35
+ tools.setValue(v[0]);
36
+ }
37
+ }}
30
38
  {...props}
31
39
  id={id}
32
40
  className={className}
@@ -57,8 +57,8 @@ export const Default: Story = {
57
57
  render: (args) => {
58
58
  const [open, setOpen] = useState(false);
59
59
  return (
60
- <div className="bg-black flex flex-col items-center h-full">
61
- <div className="bg-white w-400px flex flex-col items-stretch h-full">
60
+ <div className="bg-black flex flex-col items-center h-full min-h-80vh">
61
+ <div className="bg-white w-400px flex flex-col items-stretch flex-1">
62
62
  <Button
63
63
  toggled={open}
64
64
  onClick={() => setOpen(!open)}
@@ -3,12 +3,7 @@ import { ReactNode, useCallback, useEffect, useRef, useState } from 'react';
3
3
  import { Button } from '../button/index.js';
4
4
  import { CollapsibleSimple } from '../collapsible/Collapsible.js';
5
5
  import { Icon } from '../icon/index.js';
6
- import {
7
- ScrollAreaProps,
8
- ScrollAreaRoot,
9
- ScrollAreaScrollbar,
10
- ScrollAreaViewport,
11
- } from '../scrollArea/ScrollArea.js';
6
+ import { ScrollArea } from '../scrollArea/ScrollArea.js';
12
7
 
13
8
  export interface HorizontalListProps {
14
9
  open?: boolean;
@@ -16,7 +11,6 @@ export interface HorizontalListProps {
16
11
  children: ReactNode;
17
12
  className?: string;
18
13
  contentClassName?: string;
19
- background?: ScrollAreaProps['background'];
20
14
  onCanOpenChange?: (canOpen: boolean) => void;
21
15
  openDirection?: 'up' | 'down';
22
16
  disableInternalOpenToggle?: boolean;
@@ -28,7 +22,6 @@ export function HorizontalList({
28
22
  children,
29
23
  className,
30
24
  contentClassName,
31
- background,
32
25
  onCanOpenChange,
33
26
  openDirection = 'down',
34
27
  disableInternalOpenToggle,
@@ -144,18 +137,17 @@ export function HorizontalList({
144
137
  const chevronFlip = openDirection === 'down' ? open : !open;
145
138
 
146
139
  return (
147
- <ScrollAreaRoot
140
+ <ScrollArea.Root
148
141
  className={clsx(
149
- 'flex flex-col',
142
+ 'layer-components:(flex flex-col w-full)',
150
143
  'layer-components:max-h-300px',
151
144
  className,
152
145
  )}
153
- background={background}
154
146
  data-state={open ? 'open' : 'closed'}
155
147
  {...rest}
156
148
  >
157
- <ScrollAreaViewport ref={containerRef}>
158
- <div
149
+ <ScrollArea.Viewport ref={containerRef}>
150
+ <ScrollArea.Content
159
151
  className={clsx(
160
152
  'layer-components:(px-3 pt-3 pb-4 gap-2)',
161
153
  'flex flex-row items-center gap-2 flex-shrink-0 w-max-content w-auto)',
@@ -186,10 +178,10 @@ export function HorizontalList({
186
178
  </Button>
187
179
  </CollapsibleSimple>
188
180
  {children}
189
- </div>
190
- </ScrollAreaViewport>
191
- <ScrollAreaScrollbar />
192
- <ScrollAreaScrollbar orientation="horizontal" />
193
- </ScrollAreaRoot>
181
+ </ScrollArea.Content>
182
+ </ScrollArea.Viewport>
183
+ <ScrollArea.Scrollbar />
184
+ <ScrollArea.Scrollbar orientation="horizontal" />
185
+ </ScrollArea.Root>
194
186
  );
195
187
  }
@@ -0,0 +1,47 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Icon } from './Icon.js';
3
+ import { iconNames } from './generated/iconNames.js';
4
+
5
+ const meta = {
6
+ title: 'Components/Icon',
7
+ component: Icon,
8
+ argTypes: {
9
+ name: {
10
+ control: { type: 'select', options: iconNames },
11
+ },
12
+ },
13
+ args: {
14
+ name: 'placeholder',
15
+ },
16
+ parameters: {
17
+ controls: { expanded: true },
18
+ },
19
+ } satisfies Meta<typeof Icon>;
20
+
21
+ export default meta;
22
+
23
+ type Story = StoryObj<typeof Icon>;
24
+
25
+ export const Default: Story = {
26
+ render(args) {
27
+ return <Icon {...args} />;
28
+ },
29
+ };
30
+
31
+ export const All: Story = {
32
+ render() {
33
+ return (
34
+ <div className="grid grid-cols-6 gap-xs">
35
+ {iconNames.map((name) => (
36
+ <div
37
+ key={name}
38
+ className="flex flex-col items-center justify-center p-4 border border-gray-light gap-2"
39
+ >
40
+ <Icon name={name} size={25} />
41
+ <span className="text-sm text-center">{name}</span>
42
+ </div>
43
+ ))}
44
+ </div>
45
+ );
46
+ },
47
+ };
@@ -1,10 +1,14 @@
1
+ import { useRender, UseRenderComponentProps } from '@base-ui/react/use-render';
1
2
  import classNames from 'clsx';
2
- import { HTMLAttributes } from 'react';
3
3
  import { Spinner } from '../spinner/Spinner.js';
4
4
  import { IconName } from './generated/iconNames.js';
5
5
  import { useIconLoading } from './IconLoadingContext.js';
6
6
 
7
- export interface IconProps extends HTMLAttributes<SVGSVGElement> {
7
+ export interface IconProps
8
+ extends UseRenderComponentProps<
9
+ 'svg',
10
+ { size: number; name: IconName; loading: boolean }
11
+ > {
8
12
  name: IconName;
9
13
  size?: number;
10
14
  loading?: boolean;
@@ -16,6 +20,7 @@ export const Icon = function Icon({
16
20
  size = 15,
17
21
  className,
18
22
  loading: loadingProp,
23
+ render,
19
24
  ...rest
20
25
  }: IconProps & {
21
26
  ref?: React.Ref<SVGSVGElement>;
@@ -23,6 +28,28 @@ export const Icon = function Icon({
23
28
  const loadingContext = useIconLoading();
24
29
  const loading = loadingProp !== false && (loadingProp || loadingContext);
25
30
 
31
+ const slotted = useRender({
32
+ defaultTagName: 'svg',
33
+ ref,
34
+ props: {
35
+ className: classNames(
36
+ 'icon',
37
+ 'flex-shrink-0 layer-components:fill-none',
38
+ className,
39
+ ),
40
+ width: size,
41
+ height: size,
42
+ children: <use xlinkHref={`#icon-${name}`} />,
43
+ ...rest,
44
+ },
45
+ state: {
46
+ size,
47
+ name,
48
+ loading,
49
+ },
50
+ render,
51
+ });
52
+
26
53
  if (loading) {
27
54
  return (
28
55
  <Spinner
@@ -32,19 +59,5 @@ export const Icon = function Icon({
32
59
  );
33
60
  }
34
61
 
35
- return (
36
- <svg
37
- ref={ref}
38
- className={classNames(
39
- 'icon',
40
- 'flex-shrink-0 layer-components:fill-none',
41
- className,
42
- )}
43
- width={size}
44
- height={size}
45
- {...rest}
46
- >
47
- <use xlinkHref={`#icon-${name}`} />
48
- </svg>
49
- );
62
+ return slotted;
50
63
  };
@@ -247,18 +247,16 @@ export function ImageUploaderFileButton({ children, ...props }: ButtonProps) {
247
247
  <Button
248
248
  emphasis="ghost"
249
249
  size="small"
250
- asChild
250
+ render={<label htmlFor={inputId} />}
251
251
  visuallyFocused={focused}
252
252
  {...props}
253
253
  >
254
- <label htmlFor={inputId}>
255
- {children ?? (
256
- <>
257
- <Icon name="upload" />
258
- <span>{dragging ? 'Drop' : 'Upload'}</span>
259
- </>
260
- )}
261
- </label>
254
+ {children ?? (
255
+ <>
256
+ <Icon name="upload" />
257
+ <span>{dragging ? 'Drop' : 'Upload'}</span>
258
+ </>
259
+ )}
262
260
  </Button>
263
261
  );
264
262
  }
@@ -1,4 +1,4 @@
1
- export { Slot, Slottable, type SlotProps } from '@radix-ui/react-slot';
1
+ export * from '@base-ui/react/use-render';
2
2
  export * from './actions/index.js';
3
3
  export * from './avatar/index.js';
4
4
  export * from './box/Box.js';