@lobehub/ui 5.23.5 → 5.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/es/A/index.mjs +2 -1
  2. package/es/A/index.mjs.map +1 -1
  3. package/es/Accordion/Accordion.mjs.map +1 -1
  4. package/es/Accordion/AccordionItem.mjs +0 -1
  5. package/es/Accordion/AccordionItem.mjs.map +1 -1
  6. package/es/Accordion/ArrowIcon.mjs.map +1 -1
  7. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  8. package/es/ActionIcon/components/utils.mjs +7 -9
  9. package/es/ActionIcon/components/utils.mjs.map +1 -1
  10. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  11. package/es/Alert/Alert.mjs.map +1 -1
  12. package/es/Avatar/Avatar.mjs.map +1 -1
  13. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  14. package/es/Burger/Burger.mjs.map +1 -1
  15. package/es/Checkbox/Checkbox.mjs.map +1 -1
  16. package/es/Checkbox/CheckboxGroup.mjs +4 -2
  17. package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
  18. package/es/CodeDiff/CodeDiff.mjs +20 -18
  19. package/es/CodeDiff/CodeDiff.mjs.map +1 -1
  20. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  21. package/es/CodeDiff/PatchDiff.mjs +18 -16
  22. package/es/CodeDiff/PatchDiff.mjs.map +1 -1
  23. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  24. package/es/Collapse/Collapse.mjs.map +1 -1
  25. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  26. package/es/ConfigProvider/index.mjs.map +1 -1
  27. package/es/ContextMenu/index.d.mts +2 -2
  28. package/es/ContextMenu/index.mjs +2 -2
  29. package/es/CopyButton/CopyButton.mjs +2 -1
  30. package/es/CopyButton/CopyButton.mjs.map +1 -1
  31. package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
  32. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  33. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  34. package/es/Drawer/Drawer.mjs.map +1 -1
  35. package/es/Dropdown/Dropdown.mjs.map +1 -1
  36. package/es/EditableText/ControlInput.mjs.map +1 -1
  37. package/es/EditableText/EditableText.mjs.map +1 -1
  38. package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
  39. package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
  40. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  41. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  42. package/es/Empty/Empty.mjs.map +1 -1
  43. package/es/FileTypeIcon/FileTypeIcon.mjs.map +1 -1
  44. package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
  45. package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
  46. package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
  47. package/es/Footer/Footer.mjs.map +1 -1
  48. package/es/Form/Form.mjs.map +1 -1
  49. package/es/Form/components/FormGroup.mjs.map +1 -1
  50. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  51. package/es/Form/components/FormTitle.mjs.map +1 -1
  52. package/es/FormModal/FormModal.mjs.map +1 -1
  53. package/es/Freeze/Freeze.mjs.map +1 -1
  54. package/es/GroupAvatar/GroupAvatar.mjs.map +1 -1
  55. package/es/GuideCard/GuideCard.mjs.map +1 -1
  56. package/es/Header/Header.mjs.map +1 -1
  57. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  58. package/es/Highlighter/Highlighter.mjs.map +1 -1
  59. package/es/Highlighter/LangSelect.mjs +41 -40
  60. package/es/Highlighter/LangSelect.mjs.map +1 -1
  61. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs +2 -1
  62. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
  63. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
  64. package/es/Highlighter/SyntaxHighlighter/style.mjs +2 -2
  65. package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
  66. package/es/Hotkey/Hotkey.mjs.map +1 -1
  67. package/es/HotkeyInput/HotkeyInput.mjs +3 -1
  68. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  69. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  70. package/es/HtmlPreview/Iframe.mjs.map +1 -1
  71. package/es/HtmlPreview/const.mjs +1 -1
  72. package/es/HtmlPreview/const.mjs.map +1 -1
  73. package/es/Icon/Icon.mjs.map +1 -1
  74. package/es/Icon/components/utils.mjs +7 -9
  75. package/es/Icon/components/utils.mjs.map +1 -1
  76. package/es/Image/Image.mjs.map +1 -1
  77. package/es/Image/components/Toolbar.mjs +2 -1
  78. package/es/Image/components/Toolbar.mjs.map +1 -1
  79. package/es/Image/components/usePreview.mjs.map +1 -1
  80. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  81. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  82. package/es/Img/index.mjs +2 -1
  83. package/es/Img/index.mjs.map +1 -1
  84. package/es/Layout/Layout.mjs.map +1 -1
  85. package/es/List/List.mjs.map +1 -1
  86. package/es/List/ListItem/index.mjs.map +1 -1
  87. package/es/Markdown/Markdown.mjs.map +1 -1
  88. package/es/Markdown/SyntaxMarkdown/MarkdownRender.mjs.map +1 -1
  89. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs +2 -1
  90. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
  91. package/es/Markdown/SyntaxMarkdown/style.mjs.map +1 -1
  92. package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs +2 -2
  93. package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs.map +1 -1
  94. package/es/Markdown/components/CodeBlock.mjs.map +1 -1
  95. package/es/Markdown/components/Footnotes.mjs.map +1 -1
  96. package/es/Markdown/components/MarkdownTable/index.mjs.map +1 -1
  97. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
  98. package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
  99. package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.mjs.map +1 -1
  100. package/es/Menu/Menu.mjs.map +1 -1
  101. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  102. package/es/Mermaid/Mermaid.mjs.map +1 -1
  103. package/es/Mermaid/SyntaxMermaid/MermaidFallback.mjs +35 -0
  104. package/es/Mermaid/SyntaxMermaid/MermaidFallback.mjs.map +1 -0
  105. package/es/Mermaid/SyntaxMermaid/MermaidSvg.mjs +52 -0
  106. package/es/Mermaid/SyntaxMermaid/MermaidSvg.mjs.map +1 -0
  107. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +13 -42
  108. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
  109. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +13 -43
  110. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
  111. package/es/Mermaid/SyntaxMermaid/prepareInlineSvg.mjs +52 -0
  112. package/es/Mermaid/SyntaxMermaid/prepareInlineSvg.mjs.map +1 -0
  113. package/es/Mermaid/SyntaxMermaid/prepareMermaidSvg.mjs +20 -0
  114. package/es/Mermaid/SyntaxMermaid/prepareMermaidSvg.mjs.map +1 -0
  115. package/es/Mermaid/SyntaxMermaid/style.mjs +11 -0
  116. package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
  117. package/es/Mermaid/const.mjs +10 -31
  118. package/es/Mermaid/const.mjs.map +1 -1
  119. package/es/Mermaid/index.d.mts +2 -1
  120. package/es/Mermaid/index.mjs +2 -1
  121. package/es/Mermaid/type.d.mts +2 -2
  122. package/es/Modal/Modal.mjs.map +1 -1
  123. package/es/Modal/ModalStackItem.mjs.map +1 -1
  124. package/es/Modal/RawModalStackItem.mjs +6 -5
  125. package/es/Modal/RawModalStackItem.mjs.map +1 -1
  126. package/es/Modal/imperative.mjs +4 -2
  127. package/es/Modal/imperative.mjs.map +1 -1
  128. package/es/Modal/style.mjs.map +1 -1
  129. package/es/NeuralNetworkLoading/NeuralNetworkLoading.mjs +1 -1
  130. package/es/NeuralNetworkLoading/NeuralNetworkLoading.mjs.map +1 -1
  131. package/es/ScrollShadow/ScrollShadow.mjs +13 -12
  132. package/es/ScrollShadow/ScrollShadow.mjs.map +1 -1
  133. package/es/SearchBar/SearchBar.mjs.map +1 -1
  134. package/es/SideNav/SideNav.mjs.map +1 -1
  135. package/es/Skeleton/Skeleton.mjs.map +1 -1
  136. package/es/Skeleton/SkeletonButton.mjs +2 -1
  137. package/es/Skeleton/SkeletonButton.mjs.map +1 -1
  138. package/es/Skeleton/SkeletonParagraph.mjs.map +1 -1
  139. package/es/Skeleton/SkeletonTags.mjs.map +1 -1
  140. package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
  141. package/es/Snippet/Snippet.mjs.map +1 -1
  142. package/es/SortableList/SortableList.mjs +5 -1
  143. package/es/SortableList/SortableList.mjs.map +1 -1
  144. package/es/SortableList/components/SortableItem.mjs.map +1 -1
  145. package/es/Text/Text.mjs +22 -21
  146. package/es/Text/Text.mjs.map +1 -1
  147. package/es/ThemeProvider/ThemeProvider.mjs +4 -3
  148. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  149. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  150. package/es/Toc/Toc.mjs.map +1 -1
  151. package/es/Toc/TocMobile.mjs.map +1 -1
  152. package/es/Video/index.mjs.map +1 -1
  153. package/es/awesome/AuroraBackground/AuroraBackground.mjs.map +1 -1
  154. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  155. package/es/awesome/Giscus/Giscus.mjs.map +1 -1
  156. package/es/awesome/GradientButton/GradientButton.mjs +1 -3
  157. package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
  158. package/es/awesome/GridBackground/GridBackground.mjs.map +1 -1
  159. package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
  160. package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
  161. package/es/awesome/Hero/Hero.mjs.map +1 -1
  162. package/es/awesome/Spline/ParentSize.mjs.map +1 -1
  163. package/es/awesome/Spline/Spine.mjs.map +1 -1
  164. package/es/awesome/Spotlight/Spotlight.mjs +2 -1
  165. package/es/awesome/Spotlight/Spotlight.mjs.map +1 -1
  166. package/es/awesome/SpotlightCard/SpotlightCard.mjs.map +1 -1
  167. package/es/awesome/SpotlightCard/SpotlightCardItem.mjs.map +1 -1
  168. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  169. package/es/base-ui/AutoComplete/AutoComplete.mjs.map +1 -1
  170. package/es/base-ui/Button/Button.mjs +13 -11
  171. package/es/base-ui/Button/Button.mjs.map +1 -1
  172. package/es/base-ui/Button/SplitButton.mjs +2 -1
  173. package/es/base-ui/Button/SplitButton.mjs.map +1 -1
  174. package/es/base-ui/Checkbox/Checkbox.mjs.map +1 -1
  175. package/es/base-ui/Checkbox/CheckboxGroup.mjs.map +1 -1
  176. package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -1
  177. package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs +2 -1
  178. package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  179. package/es/base-ui/ContextMenu/imperative.d.mts +2 -2
  180. package/es/base-ui/ContextMenu/index.d.mts +2 -2
  181. package/es/base-ui/ContextMenu/renderItems.mjs +2 -1
  182. package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -1
  183. package/es/base-ui/ContextMenu/store.d.mts +13 -1
  184. package/es/base-ui/ContextMenu/store.mjs +29 -4
  185. package/es/base-ui/ContextMenu/store.mjs.map +1 -1
  186. package/es/base-ui/Drawer/Drawer.d.mts +6 -0
  187. package/es/base-ui/Drawer/Drawer.mjs +152 -0
  188. package/es/base-ui/Drawer/Drawer.mjs.map +1 -0
  189. package/es/base-ui/Drawer/DrawerLayerContext.mjs +10 -0
  190. package/es/base-ui/Drawer/DrawerLayerContext.mjs.map +1 -0
  191. package/es/base-ui/Drawer/DrawerPushContext.mjs +27 -0
  192. package/es/base-ui/Drawer/DrawerPushContext.mjs.map +1 -0
  193. package/es/base-ui/Drawer/atoms.d.mts +58 -0
  194. package/es/base-ui/Drawer/atoms.mjs +262 -0
  195. package/es/base-ui/Drawer/atoms.mjs.map +1 -0
  196. package/es/base-ui/Drawer/constants.d.mts +17 -0
  197. package/es/base-ui/Drawer/constants.mjs +72 -0
  198. package/es/base-ui/Drawer/constants.mjs.map +1 -0
  199. package/es/base-ui/Drawer/index.d.mts +5 -0
  200. package/es/base-ui/Drawer/style.mjs +295 -0
  201. package/es/base-ui/Drawer/style.mjs.map +1 -0
  202. package/es/base-ui/Drawer/type.d.mts +65 -0
  203. package/es/base-ui/DropdownMenu/DropdownMenu.mjs +2 -1
  204. package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -1
  205. package/es/base-ui/DropdownMenu/atoms.mjs +2 -1
  206. package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -1
  207. package/es/base-ui/DropdownMenu/renderItems.mjs +2 -1
  208. package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -1
  209. package/es/base-ui/DropdownMenu/sharedStyle.mjs +3 -0
  210. package/es/base-ui/DropdownMenu/sharedStyle.mjs.map +1 -1
  211. package/es/base-ui/FloatingPanel/FloatingPanel.mjs.map +1 -1
  212. package/es/base-ui/FloatingSheet/FloatingSheet.mjs +4 -1
  213. package/es/base-ui/FloatingSheet/FloatingSheet.mjs.map +1 -1
  214. package/es/base-ui/FloatingSheet/FloatingSheetHeader.mjs.map +1 -1
  215. package/es/base-ui/Form/Form.mjs.map +1 -1
  216. package/es/base-ui/Form/components/FormField.mjs.map +1 -1
  217. package/es/base-ui/Form/components/FormGroup.mjs.map +1 -1
  218. package/es/base-ui/Form/components/FormSubmitFooter.mjs.map +1 -1
  219. package/es/base-ui/Form/components/FormTitle.mjs.map +1 -1
  220. package/es/base-ui/Input/Input.mjs.map +1 -1
  221. package/es/base-ui/Input/InputNumber.mjs.map +1 -1
  222. package/es/base-ui/Input/InputOTP.mjs.map +1 -1
  223. package/es/base-ui/Input/InputPassword.mjs.map +1 -1
  224. package/es/base-ui/Input/TextArea.mjs.map +1 -1
  225. package/es/base-ui/Modal/Modal.mjs.map +1 -1
  226. package/es/base-ui/Modal/atoms.mjs +7 -5
  227. package/es/base-ui/Modal/atoms.mjs.map +1 -1
  228. package/es/base-ui/Modal/imperative.mjs +2 -1
  229. package/es/base-ui/Modal/imperative.mjs.map +1 -1
  230. package/es/base-ui/Popover/ArrowIcon.mjs.map +1 -1
  231. package/es/base-ui/Popover/PopoverGroup.mjs.map +1 -1
  232. package/es/base-ui/Popover/PopoverStandalone.mjs.map +1 -1
  233. package/es/base-ui/Popover/atoms.mjs +2 -1
  234. package/es/base-ui/Popover/atoms.mjs.map +1 -1
  235. package/es/base-ui/Popover/context.mjs +4 -2
  236. package/es/base-ui/Popover/context.mjs.map +1 -1
  237. package/es/base-ui/Radio/Radio.mjs.map +1 -1
  238. package/es/base-ui/Radio/RadioGroup.mjs.map +1 -1
  239. package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -1
  240. package/es/base-ui/Segmented/Segmented.mjs.map +1 -1
  241. package/es/base-ui/Select/Select.mjs.map +1 -1
  242. package/es/base-ui/Select/atoms.mjs +2 -1
  243. package/es/base-ui/Select/atoms.mjs.map +1 -1
  244. package/es/base-ui/Select/parts.mjs.map +1 -1
  245. package/es/base-ui/Select/renderOptions.mjs.map +1 -1
  246. package/es/base-ui/Slider/Slider.mjs.map +1 -1
  247. package/es/base-ui/Slider/SliderWithInput.mjs.map +1 -1
  248. package/es/base-ui/SubmenuArrowIcon.mjs.map +1 -1
  249. package/es/base-ui/Switch/Switch.mjs.map +1 -1
  250. package/es/base-ui/Switch/atoms.d.mts +3 -3
  251. package/es/base-ui/Switch/atoms.mjs +99 -50
  252. package/es/base-ui/Switch/atoms.mjs.map +1 -1
  253. package/es/base-ui/Switch/style.mjs +44 -1
  254. package/es/base-ui/Switch/style.mjs.map +1 -1
  255. package/es/base-ui/Switch/type.d.mts +3 -7
  256. package/es/base-ui/Tabs/Tabs.mjs.map +1 -1
  257. package/es/base-ui/Tabs/atoms.mjs.map +1 -1
  258. package/es/base-ui/Toast/Toast.mjs.map +1 -1
  259. package/es/base-ui/Toast/imperative.mjs.map +1 -1
  260. package/es/base-ui/Tooltip/ArrowIcon.mjs.map +1 -1
  261. package/es/base-ui/Tooltip/TooltipGroup.mjs.map +1 -1
  262. package/es/base-ui/Tooltip/TooltipStandalone.mjs.map +1 -1
  263. package/es/base-ui/index.d.mts +7 -2
  264. package/es/base-ui/index.mjs +5 -2
  265. package/es/brand/LobeChat/index.mjs +0 -1
  266. package/es/brand/LobeChat/index.mjs.map +1 -1
  267. package/es/brand/LobeChatText/index.mjs.map +1 -1
  268. package/es/brand/LobeHub/index.mjs +0 -1
  269. package/es/brand/LobeHub/index.mjs.map +1 -1
  270. package/es/brand/LobeHubText/index.mjs.map +1 -1
  271. package/es/brand/Logo3d/index.mjs +2 -1
  272. package/es/brand/Logo3d/index.mjs.map +1 -1
  273. package/es/brand/LogoThree/Loading.mjs.map +1 -1
  274. package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
  275. package/es/brand/LogoThree/index.mjs.map +1 -1
  276. package/es/brand/components/Divider.mjs.map +1 -1
  277. package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
  278. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  279. package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  280. package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
  281. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
  282. package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  283. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  284. package/es/chat/ChatItem/components/Actions.mjs +5 -4
  285. package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
  286. package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
  287. package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
  288. package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
  289. package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
  290. package/es/chat/ChatItem/components/Title.mjs.map +1 -1
  291. package/es/chat/ChatList/ChatList.mjs +2 -1
  292. package/es/chat/ChatList/ChatList.mjs.map +1 -1
  293. package/es/chat/ChatList/components/HistoryDivider.mjs.map +1 -1
  294. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  295. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  296. package/es/chat/LoadingDots/LoadingDots.mjs.map +1 -1
  297. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  298. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  299. package/es/color/ColorScales/ScaleRow.mjs +0 -2
  300. package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
  301. package/es/color/ColorScales/index.mjs.map +1 -1
  302. package/es/color/CssVar/ScaleRow.mjs.map +1 -1
  303. package/es/color/CssVar/VarRow.mjs.map +1 -1
  304. package/es/color/CssVar/index.mjs.map +1 -1
  305. package/es/hooks/useMarkdown/latex.mjs.map +1 -1
  306. package/es/hooks/useMarkdown/useMarkdownContent.mjs.map +1 -1
  307. package/es/hooks/useMermaid.mjs +81 -116
  308. package/es/hooks/useMermaid.mjs.map +1 -1
  309. package/es/hooks/useMermaidCdn.d.mts +10 -0
  310. package/es/hooks/useMermaidCdn.mjs +97 -0
  311. package/es/hooks/useMermaidCdn.mjs.map +1 -0
  312. package/es/hooks/useStreamMermaid.mjs +19 -70
  313. package/es/hooks/useStreamMermaid.mjs.map +1 -1
  314. package/es/icons/Auth0/components/Mono.mjs.map +1 -1
  315. package/es/icons/Authelia/components/Color.mjs.map +1 -1
  316. package/es/icons/Authelia/components/Mono.mjs.map +1 -1
  317. package/es/icons/Authentik/components/Color.mjs.map +1 -1
  318. package/es/icons/Authentik/components/Mono.mjs.map +1 -1
  319. package/es/icons/Casdoor/components/Color.mjs.map +1 -1
  320. package/es/icons/Casdoor/components/Mono.mjs.map +1 -1
  321. package/es/icons/Clerk/components/Color.mjs.map +1 -1
  322. package/es/icons/Clerk/components/Mono.mjs.map +1 -1
  323. package/es/icons/DingTalk/components/Color.mjs.map +1 -1
  324. package/es/icons/DingTalk/components/Mono.mjs.map +1 -1
  325. package/es/icons/Discord/components/Color.mjs.map +1 -1
  326. package/es/icons/Discord/components/Mono.mjs.map +1 -1
  327. package/es/icons/GoogleChat/components/Color.mjs.map +1 -1
  328. package/es/icons/GoogleChat/components/Mono.mjs.map +1 -1
  329. package/es/icons/IMessage/components/Color.mjs.map +1 -1
  330. package/es/icons/IMessage/components/Inner.mjs.map +1 -1
  331. package/es/icons/IMessage/components/Mono.mjs.map +1 -1
  332. package/es/icons/Lark/components/Color.mjs.map +1 -1
  333. package/es/icons/Lark/components/Mono.mjs.map +1 -1
  334. package/es/icons/Line/components/Color.mjs.map +1 -1
  335. package/es/icons/Line/components/Mono.mjs.map +1 -1
  336. package/es/icons/Logto/components/Color.mjs.map +1 -1
  337. package/es/icons/Logto/components/Mono.mjs.map +1 -1
  338. package/es/icons/MicrosoftEntra/components/Color.mjs.map +1 -1
  339. package/es/icons/MicrosoftEntra/components/Mono.mjs.map +1 -1
  340. package/es/icons/MicrosoftTeams/components/Color.mjs.map +1 -1
  341. package/es/icons/MicrosoftTeams/components/Mono.mjs.map +1 -1
  342. package/es/icons/NextAuth/components/Color.mjs.map +1 -1
  343. package/es/icons/NextAuth/components/Mono.mjs.map +1 -1
  344. package/es/icons/QQ/components/Color.mjs.map +1 -1
  345. package/es/icons/QQ/components/Mono.mjs.map +1 -1
  346. package/es/icons/Slack/components/Color.mjs.map +1 -1
  347. package/es/icons/Slack/components/Mono.mjs.map +1 -1
  348. package/es/icons/Telegram/components/Color.mjs.map +1 -1
  349. package/es/icons/Telegram/components/Inner.mjs.map +1 -1
  350. package/es/icons/Telegram/components/Mono.mjs.map +1 -1
  351. package/es/icons/WeChat/components/Color.mjs.map +1 -1
  352. package/es/icons/WeChat/components/Mono.mjs.map +1 -1
  353. package/es/icons/WhatsApp/components/Color.mjs.map +1 -1
  354. package/es/icons/WhatsApp/components/Mono.mjs.map +1 -1
  355. package/es/icons/Zitadel/components/Color.mjs.map +1 -1
  356. package/es/icons/Zitadel/components/Mono.mjs.map +1 -1
  357. package/es/index.d.mts +2 -2
  358. package/es/index.mjs +2 -2
  359. package/es/mdx/Callout/index.mjs.map +1 -1
  360. package/es/mdx/Cards/Card.mjs.map +1 -1
  361. package/es/mdx/FileTree/File.mjs.map +1 -1
  362. package/es/mdx/FileTree/Folder.mjs.map +1 -1
  363. package/es/mdx/Mdx/index.mjs.map +1 -1
  364. package/es/mdx/Tabs/Tab.mjs.map +1 -1
  365. package/es/mdx/Tabs/index.mjs.map +1 -1
  366. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  367. package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
  368. package/es/mdx/mdxComponents/CodeBlock.mjs.map +1 -1
  369. package/es/mdx/mdxComponents/Link.mjs.map +1 -1
  370. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  371. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  372. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  373. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  374. package/es/storybook/StoryBook/index.mjs.map +1 -1
  375. package/package.json +3 -4
