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

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 (457) 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/box/Box.stories.js +1 -1
  11. package/dist/cjs/components/box/Box.stories.js.map +1 -1
  12. package/dist/cjs/components/button/Button.d.ts +7 -7
  13. package/dist/cjs/components/button/Button.js +7 -12
  14. package/dist/cjs/components/button/Button.js.map +1 -1
  15. package/dist/cjs/components/button/Button.stories.d.ts +1 -1
  16. package/dist/cjs/components/button/ConfirmedButton.js +1 -2
  17. package/dist/cjs/components/button/ConfirmedButton.js.map +1 -1
  18. package/dist/cjs/components/camera/Camera.d.ts +4 -4
  19. package/dist/cjs/components/camera/Camera.js +6 -7
  20. package/dist/cjs/components/camera/Camera.js.map +1 -1
  21. package/dist/cjs/components/card/Card.d.ts +8 -2
  22. package/dist/cjs/components/card/Card.js +21 -9
  23. package/dist/cjs/components/card/Card.js.map +1 -1
  24. package/dist/cjs/components/card/Card.stories.js +3 -3
  25. package/dist/cjs/components/card/Card.stories.js.map +1 -1
  26. package/dist/cjs/components/checkbox/Checkbox.d.ts +3 -3
  27. package/dist/cjs/components/checkbox/Checkbox.js +5 -38
  28. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  29. package/dist/cjs/components/chip/Chip.d.ts +3 -2
  30. package/dist/cjs/components/chip/Chip.js +3 -4
  31. package/dist/cjs/components/chip/Chip.js.map +1 -1
  32. package/dist/cjs/components/chip/Chip.stories.d.ts +6 -1
  33. package/dist/cjs/components/chip/Chip.stories.js +9 -3
  34. package/dist/cjs/components/chip/Chip.stories.js.map +1 -1
  35. package/dist/cjs/components/collapsible/Collapsible.d.ts +9 -9
  36. package/dist/cjs/components/collapsible/Collapsible.js +15 -38
  37. package/dist/cjs/components/collapsible/Collapsible.js.map +1 -1
  38. package/dist/cjs/components/collapsible/Collapsible.stories.d.ts +1 -1
  39. package/dist/cjs/components/colorMode/ColorModeToggle.d.ts +4 -2
  40. package/dist/cjs/components/colorMode/ColorModeToggle.js +8 -9
  41. package/dist/cjs/components/colorMode/ColorModeToggle.js.map +1 -1
  42. package/dist/cjs/components/colorPicker/ColorPicker.d.ts +4 -3
  43. package/dist/cjs/components/colorPicker/ColorPicker.js +8 -4
  44. package/dist/cjs/components/colorPicker/ColorPicker.js.map +1 -1
  45. package/dist/cjs/components/contextMenu/contextMenu.d.ts +11 -12
  46. package/dist/cjs/components/contextMenu/contextMenu.js +9 -42
  47. package/dist/cjs/components/contextMenu/contextMenu.js.map +1 -1
  48. package/dist/cjs/components/contextMenu/contextMenu.stories.d.ts +22 -0
  49. package/dist/cjs/components/contextMenu/contextMenu.stories.js +22 -0
  50. package/dist/cjs/components/contextMenu/contextMenu.stories.js.map +1 -0
  51. package/dist/cjs/components/dialog/Dialog.d.ts +27 -22
  52. package/dist/cjs/components/dialog/Dialog.js +109 -80
  53. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  54. package/dist/cjs/components/dialog/Dialog.stories.d.ts +8 -8
  55. package/dist/cjs/components/dialog/Dialog.stories.js +6 -6
  56. package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
  57. package/dist/cjs/components/divider/Divider.js +2 -1
  58. package/dist/cjs/components/divider/Divider.js.map +1 -1
  59. package/dist/cjs/components/dropdownMenu/DropdownMenu.d.ts +26 -21
  60. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +22 -19
  61. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  62. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -26
  63. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js +6 -2
  64. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  65. package/dist/cjs/components/forms/EmojiField.d.ts +3 -2
  66. package/dist/cjs/components/forms/EmojiField.js +1 -1
  67. package/dist/cjs/components/forms/EmojiField.js.map +1 -1
  68. package/dist/cjs/components/forms/FormikForm.d.ts +2 -2
  69. package/dist/cjs/components/forms/FormikForm.stories.d.ts +2 -2
  70. package/dist/cjs/components/forms/SubmitButton.d.ts +1 -1
  71. package/dist/cjs/components/forms/SubmitButton.js +14 -2
  72. package/dist/cjs/components/forms/SubmitButton.js.map +1 -1
  73. package/dist/cjs/components/forms/TextField.js.map +1 -1
  74. package/dist/cjs/components/forms/ToggleGroupField.d.ts +3 -2
  75. package/dist/cjs/components/forms/ToggleGroupField.js +9 -2
  76. package/dist/cjs/components/forms/ToggleGroupField.js.map +1 -1
  77. package/dist/cjs/components/horizontalList/HorizontalList.d.ts +1 -3
  78. package/dist/cjs/components/horizontalList/HorizontalList.js +3 -3
  79. package/dist/cjs/components/horizontalList/HorizontalList.js.map +1 -1
  80. package/dist/cjs/components/horizontalList/HorizontalList.stories.js +1 -1
  81. package/dist/cjs/components/horizontalList/HorizontalList.stories.js.map +1 -1
  82. package/dist/cjs/components/icon/Icon.d.ts +7 -3
  83. package/dist/cjs/components/icon/Icon.js +14 -2
  84. package/dist/cjs/components/icon/Icon.js.map +1 -1
  85. package/dist/cjs/components/icon/Icon.stories.d.ts +28 -0
  86. package/dist/cjs/components/icon/Icon.stories.js +34 -0
  87. package/dist/cjs/components/icon/Icon.stories.js.map +1 -0
  88. package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
  89. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  90. package/dist/cjs/components/index.d.ts +1 -1
  91. package/dist/cjs/components/index.js +1 -4
  92. package/dist/cjs/components/index.js.map +1 -1
  93. package/dist/cjs/components/input/Input.d.ts +1 -2
  94. package/dist/cjs/components/input/Input.js +4 -5
  95. package/dist/cjs/components/input/Input.js.map +1 -1
  96. package/dist/cjs/components/input/Input.stories.d.ts +1 -1
  97. package/dist/cjs/components/layouts/layouts.stories.js +6 -6
  98. package/dist/cjs/components/layouts/layouts.stories.js.map +1 -1
  99. package/dist/cjs/components/lightbox/Lightbox.d.ts +18 -16
  100. package/dist/cjs/components/lightbox/Lightbox.js +10 -43
  101. package/dist/cjs/components/lightbox/Lightbox.js.map +1 -1
  102. package/dist/cjs/components/lightbox/Lightbox.stories.d.ts +9 -7
  103. package/dist/cjs/components/marquee/marquee.stories.js +1 -1
  104. package/dist/cjs/components/marquee/marquee.stories.js.map +1 -1
  105. package/dist/cjs/components/navBar/NavBar.d.ts +9 -9
  106. package/dist/cjs/components/navBar/NavBar.js +5 -7
  107. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  108. package/dist/cjs/components/popover/Popover.d.ts +19 -13
  109. package/dist/cjs/components/popover/Popover.js +23 -50
  110. package/dist/cjs/components/popover/Popover.js.map +1 -1
  111. package/dist/cjs/components/popover/Popover.stories.d.ts +3 -23
  112. package/dist/cjs/components/popover/Popover.stories.js +7 -2
  113. package/dist/cjs/components/popover/Popover.stories.js.map +1 -1
  114. package/dist/cjs/components/progress/Progress.d.ts +22 -6
  115. package/dist/cjs/components/progress/Progress.js +17 -42
  116. package/dist/cjs/components/progress/Progress.js.map +1 -1
  117. package/dist/cjs/components/progress/Progress.stories.d.ts +13 -3
  118. package/dist/cjs/components/progress/Progress.stories.js +7 -2
  119. package/dist/cjs/components/progress/Progress.stories.js.map +1 -1
  120. package/dist/cjs/components/pwaInstall/PwaInstall.d.ts +3 -3
  121. package/dist/cjs/components/pwaInstall/PwaInstall.js +6 -4
  122. package/dist/cjs/components/pwaInstall/PwaInstall.js.map +1 -1
  123. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.d.ts +1 -2
  124. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js +1 -1
  125. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -1
  126. package/dist/cjs/components/scrollArea/ScrollArea.d.ts +23 -28
  127. package/dist/cjs/components/scrollArea/ScrollArea.js +26 -56
  128. package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
  129. package/dist/cjs/components/scrollArea/ScrollArea.stories.d.ts +13 -10
  130. package/dist/cjs/components/scrollArea/ScrollArea.stories.js +16 -12
  131. package/dist/cjs/components/scrollArea/ScrollArea.stories.js.map +1 -1
  132. package/dist/cjs/components/select/Select.d.ts +37 -46
  133. package/dist/cjs/components/select/Select.js +37 -83
  134. package/dist/cjs/components/select/Select.js.map +1 -1
  135. package/dist/cjs/components/select/Select.stories.d.ts +15 -11
  136. package/dist/cjs/components/select/Select.stories.js +23 -2
  137. package/dist/cjs/components/select/Select.stories.js.map +1 -1
  138. package/dist/cjs/components/slider/Slider.d.ts +36 -13
  139. package/dist/cjs/components/slider/Slider.js +26 -41
  140. package/dist/cjs/components/slider/Slider.js.map +1 -1
  141. package/dist/cjs/components/slider/Slider.stories.d.ts +16 -7
  142. package/dist/cjs/components/slider/Slider.stories.js +23 -10
  143. package/dist/cjs/components/slider/Slider.stories.js.map +1 -1
  144. package/dist/cjs/components/switch/Switch.d.ts +4 -4
  145. package/dist/cjs/components/switch/Switch.js +3 -3
  146. package/dist/cjs/components/switch/Switch.js.map +1 -1
  147. package/dist/cjs/components/switch/Switch.stories.d.ts +27 -0
  148. package/dist/cjs/components/switch/Switch.stories.js +24 -0
  149. package/dist/cjs/components/switch/Switch.stories.js.map +1 -0
  150. package/dist/cjs/components/tabs/tabs.d.ts +16 -12
  151. package/dist/cjs/components/tabs/tabs.js +12 -47
  152. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  153. package/dist/cjs/components/tabs/tabs.stories.js +3 -3
  154. package/dist/cjs/components/tabs/tabs.stories.js.map +1 -1
  155. package/dist/cjs/components/textArea/TextArea.d.ts +4 -4
  156. package/dist/cjs/components/textArea/TextArea.js +6 -8
  157. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  158. package/dist/cjs/components/textArea/TextArea.stories.d.ts +1 -1
  159. package/dist/cjs/components/toggleGroup/toggleGroup.d.ts +5 -6
  160. package/dist/cjs/components/toggleGroup/toggleGroup.js +6 -38
  161. package/dist/cjs/components/toggleGroup/toggleGroup.js.map +1 -1
  162. package/dist/cjs/components/toggleGroup/toggleGroup.stories.d.ts +17 -0
  163. package/dist/cjs/components/toggleGroup/toggleGroup.stories.js +21 -0
  164. package/dist/cjs/components/toggleGroup/toggleGroup.stories.js.map +1 -0
  165. package/dist/cjs/components/tooltip/Tooltip.d.ts +12 -9
  166. package/dist/cjs/components/tooltip/Tooltip.js +12 -43
  167. package/dist/cjs/components/tooltip/Tooltip.js.map +1 -1
  168. package/dist/cjs/components/tooltip/Tooltip.stories.d.ts +2 -20
  169. package/dist/cjs/components/tooltip/Tooltip.stories.js +14 -5
  170. package/dist/cjs/components/tooltip/Tooltip.stories.js.map +1 -1
  171. package/dist/cjs/components/utility/ArrowSvg.d.ts +1 -0
  172. package/dist/cjs/components/utility/ArrowSvg.js +9 -0
  173. package/dist/cjs/components/utility/ArrowSvg.js.map +1 -0
  174. package/dist/cjs/components/utility/HideWhileKeyboardOpen.d.ts +1 -2
  175. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js +3 -4
  176. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  177. package/dist/cjs/components/utility/SlotDiv.d.ts +3 -4
  178. package/dist/cjs/components/utility/SlotDiv.js +9 -7
  179. package/dist/cjs/components/utility/SlotDiv.js.map +1 -1
  180. package/dist/cjs/hooks/useTitleBarColor.stories.js +1 -1
  181. package/dist/cjs/hooks/useTitleBarColor.stories.js.map +1 -1
  182. package/dist/cjs/hooks/useVisualViewportOffset.js +31 -10
  183. package/dist/cjs/hooks/useVisualViewportOffset.js.map +1 -1
  184. package/dist/cjs/hooks/withClassName.d.ts +2 -2
  185. package/dist/cjs/hooks/withClassName.js.map +1 -1
  186. package/dist/cjs/themes.stories.js +2 -2
  187. package/dist/cjs/themes.stories.js.map +1 -1
  188. package/dist/cjs/uno/preflights/globals.js +29 -25
  189. package/dist/cjs/uno/preflights/globals.js.map +1 -1
  190. package/dist/cjs/uno/rules/util.js +18 -8
  191. package/dist/cjs/uno/rules/util.js.map +1 -1
  192. package/dist/cjs/uno/theme/animations.js +0 -74
  193. package/dist/cjs/uno/theme/animations.js.map +1 -1
  194. package/dist/css/main.css +9 -42
  195. package/dist/esm/components/actions/ActionBar.js +2 -2
  196. package/dist/esm/components/actions/ActionBar.js.map +1 -1
  197. package/dist/esm/components/actions/ActionButton.d.ts +3 -3
  198. package/dist/esm/components/actions/ActionButton.js +2 -2
  199. package/dist/esm/components/actions/ActionButton.js.map +1 -1
  200. package/dist/esm/components/avatar/Avatar.d.ts +4 -2
  201. package/dist/esm/components/avatar/Avatar.js +4 -14
  202. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  203. package/dist/esm/components/box/Box.stories.js +1 -1
  204. package/dist/esm/components/box/Box.stories.js.map +1 -1
  205. package/dist/esm/components/button/Button.d.ts +7 -7
  206. package/dist/esm/components/button/Button.js +7 -12
  207. package/dist/esm/components/button/Button.js.map +1 -1
  208. package/dist/esm/components/button/Button.stories.d.ts +1 -1
  209. package/dist/esm/components/button/ConfirmedButton.js +1 -2
  210. package/dist/esm/components/button/ConfirmedButton.js.map +1 -1
  211. package/dist/esm/components/camera/Camera.d.ts +4 -4
  212. package/dist/esm/components/camera/Camera.js +6 -7
  213. package/dist/esm/components/camera/Camera.js.map +1 -1
  214. package/dist/esm/components/card/Card.d.ts +8 -2
  215. package/dist/esm/components/card/Card.js +21 -9
  216. package/dist/esm/components/card/Card.js.map +1 -1
  217. package/dist/esm/components/card/Card.stories.js +3 -3
  218. package/dist/esm/components/card/Card.stories.js.map +1 -1
  219. package/dist/esm/components/checkbox/Checkbox.d.ts +3 -3
  220. package/dist/esm/components/checkbox/Checkbox.js +5 -5
  221. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  222. package/dist/esm/components/chip/Chip.d.ts +3 -2
  223. package/dist/esm/components/chip/Chip.js +3 -4
  224. package/dist/esm/components/chip/Chip.js.map +1 -1
  225. package/dist/esm/components/chip/Chip.stories.d.ts +6 -1
  226. package/dist/esm/components/chip/Chip.stories.js +9 -3
  227. package/dist/esm/components/chip/Chip.stories.js.map +1 -1
  228. package/dist/esm/components/collapsible/Collapsible.d.ts +9 -9
  229. package/dist/esm/components/collapsible/Collapsible.js +15 -5
  230. package/dist/esm/components/collapsible/Collapsible.js.map +1 -1
  231. package/dist/esm/components/collapsible/Collapsible.stories.d.ts +1 -1
  232. package/dist/esm/components/colorMode/ColorModeToggle.d.ts +4 -2
  233. package/dist/esm/components/colorMode/ColorModeToggle.js +8 -9
  234. package/dist/esm/components/colorMode/ColorModeToggle.js.map +1 -1
  235. package/dist/esm/components/colorPicker/ColorPicker.d.ts +4 -3
  236. package/dist/esm/components/colorPicker/ColorPicker.js +9 -5
  237. package/dist/esm/components/colorPicker/ColorPicker.js.map +1 -1
  238. package/dist/esm/components/contextMenu/contextMenu.d.ts +11 -12
  239. package/dist/esm/components/contextMenu/contextMenu.js +9 -9
  240. package/dist/esm/components/contextMenu/contextMenu.js.map +1 -1
  241. package/dist/esm/components/contextMenu/contextMenu.stories.d.ts +22 -0
  242. package/dist/esm/components/contextMenu/contextMenu.stories.js +19 -0
  243. package/dist/esm/components/contextMenu/contextMenu.stories.js.map +1 -0
  244. package/dist/esm/components/dialog/Dialog.d.ts +27 -22
  245. package/dist/esm/components/dialog/Dialog.js +110 -49
  246. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  247. package/dist/esm/components/dialog/Dialog.stories.d.ts +8 -8
  248. package/dist/esm/components/dialog/Dialog.stories.js +6 -6
  249. package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
  250. package/dist/esm/components/divider/Divider.js +2 -1
  251. package/dist/esm/components/divider/Divider.js.map +1 -1
  252. package/dist/esm/components/dropdownMenu/DropdownMenu.d.ts +26 -21
  253. package/dist/esm/components/dropdownMenu/DropdownMenu.js +22 -19
  254. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  255. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -26
  256. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js +5 -1
  257. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  258. package/dist/esm/components/forms/EmojiField.d.ts +3 -2
  259. package/dist/esm/components/forms/EmojiField.js +1 -1
  260. package/dist/esm/components/forms/EmojiField.js.map +1 -1
  261. package/dist/esm/components/forms/FormikForm.d.ts +2 -2
  262. package/dist/esm/components/forms/FormikForm.stories.d.ts +2 -2
  263. package/dist/esm/components/forms/SubmitButton.d.ts +1 -1
  264. package/dist/esm/components/forms/SubmitButton.js +14 -2
  265. package/dist/esm/components/forms/SubmitButton.js.map +1 -1
  266. package/dist/esm/components/forms/TextField.js.map +1 -1
  267. package/dist/esm/components/forms/ToggleGroupField.d.ts +3 -2
  268. package/dist/esm/components/forms/ToggleGroupField.js +9 -2
  269. package/dist/esm/components/forms/ToggleGroupField.js.map +1 -1
  270. package/dist/esm/components/horizontalList/HorizontalList.d.ts +1 -3
  271. package/dist/esm/components/horizontalList/HorizontalList.js +4 -4
  272. package/dist/esm/components/horizontalList/HorizontalList.js.map +1 -1
  273. package/dist/esm/components/horizontalList/HorizontalList.stories.js +1 -1
  274. package/dist/esm/components/horizontalList/HorizontalList.stories.js.map +1 -1
  275. package/dist/esm/components/icon/Icon.d.ts +7 -3
  276. package/dist/esm/components/icon/Icon.js +14 -2
  277. package/dist/esm/components/icon/Icon.js.map +1 -1
  278. package/dist/esm/components/icon/Icon.stories.d.ts +28 -0
  279. package/dist/esm/components/icon/Icon.stories.js +31 -0
  280. package/dist/esm/components/icon/Icon.stories.js.map +1 -0
  281. package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
  282. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  283. package/dist/esm/components/index.d.ts +1 -1
  284. package/dist/esm/components/index.js +1 -1
  285. package/dist/esm/components/index.js.map +1 -1
  286. package/dist/esm/components/input/Input.d.ts +1 -2
  287. package/dist/esm/components/input/Input.js +4 -5
  288. package/dist/esm/components/input/Input.js.map +1 -1
  289. package/dist/esm/components/input/Input.stories.d.ts +1 -1
  290. package/dist/esm/components/layouts/layouts.stories.js +4 -4
  291. package/dist/esm/components/layouts/layouts.stories.js.map +1 -1
  292. package/dist/esm/components/lightbox/Lightbox.d.ts +18 -16
  293. package/dist/esm/components/lightbox/Lightbox.js +6 -6
  294. package/dist/esm/components/lightbox/Lightbox.js.map +1 -1
  295. package/dist/esm/components/lightbox/Lightbox.stories.d.ts +9 -7
  296. package/dist/esm/components/marquee/marquee.stories.js +1 -1
  297. package/dist/esm/components/marquee/marquee.stories.js.map +1 -1
  298. package/dist/esm/components/navBar/NavBar.d.ts +9 -9
  299. package/dist/esm/components/navBar/NavBar.js +5 -7
  300. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  301. package/dist/esm/components/popover/Popover.d.ts +19 -13
  302. package/dist/esm/components/popover/Popover.js +18 -13
  303. package/dist/esm/components/popover/Popover.js.map +1 -1
  304. package/dist/esm/components/popover/Popover.stories.d.ts +3 -23
  305. package/dist/esm/components/popover/Popover.stories.js +6 -1
  306. package/dist/esm/components/popover/Popover.stories.js.map +1 -1
  307. package/dist/esm/components/progress/Progress.d.ts +22 -6
  308. package/dist/esm/components/progress/Progress.js +16 -9
  309. package/dist/esm/components/progress/Progress.js.map +1 -1
  310. package/dist/esm/components/progress/Progress.stories.d.ts +13 -3
  311. package/dist/esm/components/progress/Progress.stories.js +6 -1
  312. package/dist/esm/components/progress/Progress.stories.js.map +1 -1
  313. package/dist/esm/components/pwaInstall/PwaInstall.d.ts +3 -3
  314. package/dist/esm/components/pwaInstall/PwaInstall.js +6 -4
  315. package/dist/esm/components/pwaInstall/PwaInstall.js.map +1 -1
  316. package/dist/esm/components/pwaInstall/PwaInstallTrigger.d.ts +1 -2
  317. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js +1 -1
  318. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -1
  319. package/dist/esm/components/scrollArea/ScrollArea.d.ts +23 -28
  320. package/dist/esm/components/scrollArea/ScrollArea.js +25 -21
  321. package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
  322. package/dist/esm/components/scrollArea/ScrollArea.stories.d.ts +13 -10
  323. package/dist/esm/components/scrollArea/ScrollArea.stories.js +13 -12
  324. package/dist/esm/components/scrollArea/ScrollArea.stories.js.map +1 -1
  325. package/dist/esm/components/select/Select.d.ts +37 -46
  326. package/dist/esm/components/select/Select.js +32 -77
  327. package/dist/esm/components/select/Select.js.map +1 -1
  328. package/dist/esm/components/select/Select.stories.d.ts +15 -11
  329. package/dist/esm/components/select/Select.stories.js +22 -1
  330. package/dist/esm/components/select/Select.stories.js.map +1 -1
  331. package/dist/esm/components/slider/Slider.d.ts +36 -13
  332. package/dist/esm/components/slider/Slider.js +23 -7
  333. package/dist/esm/components/slider/Slider.js.map +1 -1
  334. package/dist/esm/components/slider/Slider.stories.d.ts +16 -7
  335. package/dist/esm/components/slider/Slider.stories.js +22 -9
  336. package/dist/esm/components/slider/Slider.stories.js.map +1 -1
  337. package/dist/esm/components/switch/Switch.d.ts +4 -4
  338. package/dist/esm/components/switch/Switch.js +3 -3
  339. package/dist/esm/components/switch/Switch.js.map +1 -1
  340. package/dist/esm/components/switch/Switch.stories.d.ts +27 -0
  341. package/dist/esm/components/switch/Switch.stories.js +21 -0
  342. package/dist/esm/components/switch/Switch.stories.js.map +1 -0
  343. package/dist/esm/components/tabs/tabs.d.ts +16 -12
  344. package/dist/esm/components/tabs/tabs.js +10 -12
  345. package/dist/esm/components/tabs/tabs.js.map +1 -1
  346. package/dist/esm/components/tabs/tabs.stories.js +3 -3
  347. package/dist/esm/components/tabs/tabs.stories.js.map +1 -1
  348. package/dist/esm/components/textArea/TextArea.d.ts +4 -4
  349. package/dist/esm/components/textArea/TextArea.js +7 -9
  350. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  351. package/dist/esm/components/textArea/TextArea.stories.d.ts +1 -1
  352. package/dist/esm/components/toggleGroup/toggleGroup.d.ts +5 -6
  353. package/dist/esm/components/toggleGroup/toggleGroup.js +4 -3
  354. package/dist/esm/components/toggleGroup/toggleGroup.js.map +1 -1
  355. package/dist/esm/components/toggleGroup/toggleGroup.stories.d.ts +17 -0
  356. package/dist/esm/components/toggleGroup/toggleGroup.stories.js +18 -0
  357. package/dist/esm/components/toggleGroup/toggleGroup.stories.js.map +1 -0
  358. package/dist/esm/components/tooltip/Tooltip.d.ts +12 -9
  359. package/dist/esm/components/tooltip/Tooltip.js +11 -9
  360. package/dist/esm/components/tooltip/Tooltip.js.map +1 -1
  361. package/dist/esm/components/tooltip/Tooltip.stories.d.ts +2 -20
  362. package/dist/esm/components/tooltip/Tooltip.stories.js +14 -5
  363. package/dist/esm/components/tooltip/Tooltip.stories.js.map +1 -1
  364. package/dist/esm/components/utility/ArrowSvg.d.ts +1 -0
  365. package/dist/esm/components/utility/ArrowSvg.js +6 -0
  366. package/dist/esm/components/utility/ArrowSvg.js.map +1 -0
  367. package/dist/esm/components/utility/HideWhileKeyboardOpen.d.ts +1 -2
  368. package/dist/esm/components/utility/HideWhileKeyboardOpen.js +3 -4
  369. package/dist/esm/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  370. package/dist/esm/components/utility/SlotDiv.d.ts +3 -4
  371. package/dist/esm/components/utility/SlotDiv.js +9 -7
  372. package/dist/esm/components/utility/SlotDiv.js.map +1 -1
  373. package/dist/esm/hooks/useTitleBarColor.stories.js +1 -1
  374. package/dist/esm/hooks/useTitleBarColor.stories.js.map +1 -1
  375. package/dist/esm/hooks/useVisualViewportOffset.js +31 -10
  376. package/dist/esm/hooks/useVisualViewportOffset.js.map +1 -1
  377. package/dist/esm/hooks/withClassName.d.ts +2 -2
  378. package/dist/esm/hooks/withClassName.js +2 -2
  379. package/dist/esm/hooks/withClassName.js.map +1 -1
  380. package/dist/esm/themes.stories.js +2 -2
  381. package/dist/esm/themes.stories.js.map +1 -1
  382. package/dist/esm/uno/preflights/globals.js +29 -25
  383. package/dist/esm/uno/preflights/globals.js.map +1 -1
  384. package/dist/esm/uno/rules/util.js +18 -8
  385. package/dist/esm/uno/rules/util.js.map +1 -1
  386. package/dist/esm/uno/theme/animations.js +0 -74
  387. package/dist/esm/uno/theme/animations.js.map +1 -1
  388. package/package.json +1 -21
  389. package/src/components/actions/ActionBar.tsx +13 -9
  390. package/src/components/actions/ActionButton.tsx +2 -4
  391. package/src/components/avatar/Avatar.tsx +24 -40
  392. package/src/components/box/Box.stories.tsx +1 -1
  393. package/src/components/button/Button.tsx +13 -21
  394. package/src/components/button/ConfirmedButton.tsx +3 -7
  395. package/src/components/camera/Camera.tsx +23 -21
  396. package/src/components/card/Card.stories.tsx +22 -15
  397. package/src/components/card/Card.tsx +57 -40
  398. package/src/components/checkbox/Checkbox.tsx +13 -9
  399. package/src/components/chip/Chip.stories.tsx +13 -6
  400. package/src/components/chip/Chip.tsx +6 -7
  401. package/src/components/collapsible/Collapsible.tsx +29 -18
  402. package/src/components/colorMode/ColorModeToggle.tsx +13 -12
  403. package/src/components/colorPicker/ColorPicker.tsx +33 -27
  404. package/src/components/contextMenu/contextMenu.stories.tsx +39 -0
  405. package/src/components/contextMenu/contextMenu.tsx +33 -32
  406. package/src/components/dialog/Dialog.stories.tsx +15 -37
  407. package/src/components/dialog/Dialog.tsx +219 -102
  408. package/src/components/divider/Divider.tsx +5 -1
  409. package/src/components/dropdownMenu/DropdownMenu.stories.tsx +63 -5
  410. package/src/components/dropdownMenu/DropdownMenu.tsx +86 -47
  411. package/src/components/forms/EmojiField.tsx +18 -15
  412. package/src/components/forms/SubmitButton.tsx +2 -2
  413. package/src/components/forms/TextField.tsx +2 -2
  414. package/src/components/forms/ToggleGroupField.tsx +9 -1
  415. package/src/components/horizontalList/HorizontalList.stories.tsx +2 -2
  416. package/src/components/horizontalList/HorizontalList.tsx +10 -18
  417. package/src/components/icon/Icon.stories.tsx +47 -0
  418. package/src/components/icon/Icon.tsx +30 -17
  419. package/src/components/imageUploader/ImageUploader.tsx +8 -9
  420. package/src/components/index.ts +1 -1
  421. package/src/components/input/Input.tsx +3 -7
  422. package/src/components/layouts/layouts.stories.tsx +10 -16
  423. package/src/components/lightbox/Lightbox.tsx +25 -13
  424. package/src/components/marquee/marquee.stories.tsx +5 -3
  425. package/src/components/navBar/NavBar.tsx +9 -17
  426. package/src/components/popover/Popover.stories.tsx +25 -7
  427. package/src/components/popover/Popover.tsx +90 -38
  428. package/src/components/progress/Progress.stories.tsx +15 -3
  429. package/src/components/progress/Progress.tsx +65 -11
  430. package/src/components/pwaInstall/PwaInstall.tsx +21 -22
  431. package/src/components/pwaInstall/PwaInstallTrigger.stories.tsx +5 -4
  432. package/src/components/pwaInstall/PwaInstallTrigger.tsx +1 -1
  433. package/src/components/scrollArea/ScrollArea.stories.tsx +86 -45
  434. package/src/components/scrollArea/ScrollArea.tsx +108 -96
  435. package/src/components/select/Select.stories.tsx +39 -10
  436. package/src/components/select/Select.tsx +158 -218
  437. package/src/components/slider/Slider.stories.tsx +40 -15
  438. package/src/components/slider/Slider.tsx +60 -30
  439. package/src/components/switch/Switch.stories.tsx +24 -0
  440. package/src/components/switch/Switch.tsx +9 -8
  441. package/src/components/tabs/tabs.stories.tsx +7 -13
  442. package/src/components/tabs/tabs.tsx +35 -28
  443. package/src/components/textArea/TextArea.tsx +17 -25
  444. package/src/components/toggleGroup/toggleGroup.stories.tsx +27 -0
  445. package/src/components/toggleGroup/toggleGroup.tsx +10 -8
  446. package/src/components/tooltip/Tooltip.stories.tsx +20 -10
  447. package/src/components/tooltip/Tooltip.tsx +72 -30
  448. package/src/components/utility/ArrowSvg.tsx +15 -0
  449. package/src/components/utility/HideWhileKeyboardOpen.tsx +3 -8
  450. package/src/components/utility/SlotDiv.tsx +10 -10
  451. package/src/hooks/useTitleBarColor.stories.tsx +1 -3
  452. package/src/hooks/useVisualViewportOffset.ts +34 -11
  453. package/src/hooks/withClassName.tsx +3 -3
  454. package/src/themes.stories.tsx +10 -20
  455. package/src/uno/preflights/globals.ts +25 -21
  456. package/src/uno/rules/util.ts +18 -8
  457. package/src/uno/theme/animations.ts +0 -74
