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

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 +22 -50
  110. package/dist/cjs/components/popover/Popover.js.map +1 -1
  111. package/dist/cjs/components/popover/Popover.stories.d.ts +2 -23
  112. package/dist/cjs/components/popover/Popover.stories.js +1 -1
  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 +2 -23
  305. package/dist/esm/components/popover/Popover.stories.js +1 -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 +6 -7
  427. package/src/components/popover/Popover.tsx +86 -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
@@ -1,140 +1,133 @@
1
- 'use client';
2
-
3
- import * as SelectPrimitive from '@radix-ui/react-select';
4
- import classNames from 'clsx';
5
1
  import {
6
- ComponentPropsWithRef,
7
- ComponentType,
8
- ElementType,
9
- FunctionComponent,
10
- ReactNode,
11
- createContext,
12
- useContext,
13
- } from 'react';
2
+ Select as BaseSelect,
3
+ SelectArrowProps,
4
+ SelectIconProps,
5
+ SelectItemIndicatorProps,
6
+ SelectItemProps,
7
+ SelectPopupProps,
8
+ SelectPositionerProps,
9
+ SelectRootProps,
10
+ } from '@base-ui/react/select';
11
+ import classNames, { clsx } from 'clsx';
12
+ import { Ref } from 'react';
14
13
  import { withClassName } from '../../hooks/withClassName.js';
15
14
  import { GroupScaleReset } from '../../systems/GroupScale.js';
16
15
  import { Button, ButtonProps } from '../button/Button.js';
17
16
  import { getButtonClassName } from '../button/classes.js';
18
17
  import { Icon } from '../icon/index.js';
18
+ import { ArrowSvg } from '../utility/ArrowSvg.js';
19
19
 
20
20
  export const SelectItem = ({
21
21
  ref: forwardedRef,
22
22
  children,
23
23
  className,
24
24
  ...props
25
- }: SelectPrimitive.SelectItemProps & {
25
+ }: SelectItemProps & {
26
26
  ref?: React.Ref<HTMLDivElement>;
27
27
  }) => {
28
- const isNative = useContext(IsNativeContext);
29
-
30
- if (isNative) {
31
- return <option value={props.value}>{children}</option>;
32
- }
33
-
34
28
  return (
35
29
  <SelectItemRoot className={className} {...props} ref={forwardedRef}>
36
- <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
30
+ <BaseSelect.ItemText>{children}</BaseSelect.ItemText>
37
31
  <SelectItemIndicator />
38
32
  </SelectItemRoot>
39
33
  );
40
34
  };
41
35
 
42
36
  export const SelectItemRoot = withClassName(
43
- SelectPrimitive.Item,
37
+ BaseSelect.Item,
44
38
  'layer-components:(text-md leading-4 color-black flex items-center flex-row h-36px pr-4 pl-35px min-h-touch-large relative select-none)',
45
39
  'layer-components:[&[data-disabled]]:(color-gray pointer-events-none) [&[data-highlighted]]:(outline-none bg-gray-light color-black)',
46
40
  );
47
41
  export const SelectItemIndicatorRoot = withClassName(
48
- SelectPrimitive.ItemIndicator,
42
+ BaseSelect.ItemIndicator,
49
43
  'layer-components:(absolute left-0 w-25px inline-flex items-center justify-center)',
50
44
  );