@@ -0,0 +1,152 @@
1
+ "use client";
2
+ import { DEFAULT_CONTAINER_MAX_WIDTH } from "./constants.mjs";
3
+ import { styles } from "./style.mjs";
4
+ import { DrawerBackdrop, DrawerContent, DrawerFooter, DrawerHeader, DrawerPopup, DrawerPortal, DrawerRoot, DrawerTitle } from "./atoms.mjs";
5
+ import { DrawerPushProvider, useDrawerPush } from "./DrawerPushContext.mjs";
6
+ import { memo, useCallback, useMemo } from "react";
7
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
+ import { cx } from "antd-style";
9
+ import { X } from "lucide-react";
10
+ //#region src/base-ui/Drawer/Drawer.tsx
11
+ const resolvePushDistance = (push) => {
12
+ if (push === false) return 0;
13
+ if (push === true) return 180;
14
+ return push.distance ?? 180;
15
+ };
16
+ const FULL_SIZES = /* @__PURE__ */ new Set([
17
+ "100%",
18
+ "100dvh",
19
+ "100dvw",
20
+ "100vh",
21
+ "100vw"
22
+ ]);
23
+ const Drawer = memo(({ open, placement = "right", width, height, mask = true, maskClosable = true, keyboard = true, closable = true, closeIcon, extra, title, footer, noHeader, sidebar, sidebarWidth = 280, containerMaxWidth = DEFAULT_CONTAINER_MAX_WIDTH, push = true, zIndex, getContainer, className, classNames, style, styles: semanticStyles, afterOpenChange, onClose, children }) => {
24
+ const isOpen = open ?? false;
25
+ const { childValue, pushed } = useDrawerPush(isOpen);
26
+ const pushOffset = pushed ? resolvePushDistance(push) : 0;
27
+ const handleOpenChange = useCallback((nextOpen, eventDetails) => {
28
+ if (nextOpen || !isOpen) return;
29
+ if (!keyboard && eventDetails.reason === "escape-key") return;
30
+ if (!maskClosable && eventDetails.reason === "outside-press") return;
31
+ onClose?.();
32
+ }, [
33
+ isOpen,
34
+ keyboard,
35
+ maskClosable,
36
+ onClose
37
+ ]);
38
+ const handleExitComplete = useCallback(() => afterOpenChange?.(false), [afterOpenChange]);
39
+ const handleAnimationComplete = useCallback(() => {
40
+ if (isOpen) afterOpenChange?.(true);
41
+ }, [isOpen, afterOpenChange]);
42
+ const isHorizontal = placement === "left" || placement === "right";
43
+ const resolvedWidth = isHorizontal ? width ?? 378 : width;
44
+ const resolvedHeight = isHorizontal ? height : height ?? 378;
45
+ const isFlush = FULL_SIZES.has(String(isHorizontal ? resolvedWidth : resolvedHeight));
46
+ const surfaceWeightClass = (() => {
47
+ if (isFlush) return void 0;
48
+ if (pushed) return styles.panelRecessed;
49
+ return mask ? void 0 : styles.panelBoosted;
50
+ })();
51
+ const showTitle = title !== void 0 && title !== null;
52
+ const showHeader = !noHeader && (showTitle || closable || !!extra);
53
+ const hasSidebar = !!sidebar;
54
+ const containerStyle = useMemo(() => ({ maxWidth: containerMaxWidth }), [containerMaxWidth]);
55
+ const closeNode = closable && /* @__PURE__ */ jsx("button", {
56
+ "aria-label": "Close",
57
+ className: cx(styles.close, classNames?.close),
58
+ style: semanticStyles?.close,
59
+ type: "button",
60
+ onClick: onClose,
61
+ children: closeIcon ?? /* @__PURE__ */ jsx(X, { size: 16 })
62
+ });
63
+ const extraNode = (extra || closeNode) && /* @__PURE__ */ jsxs("div", {
64
+ className: cx(styles.extra, !showHeader && styles.extraFloating, classNames?.extra),
65
+ style: semanticStyles?.extra,
66
+ children: [extra, closeNode]
67
+ });
68
+ const bodyNode = hasSidebar ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
69
+ className: cx(styles.sidebar, classNames?.sidebar),
70
+ style: {
71
+ width: sidebarWidth,
72
+ ...semanticStyles?.sidebar
73
+ },
74
+ children: sidebar
75
+ }), /* @__PURE__ */ jsx("div", {
76
+ className: cx(styles.sidebarContent, classNames?.sidebarContent),
77
+ style: semanticStyles?.sidebarContent,
78
+ children
79
+ })] }) : children;
80
+ return /* @__PURE__ */ jsx(DrawerRoot, {
81
+ modal: mask,
82
+ open: isOpen,
83
+ zIndex,
84
+ onExitComplete: handleExitComplete,
85
+ onOpenChange: handleOpenChange,
86
+ children: /* @__PURE__ */ jsxs(DrawerPortal, {
87
+ container: getContainer === false ? void 0 : getContainer ?? void 0,
88
+ children: [mask && /* @__PURE__ */ jsx(DrawerBackdrop, {
89
+ className: classNames?.backdrop,
90
+ style: semanticStyles?.backdrop
91
+ }), /* @__PURE__ */ jsx(DrawerPopup, {
92
+ className: classNames?.popup,
93
+ flush: isFlush,
94
+ height: resolvedHeight,
95
+ motionProps: { onAnimationComplete: handleAnimationComplete },
96
+ panelClassName: cx(surfaceWeightClass, className, classNames?.panel),
97
+ panelStyle: {
98
+ ...style,
99
+ ...semanticStyles?.panel
100
+ },
101
+ placement,
102
+ popupStyle: semanticStyles?.popup,
103
+ pushOffset,
104
+ width: resolvedWidth,
105
+ children: /* @__PURE__ */ jsxs(DrawerPushProvider, {
106
+ value: childValue,
107
+ children: [
108
+ showHeader ? /* @__PURE__ */ jsx(DrawerHeader, {
109
+ className: classNames?.header,
110
+ style: semanticStyles?.header,
111
+ children: /* @__PURE__ */ jsxs("div", {
112
+ className: styles.containerInner,
113
+ style: containerStyle,
114
+ children: [showTitle ? /* @__PURE__ */ jsx(DrawerTitle, {
115
+ className: classNames?.title,
116
+ style: semanticStyles?.title,
117
+ children: title
118
+ }) : /* @__PURE__ */ jsx("span", {}), extraNode]
119
+ })
120
+ }) : extraNode,
121
+ /* @__PURE__ */ jsx(DrawerContent, {
122
+ className: cx(hasSidebar && styles.contentSidebar, classNames?.content),
123
+ style: semanticStyles?.content,
124
+ children: /* @__PURE__ */ jsx("div", {
125
+ style: {
126
+ ...containerStyle,
127
+ ...semanticStyles?.bodyContent
128
+ },
129
+ className: cx(styles.bodyContent, hasSidebar && styles.bodyContentSidebar, classNames?.bodyContent),
130
+ children: bodyNode
131
+ })
132
+ }),
133
+ footer && /* @__PURE__ */ jsx(DrawerFooter, {
134
+ className: classNames?.footer,
135
+ style: semanticStyles?.footer,
136
+ children: /* @__PURE__ */ jsx("div", {
137
+ className: cx(styles.containerInner, styles.containerInnerFooter),
138
+ style: containerStyle,
139
+ children: footer
140
+ })
141
+ })
142
+ ]
143
+ })
144
+ })]
145
+ })
146
+ });
147
+ });
148
+ Drawer.displayName = "Drawer";
149
+ //#endregion
150
+ export { Drawer as default };
151
+
152
+ //# sourceMappingURL=Drawer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.mjs","names":[],"sources":["../../../src/base-ui/Drawer/Drawer.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { X } from 'lucide-react';\nimport type { CSSProperties } from 'react';\nimport { memo, useCallback, useMemo } from 'react';\n\nimport {\n DrawerBackdrop,\n DrawerContent,\n DrawerFooter,\n DrawerHeader,\n DrawerPopup,\n DrawerPortal,\n DrawerRoot,\n type DrawerRootProps,\n DrawerTitle,\n} from './atoms';\nimport {\n DEFAULT_CONTAINER_MAX_WIDTH,\n DEFAULT_DRAWER_HEIGHT,\n DEFAULT_DRAWER_WIDTH,\n DEFAULT_PUSH_DISTANCE,\n DEFAULT_SIDEBAR_WIDTH,\n} from './constants';\nimport { DrawerPushProvider, useDrawerPush } from './DrawerPushContext';\nimport { styles } from './style';\nimport type { DrawerProps, DrawerPush } from './type';\n\nconst resolvePushDistance = (push: DrawerPush) => {\n if (push === false) return 0;\n if (push === true) return DEFAULT_PUSH_DISTANCE;\n return push.distance ?? DEFAULT_PUSH_DISTANCE;\n};\n\nconst FULL_SIZES = new Set(['100%', '100dvh', '100dvw', '100vh', '100vw']);\n\nconst Drawer = memo<DrawerProps>(\n ({\n open,\n placement = 'right',\n width,\n height,\n mask = true,\n maskClosable = true,\n keyboard = true,\n closable = true,\n closeIcon,\n extra,\n title,\n footer,\n noHeader,\n sidebar,\n sidebarWidth = DEFAULT_SIDEBAR_WIDTH,\n containerMaxWidth = DEFAULT_CONTAINER_MAX_WIDTH,\n push = true,\n zIndex,\n getContainer,\n className,\n classNames,\n style,\n styles: semanticStyles,\n afterOpenChange,\n onClose,\n children,\n }) => {\n const isOpen = open ?? false;\n const { childValue, pushed } = useDrawerPush(isOpen);\n const pushOffset = pushed ? resolvePushDistance(push) : 0;\n\n const handleOpenChange = useCallback<NonNullable<DrawerRootProps['onOpenChange']>>(\n (nextOpen, eventDetails) => {\n if (nextOpen || !isOpen) return;\n if (!keyboard && eventDetails.reason === 'escape-key') return;\n if (!maskClosable && eventDetails.reason === 'outside-press') return;\n onClose?.();\n },\n [isOpen, keyboard, maskClosable, onClose],\n );\n\n const handleExitComplete = useCallback(() => afterOpenChange?.(false), [afterOpenChange]);\n const handleAnimationComplete = useCallback(() => {\n if (isOpen) afterOpenChange?.(true);\n }, [isOpen, afterOpenChange]);\n\n const isHorizontal = placement === 'left' || placement === 'right';\n const resolvedWidth = isHorizontal ? (width ?? DEFAULT_DRAWER_WIDTH) : width;\n const resolvedHeight = isHorizontal ? height : (height ?? DEFAULT_DRAWER_HEIGHT);\n\n const isFlush = FULL_SIZES.has(String(isHorizontal ? resolvedWidth : resolvedHeight));\n const surfaceWeightClass = (() => {\n if (isFlush) return undefined;\n if (pushed) return styles.panelRecessed;\n return mask ? undefined : styles.panelBoosted;\n })();\n\n const showTitle = title !== undefined && title !== null;\n const showHeader = !noHeader && (showTitle || closable || !!extra);\n const hasSidebar = !!sidebar;\n\n const containerStyle = useMemo<CSSProperties>(\n () => ({ maxWidth: containerMaxWidth }),\n [containerMaxWidth],\n );\n\n const closeNode = closable && (\n <button\n aria-label=\"Close\"\n className={cx(styles.close, classNames?.close)}\n style={semanticStyles?.close}\n type=\"button\"\n onClick={onClose}\n >\n {closeIcon ?? <X size={16} />}\n </button>\n );\n\n const extraNode = (extra || closeNode) && (\n <div\n className={cx(styles.extra, !showHeader && styles.extraFloating, classNames?.extra)}\n style={semanticStyles?.extra}\n >\n {extra}\n {closeNode}\n </div>\n );\n\n const bodyNode = hasSidebar ? (\n <>\n <div\n className={cx(styles.sidebar, classNames?.sidebar)}\n style={{ width: sidebarWidth, ...semanticStyles?.sidebar }}\n >\n {sidebar}\n </div>\n <div\n className={cx(styles.sidebarContent, classNames?.sidebarContent)}\n style={semanticStyles?.sidebarContent}\n >\n {children}\n </div>\n </>\n ) : (\n children\n );\n\n const container = getContainer === false ? undefined : (getContainer ?? undefined);\n\n return (\n <DrawerRoot\n modal={mask}\n open={isOpen}\n zIndex={zIndex}\n onExitComplete={handleExitComplete}\n onOpenChange={handleOpenChange}\n >\n <DrawerPortal container={container}>\n {mask && (\n <DrawerBackdrop className={classNames?.backdrop} style={semanticStyles?.backdrop} />\n )}\n <DrawerPopup\n className={classNames?.popup}\n flush={isFlush}\n height={resolvedHeight}\n motionProps={{ onAnimationComplete: handleAnimationComplete }}\n panelClassName={cx(surfaceWeightClass, className, classNames?.panel)}\n panelStyle={{ ...style, ...semanticStyles?.panel }}\n placement={placement}\n popupStyle={semanticStyles?.popup}\n pushOffset={pushOffset}\n width={resolvedWidth}\n >\n <DrawerPushProvider value={childValue}>\n {showHeader ? (\n <DrawerHeader className={classNames?.header} style={semanticStyles?.header}>\n <div className={styles.containerInner} style={containerStyle}>\n {showTitle ? (\n <DrawerTitle className={classNames?.title} style={semanticStyles?.title}>\n {title}\n </DrawerTitle>\n ) : (\n <span />\n )}\n {extraNode}\n </div>\n </DrawerHeader>\n ) : (\n extraNode\n )}\n <DrawerContent\n className={cx(hasSidebar && styles.contentSidebar, classNames?.content)}\n style={semanticStyles?.content}\n >\n <div\n style={{ ...containerStyle, ...semanticStyles?.bodyContent }}\n className={cx(\n styles.bodyContent,\n hasSidebar && styles.bodyContentSidebar,\n classNames?.bodyContent,\n )}\n >\n {bodyNode}\n </div>\n </DrawerContent>\n {footer && (\n <DrawerFooter className={classNames?.footer} style={semanticStyles?.footer}>\n <div\n className={cx(styles.containerInner, styles.containerInnerFooter)}\n style={containerStyle}\n >\n {footer}\n </div>\n </DrawerFooter>\n )}\n </DrawerPushProvider>\n </DrawerPopup>\n </DrawerPortal>\n </DrawerRoot>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/base-ui/Drawer/DrawerLayerContext.tsx
4
+ const DrawerLayerContext = createContext(null);
5
+ const useDrawerLayer = () => use(DrawerLayerContext);
6
+ const DrawerLayerProvider = DrawerLayerContext.Provider;
7
+ //#endregion
8
+ export { DrawerLayerProvider, useDrawerLayer };
9
+
10
+ //# sourceMappingURL=DrawerLayerContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerLayerContext.mjs","names":[],"sources":["../../../src/base-ui/Drawer/DrawerLayerContext.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use } from 'react';\n\nexport interface DrawerLayer {\n popupRef: (node: HTMLElement | null) => void;\n zIndex: number | undefined;\n}\n\nconst DrawerLayerContext = createContext<DrawerLayer | null>(null);\n\nexport const useDrawerLayer = () => use(DrawerLayerContext);\nexport const DrawerLayerProvider = DrawerLayerContext.Provider;\n"],"mappings":";;;AASA,MAAM,qBAAqB,cAAkC,IAAI;AAEjE,MAAa,uBAAuB,IAAI,kBAAkB;AAC1D,MAAa,sBAAsB,mBAAmB"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { createContext, use, useCallback, useEffect, useMemo, useState } from "react";
3
+ //#region src/base-ui/Drawer/DrawerPushContext.tsx
4
+ const DrawerPushContext = createContext(null);
5
+ const DrawerPushProvider = DrawerPushContext.Provider;
6
+ const useDrawerPush = (open) => {
7
+ const parent = use(DrawerPushContext);
8
+ const [pushedCount, setPushedCount] = useState(0);
9
+ const push = useCallback(() => setPushedCount((count) => count + 1), []);
10
+ const pull = useCallback(() => setPushedCount((count) => Math.max(0, count - 1)), []);
11
+ useEffect(() => {
12
+ if (!open || !parent) return;
13
+ parent.push();
14
+ return () => parent.pull();
15
+ }, [open, parent]);
16
+ return {
17
+ childValue: useMemo(() => ({
18
+ pull,
19
+ push
20
+ }), [pull, push]),
21
+ pushed: pushedCount > 0
22
+ };
23
+ };
24
+ //#endregion
25
+ export { DrawerPushProvider, useDrawerPush };
26
+
27
+ //# sourceMappingURL=DrawerPushContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerPushContext.mjs","names":[],"sources":["../../../src/base-ui/Drawer/DrawerPushContext.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';\n\nexport interface DrawerPushParent {\n pull: () => void;\n push: () => void;\n}\n\nconst DrawerPushContext = createContext<DrawerPushParent | null>(null);\n\nexport const DrawerPushProvider = DrawerPushContext.Provider;\n\nexport const useDrawerPush = (open: boolean) => {\n const parent = use(DrawerPushContext);\n const [pushedCount, setPushedCount] = useState(0);\n\n const push = useCallback(() => setPushedCount((count) => count + 1), []);\n const pull = useCallback(() => setPushedCount((count) => Math.max(0, count - 1)), []);\n\n useEffect(() => {\n if (!open || !parent) return;\n parent.push();\n return () => parent.pull();\n }, [open, parent]);\n\n const childValue = useMemo<DrawerPushParent>(() => ({ pull, push }), [pull, push]);\n\n return { childValue, pushed: pushedCount > 0 };\n};\n"],"mappings":";;;AASA,MAAM,oBAAoB,cAAuC,IAAI;AAErE,MAAa,qBAAqB,kBAAkB;AAEpD,MAAa,iBAAiB,SAAkB;CAC9C,MAAM,SAAS,IAAI,iBAAiB;CACpC,MAAM,CAAC,aAAa,kBAAkB,SAAS,CAAC;CAEhD,MAAM,OAAO,kBAAkB,gBAAgB,UAAU,QAAQ,CAAC,GAAG,CAAC,CAAC;CACvE,MAAM,OAAO,kBAAkB,gBAAgB,UAAU,KAAK,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;CAEpF,gBAAgB;EACd,IAAI,CAAC,QAAQ,CAAC,QAAQ;EACtB,OAAO,KAAK;EACZ,aAAa,OAAO,KAAK;CAC3B,GAAG,CAAC,MAAM,MAAM,CAAC;CAIjB,OAAO;EAAE,YAFU,eAAiC;GAAE;GAAM;EAAK,IAAI,CAAC,MAAM,IAAI,CAE9D;EAAG,QAAQ,cAAc;CAAE;AAC/C"}
@@ -0,0 +1,58 @@
1
+ import { DrawerPlacement } from "./type.mjs";
2
+ import React from "react";
3
+ import { Dialog } from "@base-ui/react/dialog";
4
+ //#region src/base-ui/Drawer/atoms.d.ts
5
+ interface DrawerAnimationActions {
6
+ onExitComplete: () => void;
7
+ }
8
+ declare const useDrawerOpen: () => boolean | null;
9
+ declare const useDrawerActions: () => DrawerAnimationActions | null;
10
+ type DrawerRootProps = Dialog.Root.Props & {
11
+ onExitComplete?: () => void;
12
+ zIndex?: number;
13
+ };
14
+ declare const DrawerRoot: ({ open, onExitComplete, ...rest }: DrawerRootProps) => React.JSX.Element;
15
+ type DrawerPortalProps = React.ComponentProps<typeof Dialog.Portal> & {
16
+ container?: HTMLElement | null;
17
+ };
18
+ declare const DrawerPortal: ({ container, ...rest }: DrawerPortalProps) => React.JSX.Element;
19
+ type DrawerBackdropProps = React.ComponentProps<typeof Dialog.Backdrop>;
20
+ declare const DrawerBackdrop: ({ className, style, ...rest }: DrawerBackdropProps) => React.JSX.Element;
21
+ type DrawerPopupProps = React.ComponentProps<typeof Dialog.Popup> & {
22
+ flush?: boolean;
23
+ height?: number | string;
24
+ motionProps?: Record<string, any>;
25
+ panelClassName?: string;
26
+ panelStyle?: React.CSSProperties;
27
+ placement?: DrawerPlacement;
28
+ popupStyle?: React.CSSProperties;
29
+ pushOffset?: number;
30
+ width?: number | string;
31
+ };
32
+ declare const DrawerPopup: ({ className, children, placement: placementProp, width: widthProp, height: heightProp, flush, pushOffset, motionProps, panelClassName, panelStyle, popupStyle, ref: forwardedRef, ...rest }: DrawerPopupProps) => React.JSX.Element;
33
+ type DrawerHeaderProps = React.HTMLAttributes<HTMLDivElement> & {
34
+ ref?: React.Ref<HTMLDivElement>;
35
+ };
36
+ declare const DrawerHeader: ({ className, ...rest }: DrawerHeaderProps) => React.JSX.Element;
37
+ type DrawerTitleProps = React.ComponentProps<typeof Dialog.Title>;
38
+ declare const DrawerTitle: ({ className, ...rest }: DrawerTitleProps) => React.JSX.Element;
39
+ type DrawerDescriptionProps = React.ComponentProps<typeof Dialog.Description>;
40
+ declare const DrawerDescription: React.FC<DrawerDescriptionProps>;
41
+ type DrawerContentProps = React.HTMLAttributes<HTMLDivElement> & {
42
+ ref?: React.Ref<HTMLDivElement>;
43
+ };
44
+ declare const DrawerContent: ({ className, ...rest }: DrawerContentProps) => React.JSX.Element;
45
+ type DrawerFooterProps = React.HTMLAttributes<HTMLDivElement> & {
46
+ ref?: React.Ref<HTMLDivElement>;
47
+ };
48
+ declare const DrawerFooter: ({ className, ...rest }: DrawerFooterProps) => React.JSX.Element;
49
+ type DrawerCloseProps = React.ComponentProps<typeof Dialog.Close>;
50
+ declare const DrawerClose: ({ className, children, ...rest }: DrawerCloseProps) => React.JSX.Element;
51
+ type DrawerTriggerProps = Omit<React.ComponentPropsWithRef<typeof Dialog.Trigger>, 'children' | 'render'> & {
52
+ children?: React.ReactNode;
53
+ nativeButton?: boolean;
54
+ };
55
+ declare const DrawerTrigger: ({ children, className, nativeButton, ref: refProp, ...rest }: DrawerTriggerProps) => React.JSX.Element;
56
+ //#endregion
57
+ export { DrawerBackdrop, DrawerBackdropProps, DrawerClose, DrawerCloseProps, DrawerContent, DrawerContentProps, DrawerDescription, DrawerDescriptionProps, DrawerFooter, DrawerFooterProps, DrawerHeader, DrawerHeaderProps, DrawerPopup, DrawerPopupProps, DrawerPortal, DrawerPortalProps, DrawerRoot, DrawerRootProps, DrawerTitle, DrawerTitleProps, DrawerTrigger, DrawerTriggerProps, useDrawerActions, useDrawerOpen };
58
+ //# sourceMappingURL=atoms.d.mts.map
@@ -0,0 +1,262 @@
1
+ "use client";
2
+ import { useMotionComponent } from "../../MotionProvider/index.mjs";
3
+ import { useNativeButton } from "../../hooks/useNativeButton.mjs";
4
+ import { useAppElement } from "../../ThemeProvider/AppElementContext.mjs";
5
+ import { useLayerZIndex } from "../zIndex/useLayerZIndex.mjs";
6
+ import { drawerBackdropTransition, getDrawerMotionConfig, pushAxis } from "./constants.mjs";
7
+ import { DrawerLayerProvider, useDrawerLayer } from "./DrawerLayerContext.mjs";
8
+ import { styles } from "./style.mjs";
9
+ import { cloneElement, createContext, createElement, isValidElement, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
10
+ import { jsx } from "react/jsx-runtime";
11
+ import { cx } from "antd-style";
12
+ import { AnimatePresence } from "motion/react";
13
+ import { mergeProps } from "@base-ui/react/merge-props";
14
+ import { mergeRefs, useMergeRefs } from "react-merge-refs";
15
+ import { X } from "lucide-react";
16
+ import { Dialog } from "@base-ui/react/dialog";
17
+ //#region src/base-ui/Drawer/atoms.tsx
18
+ const mergeStateClassName = (base, className) => {
19
+ if (typeof className === "function") return (state) => cx(base, className(state));
20
+ return cx(base, className);
21
+ };
22
+ const popupPlacementClass = {
23
+ bottom: styles.popupBottom,
24
+ left: styles.popupLeft,
25
+ right: styles.popupRight,
26
+ top: styles.popupTop
27
+ };
28
+ const panelPlacementClass = {
29
+ bottom: styles.panelBottom,
30
+ left: styles.panelLeft,
31
+ right: styles.panelRight,
32
+ top: styles.panelTop
33
+ };
34
+ const panelRoundedClass = {
35
+ bottom: styles.panelRoundedBottom,
36
+ left: styles.panelRoundedLeft,
37
+ right: styles.panelRoundedRight,
38
+ top: styles.panelRoundedTop
39
+ };
40
+ const DrawerOpenContext = createContext(null);
41
+ const DrawerActionsContext = createContext(null);
42
+ const useDrawerOpen = () => use(DrawerOpenContext);
43
+ const useDrawerActions = () => use(DrawerActionsContext);
44
+ const AnimatedDrawerRoot = ({ open, children, onExitComplete: onExitCompleteProp, zIndex: explicitZIndex, ...rest }) => {
45
+ const [isPresent, setIsPresent] = useState(!!open);
46
+ useEffect(() => {
47
+ if (open) setIsPresent(true);
48
+ }, [open]);
49
+ const handleExitComplete = useCallback(() => {
50
+ setIsPresent(false);
51
+ onExitCompleteProp?.();
52
+ }, [onExitCompleteProp]);
53
+ const actions = useMemo(() => ({ onExitComplete: handleExitComplete }), [handleExitComplete]);
54
+ const { zIndex, ref: popupRef } = useLayerZIndex("modal", explicitZIndex);
55
+ const layer = useMemo(() => ({
56
+ popupRef,
57
+ zIndex
58
+ }), [zIndex, popupRef]);
59
+ if (!isPresent) return null;
60
+ return /* @__PURE__ */ jsx(DrawerOpenContext, {
61
+ value: open,
62
+ children: /* @__PURE__ */ jsx(DrawerActionsContext, {
63
+ value: actions,
64
+ children: /* @__PURE__ */ jsx(DrawerLayerProvider, {
65
+ value: layer,
66
+ children: /* @__PURE__ */ jsx(Dialog.Root, {
67
+ modal: true,
68
+ open: true,
69
+ ...rest,
70
+ children
71
+ })
72
+ })
73
+ })
74
+ });
75
+ };
76
+ const NonAnimatedDrawerRoot = ({ zIndex: explicitZIndex, children, ...rest }) => {
77
+ const { zIndex, ref: popupRef } = useLayerZIndex("modal", explicitZIndex);
78
+ const layer = useMemo(() => ({
79
+ popupRef,
80
+ zIndex
81
+ }), [zIndex, popupRef]);
82
+ return /* @__PURE__ */ jsx(DrawerLayerProvider, {
83
+ value: layer,
84
+ children: /* @__PURE__ */ jsx(Dialog.Root, {
85
+ modal: true,
86
+ ...rest,
87
+ children
88
+ })
89
+ });
90
+ };
91
+ const DrawerRoot = ({ open, onExitComplete, ...rest }) => {
92
+ if (open !== void 0) return /* @__PURE__ */ jsx(AnimatedDrawerRoot, {
93
+ open,
94
+ onExitComplete,
95
+ ...rest
96
+ });
97
+ return /* @__PURE__ */ jsx(NonAnimatedDrawerRoot, { ...rest });
98
+ };
99
+ const DrawerPortal = ({ container, ...rest }) => {
100
+ const appElement = useAppElement();
101
+ return /* @__PURE__ */ jsx(Dialog.Portal, {
102
+ container: container ?? appElement ?? void 0,
103
+ ...rest
104
+ });
105
+ };
106
+ const DrawerBackdrop = ({ className, style, ...rest }) => {
107
+ const open = useDrawerOpen();
108
+ const layer = useDrawerLayer();
109
+ const Motion = useMotionComponent();
110
+ const layerStyle = layer?.zIndex !== void 0 ? { zIndex: layer.zIndex } : void 0;
111
+ if (open !== null) return /* @__PURE__ */ jsx(Dialog.Backdrop, {
112
+ ...rest,
113
+ className: cx(styles.backdrop, className),
114
+ style: {
115
+ ...layerStyle,
116
+ ...style,
117
+ transition: "none"
118
+ },
119
+ render: /* @__PURE__ */ jsx(Motion.div, {
120
+ animate: { opacity: open ? 1 : 0 },
121
+ initial: { opacity: 0 },
122
+ transition: drawerBackdropTransition
123
+ })
124
+ });
125
+ return /* @__PURE__ */ jsx(Dialog.Backdrop, {
126
+ ...rest,
127
+ className: mergeStateClassName(styles.backdrop, className),
128
+ style: {
129
+ ...layerStyle,
130
+ ...style
131
+ }
132
+ });
133
+ };
134
+ const DrawerPopup = ({ className, children, placement: placementProp = "right", width: widthProp, height: heightProp, flush, pushOffset = 0, motionProps, panelClassName, panelStyle, popupStyle, ref: forwardedRef, ...rest }) => {
135
+ const open = useDrawerOpen();
136
+ const actions = useDrawerActions();
137
+ const layer = useDrawerLayer();
138
+ const Motion = useMotionComponent();
139
+ const composedRef = useMergeRefs([forwardedRef, layer?.popupRef]);
140
+ const openGeometryRef = useRef({
141
+ height: heightProp,
142
+ placement: placementProp,
143
+ width: widthProp
144
+ });
145
+ if (open !== false) openGeometryRef.current = {
146
+ height: heightProp,
147
+ placement: placementProp,
148
+ width: widthProp
149
+ };
150
+ const { height, placement, width } = openGeometryRef.current;
151
+ const sizeStyle = placement === "left" || placement === "right" ? { width } : { height };
152
+ const resolvedPopupStyle = {
153
+ ...layer?.zIndex === void 0 ? void 0 : { zIndex: layer.zIndex + 1 },
154
+ ...sizeStyle,
155
+ ...popupStyle
156
+ };
157
+ const popupBaseClassName = cx(styles.popup, popupPlacementClass[placement]);
158
+ const resolvedPanelClassName = cx(styles.panel, panelPlacementClass[placement], flush ? styles.panelFlush : panelRoundedClass[placement], panelClassName);
159
+ if (open !== null && actions) {
160
+ const motionConfig = getDrawerMotionConfig(placement, pushOffset);
161
+ return /* @__PURE__ */ jsx(Dialog.Popup, {
162
+ ...rest,
163
+ className: cx(popupBaseClassName, className),
164
+ "data-drawer-anchor": placement,
165
+ ref: composedRef,
166
+ style: resolvedPopupStyle,
167
+ children: /* @__PURE__ */ jsx(AnimatePresence, {
168
+ onExitComplete: actions.onExitComplete,
169
+ children: open ? /* @__PURE__ */ createElement(Motion.div, {
170
+ ...motionConfig,
171
+ ...motionProps,
172
+ className: resolvedPanelClassName,
173
+ "data-drawer-placement": placement,
174
+ key: "drawer-popup-panel",
175
+ style: {
176
+ transition: "none",
177
+ ...panelStyle
178
+ }
179
+ }, children) : null
180
+ })
181
+ });
182
+ }
183
+ const { axis, sign } = pushAxis[placement];
184
+ const pushVars = { [axis === "x" ? "--drawer-push-x" : "--drawer-push-y"]: `${pushOffset * sign}px` };
185
+ return /* @__PURE__ */ jsx(Dialog.Popup, {
186
+ ...rest,
187
+ className: mergeStateClassName(popupBaseClassName, className),
188
+ "data-drawer-anchor": placement,
189
+ ref: composedRef,
190
+ style: resolvedPopupStyle,
191
+ children: /* @__PURE__ */ jsx("div", {
192
+ className: resolvedPanelClassName,
193
+ "data-drawer-placement": placement,
194
+ style: {
195
+ ...pushVars,
196
+ ...panelStyle
197
+ },
198
+ children
199
+ })
200
+ });
201
+ };
202
+ const DrawerHeader = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
203
+ ...rest,
204
+ className: cx(styles.header, className)
205
+ });
206
+ const DrawerTitle = ({ className, ...rest }) => /* @__PURE__ */ jsx(Dialog.Title, {
207
+ ...rest,
208
+ className: mergeStateClassName(styles.title, className)
209
+ });
210
+ const DrawerDescription = Dialog.Description;
211
+ const DrawerContent = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
212
+ ...rest,
213
+ className: cx(styles.content, className)
214
+ });
215
+ const DrawerFooter = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
216
+ ...rest,
217
+ className: cx(styles.footer, className)
218
+ });
219
+ const DrawerClose = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(Dialog.Close, {
220
+ ...rest,
221
+ className: mergeStateClassName(styles.close, className),
222
+ children: children ?? /* @__PURE__ */ jsx(X, { size: 16 })
223
+ });
224
+ const DrawerTrigger = ({ children, className, nativeButton, ref: refProp, ...rest }) => {
225
+ const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({
226
+ children,
227
+ nativeButton
228
+ });
229
+ const renderer = (props) => {
230
+ const resolvedProps = (() => {
231
+ if (isNativeButtonTriggerElement) return props;
232
+ const { type, ...restProps } = props;
233
+ return restProps;
234
+ })();
235
+ const mergedProps = mergeProps(children.props, resolvedProps);
236
+ return cloneElement(children, {
237
+ ...mergedProps,
238
+ ref: mergeRefs([
239
+ children.ref,
240
+ props.ref,
241
+ refProp
242
+ ])
243
+ });
244
+ };
245
+ if (isValidElement(children)) return /* @__PURE__ */ jsx(Dialog.Trigger, {
246
+ ...rest,
247
+ className,
248
+ nativeButton: resolvedNativeButton,
249
+ render: renderer
250
+ });
251
+ return /* @__PURE__ */ jsx(Dialog.Trigger, {
252
+ ...rest,
253
+ className,
254
+ nativeButton: resolvedNativeButton,
255
+ ref: refProp,
256
+ children
257
+ });
258
+ };
259
+ //#endregion
260
+ export { DrawerBackdrop, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerPopup, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, useDrawerActions, useDrawerOpen };
261
+
262
+ //# sourceMappingURL=atoms.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atoms.mjs","names":[],"sources":["../../../src/base-ui/Drawer/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Dialog } from '@base-ui/react/dialog';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from 'antd-style';\nimport { X } from 'lucide-react';\nimport { AnimatePresence } from 'motion/react';\nimport type React from 'react';\nimport {\n cloneElement,\n createContext,\n isValidElement,\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs, useMergeRefs } from 'react-merge-refs';\n\nimport { useNativeButton } from '@/hooks/useNativeButton';\nimport { useMotionComponent } from '@/MotionProvider';\nimport { useAppElement } from '@/ThemeProvider';\n\nimport { useLayerZIndex } from '../zIndex';\nimport { drawerBackdropTransition, getDrawerMotionConfig, pushAxis } from './constants';\nimport { DrawerLayerProvider, useDrawerLayer } from './DrawerLayerContext';\nimport { styles } from './style';\nimport type { DrawerPlacement } from './type';\n\nconst mergeStateClassName = <TState,>(\n base: string,\n className: string | ((state: TState) => string | undefined) | undefined,\n) => {\n if (typeof className === 'function') return (state: TState) => cx(base, className(state));\n return cx(base, className);\n};\n\nconst popupPlacementClass: Record<DrawerPlacement, string> = {\n bottom: styles.popupBottom,\n left: styles.popupLeft,\n right: styles.popupRight,\n top: styles.popupTop,\n};\n\nconst panelPlacementClass: Record<DrawerPlacement, string> = {\n bottom: styles.panelBottom,\n left: styles.panelLeft,\n right: styles.panelRight,\n top: styles.panelTop,\n};\n\nconst panelRoundedClass: Record<DrawerPlacement, string> = {\n bottom: styles.panelRoundedBottom,\n left: styles.panelRoundedLeft,\n right: styles.panelRoundedRight,\n top: styles.panelRoundedTop,\n};\n\nconst DrawerOpenContext = createContext<boolean | null>(null);\n\ninterface DrawerAnimationActions {\n onExitComplete: () => void;\n}\nconst DrawerActionsContext = createContext<DrawerAnimationActions | null>(null);\n\nexport const useDrawerOpen = () => use(DrawerOpenContext);\nexport const useDrawerActions = () => use(DrawerActionsContext);\n\nexport type DrawerRootProps = Dialog.Root.Props & {\n onExitComplete?: () => void;\n zIndex?: number;\n};\n\nconst AnimatedDrawerRoot = ({\n open,\n children,\n onExitComplete: onExitCompleteProp,\n zIndex: explicitZIndex,\n ...rest\n}: Omit<DrawerRootProps, 'open'> & { open: boolean }) => {\n const [isPresent, setIsPresent] = useState(!!open);\n\n useEffect(() => {\n if (open) setIsPresent(true);\n }, [open]);\n\n const handleExitComplete = useCallback(() => {\n setIsPresent(false);\n onExitCompleteProp?.();\n }, [onExitCompleteProp]);\n\n const actions = useMemo(() => ({ onExitComplete: handleExitComplete }), [handleExitComplete]);\n\n const { zIndex, ref: popupRef } = useLayerZIndex<HTMLDivElement>('modal', explicitZIndex);\n const layer = useMemo(\n () => ({ popupRef: popupRef as (node: HTMLElement | null) => void, zIndex }),\n [zIndex, popupRef],\n );\n\n if (!isPresent) return null;\n\n return (\n <DrawerOpenContext value={open}>\n <DrawerActionsContext value={actions}>\n <DrawerLayerProvider value={layer}>\n <Dialog.Root modal open {...rest}>\n {children}\n </Dialog.Root>\n </DrawerLayerProvider>\n </DrawerActionsContext>\n </DrawerOpenContext>\n );\n};\n\nconst NonAnimatedDrawerRoot = ({ zIndex: explicitZIndex, children, ...rest }: DrawerRootProps) => {\n const { zIndex, ref: popupRef } = useLayerZIndex<HTMLDivElement>('modal', explicitZIndex);\n const layer = useMemo(\n () => ({ popupRef: popupRef as (node: HTMLElement | null) => void, zIndex }),\n [zIndex, popupRef],\n );\n\n return (\n <DrawerLayerProvider value={layer}>\n <Dialog.Root modal {...rest}>\n {children}\n </Dialog.Root>\n </DrawerLayerProvider>\n );\n};\n\nexport const DrawerRoot = ({ open, onExitComplete, ...rest }: DrawerRootProps) => {\n if (open !== undefined) {\n return <AnimatedDrawerRoot open={open} onExitComplete={onExitComplete} {...rest} />;\n }\n return <NonAnimatedDrawerRoot {...rest} />;\n};\n\nexport type DrawerPortalProps = React.ComponentProps<typeof Dialog.Portal> & {\n container?: HTMLElement | null;\n};\nexport const DrawerPortal = ({ container, ...rest }: DrawerPortalProps) => {\n const appElement = useAppElement();\n return <Dialog.Portal container={container ?? appElement ?? undefined} {...rest} />;\n};\n\nexport type DrawerBackdropProps = React.ComponentProps<typeof Dialog.Backdrop>;\nexport const DrawerBackdrop = ({ className, style, ...rest }: DrawerBackdropProps) => {\n const open = useDrawerOpen();\n const layer = useDrawerLayer();\n const Motion = useMotionComponent();\n const layerStyle = layer?.zIndex !== undefined ? { zIndex: layer.zIndex } : undefined;\n\n if (open !== null) {\n return (\n <Dialog.Backdrop\n {...rest}\n className={cx(styles.backdrop, className as string)}\n style={{ ...layerStyle, ...style, transition: 'none' }}\n render={\n <Motion.div\n animate={{ opacity: open ? 1 : 0 }}\n initial={{ opacity: 0 }}\n transition={drawerBackdropTransition}\n />\n }\n />\n );\n }\n\n return (\n <Dialog.Backdrop\n {...rest}\n className={mergeStateClassName(styles.backdrop, className as any) as any}\n style={{ ...layerStyle, ...style }}\n />\n );\n};\n\nexport type DrawerPopupProps = React.ComponentProps<typeof Dialog.Popup> & {\n flush?: boolean;\n height?: number | string;\n motionProps?: Record<string, any>;\n panelClassName?: string;\n panelStyle?: React.CSSProperties;\n placement?: DrawerPlacement;\n popupStyle?: React.CSSProperties;\n pushOffset?: number;\n width?: number | string;\n};\n\nexport const DrawerPopup = ({\n className,\n children,\n placement: placementProp = 'right',\n width: widthProp,\n height: heightProp,\n flush,\n pushOffset = 0,\n motionProps,\n panelClassName,\n panelStyle,\n popupStyle,\n ref: forwardedRef,\n ...rest\n}: DrawerPopupProps) => {\n const open = useDrawerOpen();\n const actions = useDrawerActions();\n const layer = useDrawerLayer();\n const Motion = useMotionComponent();\n const composedRef = useMergeRefs([forwardedRef, layer?.popupRef]);\n\n // The exiting panel lives inside AnimatePresence and keeps the props it had while open,\n // but this popup re-renders with whatever the consumer passes now. Freezing the geometry\n // during exit keeps the two in sync — otherwise a placement change on close teleports the\n // popup to the new edge while the panel animates out along the old axis.\n const openGeometryRef = useRef({\n height: heightProp,\n placement: placementProp,\n width: widthProp,\n });\n if (open !== false) {\n openGeometryRef.current = { height: heightProp, placement: placementProp, width: widthProp };\n }\n const { height, placement, width } = openGeometryRef.current;\n\n const isHorizontal = placement === 'left' || placement === 'right';\n const sizeStyle: React.CSSProperties = isHorizontal ? { width } : { height };\n const resolvedPopupStyle: React.CSSProperties = {\n ...(layer?.zIndex === undefined ? undefined : { zIndex: layer.zIndex + 1 }),\n ...sizeStyle,\n ...popupStyle,\n };\n const popupBaseClassName = cx(styles.popup, popupPlacementClass[placement]);\n const resolvedPanelClassName = cx(\n styles.panel,\n panelPlacementClass[placement],\n flush ? styles.panelFlush : panelRoundedClass[placement],\n panelClassName,\n );\n\n if (open !== null && actions) {\n const motionConfig = getDrawerMotionConfig(placement, pushOffset);\n return (\n <Dialog.Popup\n {...rest}\n className={cx(popupBaseClassName, className as string)}\n data-drawer-anchor={placement}\n ref={composedRef as any}\n style={resolvedPopupStyle}\n >\n <AnimatePresence onExitComplete={actions.onExitComplete}>\n {open ? (\n <Motion.div\n {...motionConfig}\n {...motionProps}\n className={resolvedPanelClassName}\n data-drawer-placement={placement}\n key=\"drawer-popup-panel\"\n style={{ transition: 'none', ...panelStyle }}\n >\n {children}\n </Motion.div>\n ) : null}\n </AnimatePresence>\n </Dialog.Popup>\n );\n }\n\n const { axis, sign } = pushAxis[placement];\n const pushVars = {\n [axis === 'x' ? '--drawer-push-x' : '--drawer-push-y']: `${pushOffset * sign}px`,\n } as React.CSSProperties;\n\n return (\n <Dialog.Popup\n {...rest}\n className={mergeStateClassName(popupBaseClassName, className as any) as any}\n data-drawer-anchor={placement}\n ref={composedRef as any}\n style={resolvedPopupStyle}\n >\n <div\n className={resolvedPanelClassName}\n data-drawer-placement={placement}\n style={{ ...pushVars, ...panelStyle }}\n >\n {children}\n </div>\n </Dialog.Popup>\n );\n};\n\nexport type DrawerHeaderProps = React.HTMLAttributes<HTMLDivElement> & {\n ref?: React.Ref<HTMLDivElement>;\n};\nexport const DrawerHeader = ({ className, ...rest }: DrawerHeaderProps) => (\n <div {...rest} className={cx(styles.header, className)} />\n);\n\nexport type DrawerTitleProps = React.ComponentProps<typeof Dialog.Title>;\nexport const DrawerTitle = ({ className, ...rest }: DrawerTitleProps) => (\n <Dialog.Title {...rest} className={mergeStateClassName(styles.title, className as any) as any} />\n);\n\nexport type DrawerDescriptionProps = React.ComponentProps<typeof Dialog.Description>;\nexport const DrawerDescription: React.FC<DrawerDescriptionProps> = Dialog.Description;\n\nexport type DrawerContentProps = React.HTMLAttributes<HTMLDivElement> & {\n ref?: React.Ref<HTMLDivElement>;\n};\nexport const DrawerContent = ({ className, ...rest }: DrawerContentProps) => (\n <div {...rest} className={cx(styles.content, className)} />\n);\n\nexport type DrawerFooterProps = React.HTMLAttributes<HTMLDivElement> & {\n ref?: React.Ref<HTMLDivElement>;\n};\nexport const DrawerFooter = ({ className, ...rest }: DrawerFooterProps) => (\n <div {...rest} className={cx(styles.footer, className)} />\n);\n\nexport type DrawerCloseProps = React.ComponentProps<typeof Dialog.Close>;\nexport const DrawerClose = ({ className, children, ...rest }: DrawerCloseProps) => (\n <Dialog.Close {...rest} className={mergeStateClassName(styles.close, className as any) as any}>\n {children ?? <X size={16} />}\n </Dialog.Close>\n);\n\nexport type DrawerTriggerProps = Omit<\n React.ComponentPropsWithRef<typeof Dialog.Trigger>,\n 'children' | 'render'\n> & {\n children?: React.ReactNode;\n nativeButton?: boolean;\n};\n\nexport const DrawerTrigger = ({\n children,\n className,\n nativeButton,\n ref: refProp,\n ...rest\n}: DrawerTriggerProps) => {\n const { isNativeButtonTriggerElement, resolvedNativeButton } = useNativeButton({\n children,\n nativeButton,\n });\n\n const renderer = (props: any) => {\n const resolvedProps = (() => {\n if (isNativeButtonTriggerElement) return props as any;\n // eslint-disable-next-line unused-imports/no-unused-vars\n const { type, ...restProps } = props as any;\n return restProps;\n })();\n\n const mergedProps = mergeProps((children as any).props, resolvedProps);\n return cloneElement(children as any, {\n ...mergedProps,\n ref: mergeRefs([(children as any).ref, (props as any).ref, refProp]),\n });\n };\n\n if (isValidElement(children)) {\n return (\n <Dialog.Trigger\n {...rest}\n className={className}\n nativeButton={resolvedNativeButton}\n render={renderer as any}\n />\n );\n }\n\n return (\n <Dialog.Trigger\n {...rest}\n className={className}\n nativeButton={resolvedNativeButton}\n ref={refProp as any}\n >\n {children}\n </Dialog.Trigger>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { DrawerPlacement } from "./type.mjs";
2
+ import { MotionProps } from "motion/react";
3
+ //#region src/base-ui/Drawer/constants.d.ts
4
+ type CubicBezier = [number, number, number, number];
5
+ declare const getDrawerMotionConfig: (placement: DrawerPlacement, pushOffset?: number) => MotionProps & {
6
+ animate: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ };
11
+ declare const drawerBackdropTransition: {
12
+ duration: number;
13
+ ease: CubicBezier;
14
+ };
15
+ //#endregion
16
+ export { drawerBackdropTransition, getDrawerMotionConfig };
17
+ //# sourceMappingURL=constants.d.mts.map