@@ -64,9 +64,7 @@ export const Default: Story = {
64
64
  args: {
65
65
  children: (
66
66
  <ParticleLayer noPortal>
67
- <DialogTrigger asChild>
68
- <Button>Open</Button>
69
- </DialogTrigger>
67
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
70
68
  <DummyContent />
71
69
  <DialogContent>
72
70
  <DialogTitle>Hello world</DialogTitle>
@@ -74,9 +72,8 @@ export const Default: Story = {
74
72
  <DummyContent />
75
73
  <DummyContent />
76
74
  <DialogActions>
77
- <DialogClose asChild>
78
- <Button>Close</Button>
79
- </DialogClose>
75
+ <DialogClose />
76
+ <Button emphasis="primary">Accept</Button>
80
77
  </DialogActions>
81
78
  </DialogContent>
82
79
  </ParticleLayer>
@@ -88,17 +85,13 @@ export const Small: Story = {
88
85
  args: {
89
86
  children: (
90
87
  <ParticleLayer noPortal>
91
- <DialogTrigger asChild>
92
- <Button>Open</Button>
93
- </DialogTrigger>
88
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
94
89
  <DummyContent />
95
90
  <DialogContent>
96
91
  <DialogTitle>Hello world</DialogTitle>
97
92
  <DummyContent />
98
93
  <DialogActions>
99
- <DialogClose asChild>
100
- <Button>Close</Button>
101
- </DialogClose>
94
+ <DialogClose />
102
95
  </DialogActions>
103
96
  </DialogContent>
104
97
  </ParticleLayer>
@@ -110,16 +103,12 @@ export const NoSheet: Story = {
110
103
  args: {
111
104
  children: (
112
105
  <ParticleLayer noPortal>
113
- <DialogTrigger asChild>
114
- <Button>Open</Button>
115
- </DialogTrigger>
106
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
116
107
  <DummyContent />
117
108
  <DialogContent disableSheet>
118
109
  <DialogTitle>Hello world</DialogTitle>
119
110
  <DialogActions>
120
- <DialogClose asChild>
121
- <Button>Close</Button>
122
- </DialogClose>
111
+ <DialogClose />
123
112
  </DialogActions>
124
113
  </DialogContent>
125
114
  </ParticleLayer>
@@ -131,16 +120,12 @@ export const Positioned: Story = {
131
120
  args: {
132
121
  children: (
133
122
  <ParticleLayer noPortal>
134
- <DialogTrigger asChild>
135
- <Button>Open</Button>
136
- </DialogTrigger>
123
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
137
124
  <DummyContent />
138
125
  <DialogContent className="top-auto bottom-0px">
139
126
  <DialogTitle>Hello world</DialogTitle>
140
127
  <DialogActions>
141
- <DialogClose asChild>
142
- <Button>Close</Button>
143
- </DialogClose>
128
+ <DialogClose />
144
129
  </DialogActions>
145
130
  </DialogContent>
146
131
  </ParticleLayer>
@@ -166,17 +151,13 @@ export const VirtualKeyboard: Story = {
166
151
  return (
167
152
  <Provider virtualKeyboardBehavior="overlay">
168
153
  <Dialog>
169
- <DialogTrigger asChild>
170
- <Button>Open</Button>
171
- </DialogTrigger>
154
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
172
155
  <DummyContent />
173
156
  <DialogContent>
174
157
  <DialogTitle>Hello world</DialogTitle>
175
158
  <Input />
176
159
  <DialogActions>
177
- <DialogClose asChild>
178
- <Button>Close</Button>
179
- </DialogClose>
160
+ <DialogClose />
180
161
  <Button onClick={() => setKeyboard((v) => !v)}>
181
162
  Toggle fake kb
182
163
  </Button>
@@ -193,26 +174,23 @@ export const MultiNested: Story = {
193
174
  render() {
194
175
  return (
195
176
  <Dialog>
196
- <DialogTrigger asChild>
197
- <Button>Open</Button>
198
- </DialogTrigger>
177
+ <DialogTrigger render={<Button />}>Open</DialogTrigger>
199
178
  <DialogContent>
200
179
  <DialogTitle>Hello world</DialogTitle>
201
180
  <DummyContent />
202
181
  <Select value="">
203
182
  <Select.Trigger>
204
- <Select.Value placeholder="Select an option" />
183
+ <Select.Value />
205
184
  </Select.Trigger>
206
185
  <Select.Content>
186
+ <Select.Item value={null}>Select an option</Select.Item>
207
187
  <Select.Item value="option1">Option 1</Select.Item>
208
188
  <Select.Item value="option2">Option 2</Select.Item>
209
189
  <Select.Item value="option3">Option 3</Select.Item>
210
190
  </Select.Content>
211
191
  </Select>
212
192
  <Dialog>
213
- <DialogTrigger asChild>
214
- <Button>Open nested</Button>
215
- </DialogTrigger>
193
+ <DialogTrigger render={<Button />}>Open nested</DialogTrigger>
216
194
  <DialogContent>
217
195
  <DialogTitle>Nested dialog</DialogTitle>
218
196
  <Tooltip content="This is a tooltip">
@@ -1,16 +1,25 @@
1
- import * as DialogPrimitive from '@radix-ui/react-dialog';
2
- import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
1
+ import {
2
+ Dialog as BaseDialog,
3
+ DialogCloseProps,
4
+ DialogPopupProps,
5
+ DialogRootProps,
6
+ DialogTriggerProps,
7
+ } from '@base-ui/react/dialog';
8
+ import { Radio as BaseRadio } from '@base-ui/react/radio';
9
+ import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group';
3
10
  import { useDrag } from '@use-gesture/react';
4
- import classNames from 'clsx';
11
+ import clsx from 'clsx';
5
12
  import {
6
13
  ComponentPropsWithoutRef,
7
- ComponentPropsWithRef,
8
14
  createContext,
15
+ Ref,
16
+ TouchEvent,
9
17
  useCallback,
10
18
  useContext,
11
19
  useRef,
12
20
  useState,
13
21
  } from 'react';
22
+ import { withProps } from '../../hooks.js';
14
23
  import { useMediaQuery } from '../../hooks/useMediaQuery.js';
15
24
  import useMergedRef from '../../hooks/useMergedRef.js';
16
25
  import { withClassName } from '../../hooks/withClassName.js';
@@ -19,42 +28,45 @@ import { Button } from '../button/index.js';
19
28
  import { Icon } from '../icon/Icon.js';
20
29
  import { useParticles } from '../particles/index.js';
21
30
  import { useConfig } from '../provider/Provider.js';
31
+ import { ScrollArea } from '../scrollArea/ScrollArea.js';
22
32
  import { selectTriggerClassName } from '../select/index.js';
23
33
 
24
34
  const StyledOverlay = withClassName(
25
- DialogPrimitive.Overlay,
26
- 'layer-components:(fixed inset-0 z-backdrop animate-fade-in animate-duration-200 bg-black/15 shadow-inset shadow-[0_30px_60px_0px] shadow-black/20 border-top-1 border-top-solid border-top-gray)',
27
- 'layer-components:[&[data-state=closed]]:animate-fade-out',
28
- 'motion-reduce:animate-none',
35
+ BaseDialog.Backdrop,
36
+ 'layer-components:(fixed inset-0 bg-black/15 shadow-inset shadow-[0_30px_60px_0px] shadow-black/20 border-top-1 border-top-solid border-top-gray transition)',
29
37
  'layer-components:backdrop-blur-sm',
38
+ 'data-[starting-style]:(opacity-0)',
39
+ 'data-[ending-style]:(opacity-0)',
30
40
  );
31
41
 
32
42
  const StyledContent = withClassName(
33
- DialogPrimitive.Content,
34
- 'layer-components:(z-dialog fixed shadow-xl bg-white overflow-y-auto border border-gray flex flex-col border border-gray-dark)',
43
+ BaseDialog.Popup,
44
+ 'layer-components:(fixed shadow-xl bg-white border border-gray border border-gray-dark transition pointer-events-auto overflow-hidden flex flex-col items-stretch)',
35
45
  'layer-components:sm:shadow-down',
36
- 'transform-gpu !motion-reduce:animate-none',
37
- 'layer-components:(left-50% top-50% translate-[-50%] w-90vw max-w-450px max-h-85vh p-6 pt-8 rounded-lg border-b-1 pt-6)',
38
- 'layer-components:animate-dialog-in',
39
- 'layer-components:[&[data-state=closed]]:animate-dialog-out',
46
+ 'transform-gpu',
47
+ 'layer-components:(left-50% top-50% translate-[-50%] w-90vw max-w-450px max-h-85vh rounded-lg border-b-1)',
48
+
49
+ 'data-[starting-style]:layer-components:(opacity-0 scale-95)',
50
+ 'data-[ending-style]:layer-components:(opacity-0 scale-95)',
40
51
  );
41
- const sheetClassNames = classNames(
42
- 'layer-variants:lt-sm:(translate-0 left-0 right-0 top-auto h-min-content rounded-tl-xl rounded-tr-xl rounded-b-0 border-b-0 p-6 pt-8 w-full max-w-none shadow-up)',
43
- 'layer-variants:lt-sm:pb-[calc(3rem+env(safe-area-inset-bottom,0px))]',
44
- 'layer-variants:lt-sm:(animate-fade-in-up)',
45
- 'layer-variants:lt-sm:[&[data-state=closed]]:animate-fade-out-down',
52
+ const sheetClassNames = clsx(
53
+ 'layer-variants:lt-sm:(translate-0 left-0 right-0 top-auto h-min-content rounded-tl-xl rounded-tr-xl rounded-b-0 border-b-0 pt-lg w-screen max-w-none shadow-up)',
54
+ 'layer-variants:lt-sm:pb-[calc(env(safe-area-inset-bottom,0px))]',
55
+
56
+ 'data-[starting-style]:layer-variants:lt-sm:(opacity-0 translate-y-full)',
57
+ 'data-[ending-style]:layer-variants:lt-sm:(opacity-0 translate-y-full)',
46
58
  );
47
- const sheetClassNameWithOverlayKeyboard = classNames(
48
- 'layer-variants:lt-sm:(bottom-[calc(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))+var(--gesture-y,0px))] max-h-[calc(95vh-var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px)))])',
59
+ const sheetClassNameWithOverlayKeyboard = clsx(
60
+ 'layer-variants:lt-sm:bottom-[calc(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))+var(--gesture-y,0px))]',
61
+ 'layer-variants:lt-sm:max-h-[calc(95vh-var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px)))]',
49
62
  );
50
- const sheetClassNameWithDisplaceKeyboard = classNames(
63
+ const sheetClassNameWithDisplaceKeyboard = clsx(
51
64
  'layer-variants:lt-sm:(bottom-[calc(var(--viewport-bottom-offset,0px)+var(--gesture-y,0px))] max-h-[calc(0.85*var(--viewport-height,100vh))])',
52
65
  );
53
66
 
54
67
  function sheetCloseGestureLogic(
55
68
  swipeY: number,
56
69
  dy: number,
57
- vy: number,
58
70
  last: boolean,
59
71
  close: () => void,
60
72
  content: HTMLElement,
@@ -91,20 +103,24 @@ function filterScrollables(
91
103
  cur &&
92
104
  cur.scrollHeight > cur.clientHeight &&
93
105
  cur.scrollTop !== 0 &&
94
- vy > 0
106
+ vy >= 0
95
107
  )
96
108
  return true;
97
109
  }
98
110
  return false;
99
111
  }
100
112
 
101
- export interface DialogContentProps
102
- extends ComponentPropsWithRef<typeof DialogPrimitive.Content> {
113
+ export interface DialogContentProps extends DialogPopupProps {
103
114
  width?: 'sm' | 'md' | 'lg';
104
115
  disableSheet?: boolean;
116
+ disableDefaultClose?: boolean;
117
+ /** @deprecated */
105
118
  outerClassName?: string;
119
+ ref?: Ref<HTMLDivElement>;
106
120
  }
107
121
 
122
+ const SWIPE_VELOCITY_THRESHOLD = 1.5;
123
+
108
124
  export const Content = function Content({
109
125
  ref,
110
126
  children,
@@ -112,16 +128,14 @@ export const Content = function Content({
112
128
  outerClassName,
113
129
  className,
114
130
  disableSheet,
131
+ disableDefaultClose,
115
132
  ...props
116
133
  }: DialogContentProps) {
117
134
  const particles = useParticles();
118
135
  const wasOpenRef = useRef(false);
119
136
  const openRef = useCallback(
120
137
  (element: HTMLDivElement | null) => {
121
- if (
122
- !wasOpenRef.current &&
123
- element?.getAttribute('data-state') === 'open'
124
- ) {
138
+ if (!wasOpenRef.current && element?.hasAttribute('data-open')) {
125
139
  wasOpenRef.current = true;
126
140
 
127
141
  const matchesSmall =
@@ -159,58 +173,32 @@ export const Content = function Content({
159
173
  }),
160
174
  );
161
175
  }, 180);
162
- } else if (element?.getAttribute('data-state') === 'closed') {
176
+ } else if (!element?.hasAttribute('data-open')) {
163
177
  wasOpenRef.current = false;
164
178
  }
165
179
  },
166
180
  [particles, disableSheet],
167
181
  );
168
182
 
169
- const gestureRef = useRef<HTMLDivElement>(null);
170
-
183
+ const { gestureRef, onTouchStart, onTouchMove, onTouchEnd } =
184
+ useDialogInherentSwipe({ disableSheet });
171
185
  const finalRef = useMergedRef(ref, openRef, gestureRef);
172
186
 
173
187
  const { virtualKeyboardBehavior } = useConfig();
174
188
 
175
- const close = useContext(DialogCloseContext);
176
- const isSmall = useMediaQuery('(max-width: 640px)');
177
- const bind = useDrag(
178
- ({
179
- swipe: [, swipeY],
180
- movement: [, dy],
181
- velocity: [, vy],
182
- last,
183
- active,
184
- target,
185
- }) => {
186
- if (
187
- filterScrollables(target as HTMLElement, gestureRef.current!, dy, vy)
188
- ) {
189
- return;
190
- }
191
- if (
192
- (active || last) &&
193
- gestureRef.current &&
194
- gestureRef.current.scrollTop < 3
195
- ) {
196
- sheetCloseGestureLogic(swipeY, dy, vy, last, close, gestureRef.current);
197
- }
198
- },
199
- {
200
- axis: 'y',
201
- enabled: isSmall && !disableSheet,
202
- },
203
- );
204
-
205
189
  return (
206
- <DialogPrimitive.Portal>
190
+ <BaseDialog.Portal>
207
191
  <StyledOverlay />
208
192
  <GroupScaleReset>
209
193
  <StyledContent
210
194
  data-dialog-content
211
- {...bind(props)}
212
195
  ref={finalRef}
213
- className={classNames(
196
+ {...props}
197
+ onTouchStart={onTouchStart}
198
+ onTouchMove={onTouchMove}
199
+ onTouchEnd={onTouchEnd}
200
+ onTouchCancel={onTouchEnd}
201
+ className={clsx(
214
202
  {
215
203
  'layer-variants:md:max-w-800px': width === 'lg',
216
204
  'layer-variants:max-w-600px': width === 'md',
@@ -226,14 +214,111 @@ export const Content = function Content({
226
214
  outerClassName || className,
227
215
  )}
228
216
  >
217
+ {!disableDefaultClose && <DialogDefaultClose />}
229
218
  {!disableSheet && <DialogSwipeHandle />}
230
- {children}
219
+ <ScrollArea className="w-full h-full">
220
+ <ScrollArea.Content className="p-md">{children}</ScrollArea.Content>
221
+ </ScrollArea>
231
222
  </StyledContent>
232
223
  </GroupScaleReset>
233
- </DialogPrimitive.Portal>
224
+ </BaseDialog.Portal>
234
225
  );
235
226
  };
236
227
 
228
+ function useDialogInherentSwipe({ disableSheet }: { disableSheet?: boolean }) {
229
+ const gestureRef = useRef<HTMLDivElement>(null);
230
+
231
+ const close = useContext(DialogCloseContext);
232
+ const isSmall = useMediaQuery('(max-width: 640px)');
233
+
234
+ const gestureState = useRef({
235
+ sy: 0,
236
+ dy: 0,
237
+ vy: 0,
238
+ active: false,
239
+ timeStamp: 0,
240
+ filtered: false,
241
+ });
242
+
243
+ const onTouchStart = useCallback(
244
+ (event: TouchEvent) => {
245
+ if (!isSmall || disableSheet) return;
246
+ const touch = event.touches[0];
247
+ gestureState.current.sy = touch.clientY;
248
+ gestureState.current.timeStamp = event.timeStamp;
249
+ },
250
+ [isSmall, disableSheet],
251
+ );
252
+ const onTouchMove = useCallback(
253
+ (event: TouchEvent) => {
254
+ if (!isSmall || disableSheet) return;
255
+
256
+ const touch = event.touches[0];
257
+ const dy = touch.clientY - gestureState.current.sy;
258
+ const vy =
259
+ (dy - gestureState.current.dy) /
260
+ (event.timeStamp -
261
+ (gestureState.current.timeStamp ?? event.timeStamp - 1));
262
+
263
+ gestureState.current.dy = dy;
264
+ gestureState.current.vy = vy;
265
+
266
+ if (
267
+ gestureState.current.filtered ||
268
+ filterScrollables(
269
+ event.target as HTMLElement,
270
+ gestureRef.current!,
271
+ dy,
272
+ vy,
273
+ )
274
+ ) {
275
+ gestureState.current.filtered = true;
276
+ return;
277
+ }
278
+ if (!gestureState.current.active) {
279
+ gestureState.current.active = true;
280
+ gestureState.current.sy = touch.clientY;
281
+ }
282
+
283
+ if (gestureRef.current && gestureRef.current.scrollTop < 3) {
284
+ sheetCloseGestureLogic(
285
+ Math.abs(vy) > SWIPE_VELOCITY_THRESHOLD ? Math.sign(vy) : 0,
286
+ dy,
287
+ false,
288
+ close,
289
+ gestureRef.current,
290
+ );
291
+ }
292
+
293
+ gestureState.current.timeStamp = event.timeStamp;
294
+ },
295
+ [isSmall, disableSheet, close],
296
+ );
297
+ const onTouchEnd = useCallback(
298
+ (event: TouchEvent) => {
299
+ if (gestureState.current.active && gestureRef.current) {
300
+ const { vy, dy } = gestureState.current;
301
+ sheetCloseGestureLogic(
302
+ Math.abs(vy) > SWIPE_VELOCITY_THRESHOLD ? Math.sign(vy) : 0,
303
+ dy,
304
+ true,
305
+ close,
306
+ gestureRef.current,
307
+ );
308
+ }
309
+ gestureState.current.active = false;
310
+ gestureState.current.filtered = false;
311
+ gestureState.current.timeStamp = event.timeStamp;
312
+ gestureState.current.vy = 0;
313
+ gestureState.current.dy = 0;
314
+ gestureState.current.sy = 0;
315
+ },
316
+ [close],
317
+ );
318
+
319
+ return { gestureRef, onTouchStart, onTouchMove, onTouchEnd };
320
+ }
321
+
237
322
  export const DialogSwipeHandle = function DialogSwipeHandle({
238
323
  ref,
239
324
  className,
@@ -247,7 +332,7 @@ export const DialogSwipeHandle = function DialogSwipeHandle({
247
332
  ({ swipe: [, swipeY], movement: [, dy], velocity: [, vy], last }) => {
248
333
  const content = findParentDialogContent(innerRef.current);
249
334
  if (!content) return;
250
- sheetCloseGestureLogic(swipeY, dy, vy, last, close, content);
335
+ sheetCloseGestureLogic(swipeY, dy, last, close, content);
251
336
  },
252
337
  {
253
338
  target: innerRef,
@@ -259,7 +344,7 @@ export const DialogSwipeHandle = function DialogSwipeHandle({
259
344
  <div
260
345
  ref={finalRef}
261
346
  {...props}
262
- className={classNames(
347
+ className={clsx(
263
348
  'layer-components:(absolute top-0 left-50% transform-gpu -translate-x-1/2 w-20% py-2 rounded-lg cursor-grab sm:hidden touch-none)',
264
349
  className,
265
350
  )}
@@ -279,69 +364,101 @@ function findParentDialogContent(
279
364
 
280
365
  const DialogCloseContext = createContext<() => void>(() => {});
281
366
 
367
+ export const DialogDefaultClose = function DialogDefaultClose({
368
+ ref,
369
+ className,
370
+ ...props
371
+ }: DialogCloseProps & {
372
+ ref?: React.Ref<HTMLButtonElement>;
373
+ }) {
374
+ return (
375
+ <DialogClose
376
+ className={clsx(
377
+ 'absolute top-sm right-sm hidden sm:flex z-101',
378
+ className,
379
+ )}
380
+ aria-label="Close dialog"
381
+ ref={ref}
382
+ {...props}
383
+ render={<Button emphasis="ghost" size="small" />}
384
+ >
385
+ <Icon name="x" />
386
+ </DialogClose>
387
+ );
388
+ };
389
+
282
390
  const StyledTitle = withClassName(
283
- DialogPrimitive.Title,
391
+ BaseDialog.Title,
284
392
  'layer-components:(font-title color-black text-3xl mb-4 mt-0)',
285
393
  );
286
394
 
287
395
  const StyledDescription = withClassName(
288
- DialogPrimitive.Description,
396
+ BaseDialog.Description,
289
397
  'layer-components:(mt-3 mb-6 color-gray-dark text-md leading-6)',
290
398
  );
291
399
 
292
400
  // Exports
293
- const DialogRoot = (props: DialogPrimitive.DialogProps) => {
294
- const [innerOpen, innerOnOpenChange] = useState(props.defaultOpen);
401
+ const DialogRoot = (props: DialogRootProps) => {
402
+ const [innerOpen, innerOnOpenChange] = useState(props.defaultOpen || false);
295
403
  const open = props.open ?? innerOpen;
296
- const onOpenChange = useCallback(
297
- (open: boolean) => {
404
+ const onOpenChange = useCallback<
405
+ Exclude<DialogRootProps['onOpenChange'], undefined>
406
+ >(
407
+ (open, eventDetails) => {
298
408
  innerOnOpenChange(open);
299
- props.onOpenChange?.(open);
409
+ props.onOpenChange?.(open, eventDetails);
300
410
  },
301
411
  [props.onOpenChange],
302
412
  );
303
413
 
304
414
  const close = useCallback(() => {
305
- onOpenChange(false);
415
+ onOpenChange(false, {
416
+ allowPropagation() {},
417
+ cancel() {},
418
+ isCanceled: false,
419
+ event: null as any,
420
+ isPropagationAllowed: true,
421
+ preventUnmountOnClose() {},
422
+ reason: 'imperative-action',
423
+ trigger: undefined,
424
+ });
306
425
  }, [onOpenChange]);
307
426
 
308
427
  return (
309
428
  <DialogCloseContext.Provider value={close}>
310
- <DialogPrimitive.Root
311
- {...props}
312
- open={open}
313
- onOpenChange={onOpenChange}
314
- />
429
+ <BaseDialog.Root {...props} open={open} onOpenChange={onOpenChange} />
315
430
  </DialogCloseContext.Provider>
316
431
  );
317
432
  };
318
433
 
319
- export const DialogTrigger = DialogPrimitive.Trigger;
434
+ export const DialogTrigger = withProps(BaseDialog.Trigger, {
435
+ render: <Button />,
436
+ });
320
437
  export const DialogContent = Content;
321
438
  export const DialogTitle = StyledTitle;
322
439
  export const DialogDescription = StyledDescription;
323
440
  export const DialogClose = function DialogClose({
324
- ref,
325
- asChild,
326
441
  children,
442
+ render,
327
443
  ...props
328
- }: DialogPrimitive.DialogCloseProps & {
444
+ }: DialogCloseProps & {
329
445
  ref?: React.Ref<HTMLButtonElement>;
330
446
  }) {
331
447
  return (
332
- <DialogPrimitive.DialogClose asChild ref={ref} {...props}>
333
- {asChild === true ? children : <Button>{children ?? 'Close'}</Button>}
334
- </DialogPrimitive.DialogClose>
448
+ <BaseDialog.Close
449
+ render={render ?? <Button emphasis="default" />}
450
+ {...props}
451
+ >
452
+ {children ?? 'Close'}
453
+ </BaseDialog.Close>
335
454
  );
336
455
  };
337
456
 
338
- export type { DialogProps } from '@radix-ui/react-dialog';
457
+ export type { DialogRootProps as DialogProps } from '@base-ui/react/dialog';
339
458
 
340
459
  export const DialogActions = withClassName(
341
460
  'div',
342
- 'layer-components:(flex justify-end sticky w-full gap-3 items-center bg-inherit py-4 translate-y-6 flex-wrap)',
343
- 'layer-components:bottom--6',
344
- 'layer-components:sm:(bottom-0)',
461
+ 'layer-components:(flex justify-end self-end sticky gap-sm items-center flex-wrap z-100 pb-1px mt-md bottom-md rounded-lg bg-white [--global-shadow-spread:1] shadow-md shadow-white shadow-up)',
345
462
  );
346
463
 
347
464
  export const DialogSelectTrigger = function DialogSelectTrigger({
@@ -349,27 +466,27 @@ export const DialogSelectTrigger = function DialogSelectTrigger({
349
466
  children,
350
467
  className,
351
468
  ...props
352
- }: DialogPrimitive.DialogTriggerProps & {
469
+ }: DialogTriggerProps & {
353
470
  ref?: React.Ref<HTMLButtonElement>;
354
471
  }) {
355
472
  return (
356
- <DialogPrimitive.Trigger
357
- className={classNames(selectTriggerClassName, className)}
473
+ <BaseDialog.Trigger
474
+ className={clsx(selectTriggerClassName, className)}
358
475
  {...props}
359
476
  >
360
477
  <span>{children}</span>
361
478
  <Icon name="chevron" />
362
- </DialogPrimitive.Trigger>
479
+ </BaseDialog.Trigger>
363
480
  );
364
481
  };
365
482
 
366
483
  export const DialogSelectList = withClassName(
367
- RadioGroupPrimitive.Root,
484
+ BaseRadioGroup,
368
485
  'layer-components:(flex flex-col gap-2 overflow-y-auto p-2)',
369
486
  );
370
487
 
371
488
  export const DialogSelectItemRoot = withClassName(
372
- RadioGroupPrimitive.Item,
489
+ BaseRadio.Root,
373
490
  'layer-components:(color-black flex items-center border-1 border-solid border-bg gap-3 w-full py-3 px-4 text-left border-none rounded-lg font-normal bg-gray-light cursor-pointer transition-all)',
374
491
  'layer-components:[&[data-state=checked]]:(bg-main-wash color-main-ink border-color)',
375
492
  );
@@ -386,9 +503,9 @@ export const DialogSelectItem = function DialogSelectItem({
386
503
  <span className="flex-1 flex-row items-center gap-md min-h-18px">
387
504
  {children}
388
505
  </span>
389
- <RadioGroupPrimitive.Indicator className="flex-0-0-auto">
506
+ <BaseRadio.Indicator className="flex-0-0-auto">
390
507
  <Icon name="check" />
391
- </RadioGroupPrimitive.Indicator>
508
+ </BaseRadio.Indicator>
392
509
  </DialogSelectItemRoot>
393
510
  );
394
511
  };
@@ -1,8 +1,12 @@
1
+ import { Separator as BaseSeparator } from '@base-ui/react/separator';
1
2
  import classNames from 'clsx';
2
3
  import { HTMLAttributes } from 'react';
3
4
  import { withClassName } from '../../hooks/withClassName.js';
4
5
 
5
- const DividerBase = withClassName('div', 'w-full h-1px bg-black relative');
6
+ const DividerBase = withClassName(
7
+ BaseSeparator,
8
+ 'w-full h-1px bg-black relative',
9
+ );
6
10
 
7
11
  export interface DividerProps extends HTMLAttributes<HTMLDivElement> {
8
12
  compensate?: 0 | 1 | 2 | 3 | 4 | 5 | 6;