51
- export const SelectItemIndicator = withNoNativeRender(
52
- (props: SelectPrimitive.SelectItemIndicatorProps) => (
53
- <SelectItemIndicatorRoot {...props}>
54
- <Icon name="check" />
55
- </SelectItemIndicatorRoot>
56
- ),
45
+ export const SelectItemIndicator = (props: SelectItemIndicatorProps) => (
46
+ <SelectItemIndicatorRoot {...props}>
47
+ <Icon name="check" />
48
+ </SelectItemIndicatorRoot>
57
49
  );
58
- export const SelectItemText = withClassName(SelectPrimitive.ItemText, '');
59
- export const SelectGroup = (props: SelectPrimitive.SelectGroupProps) => {
60
- const isNative = useContext(IsNativeContext);
61
-
62
- if (isNative) {
63
- return (
64
- <optgroup id={props.id} className={props.className}>
65
- {props.children}
66
- </optgroup>
67
- );
68
- }
69
-
70
- return <SelectPrimitive.Group {...props} />;
71
- };
50
+ export const SelectItemText = withClassName(BaseSelect.ItemText, '');
51
+ export const SelectGroup = BaseSelect.Group;
72
52
 
73
- export const SelectRoot = SelectPrimitive.Root;
53
+ export const SelectRoot = BaseSelect.Root;
74
54
  export const selectTriggerClassName = classNames(
75
55
  getButtonClassName({}),
76
- 'layer-components:([all:unset] inline-flex [&[data-placeholder]]:color-gray-dark)',
56
+ 'layer-components:([all:unset] inline-flex data-[placeholder]:color-gray-dark)',
77
57
  );
78
- export const SelectTriggerBase = withNoNativeRender(
79
- withClassName(SelectPrimitive.Trigger, selectTriggerClassName),
80
- );
81
- export const UnstyledSelectTrigger = withNoNativeRender(
82
- SelectPrimitive.Trigger,
58
+ export const SelectTriggerBase = withClassName(
59
+ BaseSelect.Trigger,
60
+ selectTriggerClassName,
83
61
  );
62
+ export const UnstyledSelectTrigger = BaseSelect.Trigger;
84
63
 
85
- export interface SelectTriggerProps extends ButtonProps {}
64
+ export type SelectTriggerProps = ButtonProps;
86
65
  export const SelectTrigger = function SelectTrigger({
87
66
  ref,
88
67
  children,
89
- asChild,
68
+ render,
90
69
  ...props
91
70
  }: SelectTriggerProps & {
92
71
  ref?: React.Ref<HTMLButtonElement>;
93
72
  }) {
94
73
  return (
95
- <UnstyledSelectTrigger asChild {...props} ref={ref}>
96
- <Button className="gap-2 font-normal" asChild={asChild}>
97
- {children || (
98
- <>
99
- <SelectValue />
100
- <SelectIcon />
101
- </>
102
- )}
103
- </Button>
74
+ <UnstyledSelectTrigger
75
+ {...props}
76
+ className="layer-components:(font-normal)"
77
+ ref={ref}
78
+ render={render || <Button className="gap-2 font-normal" />}
79
+ >
80
+ {children || (
81
+ <>
82
+ <SelectValue />
83
+ <SelectIcon />
84
+ </>
85
+ )}
104
86
  </UnstyledSelectTrigger>
105
87
  );
106
88
  };
107
89
 
108
- export const SelectValue = withNoNativeRender(
109
- withClassName(SelectPrimitive.Value, 'flex flex-row'),
90
+ export const SelectValue = withClassName(BaseSelect.Value, 'flex flex-row');
91
+ export const SelectGroupLabel = withClassName(
92
+ BaseSelect.GroupLabel,
93
+ 'px-25px text-xs leading-6 color-black select-none',
110
94
  );
111
- export const SelectLabel = withNoNativeRender(
112
- withClassName(
113
- SelectPrimitive.Label,
114
- 'px-25px text-xs leading-6 color-black select-none',
115
- ),
95
+ export const SelectSeparator = withClassName(
96
+ BaseSelect.Separator,
97
+ 'h-1px bg-gray-light m-1',
116
98
  );
117
- export const SelectSeparator = withNoNativeRender(
118
- withClassName(SelectPrimitive.Separator, 'h-1px bg-gray-light m-1'),
99
+ export const SelectIcon = ({
100
+ ref: forwardedRef,
101
+ className,
102
+ ...props
103
+ }: SelectIconProps & {
104
+ ref?: React.Ref<HTMLDivElement>;
105
+ }) => {
106
+ return (
107
+ <BaseSelect.Icon
108
+ className={classNames('color-inherit ml-auto', className)}
109
+ {...props}
110
+ ref={forwardedRef}
111
+ >
112
+ <Icon name="chevron" className="w-[12px] h-[12px] relative top-1px" />
113
+ </BaseSelect.Icon>
114
+ );
115
+ };
116
+
117
+ export const SelectArrow = ({ className, ...props }: SelectArrowProps) => (
118
+ <BaseSelect.Arrow
119
+ className={clsx('layer-components:arrow', className)}
120
+ {...props}
121
+ >
122
+ <ArrowSvg />
123
+ </BaseSelect.Arrow>
119
124
  );
120
- export const SelectIcon = withNoNativeRender(
121
- ({
122
- ref: forwardedRef,
123
- className,
124
- ...props
125
- }: SelectPrimitive.SelectIconProps & {
126
- ref?: React.Ref<HTMLDivElement>;
127
- }) => {
128
- return (
129
- <SelectPrimitive.Icon
130
- className={classNames('color-inherit ml-auto', className)}
131
- {...props}
132
- ref={forwardedRef}
133
- >
134
- <Icon name="chevron" className="w-[12px] h-[12px] relative top-1px" />
135
- </SelectPrimitive.Icon>
136
- );
137
- },
125
+
126
+ const scrollArrowClass = clsx(
127
+ 'layer-components:(w-full bg-white z-1 text-center cursor-default select-none rounded-sm h-1rem text-xs flex items-center justify-center)',
128
+ 'layer-components:before:(content-empty absolute w-full h-full left-0)',
129
+ 'layer-components:data-[direction=up]:data-[side=none]:before:(-top-full)',
130
+ 'layer-components:data-[direction=down]:(bottom-0 data-[side=none]:before:(-bottom-full))',
138
131
  );
139
132
 
140
133
  const contentStyle = {
@@ -142,111 +135,94 @@ const contentStyle = {
142
135
  '--local-corner-scale': '1',
143
136
  } as React.CSSProperties;
144
137
  const viewportStyle = { '--local-corner-scale': '0.9' } as React.CSSProperties;
145
- export const SelectContent = withPassthroughNativeRender(
146
- ({ ref: forwardedRef, children, inDialog, className, ...props }) => {
147
- return (
148
- <SelectPrimitive.Portal>
149
- <GroupScaleReset>
150
- <SelectPrimitive.Content
138
+ export const SelectContent = ({
139
+ ref: forwardedRef,
140
+ children,
141
+ className,
142
+ side,
143
+ sideOffset = 8,
144
+ align,
145
+ alignOffset,
146
+ alignItemWithTrigger = true,
147
+ disableAnchorTracking,
148
+ arrowPadding,
149
+ anchor,
150
+ collisionAvoidance,
151
+ collisionBoundary,
152
+ collisionPadding,
153
+ sticky,
154
+ positionMethod,
155
+ ...props
156
+ }: SelectPopupProps &
157
+ SelectPositionerProps & { ref?: Ref<HTMLDivElement> }) => {
158
+ return (
159
+ <BaseSelect.Portal>
160
+ <GroupScaleReset>
161
+ <BaseSelect.Backdrop />
162
+ <BaseSelect.Positioner
163
+ side={side}
164
+ sideOffset={sideOffset}
165
+ align={align}
166
+ alignOffset={alignOffset}
167
+ alignItemWithTrigger={alignItemWithTrigger}
168
+ disableAnchorTracking={disableAnchorTracking}
169
+ arrowPadding={arrowPadding}
170
+ anchor={anchor}
171
+ collisionAvoidance={collisionAvoidance}
172
+ collisionBoundary={collisionBoundary}
173
+ collisionPadding={collisionPadding}
174
+ sticky={sticky}
175
+ positionMethod={positionMethod}
176
+ className={classNames(
177
+ 'layer-components:(z-1 outline-none select-none)',
178
+ 'layer-components:(transform-origin-[--transform-origin])',
179
+ )}
180
+ >
181
+ <SelectArrow
182
+ className={clsx(
183
+ 'layer-components:(border-black transition transform)',
184
+ 'layer-components:data-[closed]:(opacity-0 scale-0)',
185
+ 'layer-components:data-[open]:(opacity-100 scale-100)',
186
+ )}
187
+ />
188
+ <BaseSelect.Popup
151
189
  className={classNames(
152
- 'layer-components:(overflow-hidden bg-white rounded-md border border-solid border border-black z-menu shadow-lg)',
153
- 'layer-components:transform-origin-[var(--radix-select-content-transform-origin)]',
154
- 'layer-components:[&[data-state=open]]:animate-popover-in',
155
- 'layer-components:[&[data-state=closed]]:animate-popover-out',
156
- 'layer-components:(min-w-[var(--radix-select-trigger-width)] max-h-[var(--radix-select-content-available-height)])',
157
- inDialog && 'z-[calc(var(--z-dialog)+1)]',
190
+ 'layer-components:(overflow-hidden bg-white rounded-md border border-solid border border-black shadow-lg bg-clip-padding transition)',
191
+ 'layer-components:transform-origin-[var(--transform-origin)]',
192
+ 'layer-components:data-[starting-style]:data-[side=bottom]:(opacity-0 translate-y-4px)',
193
+ 'layer-components:data-[ending-style]:data-[side=bottom]:(opacity-0 translate-y-4px)',
194
+ 'layer-components:data-[starting-style]:data-[side=top]:(opacity-0 translate-y--4px)',
195
+ 'layer-components:data-[ending-style]:data-[side=top]:(opacity-0 translate-y-0)',
196
+ 'layer-components:data-[starting-style]:data-[side=right]:(opacity-0 translate-x-4px)',
197
+ 'layer-components:data-[ending-style]:data-[side=right]:(opacity-0 translate-x-0)',
198
+ 'layer-components:data-[starting-style]:data-[side=left]:(opacity-0 translate-x--4px)',
199
+ 'layer-components:data-[ending-style]:data-[side=left]:(opacity-0 translate-x-0)',
200
+ 'important:motion-reduce:animate-none',
201
+ 'layer-components:data-[side=none]:(translate-y-0px min-w-[calc(var(--anchor-width)+2rem)])',
202
+ 'layer-components:(min-w-[var(--anchor-width)] max-h-[var(--available-height)])',
158
203
  className,
159
204
  )}
160
205
  style={contentStyle}
161
206
  {...props}
162
207
  ref={forwardedRef}
163
208
  >
164
- <SelectPrimitive.ScrollUpButton className="flex items-center justify-center h-25px bg-white color-main-dark cursor-default">
209
+ <BaseSelect.ScrollUpArrow className={scrollArrowClass}>
165
210
  <Icon name="chevron" className="rotate-180" />
166
- </SelectPrimitive.ScrollUpButton>
167
- <SelectPrimitive.Viewport style={viewportStyle}>
168
- {children}
169
- </SelectPrimitive.Viewport>
170
- <SelectPrimitive.ScrollDownButton className="flex items-center justify-center h-25px bg-white color-main-dark cursor-default">
211
+ </BaseSelect.ScrollUpArrow>
212
+ <BaseSelect.List style={viewportStyle}>{children}</BaseSelect.List>
213
+ <BaseSelect.ScrollDownArrow className={scrollArrowClass}>
171
214
  <Icon name="chevron" />
172
- </SelectPrimitive.ScrollDownButton>
173
- </SelectPrimitive.Content>
174
- </GroupScaleReset>
175
- </SelectPrimitive.Portal>
176
- );
177
- },
178
- );
179
-
180
- export const NativeSelect = ({
181
- ref: forwardedRef,
182
- className,
183
- ...props
184
- }: React.SelectHTMLAttributes<HTMLSelectElement> & {
185
- ref?: React.Ref<HTMLSelectElement>;
186
- }) => {
187
- return (
188
- <div className={classNames('relative', className)}>
189
- <select
190
- className={classNames(
191
- 'appearance-none font-inherit bg-white inline-flex items-center justify-center rounded-lg px-3 py-1 pr-8 text-sm gap-2 color-black border-solid border border-gray hover:border-gray-dark focus:outline-none focus-visible:shadow-focus [&[data-placeholder]]:color-gray-dark',
192
- )}
193
- {...props}
194
- ref={forwardedRef}
195
- />
196
- <div className="absolute right-1 top-50% translate-y-[-50%] pointer-events-none">
197
- <Icon name="chevron" className="w-4 h-4 m-2" />
198
- </div>
199
- </div>
215
+ </BaseSelect.ScrollDownArrow>
216
+ </BaseSelect.Popup>
217
+ </BaseSelect.Positioner>
218
+ </GroupScaleReset>
219
+ </BaseSelect.Portal>
200
220
  );
201
221
  };
202
222
 
203
- export type SelectProps<T extends string = string> = {
204
- children?: ReactNode;
205
- value: T;
206
- onValueChange?: (value: T) => void;
207
- className?: string;
208
- id?: string;
209
- /** Native on mobile; otherwise use custom select impl */
210
- mobileNative?: boolean;
211
- /** won't work on mobile and mobileNative=true */
212
- open?: boolean;
213
- /** won't work on mobile and mobileNative=true */
214
- onOpenChange?: (open: boolean) => void;
215
- };
216
- /**
217
- * A high-level Select which converts to native on mobile. Use with SelectItem.
218
- */
219
- const SelectBase = <T extends string = string>({
220
- children,
221
- value,
222
- onValueChange,
223
- mobileNative,
224
- ...rest
225
- }: SelectProps<T>) => {
226
- const mobile = isMobile();
227
-
228
- if (mobile && mobileNative) {
229
- return (
230
- <IsNativeContext.Provider value={true}>
231
- <NativeSelect
232
- onChange={(ev) => {
233
- onValueChange?.(ev.target.value as any);
234
- }}
235
- value={value}
236
- {...rest}
237
- >
238
- {children}
239
- </NativeSelect>
240
- </IsNativeContext.Provider>
241
- );
242
- }
243
-
244
- return (
245
- <SelectRoot value={value} onValueChange={onValueChange}>
246
- {children}
247
- </SelectRoot>
248
- );
249
- };
223
+ export interface SelectProps<T extends string = string>
224
+ extends SelectRootProps<T> {}
225
+ const SelectBase = SelectRoot;
250
226
 
251
227
  export const Select = Object.assign(SelectBase, {
252
228
  Root: SelectRoot,
@@ -254,45 +230,9 @@ export const Select = Object.assign(SelectBase, {
254
230
  Group: SelectGroup,
255
231
  Trigger: SelectTrigger,
256
232
  Value: SelectValue,
257
- Label: SelectLabel,
233
+ GroupLabel: SelectGroupLabel,
258
234
  Separator: SelectSeparator,
259
235
  Icon: SelectIcon,
260
236
  Content: SelectContent,
237
+ Arrow: SelectArrow,
261
238
  });
262
-
263
- function isMobile() {
264
- return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
265
- navigator.userAgent,
266
- );
267
- }
268
-
269
- // facilitate the auto native switching
270
- const IsNativeContext = createContext(false);
271
-
272
- function withNoNativeRender<T extends ComponentType<any> | ElementType<any>>(
273
- Component: T,
274
- ): FunctionComponent<ComponentPropsWithRef<T>> {
275
- const WithNoNativeRender = (props: any) => {
276
- const isNative = useContext(IsNativeContext);
277
-
278
- if (isNative) return null;
279
-
280
- return <Component {...props} />;
281
- };
282
- return WithNoNativeRender as any;
283
- }
284
-
285
- function withPassthroughNativeRender<
286
- T extends ComponentType<any> | ElementType<any>,
287
- >(Component: T): FunctionComponent<ComponentPropsWithRef<T>> {
288
- const WithPassthroughNativeRender = (props: any) => {
289
- const isNative = useContext(IsNativeContext);
290
-
291
- if (isNative) {
292
- return <>{props.children}</>;
293
- }
294
-
295
- return <Component {...props} />;
296
- };
297
- return WithPassthroughNativeRender as any;
298
- }
@@ -31,27 +31,52 @@ export const CustomStyles: Story = {
31
31
  style: { height: '200px' },
32
32
  min: -2,
33
33
  max: 2,
34
- defaultValue: [0],
34
+ defaultValue: 0,
35
35
  },
36
36
  render: (args) => {
37
- const [value, setValue] = useState([0]);
37
+ const [value, setValue] = useState<number>(0);
38
38
  return (
39
- <Slider.Root value={value} onValueChange={setValue} {...args}>
39
+ <Slider.Base
40
+ value={value}
41
+ onValueChange={(v) => {
42
+ if (Array.isArray(v)) {
43
+ setValue(v[0]);
44
+ } else {
45
+ setValue(v as number);
46
+ }
47
+ }}
48
+ color={value < 0 ? 'attention' : value > 0 ? 'success' : 'primary'}
49
+ {...args}
50
+ >
40
51
  <Slider.Track
41
52
  className={clsx({
42
- 'bg-attention': value[0] === -2,
43
- 'bg-attention-light': value[0] === -1,
44
- 'bg-main': value[0] === 0,
45
- 'bg-success-light': value[0] === 1,
46
- 'bg-success': value[0] === 2,
53
+ 'bg-attention': value === -2,
54
+ 'bg-attention-light': value === -1,
55
+ 'bg-main': value === 0,
56
+ 'bg-success-light': value === 1,
57
+ 'bg-success': value === 2,
47
58
  })}
48
- />
49
- <Slider.Thumb className="w-24px h-24px">
50
- <div className="text-lg">
51
- {['😭', '😔', '😐', '😊', '😃'][value[0] + 2]}
52
- </div>
53
- </Slider.Thumb>
54
- </Slider.Root>
59
+ >
60
+ <Slider.Indicator />
61
+ <Slider.Thumb className="w-24px h-24px">
62
+ <div className="text-lg">
63
+ {['😭', '😔', '😐', '😊', '😃'][(value as number) + 2]}
64
+ </div>
65
+ </Slider.Thumb>
66
+ </Slider.Track>
67
+ </Slider.Base>
55
68
  );
56
69
  },
57
70
  };
71
+
72
+ export const WithValue: Story = {
73
+ args: {
74
+ defaultValue: 50,
75
+ },
76
+ render: (args) => (
77
+ <Slider.Root {...args}>
78
+ <Slider.Ui />
79
+ <Slider.Value />
80
+ </Slider.Root>
81
+ ),
82
+ };
@@ -1,26 +1,29 @@
1
- import * as SliderPrimitive from '@radix-ui/react-slider';
1
+ import { Slider as BaseSlider, SliderRootProps } from '@base-ui/react/slider';
2
2
  import clsx from 'clsx';
3
+ import { Ref } from 'react';
3
4
  import { withClassName } from '../../hooks.js';
4
5
  import { PaletteName } from '../../uno/index.js';
5
6
 
6
- export const SliderRoot = withClassName(
7
- SliderPrimitive.Root,
7
+ export const SliderRoot = BaseSlider.Root;
8
+
9
+ export const SliderControl = withClassName(
10
+ BaseSlider.Control,
8
11
  'layer-components:(relative flex items-center select-none touch-none w-full h-30px translate-z-0)',
9
12
  'layer-variants:[&[data-orientation=vertical]]:(flex-col h-full w-30px)',
10
13
  );
11
14
  export const SliderTrack = withClassName(
12
- SliderPrimitive.Track,
13
- 'layer-components:(bg-transparent relative grow rounded-lg h-9px border border-1 border-solid border-black transition-colors)',
14
- 'layer-variants:[&[data-orientation=vertical]]:(w-9px h-full flex-1)',
15
+ BaseSlider.Track,
16
+ 'layer-components:(bg-transparent relative grow rounded-lg h-7px ring-1 ring-black transition-colors select-none)',
17
+ 'layer-variants:[&[data-orientation=vertical]]:(w-7px h-full flex-1)',
15
18
  );
16
19
  export const SliderRange = withClassName(
17
- SliderPrimitive.Range,
18
- 'layer-components:(absolute bg-main rounded-lg h-full transition-colors)',
19
- 'layer-variants:[&[data-orientation=vertical]]:(w-full h-auto)',
20
+ BaseSlider.Indicator,
21
+ 'layer-components:(bg-main rounded-lg transition-colors)',
22
+ 'layer-variants:[&[data-orientation=vertical]]:(bg-main)',
20
23
  );
21
24
  export const SliderThumb = withClassName(
22
- SliderPrimitive.Thumb,
23
- 'layer-components:(flex items-center justify-center leading-none cursor-pointer w-5 h-5 bg-white shadow-sm rounded-lg ring-2 ring-black touch-none transition-all)',
25
+ BaseSlider.Thumb,
26
+ 'layer-components:(flex items-center justify-center leading-none cursor-pointer w-5 h-5 bg-white shadow-sm rounded-lg ring-2 ring-black touch-none transition-color)',
24
27
  'layer-components:hover:(shadow-md)',
25
28
  'layer-components:active:(shadow-lg ring-4 ring-main-dark ring-opacity-50 bg-main-light)',
26
29
  'layer-components:focus-visible:(shadow-lg ring-4 ring-accent ring-opacity-50 outline-none bg-main-light)',
@@ -28,38 +31,65 @@ export const SliderThumb = withClassName(
28
31
  'layer-components:disabled:(opacity-50)',
29
32
  );
30
33
 
31
- export interface SliderProps extends SliderPrimitive.SliderProps {
34
+ export const SliderBase = ({
35
+ children,
36
+ color,
37
+ className,
38
+ ...props
39
+ }: SliderProps) => {
40
+ return (
41
+ <SliderRoot
42
+ {...props}
43
+ className={clsx(color && `palette-${color}`, className)}
44
+ >
45
+ <SliderControl>{children}</SliderControl>
46
+ </SliderRoot>
47
+ );
48
+ };
49
+
50
+ /**
51
+ * A pre-configured Slider UI component. Meant to compose
52
+ * under Slider.Root when you want to use Slider.Value, too
53
+ */
54
+ export const SliderUi = ({
55
+ label,
56
+ className,
57
+ }: {
58
+ label?: string;
59
+ className?: string;
60
+ }) => (
61
+ <Slider.Control className={className}>
62
+ <SliderTrack>
63
+ <SliderRange />
64
+ <SliderThumb aria-label={label} />
65
+ </SliderTrack>
66
+ </Slider.Control>
67
+ );
68
+
69
+ export interface SliderProps extends SliderRootProps {
32
70
  label?: string;
33
71
  color?: PaletteName;
72
+ ref?: Ref<HTMLDivElement>;
34
73
  }
35
74
 
36
75
  export const Slider = Object.assign(
37
- function Slider({
38
- ref,
39
- label,
40
- color,
41
- className,
42
- ...props
43
- }: SliderProps & {
44
- ref?: React.Ref<HTMLDivElement>;
45
- }) {
76
+ function Slider({ label, ...props }: SliderProps) {
46
77
  return (
47
- <SliderRoot
48
- ref={ref}
49
- className={clsx(color && `palette-${color}`, className)}
50
- {...props}
51
- >
52
- <SliderTrack>
53
- <SliderRange data-color={color} />
54
- </SliderTrack>
55
- <SliderThumb aria-label={label} data-color={color} />
78
+ <SliderRoot {...props}>
79
+ <SliderUi />
56
80
  </SliderRoot>
57
81
  );
58
82
  },
59
83
  {
60
84
  Root: SliderRoot,
85
+ Base: SliderBase,
86
+ Control: SliderControl,
61
87
  Track: SliderTrack,
88
+ /** @deprecated - use Indicator */
62
89
  Range: SliderRange,
90
+ Indicator: SliderRange,
63
91
  Thumb: SliderThumb,
92
+ Value: BaseSlider.Value,
93
+ Ui: SliderUi,
64
94
  },
65
95
  );
@@ -0,0 +1,24 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Switch } from './Switch.js';
3
+
4
+ const meta = {
5
+ title: 'Components/Switch',
6
+ component: Switch,
7
+ argTypes: {
8
+ checked: { control: 'boolean' },
9
+ disabled: { control: 'boolean' },
10
+ },
11
+ parameters: {
12
+ controls: { expanded: true },
13
+ },
14
+ } satisfies Meta<typeof Switch>;
15
+
16
+ export default meta;
17
+
18
+ type Story = StoryObj<typeof Switch>;
19
+
20
+ export const Default: Story = {
21
+ render(args) {
22
+ return <Switch {...args} />;
23
+ },
24
+ };