@lobehub/ui 5.23.4 → 5.24.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 (299) hide show
  1. package/es/Accordion/Accordion.mjs.map +1 -1
  2. package/es/Accordion/AccordionItem.mjs.map +1 -1
  3. package/es/Accordion/ArrowIcon.mjs.map +1 -1
  4. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  5. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  6. package/es/Alert/Alert.mjs.map +1 -1
  7. package/es/Avatar/Avatar.mjs.map +1 -1
  8. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  9. package/es/Burger/Burger.mjs.map +1 -1
  10. package/es/Checkbox/Checkbox.mjs.map +1 -1
  11. package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
  12. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  13. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  14. package/es/Collapse/Collapse.mjs.map +1 -1
  15. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  16. package/es/ConfigProvider/index.mjs.map +1 -1
  17. package/es/ContextMenu/index.d.mts +2 -2
  18. package/es/ContextMenu/index.mjs +2 -2
  19. package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
  20. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  21. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  22. package/es/Drawer/Drawer.mjs.map +1 -1
  23. package/es/Dropdown/Dropdown.mjs.map +1 -1
  24. package/es/EditableText/ControlInput.mjs.map +1 -1
  25. package/es/EditableText/EditableText.mjs.map +1 -1
  26. package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
  27. package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
  28. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  29. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  30. package/es/Empty/Empty.mjs.map +1 -1
  31. package/es/FileTypeIcon/FileTypeIcon.mjs.map +1 -1
  32. package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
  33. package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
  34. package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
  35. package/es/Footer/Footer.mjs.map +1 -1
  36. package/es/Form/Form.mjs.map +1 -1
  37. package/es/Form/components/FormGroup.mjs.map +1 -1
  38. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  39. package/es/Form/components/FormTitle.mjs.map +1 -1
  40. package/es/FormModal/FormModal.mjs.map +1 -1
  41. package/es/Freeze/Freeze.mjs.map +1 -1
  42. package/es/GroupAvatar/GroupAvatar.mjs.map +1 -1
  43. package/es/GuideCard/GuideCard.mjs.map +1 -1
  44. package/es/Header/Header.mjs.map +1 -1
  45. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  46. package/es/Highlighter/Highlighter.mjs.map +1 -1
  47. package/es/Highlighter/LangSelect.mjs.map +1 -1
  48. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
  49. package/es/Highlighter/SyntaxHighlighter/style.mjs +2 -2
  50. package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
  51. package/es/Hotkey/Hotkey.mjs.map +1 -1
  52. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  53. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  54. package/es/HtmlPreview/Iframe.mjs.map +1 -1
  55. package/es/Icon/Icon.mjs.map +1 -1
  56. package/es/Image/Image.mjs.map +1 -1
  57. package/es/Image/components/Toolbar.mjs.map +1 -1
  58. package/es/Image/components/usePreview.mjs.map +1 -1
  59. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  60. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  61. package/es/Layout/Layout.mjs.map +1 -1
  62. package/es/List/List.mjs.map +1 -1
  63. package/es/List/ListItem/index.mjs.map +1 -1
  64. package/es/Markdown/Markdown.mjs.map +1 -1
  65. package/es/Markdown/SyntaxMarkdown/MarkdownRender.mjs.map +1 -1
  66. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
  67. package/es/Markdown/SyntaxMarkdown/style.mjs.map +1 -1
  68. package/es/Markdown/components/CodeBlock.mjs.map +1 -1
  69. package/es/Markdown/components/Footnotes.mjs.map +1 -1
  70. package/es/Markdown/components/MarkdownTable/index.mjs.map +1 -1
  71. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
  72. package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
  73. package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.mjs.map +1 -1
  74. package/es/Menu/Menu.mjs.map +1 -1
  75. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  76. package/es/Mermaid/Mermaid.mjs.map +1 -1
  77. package/es/Mermaid/SyntaxMermaid/MermaidFallback.mjs +35 -0
  78. package/es/Mermaid/SyntaxMermaid/MermaidFallback.mjs.map +1 -0
  79. package/es/Mermaid/SyntaxMermaid/MermaidSvg.mjs +52 -0
  80. package/es/Mermaid/SyntaxMermaid/MermaidSvg.mjs.map +1 -0
  81. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +13 -42
  82. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
  83. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +13 -43
  84. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
  85. package/es/Mermaid/SyntaxMermaid/prepareInlineSvg.mjs +52 -0
  86. package/es/Mermaid/SyntaxMermaid/prepareInlineSvg.mjs.map +1 -0
  87. package/es/Mermaid/SyntaxMermaid/prepareMermaidSvg.mjs +20 -0
  88. package/es/Mermaid/SyntaxMermaid/prepareMermaidSvg.mjs.map +1 -0
  89. package/es/Mermaid/SyntaxMermaid/style.mjs +11 -0
  90. package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
  91. package/es/Mermaid/const.mjs +10 -31
  92. package/es/Mermaid/const.mjs.map +1 -1
  93. package/es/Mermaid/index.d.mts +2 -1
  94. package/es/Mermaid/index.mjs +2 -1
  95. package/es/Mermaid/type.d.mts +2 -2
  96. package/es/Modal/Modal.mjs.map +1 -1
  97. package/es/Modal/ModalStackItem.mjs.map +1 -1
  98. package/es/Modal/RawModalStackItem.mjs.map +1 -1
  99. package/es/Modal/imperative.mjs.map +1 -1
  100. package/es/Modal/style.mjs.map +1 -1
  101. package/es/NeuralNetworkLoading/NeuralNetworkLoading.mjs.map +1 -1
  102. package/es/ScrollShadow/ScrollShadow.mjs.map +1 -1
  103. package/es/SearchBar/SearchBar.mjs.map +1 -1
  104. package/es/SideNav/SideNav.mjs.map +1 -1
  105. package/es/Skeleton/Skeleton.mjs.map +1 -1
  106. package/es/Skeleton/SkeletonParagraph.mjs.map +1 -1
  107. package/es/Skeleton/SkeletonTags.mjs.map +1 -1
  108. package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
  109. package/es/Snippet/Snippet.mjs.map +1 -1
  110. package/es/SortableList/SortableList.mjs.map +1 -1
  111. package/es/SortableList/components/SortableItem.mjs.map +1 -1
  112. package/es/Text/Text.mjs.map +1 -1
  113. package/es/ThemeProvider/ThemeProvider.mjs +1 -1
  114. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  115. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  116. package/es/Toc/Toc.mjs.map +1 -1
  117. package/es/Toc/TocMobile.mjs.map +1 -1
  118. package/es/Video/index.mjs.map +1 -1
  119. package/es/awesome/AuroraBackground/AuroraBackground.mjs.map +1 -1
  120. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  121. package/es/awesome/Giscus/Giscus.mjs.map +1 -1
  122. package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
  123. package/es/awesome/GridBackground/GridBackground.mjs.map +1 -1
  124. package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
  125. package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
  126. package/es/awesome/Hero/Hero.mjs.map +1 -1
  127. package/es/awesome/Spline/ParentSize.mjs.map +1 -1
  128. package/es/awesome/Spline/Spine.mjs.map +1 -1
  129. package/es/awesome/SpotlightCard/SpotlightCard.mjs.map +1 -1
  130. package/es/awesome/SpotlightCard/SpotlightCardItem.mjs.map +1 -1
  131. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  132. package/es/base-ui/AutoComplete/AutoComplete.mjs.map +1 -1
  133. package/es/base-ui/Button/Button.mjs.map +1 -1
  134. package/es/base-ui/Button/SplitButton.mjs.map +1 -1
  135. package/es/base-ui/Checkbox/Checkbox.mjs.map +1 -1
  136. package/es/base-ui/Checkbox/CheckboxGroup.mjs.map +1 -1
  137. package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -1
  138. package/es/base-ui/ContextMenu/imperative.d.mts +2 -2
  139. package/es/base-ui/ContextMenu/index.d.mts +2 -2
  140. package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -1
  141. package/es/base-ui/ContextMenu/store.d.mts +13 -1
  142. package/es/base-ui/ContextMenu/store.mjs +29 -4
  143. package/es/base-ui/ContextMenu/store.mjs.map +1 -1
  144. package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -1
  145. package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -1
  146. package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -1
  147. package/es/base-ui/DropdownMenu/sharedStyle.mjs +3 -0
  148. package/es/base-ui/DropdownMenu/sharedStyle.mjs.map +1 -1
  149. package/es/base-ui/FloatingPanel/FloatingPanel.mjs.map +1 -1
  150. package/es/base-ui/FloatingSheet/FloatingSheet.mjs.map +1 -1
  151. package/es/base-ui/FloatingSheet/FloatingSheetHeader.mjs.map +1 -1
  152. package/es/base-ui/Form/Form.mjs.map +1 -1
  153. package/es/base-ui/Form/components/FormField.mjs.map +1 -1
  154. package/es/base-ui/Form/components/FormGroup.mjs.map +1 -1
  155. package/es/base-ui/Form/components/FormSubmitFooter.mjs.map +1 -1
  156. package/es/base-ui/Form/components/FormTitle.mjs.map +1 -1
  157. package/es/base-ui/Input/Input.mjs.map +1 -1
  158. package/es/base-ui/Input/InputNumber.mjs.map +1 -1
  159. package/es/base-ui/Input/InputOTP.mjs.map +1 -1
  160. package/es/base-ui/Input/InputPassword.mjs.map +1 -1
  161. package/es/base-ui/Input/TextArea.mjs.map +1 -1
  162. package/es/base-ui/Input/style.d.mts +1 -1
  163. package/es/base-ui/Modal/Modal.mjs.map +1 -1
  164. package/es/base-ui/Modal/atoms.mjs.map +1 -1
  165. package/es/base-ui/Modal/imperative.mjs.map +1 -1
  166. package/es/base-ui/Popover/ArrowIcon.mjs.map +1 -1
  167. package/es/base-ui/Popover/PopoverGroup.mjs.map +1 -1
  168. package/es/base-ui/Popover/PopoverStandalone.mjs.map +1 -1
  169. package/es/base-ui/Popover/atoms.mjs.map +1 -1
  170. package/es/base-ui/Radio/Radio.mjs.map +1 -1
  171. package/es/base-ui/Radio/RadioGroup.mjs.map +1 -1
  172. package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -1
  173. package/es/base-ui/Segmented/Segmented.mjs.map +1 -1
  174. package/es/base-ui/Select/Select.mjs.map +1 -1
  175. package/es/base-ui/Select/parts.mjs.map +1 -1
  176. package/es/base-ui/Select/renderOptions.mjs.map +1 -1
  177. package/es/base-ui/Slider/Slider.mjs.map +1 -1
  178. package/es/base-ui/Slider/SliderWithInput.mjs.map +1 -1
  179. package/es/base-ui/SubmenuArrowIcon.mjs.map +1 -1
  180. package/es/base-ui/Switch/Switch.mjs.map +1 -1
  181. package/es/base-ui/Switch/atoms.d.mts +3 -3
  182. package/es/base-ui/Switch/atoms.mjs +99 -50
  183. package/es/base-ui/Switch/atoms.mjs.map +1 -1
  184. package/es/base-ui/Switch/style.mjs +44 -1
  185. package/es/base-ui/Switch/style.mjs.map +1 -1
  186. package/es/base-ui/Switch/type.d.mts +3 -7
  187. package/es/base-ui/Tabs/Tabs.mjs.map +1 -1
  188. package/es/base-ui/Tabs/atoms.mjs.map +1 -1
  189. package/es/base-ui/Toast/Toast.mjs.map +1 -1
  190. package/es/base-ui/Toast/imperative.mjs.map +1 -1
  191. package/es/base-ui/Tooltip/ArrowIcon.mjs.map +1 -1
  192. package/es/base-ui/Tooltip/TooltipGroup.mjs.map +1 -1
  193. package/es/base-ui/Tooltip/TooltipStandalone.mjs.map +1 -1
  194. package/es/base-ui/index.d.mts +2 -2
  195. package/es/base-ui/index.mjs +2 -2
  196. package/es/brand/LobeChat/index.mjs.map +1 -1
  197. package/es/brand/LobeChatText/index.mjs.map +1 -1
  198. package/es/brand/LobeHub/index.mjs.map +1 -1
  199. package/es/brand/LobeHubText/index.mjs.map +1 -1
  200. package/es/brand/LogoThree/Loading.mjs.map +1 -1
  201. package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
  202. package/es/brand/LogoThree/index.mjs.map +1 -1
  203. package/es/brand/components/Divider.mjs.map +1 -1
  204. package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
  205. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  206. package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  207. package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
  208. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
  209. package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  210. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  211. package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
  212. package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
  213. package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
  214. package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
  215. package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
  216. package/es/chat/ChatItem/components/Title.mjs.map +1 -1
  217. package/es/chat/ChatList/ChatList.mjs.map +1 -1
  218. package/es/chat/ChatList/components/HistoryDivider.mjs.map +1 -1
  219. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  220. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  221. package/es/chat/LoadingDots/LoadingDots.mjs.map +1 -1
  222. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  223. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  224. package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
  225. package/es/color/ColorScales/index.mjs.map +1 -1
  226. package/es/color/CssVar/ScaleRow.mjs.map +1 -1
  227. package/es/color/CssVar/VarRow.mjs.map +1 -1
  228. package/es/color/CssVar/index.mjs.map +1 -1
  229. package/es/hooks/useMarkdown/latex.mjs.map +1 -1
  230. package/es/hooks/useMarkdown/useMarkdownContent.mjs.map +1 -1
  231. package/es/hooks/useMermaid.mjs +80 -116
  232. package/es/hooks/useMermaid.mjs.map +1 -1
  233. package/es/hooks/useMermaidCdn.d.mts +10 -0
  234. package/es/hooks/useMermaidCdn.mjs +97 -0
  235. package/es/hooks/useMermaidCdn.mjs.map +1 -0
  236. package/es/hooks/useStreamMermaid.mjs +19 -70
  237. package/es/hooks/useStreamMermaid.mjs.map +1 -1
  238. package/es/icons/Auth0/components/Mono.mjs.map +1 -1
  239. package/es/icons/Authelia/components/Color.mjs.map +1 -1
  240. package/es/icons/Authelia/components/Mono.mjs.map +1 -1
  241. package/es/icons/Authentik/components/Color.mjs.map +1 -1
  242. package/es/icons/Authentik/components/Mono.mjs.map +1 -1
  243. package/es/icons/Casdoor/components/Color.mjs.map +1 -1
  244. package/es/icons/Casdoor/components/Mono.mjs.map +1 -1
  245. package/es/icons/Clerk/components/Color.mjs.map +1 -1
  246. package/es/icons/Clerk/components/Mono.mjs.map +1 -1
  247. package/es/icons/DingTalk/components/Color.mjs.map +1 -1
  248. package/es/icons/DingTalk/components/Mono.mjs.map +1 -1
  249. package/es/icons/Discord/components/Color.mjs.map +1 -1
  250. package/es/icons/Discord/components/Mono.mjs.map +1 -1
  251. package/es/icons/GoogleChat/components/Color.mjs.map +1 -1
  252. package/es/icons/GoogleChat/components/Mono.mjs.map +1 -1
  253. package/es/icons/IMessage/components/Color.mjs.map +1 -1
  254. package/es/icons/IMessage/components/Inner.mjs.map +1 -1
  255. package/es/icons/IMessage/components/Mono.mjs.map +1 -1
  256. package/es/icons/Lark/components/Color.mjs.map +1 -1
  257. package/es/icons/Lark/components/Mono.mjs.map +1 -1
  258. package/es/icons/Line/components/Color.mjs.map +1 -1
  259. package/es/icons/Line/components/Mono.mjs.map +1 -1
  260. package/es/icons/Logto/components/Color.mjs.map +1 -1
  261. package/es/icons/Logto/components/Mono.mjs.map +1 -1
  262. package/es/icons/MicrosoftEntra/components/Color.mjs.map +1 -1
  263. package/es/icons/MicrosoftEntra/components/Mono.mjs.map +1 -1
  264. package/es/icons/MicrosoftTeams/components/Color.mjs.map +1 -1
  265. package/es/icons/MicrosoftTeams/components/Mono.mjs.map +1 -1
  266. package/es/icons/NextAuth/components/Color.mjs.map +1 -1
  267. package/es/icons/NextAuth/components/Mono.mjs.map +1 -1
  268. package/es/icons/QQ/components/Color.mjs.map +1 -1
  269. package/es/icons/QQ/components/Mono.mjs.map +1 -1
  270. package/es/icons/Slack/components/Color.mjs.map +1 -1
  271. package/es/icons/Slack/components/Mono.mjs.map +1 -1
  272. package/es/icons/Telegram/components/Color.mjs.map +1 -1
  273. package/es/icons/Telegram/components/Inner.mjs.map +1 -1
  274. package/es/icons/Telegram/components/Mono.mjs.map +1 -1
  275. package/es/icons/WeChat/components/Color.mjs.map +1 -1
  276. package/es/icons/WeChat/components/Mono.mjs.map +1 -1
  277. package/es/icons/WhatsApp/components/Color.mjs.map +1 -1
  278. package/es/icons/WhatsApp/components/Mono.mjs.map +1 -1
  279. package/es/icons/Zitadel/components/Color.mjs.map +1 -1
  280. package/es/icons/Zitadel/components/Mono.mjs.map +1 -1
  281. package/es/index.d.mts +2 -2
  282. package/es/index.mjs +2 -2
  283. package/es/mdx/Callout/index.mjs.map +1 -1
  284. package/es/mdx/Cards/Card.mjs.map +1 -1
  285. package/es/mdx/FileTree/File.mjs.map +1 -1
  286. package/es/mdx/FileTree/Folder.mjs.map +1 -1
  287. package/es/mdx/Mdx/index.mjs.map +1 -1
  288. package/es/mdx/Tabs/Tab.mjs.map +1 -1
  289. package/es/mdx/Tabs/index.mjs.map +1 -1
  290. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  291. package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
  292. package/es/mdx/mdxComponents/CodeBlock.mjs.map +1 -1
  293. package/es/mdx/mdxComponents/Link.mjs.map +1 -1
  294. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  295. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  296. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  297. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  298. package/es/storybook/StoryBook/index.mjs.map +1 -1
  299. package/package.json +3 -4
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonParagraph.mjs","names":["Flexbox"],"sources":["../../src/Skeleton/SkeletonParagraph.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport SkeletonBlock from './SkeletonBlock';\nimport type { SkeletonParagraphProps } from './type';\n\nconst DEFAULT_ROWS = 3;\n\nconst SkeletonParagraph: FC<SkeletonParagraphProps> = ({\n active,\n rows = DEFAULT_ROWS,\n gap,\n width,\n height,\n fontSize,\n lineHeight,\n style,\n className,\n ...rest\n}) => {\n const rowGap = gap;\n const rowCount = Math.max(rows, 1);\n const baseFontSize = fontSize ?? 14;\n const resolvedLineHeight = lineHeight ?? 1.6;\n const computedHeight = height ? height : Math.round(baseFontSize * resolvedLineHeight);\n const marginBlock = computedHeight - baseFontSize;\n const widthList = Array.isArray(width) ? width : null;\n\n const getRowWidth = (index: number): string | number => {\n if (widthList) return widthList[index] ?? widthList.at(-1) ?? '100%';\n if (width !== undefined) return width as string | number;\n if (index === rowCount - 1) return '66%';\n return '100%';\n };\n\n const containerStyle = { gap: rowGap, ...style };\n\n return (\n <Flexbox\n className={className}\n gap={gap || marginBlock}\n style={containerStyle}\n width={'100%'}\n {...rest}\n >\n {Array.from({ length: rowCount }).map((_, index) => (\n <SkeletonBlock\n active={active}\n height={baseFontSize}\n key={index}\n width={getRowWidth(index)}\n />\n ))}\n </Flexbox>\n );\n};\n\nSkeletonParagraph.displayName = 'SkeletonParagraph';\n\nexport default SkeletonParagraph;\n"],"mappings":";;;;;AASA,MAAM,eAAe;AAErB,MAAM,qBAAiD,EACrD,QACA,OAAO,cACP,KACA,OACA,QACA,UACA,YACA,OACA,WACA,GAAG,WACC;CACJ,MAAM,SAAS;CACf,MAAM,WAAW,KAAK,IAAI,MAAM,CAAC;CACjC,MAAM,eAAe,YAAY;CAGjC,MAAM,eADiB,SAAS,SAAS,KAAK,MAAM,gBADzB,cAAc,IAC4C,KAChD;CACrC,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ;CAEjD,MAAM,eAAe,UAAmC;EACtD,IAAI,WAAW,OAAO,UAAU,UAAU,UAAU,GAAG,EAAE,KAAK;EAC9D,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,IAAI,UAAU,WAAW,GAAG,OAAO;EACnC,OAAO;CACT;CAEA,MAAM,iBAAiB;EAAE,KAAK;EAAQ,GAAG;CAAM;CAE/C,OACE,oBAACA,mBAAD;EACa;EACX,KAAK,OAAO;EACZ,OAAO;EACP,OAAO;EACP,GAAI;YAEH,MAAM,KAAK,EAAE,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,UACxC,oBAAC,eAAD;GACU;GACR,QAAQ;GAER,OAAO,YAAY,KAAK;EACzB,GAFM,KAEN,CACF;CACM,CAAA;AAEb;AAEA,kBAAkB,cAAc"}
1
+ {"version":3,"file":"SkeletonParagraph.mjs","names":["Flexbox"],"sources":["../../src/Skeleton/SkeletonParagraph.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport SkeletonBlock from './SkeletonBlock';\nimport type { SkeletonParagraphProps } from './type';\n\nconst DEFAULT_ROWS = 3;\n\nconst SkeletonParagraph: FC<SkeletonParagraphProps> = ({\n active,\n rows = DEFAULT_ROWS,\n gap,\n width,\n height,\n fontSize,\n lineHeight,\n style,\n className,\n ...rest\n}) => {\n const rowGap = gap;\n const rowCount = Math.max(rows, 1);\n const baseFontSize = fontSize ?? 14;\n const resolvedLineHeight = lineHeight ?? 1.6;\n const computedHeight = height ? height : Math.round(baseFontSize * resolvedLineHeight);\n const marginBlock = computedHeight - baseFontSize;\n const widthList = Array.isArray(width) ? width : null;\n\n const getRowWidth = (index: number): string | number => {\n if (widthList) return widthList[index] ?? widthList.at(-1) ?? '100%';\n if (width !== undefined) return width as string | number;\n if (index === rowCount - 1) return '66%';\n return '100%';\n };\n\n const containerStyle = { gap: rowGap, ...style };\n\n return (\n <Flexbox\n className={className}\n gap={gap || marginBlock}\n style={containerStyle}\n width={'100%'}\n {...rest}\n >\n {Array.from({ length: rowCount }).map((_, index) => (\n <SkeletonBlock\n active={active}\n height={baseFontSize}\n key={index}\n width={getRowWidth(index)}\n />\n ))}\n </Flexbox>\n );\n};\n\nSkeletonParagraph.displayName = 'SkeletonParagraph';\n\nexport default SkeletonParagraph;\n"],"mappings":";;;;;AASA,MAAM,eAAe;AAErB,MAAM,qBAAiD,EACrD,QACA,OAAO,cACP,KACA,OACA,QACA,UACA,YACA,OACA,WACA,GAAG,WACC;CACJ,MAAM,SAAS;CACf,MAAM,WAAW,KAAK,IAAI,MAAM,CAAC;CACjC,MAAM,eAAe,YAAY;CAGjC,MAAM,eADiB,SAAS,SAAS,KAAK,MAAM,gBADzB,cAAc,IAC4C,KAChD;CACrC,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ;CAEjD,MAAM,eAAe,UAAmC;EACtD,IAAI,WAAW,OAAO,UAAU,UAAU,UAAU,GAAG,EAAE,KAAK;EAC9D,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,IAAI,UAAU,WAAW,GAAG,OAAO;EACnC,OAAO;CACT;CAEA,MAAM,iBAAiB;EAAE,KAAK;EAAQ,GAAG;CAAM;CAE/C,OACE,oBAACA,mBAAD;EACa;EACX,KAAK,OAAO;EACZ,OAAO;EACP,OAAO;EACP,GAAI;EAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,UACxC,oBAAC,eAAD;GACU;GACR,QAAQ;GAER,OAAO,YAAY,KAAK;EACzB,GAFM,KAEN,CACF;CACM,CAAA;AAEb;AAEA,kBAAkB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonTags.mjs","names":["Flexbox"],"sources":["../../src/Skeleton/SkeletonTags.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar } from 'antd-style';\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport SkeletonBlock from './SkeletonBlock';\nimport type { SkeletonTagsProps } from './type';\n\nconst DEFAULT_COUNT = 1;\n\nconst HEIGHT_MAP: Record<'small' | 'middle' | 'large', number> = {\n large: 28,\n middle: 22,\n small: 20,\n};\n\nconst DEFAULT_WIDTH_MAP: Record<'small' | 'middle' | 'large', number> = {\n large: 64,\n middle: 48,\n small: 36,\n};\n\nconst SkeletonTags: FC<SkeletonTagsProps> = ({\n active,\n className,\n count = DEFAULT_COUNT,\n gap,\n height,\n size = 'middle',\n style,\n width,\n ...rest\n}) => {\n const resolvedGap = gap !== undefined ? `${gap}px` : cssVar.paddingXS;\n const resolvedCount = Math.max(count, 1);\n const resolvedHeight = height ?? HEIGHT_MAP[size];\n const widthList = Array.isArray(width) ? width : null;\n const defaultWidth = DEFAULT_WIDTH_MAP[size];\n\n const RADIUS_MAP: Record<'large' | 'small' | 'middle', string> = {\n large: cssVar.borderRadius,\n middle: cssVar.borderRadiusSM,\n small: cssVar.borderRadiusXS,\n };\n\n const getWidth = (index: number) => {\n if (widthList) return widthList[index] ?? widthList.at(-1) ?? defaultWidth;\n if (width !== undefined) return width as string | number;\n return defaultWidth;\n };\n\n return (\n <Flexbox horizontal className={className} style={{ gap: resolvedGap, ...style }} {...rest}>\n {Array.from({ length: resolvedCount }).map((_, index) => (\n <SkeletonBlock\n active={active}\n height={resolvedHeight}\n key={index}\n width={getWidth(index)}\n style={{\n borderRadius: RADIUS_MAP[size],\n }}\n />\n ))}\n </Flexbox>\n );\n};\n\nSkeletonTags.displayName = 'SkeletonTags';\n\nexport default SkeletonTags;\n"],"mappings":";;;;;;AAUA,MAAM,gBAAgB;AAEtB,MAAM,aAA2D;CAC/D,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AAEA,MAAM,oBAAkE;CACtE,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AAEA,MAAM,gBAAuC,EAC3C,QACA,WACA,QAAQ,eACR,KACA,QACA,OAAO,UACP,OACA,OACA,GAAG,WACC;CACJ,MAAM,cAAc,QAAQ,KAAA,IAAY,GAAG,IAAI,MAAM,OAAO;CAC5D,MAAM,gBAAgB,KAAK,IAAI,OAAO,CAAC;CACvC,MAAM,iBAAiB,UAAU,WAAW;CAC5C,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ;CACjD,MAAM,eAAe,kBAAkB;CAEvC,MAAM,aAA2D;EAC/D,OAAO,OAAO;EACd,QAAQ,OAAO;EACf,OAAO,OAAO;CAChB;CAEA,MAAM,YAAY,UAAkB;EAClC,IAAI,WAAW,OAAO,UAAU,UAAU,UAAU,GAAG,EAAE,KAAK;EAC9D,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO;CACT;CAEA,OACE,oBAACA,mBAAD;EAAS,YAAA;EAAsB;EAAW,OAAO;GAAE,KAAK;GAAa,GAAG;EAAM;EAAG,GAAI;YAClF,MAAM,KAAK,EAAE,QAAQ,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,UAC7C,oBAAC,eAAD;GACU;GACR,QAAQ;GAER,OAAO,SAAS,KAAK;GACrB,OAAO,EACL,cAAc,WAAW,MAC3B;EACD,GALM,KAKN,CACF;CACM,CAAA;AAEb;AAEA,aAAa,cAAc"}
1
+ {"version":3,"file":"SkeletonTags.mjs","names":["Flexbox"],"sources":["../../src/Skeleton/SkeletonTags.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar } from 'antd-style';\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport SkeletonBlock from './SkeletonBlock';\nimport type { SkeletonTagsProps } from './type';\n\nconst DEFAULT_COUNT = 1;\n\nconst HEIGHT_MAP: Record<'small' | 'middle' | 'large', number> = {\n large: 28,\n middle: 22,\n small: 20,\n};\n\nconst DEFAULT_WIDTH_MAP: Record<'small' | 'middle' | 'large', number> = {\n large: 64,\n middle: 48,\n small: 36,\n};\n\nconst SkeletonTags: FC<SkeletonTagsProps> = ({\n active,\n className,\n count = DEFAULT_COUNT,\n gap,\n height,\n size = 'middle',\n style,\n width,\n ...rest\n}) => {\n const resolvedGap = gap !== undefined ? `${gap}px` : cssVar.paddingXS;\n const resolvedCount = Math.max(count, 1);\n const resolvedHeight = height ?? HEIGHT_MAP[size];\n const widthList = Array.isArray(width) ? width : null;\n const defaultWidth = DEFAULT_WIDTH_MAP[size];\n\n const RADIUS_MAP: Record<'large' | 'small' | 'middle', string> = {\n large: cssVar.borderRadius,\n middle: cssVar.borderRadiusSM,\n small: cssVar.borderRadiusXS,\n };\n\n const getWidth = (index: number) => {\n if (widthList) return widthList[index] ?? widthList.at(-1) ?? defaultWidth;\n if (width !== undefined) return width as string | number;\n return defaultWidth;\n };\n\n return (\n <Flexbox horizontal className={className} style={{ gap: resolvedGap, ...style }} {...rest}>\n {Array.from({ length: resolvedCount }).map((_, index) => (\n <SkeletonBlock\n active={active}\n height={resolvedHeight}\n key={index}\n width={getWidth(index)}\n style={{\n borderRadius: RADIUS_MAP[size],\n }}\n />\n ))}\n </Flexbox>\n );\n};\n\nSkeletonTags.displayName = 'SkeletonTags';\n\nexport default SkeletonTags;\n"],"mappings":";;;;;;AAUA,MAAM,gBAAgB;AAEtB,MAAM,aAA2D;CAC/D,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AAEA,MAAM,oBAAkE;CACtE,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AAEA,MAAM,gBAAuC,EAC3C,QACA,WACA,QAAQ,eACR,KACA,QACA,OAAO,UACP,OACA,OACA,GAAG,WACC;CACJ,MAAM,cAAc,QAAQ,KAAA,IAAY,GAAG,IAAI,MAAM,OAAO;CAC5D,MAAM,gBAAgB,KAAK,IAAI,OAAO,CAAC;CACvC,MAAM,iBAAiB,UAAU,WAAW;CAC5C,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ;CACjD,MAAM,eAAe,kBAAkB;CAEvC,MAAM,aAA2D;EAC/D,OAAO,OAAO;EACd,QAAQ,OAAO;EACf,OAAO,OAAO;CAChB;CAEA,MAAM,YAAY,UAAkB;EAClC,IAAI,WAAW,OAAO,UAAU,UAAU,UAAU,GAAG,EAAE,KAAK;EAC9D,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,OAAO;CACT;CAEA,OACE,oBAACA,mBAAD;EAAS,YAAA;EAAsB;EAAW,OAAO;GAAE,KAAK;GAAa,GAAG;EAAM;EAAG,GAAI;EAClF,UAAA,MAAM,KAAK,EAAE,QAAQ,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,UAC7C,oBAAC,eAAD;GACU;GACR,QAAQ;GAER,OAAO,SAAS,KAAK;GACrB,OAAO,EACL,cAAc,WAAW,MAC3B;EACD,GALM,KAKN,CACF;CACM,CAAA;AAEb;AAEA,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderWithInput.mjs","names":["Flexbox","InputNumber"],"sources":["../../src/SliderWithInput/SliderWithInput.tsx"],"sourcesContent":["'use client';\n\nimport { Slider } from 'antd';\nimport { isNull } from 'es-toolkit/compat';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport InputNumber from '@/Input/InputNumber';\n\nimport type { SliderWithInputProps } from './type';\n\nconst SliderWithInput = memo<SliderWithInputProps>(\n ({\n step,\n value,\n onChange,\n max,\n min,\n defaultValue,\n size,\n controls,\n gap = 16,\n style,\n className,\n classNames,\n styles,\n disabled,\n unlimitedInput = false,\n changeOnWheel,\n ...rest\n }) => {\n const handleOnchange = (value: number | null) => {\n if (Number.isNaN(value) || isNull(value)) return;\n onChange?.(value);\n };\n const inputDisabled = Array.isArray(disabled) ? disabled.some(Boolean) : disabled;\n\n const { slider: sliderClassName, input: inputClassName, ...restClassNames } = classNames || {};\n const { slider: sliderStyle, input: inputStyle, ...restStyles } = styles || {};\n\n return (\n <Flexbox\n align={'center'}\n className={className}\n direction={'horizontal'}\n gap={gap}\n style={style}\n >\n <Slider\n className={sliderClassName}\n classNames={restClassNames}\n defaultValue={defaultValue}\n disabled={disabled}\n max={max}\n min={min}\n step={step}\n style={{ flex: 1, margin: size === 'small' ? 0 : undefined, ...sliderStyle }}\n styles={restStyles}\n tooltip={{ open: false }}\n value={typeof value === 'number' ? value : 0}\n onChange={handleOnchange}\n {...rest}\n />\n <InputNumber\n changeOnWheel={changeOnWheel}\n className={inputClassName}\n controls={size !== 'small' || controls}\n defaultValue={defaultValue}\n disabled={inputDisabled}\n max={unlimitedInput ? undefined : max}\n min={min}\n size={size}\n step={Number.isNaN(step) || isNull(step) ? undefined : step}\n style={{ flex: 1, maxWidth: size === 'small' ? 40 : 64, ...inputStyle }}\n value={typeof value === 'number' ? value : 0}\n onChange={(v) => handleOnchange(Number(v))}\n />\n </Flexbox>\n );\n },\n);\n\nSliderWithInput.displayName = 'SliderWithInput';\n\nexport default SliderWithInput;\n"],"mappings":";;;;;;;;AAWA,MAAM,kBAAkB,MACrB,EACC,MACA,OACA,UACA,KACA,KACA,cACA,MACA,UACA,MAAM,IACN,OACA,WACA,YACA,QACA,UACA,iBAAiB,OACjB,eACA,GAAG,WACC;CACJ,MAAM,kBAAkB,UAAyB;EAC/C,IAAI,OAAO,MAAM,KAAK,KAAK,OAAO,KAAK,GAAG;EAC1C,WAAW,KAAK;CAClB;CACA,MAAM,gBAAgB,MAAM,QAAQ,QAAQ,IAAI,SAAS,KAAK,OAAO,IAAI;CAEzE,MAAM,EAAE,QAAQ,iBAAiB,OAAO,gBAAgB,GAAG,mBAAmB,cAAc,CAAC;CAC7F,MAAM,EAAE,QAAQ,aAAa,OAAO,YAAY,GAAG,eAAe,UAAU,CAAC;CAE7E,OACE,qBAACA,mBAAD;EACE,OAAO;EACI;EACX,WAAW;EACN;EACE;YALT,CAOE,oBAAC,QAAD;GACE,WAAW;GACX,YAAY;GACE;GACJ;GACL;GACA;GACC;GACN,OAAO;IAAE,MAAM;IAAG,QAAQ,SAAS,UAAU,IAAI,KAAA;IAAW,GAAG;GAAY;GAC3E,QAAQ;GACR,SAAS,EAAE,MAAM,MAAM;GACvB,OAAO,OAAO,UAAU,WAAW,QAAQ;GAC3C,UAAU;GACV,GAAI;EACL,CAAA,GACD,oBAACC,eAAD;GACiB;GACf,WAAW;GACX,UAAU,SAAS,WAAW;GAChB;GACd,UAAU;GACV,KAAK,iBAAiB,KAAA,IAAY;GAC7B;GACC;GACN,MAAM,OAAO,MAAM,IAAI,KAAK,OAAO,IAAI,IAAI,KAAA,IAAY;GACvD,OAAO;IAAE,MAAM;IAAG,UAAU,SAAS,UAAU,KAAK;IAAI,GAAG;GAAW;GACtE,OAAO,OAAO,UAAU,WAAW,QAAQ;GAC3C,WAAW,MAAM,eAAe,OAAO,CAAC,CAAC;EAC1C,CAAA,CACM;;AAEb,CACF;AAEA,gBAAgB,cAAc"}
1
+ {"version":3,"file":"SliderWithInput.mjs","names":["Flexbox","InputNumber"],"sources":["../../src/SliderWithInput/SliderWithInput.tsx"],"sourcesContent":["'use client';\n\nimport { Slider } from 'antd';\nimport { isNull } from 'es-toolkit/compat';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport InputNumber from '@/Input/InputNumber';\n\nimport type { SliderWithInputProps } from './type';\n\nconst SliderWithInput = memo<SliderWithInputProps>(\n ({\n step,\n value,\n onChange,\n max,\n min,\n defaultValue,\n size,\n controls,\n gap = 16,\n style,\n className,\n classNames,\n styles,\n disabled,\n unlimitedInput = false,\n changeOnWheel,\n ...rest\n }) => {\n const handleOnchange = (value: number | null) => {\n if (Number.isNaN(value) || isNull(value)) return;\n onChange?.(value);\n };\n const inputDisabled = Array.isArray(disabled) ? disabled.some(Boolean) : disabled;\n\n const { slider: sliderClassName, input: inputClassName, ...restClassNames } = classNames || {};\n const { slider: sliderStyle, input: inputStyle, ...restStyles } = styles || {};\n\n return (\n <Flexbox\n align={'center'}\n className={className}\n direction={'horizontal'}\n gap={gap}\n style={style}\n >\n <Slider\n className={sliderClassName}\n classNames={restClassNames}\n defaultValue={defaultValue}\n disabled={disabled}\n max={max}\n min={min}\n step={step}\n style={{ flex: 1, margin: size === 'small' ? 0 : undefined, ...sliderStyle }}\n styles={restStyles}\n tooltip={{ open: false }}\n value={typeof value === 'number' ? value : 0}\n onChange={handleOnchange}\n {...rest}\n />\n <InputNumber\n changeOnWheel={changeOnWheel}\n className={inputClassName}\n controls={size !== 'small' || controls}\n defaultValue={defaultValue}\n disabled={inputDisabled}\n max={unlimitedInput ? undefined : max}\n min={min}\n size={size}\n step={Number.isNaN(step) || isNull(step) ? undefined : step}\n style={{ flex: 1, maxWidth: size === 'small' ? 40 : 64, ...inputStyle }}\n value={typeof value === 'number' ? value : 0}\n onChange={(v) => handleOnchange(Number(v))}\n />\n </Flexbox>\n );\n },\n);\n\nSliderWithInput.displayName = 'SliderWithInput';\n\nexport default SliderWithInput;\n"],"mappings":";;;;;;;;AAWA,MAAM,kBAAkB,MACrB,EACC,MACA,OACA,UACA,KACA,KACA,cACA,MACA,UACA,MAAM,IACN,OACA,WACA,YACA,QACA,UACA,iBAAiB,OACjB,eACA,GAAG,WACC;CACJ,MAAM,kBAAkB,UAAyB;EAC/C,IAAI,OAAO,MAAM,KAAK,KAAK,OAAO,KAAK,GAAG;EAC1C,WAAW,KAAK;CAClB;CACA,MAAM,gBAAgB,MAAM,QAAQ,QAAQ,IAAI,SAAS,KAAK,OAAO,IAAI;CAEzE,MAAM,EAAE,QAAQ,iBAAiB,OAAO,gBAAgB,GAAG,mBAAmB,cAAc,CAAC;CAC7F,MAAM,EAAE,QAAQ,aAAa,OAAO,YAAY,GAAG,eAAe,UAAU,CAAC;CAE7E,OACE,qBAACA,mBAAD;EACE,OAAO;EACI;EACX,WAAW;EACN;EACE;EALT,UAAA,CAOE,oBAAC,QAAD;GACE,WAAW;GACX,YAAY;GACE;GACJ;GACL;GACA;GACC;GACN,OAAO;IAAE,MAAM;IAAG,QAAQ,SAAS,UAAU,IAAI,KAAA;IAAW,GAAG;GAAY;GAC3E,QAAQ;GACR,SAAS,EAAE,MAAM,MAAM;GACvB,OAAO,OAAO,UAAU,WAAW,QAAQ;GAC3C,UAAU;GACV,GAAI;EACL,CAAA,GACD,oBAACC,eAAD;GACiB;GACf,WAAW;GACX,UAAU,SAAS,WAAW;GAChB;GACd,UAAU;GACV,KAAK,iBAAiB,KAAA,IAAY;GAC7B;GACC;GACN,MAAM,OAAO,MAAM,IAAI,KAAK,OAAO,IAAI,IAAI,KAAA,IAAY;GACvD,OAAO;IAAE,MAAM;IAAG,UAAU,SAAS,UAAU,KAAK;IAAI,GAAG;GAAW;GACtE,OAAO,OAAO,UAAU,WAAW,QAAQ;GAC3C,WAAW,MAAM,eAAe,OAAO,CAAC,CAAC;EAC1C,CAAA,CACM;;AAEb,CACF;AAEA,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Snippet.mjs","names":["Flexbox"],"sources":["../../src/Snippet/Snippet.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { FC } from 'react';\n\nimport Spotlight from '@/awesome/Spotlight';\nimport CopyButton from '@/CopyButton';\nimport { Flexbox } from '@/Flex';\nimport SyntaxHighlighter from '@/Highlighter/SyntaxHighlighter';\n\nimport { styles, variants } from './style';\nimport { type SnippetProps } from './type';\n\nconst Snippet: FC<SnippetProps> = ({\n ref,\n prefix,\n language = 'tsx',\n children,\n copyable = true,\n variant = 'filled',\n spotlight,\n shadow,\n className,\n ...rest\n}) => {\n const tirmedChildren = children.trim();\n\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(variants({ shadow, variant }), className)}\n data-code-type=\"highlighter\"\n gap={8}\n ref={ref}\n {...rest}\n >\n {spotlight && <Spotlight />}\n <SyntaxHighlighter className={styles.hightlight} language={language}>\n {[prefix, tirmedChildren].filter(Boolean).join(' ')}\n </SyntaxHighlighter>\n {copyable && <CopyButton content={tirmedChildren} size={'small'} />}\n </Flexbox>\n );\n};\n\nSnippet.displayName = 'Snippet';\n\nexport default Snippet;\n"],"mappings":";;;;;;;;;AAaA,MAAM,WAA6B,EACjC,KACA,QACA,WAAW,OACX,UACA,WAAW,MACX,UAAU,UACV,WACA,QACA,WACA,GAAG,WACC;CACJ,MAAM,iBAAiB,SAAS,KAAK;CAErC,OACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,SAAS;GAAE;GAAQ;EAAQ,CAAC,GAAG,SAAS;EACtD,kBAAe;EACf,KAAK;EACA;EACL,GAAI;YAPN;GASG,aAAa,oBAAC,WAAD,CAAY,CAAA;GAC1B,oBAAC,mBAAD;IAAmB,WAAW,OAAO;IAAsB;cACxD,CAAC,QAAQ,cAAc,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GACjC,CAAA;GAClB,YAAY,oBAAC,YAAD;IAAY,SAAS;IAAgB,MAAM;GAAU,CAAA;EAC3D;;AAEb;AAEA,QAAQ,cAAc"}
1
+ {"version":3,"file":"Snippet.mjs","names":["Flexbox"],"sources":["../../src/Snippet/Snippet.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { FC } from 'react';\n\nimport Spotlight from '@/awesome/Spotlight';\nimport CopyButton from '@/CopyButton';\nimport { Flexbox } from '@/Flex';\nimport SyntaxHighlighter from '@/Highlighter/SyntaxHighlighter';\n\nimport { styles, variants } from './style';\nimport { type SnippetProps } from './type';\n\nconst Snippet: FC<SnippetProps> = ({\n ref,\n prefix,\n language = 'tsx',\n children,\n copyable = true,\n variant = 'filled',\n spotlight,\n shadow,\n className,\n ...rest\n}) => {\n const tirmedChildren = children.trim();\n\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(variants({ shadow, variant }), className)}\n data-code-type=\"highlighter\"\n gap={8}\n ref={ref}\n {...rest}\n >\n {spotlight && <Spotlight />}\n <SyntaxHighlighter className={styles.hightlight} language={language}>\n {[prefix, tirmedChildren].filter(Boolean).join(' ')}\n </SyntaxHighlighter>\n {copyable && <CopyButton content={tirmedChildren} size={'small'} />}\n </Flexbox>\n );\n};\n\nSnippet.displayName = 'Snippet';\n\nexport default Snippet;\n"],"mappings":";;;;;;;;;AAaA,MAAM,WAA6B,EACjC,KACA,QACA,WAAW,OACX,UACA,WAAW,MACX,UAAU,UACV,WACA,QACA,WACA,GAAG,WACC;CACJ,MAAM,iBAAiB,SAAS,KAAK;CAErC,OACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,SAAS;GAAE;GAAQ;EAAQ,CAAC,GAAG,SAAS;EACtD,kBAAe;EACf,KAAK;EACA;EACL,GAAI;EAPN,UAAA;GASG,aAAa,oBAAC,WAAD,CAAY,CAAA;GAC1B,oBAAC,mBAAD;IAAmB,WAAW,OAAO;IAAsB;IACxD,UAAA,CAAC,QAAQ,cAAc,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GACjC,CAAA;GAClB,YAAY,oBAAC,YAAD;IAAY,SAAS;IAAgB,MAAM;GAAU,CAAA;EAC3D;;AAEb;AAEA,QAAQ,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortableList.mjs","names":["Flexbox"],"sources":["../../src/SortableList/SortableList.tsx"],"sourcesContent":["'use client';\n\nimport {\n type Active,\n closestCenter,\n DndContext,\n KeyboardSensor,\n MeasuringStrategy,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis, restrictToWindowEdges } from '@dnd-kit/modifiers';\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { Fragment, memo, type ReactNode, useMemo, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport DragHandle from './components/DragHandle';\nimport SortableItem from './components/SortableItem';\nimport SortableOverlay from './components/SortableOverlay';\nimport { styles } from './style';\nimport { type SortableListItem, type SortableListProps } from './type';\n\nconst measuringConfig = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nconst SortableListParent = memo<SortableListProps>(\n ({ ref, items, onChange, renderItem, renderOverlay, gap = 8, ...rest }) => {\n const [active, setActive] = useState<Active | null>(null);\n const activeItem = useMemo(() => items.find((item) => item.id === active?.id), [active, items]);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const overlayRenderer = renderOverlay ?? renderItem;\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n measuring={measuringConfig}\n modifiers={[restrictToVerticalAxis, restrictToWindowEdges]}\n sensors={sensors}\n onDragCancel={() => {\n setActive(null);\n }}\n onDragEnd={({ active, over }) => {\n if (over && active.id !== over?.id) {\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const overIndex = items.findIndex(({ id }) => id === over.id);\n\n onChange(arrayMove(items, activeIndex, overIndex));\n }\n setActive(null);\n }}\n onDragStart={({ active }) => {\n setActive(active);\n }}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n <Flexbox as={'ul'} className={styles.container} gap={gap} ref={ref} {...rest}>\n {items.map((item) => (\n <Fragment key={item.id}>{renderItem(item)}</Fragment>\n ))}\n </Flexbox>\n </SortableContext>\n <SortableOverlay>{activeItem ? overlayRenderer(activeItem) : null}</SortableOverlay>\n </DndContext>\n );\n },\n);\n\nSortableListParent.displayName = 'SortableList';\n\nexport interface ISortableList {\n <T extends SortableListItem = SortableListItem>(props: SortableListProps<T>): ReactNode;\n DragHandle: typeof DragHandle;\n Item: typeof SortableItem;\n}\n\nconst SortableList = SortableListParent as unknown as ISortableList;\n\nSortableList.Item = SortableItem;\nSortableList.DragHandle = DragHandle;\n\nexport default SortableList;\n"],"mappings":";;;;;;;;;;;;AA6BA,MAAM,kBAAkB,EACtB,WAAW,EACT,UAAU,kBAAkB,OAC9B,EACF;AAEA,MAAM,qBAAqB,MACxB,EAAE,KAAK,OAAO,UAAU,YAAY,eAAe,MAAM,GAAG,GAAG,WAAW;CACzE,MAAM,CAAC,QAAQ,aAAa,SAAwB,IAAI;CACxD,MAAM,aAAa,cAAc,MAAM,MAAM,SAAS,KAAK,OAAO,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;CAC9F,MAAM,UAAU,WACd,UAAU,aAAa,GACvB,UAAU,gBAAgB,EACxB,kBAAkB,4BACpB,CAAC,CACH;CAEA,MAAM,kBAAkB,iBAAiB;CAEzC,OACE,qBAAC,YAAD;EACE,oBAAoB;EACpB,WAAW;EACX,WAAW,CAAC,wBAAwB,qBAAqB;EAChD;EACT,oBAAoB;GAClB,UAAU,IAAI;EAChB;EACA,YAAY,EAAE,QAAQ,WAAW;GAC/B,IAAI,QAAQ,OAAO,OAAO,MAAM,IAI9B,SAAS,UAAU,OAHC,MAAM,WAAW,EAAE,SAAS,OAAO,OAAO,EAG1B,GAFlB,MAAM,WAAW,EAAE,SAAS,OAAO,KAAK,EAEX,CAAC,CAAC;GAEnD,UAAU,IAAI;EAChB;EACA,cAAc,EAAE,aAAa;GAC3B,UAAU,MAAM;EAClB;YAnBF,CAqBE,oBAAC,iBAAD;GAAwB;GAAO,UAAU;aACvC,oBAACA,mBAAD;IAAS,IAAI;IAAM,WAAW,OAAO;IAAgB;IAAU;IAAK,GAAI;cACrE,MAAM,KAAK,SACV,oBAAC,UAAD,EAAA,UAAyB,WAAW,IAAI,EAAY,GAArC,KAAK,EAAgC,CACrD;GACM,CAAA;EACM,CAAA,GACjB,oBAAC,iBAAD,EAAA,UAAkB,aAAa,gBAAgB,UAAU,IAAI,KAAsB,CAAA,CACzE;;AAEhB,CACF;AAEA,mBAAmB,cAAc;AAQjC,MAAM,eAAe;AAErB,aAAa,OAAO;AACpB,aAAa,aAAa"}
1
+ {"version":3,"file":"SortableList.mjs","names":["Flexbox"],"sources":["../../src/SortableList/SortableList.tsx"],"sourcesContent":["'use client';\n\nimport {\n type Active,\n closestCenter,\n DndContext,\n KeyboardSensor,\n MeasuringStrategy,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis, restrictToWindowEdges } from '@dnd-kit/modifiers';\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { Fragment, memo, type ReactNode, useMemo, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport DragHandle from './components/DragHandle';\nimport SortableItem from './components/SortableItem';\nimport SortableOverlay from './components/SortableOverlay';\nimport { styles } from './style';\nimport { type SortableListItem, type SortableListProps } from './type';\n\nconst measuringConfig = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nconst SortableListParent = memo<SortableListProps>(\n ({ ref, items, onChange, renderItem, renderOverlay, gap = 8, ...rest }) => {\n const [active, setActive] = useState<Active | null>(null);\n const activeItem = useMemo(() => items.find((item) => item.id === active?.id), [active, items]);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const overlayRenderer = renderOverlay ?? renderItem;\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n measuring={measuringConfig}\n modifiers={[restrictToVerticalAxis, restrictToWindowEdges]}\n sensors={sensors}\n onDragCancel={() => {\n setActive(null);\n }}\n onDragEnd={({ active, over }) => {\n if (over && active.id !== over?.id) {\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const overIndex = items.findIndex(({ id }) => id === over.id);\n\n onChange(arrayMove(items, activeIndex, overIndex));\n }\n setActive(null);\n }}\n onDragStart={({ active }) => {\n setActive(active);\n }}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n <Flexbox as={'ul'} className={styles.container} gap={gap} ref={ref} {...rest}>\n {items.map((item) => (\n <Fragment key={item.id}>{renderItem(item)}</Fragment>\n ))}\n </Flexbox>\n </SortableContext>\n <SortableOverlay>{activeItem ? overlayRenderer(activeItem) : null}</SortableOverlay>\n </DndContext>\n );\n },\n);\n\nSortableListParent.displayName = 'SortableList';\n\nexport interface ISortableList {\n <T extends SortableListItem = SortableListItem>(props: SortableListProps<T>): ReactNode;\n DragHandle: typeof DragHandle;\n Item: typeof SortableItem;\n}\n\nconst SortableList = SortableListParent as unknown as ISortableList;\n\nSortableList.Item = SortableItem;\nSortableList.DragHandle = DragHandle;\n\nexport default SortableList;\n"],"mappings":";;;;;;;;;;;;AA6BA,MAAM,kBAAkB,EACtB,WAAW,EACT,UAAU,kBAAkB,OAC9B,EACF;AAEA,MAAM,qBAAqB,MACxB,EAAE,KAAK,OAAO,UAAU,YAAY,eAAe,MAAM,GAAG,GAAG,WAAW;CACzE,MAAM,CAAC,QAAQ,aAAa,SAAwB,IAAI;CACxD,MAAM,aAAa,cAAc,MAAM,MAAM,SAAS,KAAK,OAAO,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;CAC9F,MAAM,UAAU,WACd,UAAU,aAAa,GACvB,UAAU,gBAAgB,EACxB,kBAAkB,4BACpB,CAAC,CACH;CAEA,MAAM,kBAAkB,iBAAiB;CAEzC,OACE,qBAAC,YAAD;EACE,oBAAoB;EACpB,WAAW;EACX,WAAW,CAAC,wBAAwB,qBAAqB;EAChD;EACT,oBAAoB;GAClB,UAAU,IAAI;EAChB;EACA,YAAY,EAAE,QAAQ,WAAW;GAC/B,IAAI,QAAQ,OAAO,OAAO,MAAM,IAI9B,SAAS,UAAU,OAHC,MAAM,WAAW,EAAE,SAAS,OAAO,OAAO,EAG1B,GAFlB,MAAM,WAAW,EAAE,SAAS,OAAO,KAAK,EAEX,CAAC,CAAC;GAEnD,UAAU,IAAI;EAChB;EACA,cAAc,EAAE,aAAa;GAC3B,UAAU,MAAM;EAClB;EAnBF,UAAA,CAqBE,oBAAC,iBAAD;GAAwB;GAAO,UAAU;GACvC,UAAA,oBAACA,mBAAD;IAAS,IAAI;IAAM,WAAW,OAAO;IAAgB;IAAU;IAAK,GAAI;IACrE,UAAA,MAAM,KAAK,SACV,oBAAC,UAAD,EAAA,UAAyB,WAAW,IAAI,EAAY,GAArC,KAAK,EAAgC,CACrD;GACM,CAAA;EACM,CAAA,GACjB,oBAAC,iBAAD,EAAA,UAAkB,aAAa,gBAAgB,UAAU,IAAI,KAAsB,CAAA,CACzE;;AAEhB,CACF;AAEA,mBAAmB,cAAc;AAQjC,MAAM,eAAe;AAErB,aAAa,OAAO;AACpB,aAAa,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortableItem.mjs","names":["Flexbox"],"sources":["../../../src/SortableList/components/SortableItem.tsx"],"sourcesContent":["'use client';\n\nimport type { DraggableSyntheticListeners } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { cx } from 'antd-style';\nimport { createContext, memo, useMemo } from 'react';\n\nimport { type FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\n\nimport { variants } from '../style';\n\ninterface Context {\n attributes: Record<string, any>;\n listeners: DraggableSyntheticListeners;\n ref: (node: HTMLElement | null) => void;\n}\n\nexport const SortableItemContext = createContext<Context>({\n attributes: {},\n listeners: undefined,\n ref() {},\n});\n\nexport interface SortableItemProps extends Omit<FlexboxProps, 'id'> {\n id: string | number;\n variant?: 'borderless' | 'filled' | 'outlined';\n}\n\nconst SortableItem = memo<SortableItemProps>(\n ({ variant = 'borderless', className, children, id, style, ...rest }) => {\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n const context = useMemo(\n () => ({\n attributes,\n listeners,\n ref: setActivatorNodeRef,\n }),\n [attributes, listeners, setActivatorNodeRef],\n );\n\n return (\n <SortableItemContext value={context}>\n <Flexbox\n horizontal\n align={'center'}\n as={'li'}\n className={cx(variants({ variant }), className)}\n gap={4}\n ref={setNodeRef}\n style={{\n opacity: isDragging ? 0.4 : undefined,\n transform: CSS.Translate.toString(transform),\n transition,\n ...style,\n }}\n {...rest}\n >\n {children}\n </Flexbox>\n </SortableItemContext>\n );\n },\n);\n\nSortableItem.displayName = 'SortableItem';\n\nexport default SortableItem;\n"],"mappings":";;;;;;;;;AAmBA,MAAa,sBAAsB,cAAuB;CACxD,YAAY,CAAC;CACb,WAAW,KAAA;CACX,MAAM,CAAC;AACT,CAAC;AAOD,MAAM,eAAe,MAClB,EAAE,UAAU,cAAc,WAAW,UAAU,IAAI,OAAO,GAAG,WAAW;CACvE,MAAM,EACJ,YACA,YACA,WACA,YACA,qBACA,WACA,eACE,YAAY,EAAE,GAAG,CAAC;CACtB,MAAM,UAAU,eACP;EACL;EACA;EACA,KAAK;CACP,IACA;EAAC;EAAY;EAAW;CAAmB,CAC7C;CAEA,OACE,oBAAC,qBAAD;EAAqB,OAAO;YAC1B,oBAACA,mBAAD;GACE,YAAA;GACA,OAAO;GACP,IAAI;GACJ,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;GAC9C,KAAK;GACL,KAAK;GACL,OAAO;IACL,SAAS,aAAa,KAAM,KAAA;IAC5B,WAAW,IAAI,UAAU,SAAS,SAAS;IAC3C;IACA,GAAG;GACL;GACA,GAAI;GAEH;EACM,CAAA;CACU,CAAA;AAEzB,CACF;AAEA,aAAa,cAAc"}
1
+ {"version":3,"file":"SortableItem.mjs","names":["Flexbox"],"sources":["../../../src/SortableList/components/SortableItem.tsx"],"sourcesContent":["'use client';\n\nimport type { DraggableSyntheticListeners } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { cx } from 'antd-style';\nimport { createContext, memo, useMemo } from 'react';\n\nimport { type FlexboxProps } from '@/Flex';\nimport { Flexbox } from '@/Flex';\n\nimport { variants } from '../style';\n\ninterface Context {\n attributes: Record<string, any>;\n listeners: DraggableSyntheticListeners;\n ref: (node: HTMLElement | null) => void;\n}\n\nexport const SortableItemContext = createContext<Context>({\n attributes: {},\n listeners: undefined,\n ref() {},\n});\n\nexport interface SortableItemProps extends Omit<FlexboxProps, 'id'> {\n id: string | number;\n variant?: 'borderless' | 'filled' | 'outlined';\n}\n\nconst SortableItem = memo<SortableItemProps>(\n ({ variant = 'borderless', className, children, id, style, ...rest }) => {\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n const context = useMemo(\n () => ({\n attributes,\n listeners,\n ref: setActivatorNodeRef,\n }),\n [attributes, listeners, setActivatorNodeRef],\n );\n\n return (\n <SortableItemContext value={context}>\n <Flexbox\n horizontal\n align={'center'}\n as={'li'}\n className={cx(variants({ variant }), className)}\n gap={4}\n ref={setNodeRef}\n style={{\n opacity: isDragging ? 0.4 : undefined,\n transform: CSS.Translate.toString(transform),\n transition,\n ...style,\n }}\n {...rest}\n >\n {children}\n </Flexbox>\n </SortableItemContext>\n );\n },\n);\n\nSortableItem.displayName = 'SortableItem';\n\nexport default SortableItem;\n"],"mappings":";;;;;;;;;AAmBA,MAAa,sBAAsB,cAAuB;CACxD,YAAY,CAAC;CACb,WAAW,KAAA;CACX,MAAM,CAAC;AACT,CAAC;AAOD,MAAM,eAAe,MAClB,EAAE,UAAU,cAAc,WAAW,UAAU,IAAI,OAAO,GAAG,WAAW;CACvE,MAAM,EACJ,YACA,YACA,WACA,YACA,qBACA,WACA,eACE,YAAY,EAAE,GAAG,CAAC;CACtB,MAAM,UAAU,eACP;EACL;EACA;EACA,KAAK;CACP,IACA;EAAC;EAAY;EAAW;CAAmB,CAC7C;CAEA,OACE,oBAAC,qBAAD;EAAqB,OAAO;EAC1B,UAAA,oBAACA,mBAAD;GACE,YAAA;GACA,OAAO;GACP,IAAI;GACJ,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,SAAS;GAC9C,KAAK;GACL,KAAK;GACL,OAAO;IACL,SAAS,aAAa,KAAM,KAAA;IAC5B,WAAW,IAAI,UAAU,SAAS,SAAS;IAC3C;IACA,GAAG;GACL;GACA,GAAI;GAEH;EACM,CAAA;CACU,CAAA;AAEzB,CACF;AAEA,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Text.mjs","names":[],"sources":["../../src/Text/Text.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type FC, useRef } from 'react';\n\nimport { useTextOverflow } from '@/hooks/useTextOverflow';\nimport Tooltip from '@/Tooltip';\n\nimport { variants } from './styles';\nimport { type TextProps } from './type';\n\nconst Text: FC<TextProps> = ({\n as: Container = 'div',\n align,\n className,\n children,\n style,\n type,\n disabled,\n strong,\n italic,\n underline,\n delete: deleteStyle,\n fontSize,\n lineClamp,\n lineHeight,\n mark,\n code,\n color,\n weight,\n ellipsis,\n noWrap,\n textDecoration,\n textTransform,\n whiteSpace,\n wordBreak,\n ...rest\n}) => {\n const textRef = useRef<HTMLElement>(null);\n const isOverflow = useTextOverflow(textRef, ellipsis, children);\n\n const isMultiEllipsis = typeof ellipsis === 'object' && !!ellipsis.rows && ellipsis.rows > 1;\n const tooltipWhenOverflow = typeof ellipsis === 'object' && ellipsis.tooltipWhenOverflow;\n\n const textStyle = {\n ...(color && { color }),\n ...(weight && { fontWeight: weight }),\n ...(lineHeight && { lineHeight }),\n ...(textTransform && { textTransform }),\n ...(textDecoration && { textDecoration }),\n ...(wordBreak && { wordBreak }),\n ...(typeof ellipsis === 'object' &&\n ellipsis.rows && {\n WebkitLineClamp: ellipsis.rows,\n }),\n ...(!ellipsis &&\n !!lineClamp && {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lineClamp,\n display: '-webkit-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n ...(fontSize && { fontSize }),\n ...(align && { textAlign: align }),\n ...(!isMultiEllipsis && noWrap && { whiteSpace: 'nowrap' as const }),\n ...(whiteSpace && { whiteSpace }),\n ...style,\n };\n\n const content = (\n <Container\n ref={textRef}\n style={textStyle}\n className={cx(\n variants({\n as: ['h1', 'h2', 'h3', 'h4', 'h5', 'p'].includes(Container as string)\n ? (Container as any)\n : undefined,\n code,\n delete: deleteStyle,\n disabled,\n ellipsis: ellipsis\n ? typeof ellipsis === 'object' && ellipsis.rows\n ? 'multi'\n : true\n : undefined,\n italic,\n mark,\n strong,\n type,\n underline,\n }),\n className,\n )}\n {...rest}\n >\n {children}\n </Container>\n );\n\n // 处理带有 tooltip 的省略\n if (\n ellipsis &&\n typeof ellipsis === 'object' &&\n (ellipsis.tooltip || ellipsis.tooltipWhenOverflow)\n ) {\n // 如果设置了 tooltipWhenOverflow,只在溢出时显示 tooltip\n if (tooltipWhenOverflow && !isOverflow) {\n return content;\n }\n\n const title = typeof ellipsis.tooltip === 'string' ? ellipsis.tooltip : children;\n if (ellipsis.tooltip && typeof ellipsis.tooltip === 'object')\n return (\n <Tooltip {...ellipsis.tooltip} title={ellipsis.tooltip?.title || title}>\n {content}\n </Tooltip>\n );\n return <Tooltip title={title}>{content}</Tooltip>;\n }\n\n return content;\n};\n\nText.displayName = 'Text';\n\nexport default Text;\n"],"mappings":";;;;;;;;AAWA,MAAM,QAAuB,EAC3B,IAAI,YAAY,OAChB,OACA,WACA,UACA,OACA,MACA,UACA,QACA,QACA,WACA,QAAQ,aACR,UACA,WACA,YACA,MACA,MACA,OACA,QACA,UACA,QACA,gBACA,eACA,YACA,WACA,GAAG,WACC;CACJ,MAAM,UAAU,OAAoB,IAAI;CACxC,MAAM,aAAa,gBAAgB,SAAS,UAAU,QAAQ;CAE9D,MAAM,kBAAkB,OAAO,aAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,SAAS,OAAO;CAC3F,MAAM,sBAAsB,OAAO,aAAa,YAAY,SAAS;CA4BrE,MAAM,UACJ,oBAAC,WAAD;EACE,KAAK;EACL,OAAO;GA5BT,GAAI,SAAS,EAAE,MAAM;GACrB,GAAI,UAAU,EAAE,YAAY,OAAO;GACnC,GAAI,cAAc,EAAE,WAAW;GAC/B,GAAI,iBAAiB,EAAE,cAAc;GACrC,GAAI,kBAAkB,EAAE,eAAe;GACvC,GAAI,aAAa,EAAE,UAAU;GAC7B,GAAI,OAAO,aAAa,YACtB,SAAS,QAAQ,EACf,iBAAiB,SAAS,KAC5B;GACF,GAAI,CAAC,YACH,CAAC,CAAC,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,cAAc;GAChB;GACF,GAAI,YAAY,EAAE,SAAS;GAC3B,GAAI,SAAS,EAAE,WAAW,MAAM;GAChC,GAAI,CAAC,mBAAmB,UAAU,EAAE,YAAY,SAAkB;GAClE,GAAI,cAAc,EAAE,WAAW;GAC/B,GAAG;EAMc;EACf,WAAW,GACT,SAAS;GACP,IAAI;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;GAAG,CAAC,CAAC,SAAS,SAAmB,IAC/D,YACD,KAAA;GACJ;GACA,QAAQ;GACR;GACA,UAAU,WACN,OAAO,aAAa,YAAY,SAAS,OACvC,UACA,OACF,KAAA;GACJ;GACA;GACA;GACA;GACA;EACF,CAAC,GACD,SACF;EACA,GAAI;EAEH;CACQ,CAAA;CAIb,IACE,YACA,OAAO,aAAa,aACnB,SAAS,WAAW,SAAS,sBAC9B;EAEA,IAAI,uBAAuB,CAAC,YAC1B,OAAO;EAGT,MAAM,QAAQ,OAAO,SAAS,YAAY,WAAW,SAAS,UAAU;EACxE,IAAI,SAAS,WAAW,OAAO,SAAS,YAAY,UAClD,OACE,oBAAC,SAAD;GAAS,GAAI,SAAS;GAAS,OAAO,SAAS,SAAS,SAAS;aAC9D;EACM,CAAA;EAEb,OAAO,oBAAC,SAAD;GAAgB;aAAQ;EAAiB,CAAA;CAClD;CAEA,OAAO;AACT;AAEA,KAAK,cAAc"}
1
+ {"version":3,"file":"Text.mjs","names":[],"sources":["../../src/Text/Text.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type FC, useRef } from 'react';\n\nimport { useTextOverflow } from '@/hooks/useTextOverflow';\nimport Tooltip from '@/Tooltip';\n\nimport { variants } from './styles';\nimport { type TextProps } from './type';\n\nconst Text: FC<TextProps> = ({\n as: Container = 'div',\n align,\n className,\n children,\n style,\n type,\n disabled,\n strong,\n italic,\n underline,\n delete: deleteStyle,\n fontSize,\n lineClamp,\n lineHeight,\n mark,\n code,\n color,\n weight,\n ellipsis,\n noWrap,\n textDecoration,\n textTransform,\n whiteSpace,\n wordBreak,\n ...rest\n}) => {\n const textRef = useRef<HTMLElement>(null);\n const isOverflow = useTextOverflow(textRef, ellipsis, children);\n\n const isMultiEllipsis = typeof ellipsis === 'object' && !!ellipsis.rows && ellipsis.rows > 1;\n const tooltipWhenOverflow = typeof ellipsis === 'object' && ellipsis.tooltipWhenOverflow;\n\n const textStyle = {\n ...(color && { color }),\n ...(weight && { fontWeight: weight }),\n ...(lineHeight && { lineHeight }),\n ...(textTransform && { textTransform }),\n ...(textDecoration && { textDecoration }),\n ...(wordBreak && { wordBreak }),\n ...(typeof ellipsis === 'object' &&\n ellipsis.rows && {\n WebkitLineClamp: ellipsis.rows,\n }),\n ...(!ellipsis &&\n !!lineClamp && {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lineClamp,\n display: '-webkit-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n ...(fontSize && { fontSize }),\n ...(align && { textAlign: align }),\n ...(!isMultiEllipsis && noWrap && { whiteSpace: 'nowrap' as const }),\n ...(whiteSpace && { whiteSpace }),\n ...style,\n };\n\n const content = (\n <Container\n ref={textRef}\n style={textStyle}\n className={cx(\n variants({\n as: ['h1', 'h2', 'h3', 'h4', 'h5', 'p'].includes(Container as string)\n ? (Container as any)\n : undefined,\n code,\n delete: deleteStyle,\n disabled,\n ellipsis: ellipsis\n ? typeof ellipsis === 'object' && ellipsis.rows\n ? 'multi'\n : true\n : undefined,\n italic,\n mark,\n strong,\n type,\n underline,\n }),\n className,\n )}\n {...rest}\n >\n {children}\n </Container>\n );\n\n // 处理带有 tooltip 的省略\n if (\n ellipsis &&\n typeof ellipsis === 'object' &&\n (ellipsis.tooltip || ellipsis.tooltipWhenOverflow)\n ) {\n // 如果设置了 tooltipWhenOverflow,只在溢出时显示 tooltip\n if (tooltipWhenOverflow && !isOverflow) {\n return content;\n }\n\n const title = typeof ellipsis.tooltip === 'string' ? ellipsis.tooltip : children;\n if (ellipsis.tooltip && typeof ellipsis.tooltip === 'object')\n return (\n <Tooltip {...ellipsis.tooltip} title={ellipsis.tooltip?.title || title}>\n {content}\n </Tooltip>\n );\n return <Tooltip title={title}>{content}</Tooltip>;\n }\n\n return content;\n};\n\nText.displayName = 'Text';\n\nexport default Text;\n"],"mappings":";;;;;;;;AAWA,MAAM,QAAuB,EAC3B,IAAI,YAAY,OAChB,OACA,WACA,UACA,OACA,MACA,UACA,QACA,QACA,WACA,QAAQ,aACR,UACA,WACA,YACA,MACA,MACA,OACA,QACA,UACA,QACA,gBACA,eACA,YACA,WACA,GAAG,WACC;CACJ,MAAM,UAAU,OAAoB,IAAI;CACxC,MAAM,aAAa,gBAAgB,SAAS,UAAU,QAAQ;CAE9D,MAAM,kBAAkB,OAAO,aAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,SAAS,OAAO;CAC3F,MAAM,sBAAsB,OAAO,aAAa,YAAY,SAAS;CA4BrE,MAAM,UACJ,oBAAC,WAAD;EACE,KAAK;EACL,OAAO;GA5BT,GAAI,SAAS,EAAE,MAAM;GACrB,GAAI,UAAU,EAAE,YAAY,OAAO;GACnC,GAAI,cAAc,EAAE,WAAW;GAC/B,GAAI,iBAAiB,EAAE,cAAc;GACrC,GAAI,kBAAkB,EAAE,eAAe;GACvC,GAAI,aAAa,EAAE,UAAU;GAC7B,GAAI,OAAO,aAAa,YACtB,SAAS,QAAQ,EACf,iBAAiB,SAAS,KAC5B;GACF,GAAI,CAAC,YACH,CAAC,CAAC,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,cAAc;GAChB;GACF,GAAI,YAAY,EAAE,SAAS;GAC3B,GAAI,SAAS,EAAE,WAAW,MAAM;GAChC,GAAI,CAAC,mBAAmB,UAAU,EAAE,YAAY,SAAkB;GAClE,GAAI,cAAc,EAAE,WAAW;GAC/B,GAAG;EAMc;EACf,WAAW,GACT,SAAS;GACP,IAAI;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;GAAG,CAAC,CAAC,SAAS,SAAmB,IAC/D,YACD,KAAA;GACJ;GACA,QAAQ;GACR;GACA,UAAU,WACN,OAAO,aAAa,YAAY,SAAS,OACvC,UACA,OACF,KAAA;GACJ;GACA;GACA;GACA;GACA;EACF,CAAC,GACD,SACF;EACA,GAAI;EAEH;CACQ,CAAA;CAIb,IACE,YACA,OAAO,aAAa,aACnB,SAAS,WAAW,SAAS,sBAC9B;EAEA,IAAI,uBAAuB,CAAC,YAC1B,OAAO;EAGT,MAAM,QAAQ,OAAO,SAAS,YAAY,WAAW,SAAS,UAAU;EACxE,IAAI,SAAS,WAAW,OAAO,SAAS,YAAY,UAClD,OACE,oBAAC,SAAD;GAAS,GAAI,SAAS;GAAS,OAAO,SAAS,SAAS,SAAS;GAC9D,UAAA;EACM,CAAA;EAEb,OAAO,oBAAC,SAAD;GAAgB;GAAQ,UAAA;EAAiB,CAAA;CAClD;CAEA,OAAO;AACT;AAEA,KAAK,cAAc"}
@@ -36,7 +36,7 @@ const ThemeProvider$1 = memo(({ appId = LOBE_THEME_APP_ID, children, customStyli
36
36
  genCdnUrl({
37
37
  path: "dist/katex.min.css",
38
38
  pkg: "katex",
39
- version: "0.17.0"
39
+ version: "0.18.1"
40
40
  })
41
41
  ], [customFonts, genCdnUrl]);
42
42
  const stylish = useCallback((theme) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.mjs","names":["ThemeProvider","lobeCustomStylish","lobeCustomToken","AntdThemeProvider","AntdConfigProvider"],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["'use client';\n\nimport { App } from 'antd';\nimport {\n type CustomStylishParams,\n type CustomTokenParams,\n type GetAntdTheme,\n ThemeProvider as AntdThemeProvider,\n} from 'antd-style';\nimport { merge } from 'es-toolkit/compat';\nimport { memo, useCallback, useMemo, useState } from 'react';\n\nimport { useCdnFn } from '@/ConfigProvider';\nimport FontLoader from '@/FontLoader';\nimport { lobeCustomStylish, lobeCustomToken } from '@/styles';\nimport { createLobeAntdTheme } from '@/styles/theme/antdTheme';\nimport { type LobeCustomToken } from '@/types/customToken';\n\nimport AppElementContext from './AppElementContext';\nimport AntdConfigProvider from './ConfigProvider';\nimport { LOBE_THEME_APP_ID } from './constants';\nimport GlobalStyle, { EssentialStyle } from './GlobalStyle';\nimport { type ThemeProviderProps } from './type';\n\nconst ThemeProvider = memo<ThemeProviderProps>(\n ({\n appId = LOBE_THEME_APP_ID,\n children,\n customStylish,\n customToken,\n enableCustomFonts = true,\n enableGlobalStyle = true,\n customFonts,\n customTheme = {},\n className,\n style,\n theme: antdTheme,\n ...rest\n }) => {\n const genCdnUrl = useCdnFn();\n const [appRef, setAppRef] = useState<HTMLDivElement | null>(null);\n\n const webfontUrls = useMemo(\n () =>\n customFonts || [\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-geist-mono',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'css/index-full.css',\n pkg: '@lobehub/webfont-geist',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans-sc',\n // pkg: '@lobehub/webfont-harmony-sans-sc-mini',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'dist/katex.min.css',\n pkg: 'katex',\n version: '0.17.0',\n }),\n ],\n [customFonts, genCdnUrl],\n );\n\n const stylish = useCallback(\n (theme: CustomStylishParams) => ({ ...lobeCustomStylish(theme), ...customStylish?.(theme) }),\n [customStylish],\n );\n\n const token = useCallback(\n (theme: CustomTokenParams) => ({ ...lobeCustomToken(theme), ...customToken?.(theme) }),\n [customToken],\n );\n\n const theme = useCallback<GetAntdTheme>(\n (appearance) => {\n const lobeTheme = createLobeAntdTheme({\n appearance,\n neutralColor: customTheme.neutralColor,\n primaryColor: customTheme.primaryColor,\n });\n return merge(lobeTheme, antdTheme);\n },\n [customTheme.primaryColor, customTheme.neutralColor, antdTheme],\n );\n\n return (\n <>\n {enableCustomFonts &&\n webfontUrls?.length > 0 &&\n webfontUrls.map((webfont) => <FontLoader key={webfont} url={webfont} />)}\n <AntdThemeProvider<LobeCustomToken>\n customStylish={stylish}\n customToken={token}\n theme={theme}\n {...rest}\n >\n <AntdConfigProvider>\n <EssentialStyle />\n {enableGlobalStyle && <GlobalStyle />}\n\n <App\n className={className}\n style={{ isolation: 'isolate', minHeight: 'inherit', width: 'inherit', ...style }}\n >\n <div id={appId} style={contentsStyle}>\n <AppElementContext value={appRef}>\n {children}\n {/*\n In-tree portal host for Base UI floating components\n (Select, Combobox, etc.). Keeping it inside `<App>` keeps\n the antd-style / emotion theme cascade intact so popups\n render with the correct tokens, while the layout-bearing\n block lets Base UI's Portal actually mount — the outer\n wrapper uses `display: contents` and cannot host portals.\n */}\n <div data-lobe-portal-host=\"\" ref={setAppRef} style={hostPortalHostStyle} />\n </AppElementContext>\n </div>\n </App>\n </AntdConfigProvider>\n </AntdThemeProvider>\n </>\n );\n },\n);\n\nThemeProvider.displayName = 'LobeThemeProvider';\n\nexport default ThemeProvider;\n\nconst hostPortalHostStyle: React.CSSProperties = {\n // `height: 0` keeps the host invisible and gives it no hit region of\n // its own; absolute children (Base UI Positioner) have their own hit\n // region, so we must NOT set `pointer-events: none` here — it would\n // be inherited by popup descendants and break clicks/hover.\n height: 0,\n left: 0,\n // `position: fixed` keeps a stacking context so portaled popups can\n // win over sibling z-indexes. `right: 0` (instead of `width: 0`)\n // gives the host a full viewport-width containing block — without it,\n // Base UI Positioner uses `position: absolute` against a 0-width\n // containing block and collapses text to one character per line.\n position: 'fixed',\n right: 0,\n top: 0,\n zIndex: 1100,\n};\n\nconst contentsStyle: React.CSSProperties = {\n display: 'contents',\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAMA,kBAAgB,MACnB,EACC,QAAQ,mBACR,UACA,eACA,aACA,oBAAoB,MACpB,oBAAoB,MACpB,aACA,cAAc,CAAC,GACf,WACA,OACA,OAAO,WACP,GAAG,WACC;CACJ,MAAM,YAAY,SAAS;CAC3B,MAAM,CAAC,QAAQ,aAAa,SAAgC,IAAI;CAEhE,MAAM,cAAc,cAEhB,eAAe;EACb,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GAEL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;CACH,GACF,CAAC,aAAa,SAAS,CACzB;CAEA,MAAM,UAAU,aACb,WAAgC;EAAE,GAAGC,sBAAkB,KAAK;EAAG,GAAG,gBAAgB,KAAK;CAAE,IAC1F,CAAC,aAAa,CAChB;CAEA,MAAM,QAAQ,aACX,WAA8B;EAAE,GAAGC,oBAAgB,KAAK;EAAG,GAAG,cAAc,KAAK;CAAE,IACpF,CAAC,WAAW,CACd;CAEA,MAAM,QAAQ,aACX,eAAe;EAMd,OAAO,MALW,oBAAoB;GACpC;GACA,cAAc,YAAY;GAC1B,cAAc,YAAY;EAC5B,CACqB,GAAG,SAAS;CACnC,GACA;EAAC,YAAY;EAAc,YAAY;EAAc;CAAS,CAChE;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,qBACC,aAAa,SAAS,KACtB,YAAY,KAAK,YAAY,oBAAC,YAAD,EAA0B,KAAK,QAAU,GAAxB,OAAwB,CAAC,GACzE,oBAACC,eAAD;EACE,eAAe;EACf,aAAa;EACN;EACP,GAAI;YAEJ,qBAACC,kBAAD,EAAA,UAAA;GACE,oBAAC,gBAAD,CAAiB,CAAA;GAChB,qBAAqB,oBAAC,aAAD,CAAc,CAAA;GAEpC,oBAAC,KAAD;IACa;IACX,OAAO;KAAE,WAAW;KAAW,WAAW;KAAW,OAAO;KAAW,GAAG;IAAM;cAEhF,oBAAC,OAAD;KAAK,IAAI;KAAO,OAAO;eACrB,qBAAC,mBAAD;MAAmB,OAAO;gBAA1B,CACG,UASD,oBAAC,OAAD;OAAK,yBAAsB;OAAG,KAAK;OAAW,OAAO;MAAsB,CAAA,CAC1D;;IAChB,CAAA;GACF,CAAA;EACa,EAAA,CAAA;CACH,CAAA,CACnB,EAAA,CAAA;AAEN,CACF;AAEA,gBAAc,cAAc;AAI5B,MAAM,sBAA2C;CAK/C,QAAQ;CACR,MAAM;CAMN,UAAU;CACV,OAAO;CACP,KAAK;CACL,QAAQ;AACV;AAEA,MAAM,gBAAqC,EACzC,SAAS,WACX"}
1
+ {"version":3,"file":"ThemeProvider.mjs","names":["ThemeProvider","lobeCustomStylish","lobeCustomToken","AntdThemeProvider","AntdConfigProvider"],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["'use client';\n\nimport { App } from 'antd';\nimport {\n type CustomStylishParams,\n type CustomTokenParams,\n type GetAntdTheme,\n ThemeProvider as AntdThemeProvider,\n} from 'antd-style';\nimport { merge } from 'es-toolkit/compat';\nimport { memo, useCallback, useMemo, useState } from 'react';\n\nimport { useCdnFn } from '@/ConfigProvider';\nimport FontLoader from '@/FontLoader';\nimport { lobeCustomStylish, lobeCustomToken } from '@/styles';\nimport { createLobeAntdTheme } from '@/styles/theme/antdTheme';\nimport { type LobeCustomToken } from '@/types/customToken';\n\nimport AppElementContext from './AppElementContext';\nimport AntdConfigProvider from './ConfigProvider';\nimport { LOBE_THEME_APP_ID } from './constants';\nimport GlobalStyle, { EssentialStyle } from './GlobalStyle';\nimport { type ThemeProviderProps } from './type';\n\nconst ThemeProvider = memo<ThemeProviderProps>(\n ({\n appId = LOBE_THEME_APP_ID,\n children,\n customStylish,\n customToken,\n enableCustomFonts = true,\n enableGlobalStyle = true,\n customFonts,\n customTheme = {},\n className,\n style,\n theme: antdTheme,\n ...rest\n }) => {\n const genCdnUrl = useCdnFn();\n const [appRef, setAppRef] = useState<HTMLDivElement | null>(null);\n\n const webfontUrls = useMemo(\n () =>\n customFonts || [\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-geist-mono',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'css/index-full.css',\n pkg: '@lobehub/webfont-geist',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'css/index.css',\n pkg: '@lobehub/webfont-harmony-sans-sc',\n // pkg: '@lobehub/webfont-harmony-sans-sc-mini',\n version: '1.0.0',\n }),\n genCdnUrl({\n path: 'dist/katex.min.css',\n pkg: 'katex',\n version: '0.18.1',\n }),\n ],\n [customFonts, genCdnUrl],\n );\n\n const stylish = useCallback(\n (theme: CustomStylishParams) => ({ ...lobeCustomStylish(theme), ...customStylish?.(theme) }),\n [customStylish],\n );\n\n const token = useCallback(\n (theme: CustomTokenParams) => ({ ...lobeCustomToken(theme), ...customToken?.(theme) }),\n [customToken],\n );\n\n const theme = useCallback<GetAntdTheme>(\n (appearance) => {\n const lobeTheme = createLobeAntdTheme({\n appearance,\n neutralColor: customTheme.neutralColor,\n primaryColor: customTheme.primaryColor,\n });\n return merge(lobeTheme, antdTheme);\n },\n [customTheme.primaryColor, customTheme.neutralColor, antdTheme],\n );\n\n return (\n <>\n {enableCustomFonts &&\n webfontUrls?.length > 0 &&\n webfontUrls.map((webfont) => <FontLoader key={webfont} url={webfont} />)}\n <AntdThemeProvider<LobeCustomToken>\n customStylish={stylish}\n customToken={token}\n theme={theme}\n {...rest}\n >\n <AntdConfigProvider>\n <EssentialStyle />\n {enableGlobalStyle && <GlobalStyle />}\n\n <App\n className={className}\n style={{ isolation: 'isolate', minHeight: 'inherit', width: 'inherit', ...style }}\n >\n <div id={appId} style={contentsStyle}>\n <AppElementContext value={appRef}>\n {children}\n {/*\n In-tree portal host for Base UI floating components\n (Select, Combobox, etc.). Keeping it inside `<App>` keeps\n the antd-style / emotion theme cascade intact so popups\n render with the correct tokens, while the layout-bearing\n block lets Base UI's Portal actually mount — the outer\n wrapper uses `display: contents` and cannot host portals.\n */}\n <div data-lobe-portal-host=\"\" ref={setAppRef} style={hostPortalHostStyle} />\n </AppElementContext>\n </div>\n </App>\n </AntdConfigProvider>\n </AntdThemeProvider>\n </>\n );\n },\n);\n\nThemeProvider.displayName = 'LobeThemeProvider';\n\nexport default ThemeProvider;\n\nconst hostPortalHostStyle: React.CSSProperties = {\n // `height: 0` keeps the host invisible and gives it no hit region of\n // its own; absolute children (Base UI Positioner) have their own hit\n // region, so we must NOT set `pointer-events: none` here — it would\n // be inherited by popup descendants and break clicks/hover.\n height: 0,\n left: 0,\n // `position: fixed` keeps a stacking context so portaled popups can\n // win over sibling z-indexes. `right: 0` (instead of `width: 0`)\n // gives the host a full viewport-width containing block — without it,\n // Base UI Positioner uses `position: absolute` against a 0-width\n // containing block and collapses text to one character per line.\n position: 'fixed',\n right: 0,\n top: 0,\n zIndex: 1100,\n};\n\nconst contentsStyle: React.CSSProperties = {\n display: 'contents',\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAMA,kBAAgB,MACnB,EACC,QAAQ,mBACR,UACA,eACA,aACA,oBAAoB,MACpB,oBAAoB,MACpB,aACA,cAAc,CAAC,GACf,WACA,OACA,OAAO,WACP,GAAG,WACC;CACJ,MAAM,YAAY,SAAS;CAC3B,MAAM,CAAC,QAAQ,aAAa,SAAgC,IAAI;CAEhE,MAAM,cAAc,cAEhB,eAAe;EACb,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GAEL,SAAS;EACX,CAAC;EACD,UAAU;GACR,MAAM;GACN,KAAK;GACL,SAAS;EACX,CAAC;CACH,GACF,CAAC,aAAa,SAAS,CACzB;CAEA,MAAM,UAAU,aACb,WAAgC;EAAE,GAAGC,sBAAkB,KAAK;EAAG,GAAG,gBAAgB,KAAK;CAAE,IAC1F,CAAC,aAAa,CAChB;CAEA,MAAM,QAAQ,aACX,WAA8B;EAAE,GAAGC,oBAAgB,KAAK;EAAG,GAAG,cAAc,KAAK;CAAE,IACpF,CAAC,WAAW,CACd;CAEA,MAAM,QAAQ,aACX,eAAe;EAMd,OAAO,MALW,oBAAoB;GACpC;GACA,cAAc,YAAY;GAC1B,cAAc,YAAY;EAC5B,CACqB,GAAG,SAAS;CACnC,GACA;EAAC,YAAY;EAAc,YAAY;EAAc;CAAS,CAChE;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,qBACC,aAAa,SAAS,KACtB,YAAY,KAAK,YAAY,oBAAC,YAAD,EAA0B,KAAK,QAAU,GAAxB,OAAwB,CAAC,GACzE,oBAACC,eAAD;EACE,eAAe;EACf,aAAa;EACN;EACP,GAAI;EAEJ,UAAA,qBAACC,kBAAD,EAAA,UAAA;GACE,oBAAC,gBAAD,CAAiB,CAAA;GAChB,qBAAqB,oBAAC,aAAD,CAAc,CAAA;GAEpC,oBAAC,KAAD;IACa;IACX,OAAO;KAAE,WAAW;KAAW,WAAW;KAAW,OAAO;KAAW,GAAG;IAAM;IAEhF,UAAA,oBAAC,OAAD;KAAK,IAAI;KAAO,OAAO;KACrB,UAAA,qBAAC,mBAAD;MAAmB,OAAO;MAA1B,UAAA,CACG,UASD,oBAAC,OAAD;OAAK,yBAAsB;OAAG,KAAK;OAAW,OAAO;MAAsB,CAAA,CAC1D;;IAChB,CAAA;GACF,CAAA;EACa,EAAA,CAAA;CACH,CAAA,CACnB,EAAA,CAAA;AAEN,CACF;AAEA,gBAAc,cAAc;AAI5B,MAAM,sBAA2C;CAK/C,QAAQ;CACR,MAAM;CAMN,UAAU;CACV,OAAO;CACP,KAAK;CACL,QAAQ;AACV;AAEA,MAAM,gBAAqC,EACzC,SAAS,WACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeSwitch.mjs","names":["Flexbox"],"sources":["../../src/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["'use client';\n\nimport { Select } from 'antd';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { type DropdownItem } from '@/DropdownMenu';\nimport DropdownMenu from '@/DropdownMenu';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { type ThemeSwitchProps } from './type';\n\nconst DEFAULT_ICON_SET = {\n auto: Monitor,\n dark: Moon,\n light: Sun,\n};\n\nconst ThemeSwitch: FC<ThemeSwitchProps> = ({\n size = 'middle',\n themeMode,\n onThemeSwitch,\n type = 'icon',\n labels = {\n auto: 'System',\n dark: 'Dark',\n light: 'Light',\n },\n className,\n variant,\n style,\n}) => {\n const items: DropdownItem[] = useMemo(\n () => [\n {\n icon: DEFAULT_ICON_SET.auto,\n key: 'auto',\n label: labels.auto,\n onClick: () => onThemeSwitch('auto'),\n },\n {\n icon: DEFAULT_ICON_SET.light,\n key: 'light',\n label: labels.light,\n onClick: () => onThemeSwitch('light'),\n },\n {\n icon: DEFAULT_ICON_SET.dark,\n key: 'dark',\n label: labels.dark,\n onClick: () => onThemeSwitch('dark'),\n },\n ],\n [labels, onThemeSwitch],\n );\n\n return type === 'select' ? (\n <Select\n className={className}\n defaultValue={themeMode}\n style={style}\n variant={variant}\n options={items.map((item: any) => ({\n label: (\n <Flexbox horizontal align={'center'} gap={8}>\n <Icon icon={item.icon} />\n {item.label}\n </Flexbox>\n ),\n value: item.key,\n }))}\n onChange={onThemeSwitch}\n />\n ) : (\n <DropdownMenu items={items} nativeButton={false}>\n <ActionIcon\n className={className}\n icon={DEFAULT_ICON_SET[themeMode]}\n size={size}\n style={style}\n variant={variant}\n />\n </DropdownMenu>\n );\n};\n\nThemeSwitch.displayName = 'ThemeSwitch';\n\nexport default ThemeSwitch;\n"],"mappings":";;;;;;;;;;AAcA,MAAM,mBAAmB;CACvB,MAAM;CACN,MAAM;CACN,OAAO;AACT;AAEA,MAAM,eAAqC,EACzC,OAAO,UACP,WACA,eACA,OAAO,QACP,SAAS;CACP,MAAM;CACN,MAAM;CACN,OAAO;AACT,GACA,WACA,SACA,YACI;CACJ,MAAM,QAAwB,cACtB;EACJ;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,MAAM;EACrC;EACA;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,OAAO;EACtC;EACA;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,MAAM;EACrC;CACF,GACA,CAAC,QAAQ,aAAa,CACxB;CAEA,OAAO,SAAS,WACd,oBAAC,QAAD;EACa;EACX,cAAc;EACP;EACE;EACT,SAAS,MAAM,KAAK,UAAe;GACjC,OACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;cAA1C,CACE,oBAAC,MAAD,EAAM,MAAM,KAAK,KAAO,CAAA,GACvB,KAAK,KACC;;GAEX,OAAO,KAAK;EACd,EAAE;EACF,UAAU;CACX,CAAA,IAED,oBAAC,cAAD;EAAqB;EAAO,cAAc;YACxC,oBAAC,YAAD;GACa;GACX,MAAM,iBAAiB;GACjB;GACC;GACE;EACV,CAAA;CACW,CAAA;AAElB;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"ThemeSwitch.mjs","names":["Flexbox"],"sources":["../../src/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["'use client';\n\nimport { Select } from 'antd';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { type DropdownItem } from '@/DropdownMenu';\nimport DropdownMenu from '@/DropdownMenu';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { type ThemeSwitchProps } from './type';\n\nconst DEFAULT_ICON_SET = {\n auto: Monitor,\n dark: Moon,\n light: Sun,\n};\n\nconst ThemeSwitch: FC<ThemeSwitchProps> = ({\n size = 'middle',\n themeMode,\n onThemeSwitch,\n type = 'icon',\n labels = {\n auto: 'System',\n dark: 'Dark',\n light: 'Light',\n },\n className,\n variant,\n style,\n}) => {\n const items: DropdownItem[] = useMemo(\n () => [\n {\n icon: DEFAULT_ICON_SET.auto,\n key: 'auto',\n label: labels.auto,\n onClick: () => onThemeSwitch('auto'),\n },\n {\n icon: DEFAULT_ICON_SET.light,\n key: 'light',\n label: labels.light,\n onClick: () => onThemeSwitch('light'),\n },\n {\n icon: DEFAULT_ICON_SET.dark,\n key: 'dark',\n label: labels.dark,\n onClick: () => onThemeSwitch('dark'),\n },\n ],\n [labels, onThemeSwitch],\n );\n\n return type === 'select' ? (\n <Select\n className={className}\n defaultValue={themeMode}\n style={style}\n variant={variant}\n options={items.map((item: any) => ({\n label: (\n <Flexbox horizontal align={'center'} gap={8}>\n <Icon icon={item.icon} />\n {item.label}\n </Flexbox>\n ),\n value: item.key,\n }))}\n onChange={onThemeSwitch}\n />\n ) : (\n <DropdownMenu items={items} nativeButton={false}>\n <ActionIcon\n className={className}\n icon={DEFAULT_ICON_SET[themeMode]}\n size={size}\n style={style}\n variant={variant}\n />\n </DropdownMenu>\n );\n};\n\nThemeSwitch.displayName = 'ThemeSwitch';\n\nexport default ThemeSwitch;\n"],"mappings":";;;;;;;;;;AAcA,MAAM,mBAAmB;CACvB,MAAM;CACN,MAAM;CACN,OAAO;AACT;AAEA,MAAM,eAAqC,EACzC,OAAO,UACP,WACA,eACA,OAAO,QACP,SAAS;CACP,MAAM;CACN,MAAM;CACN,OAAO;AACT,GACA,WACA,SACA,YACI;CACJ,MAAM,QAAwB,cACtB;EACJ;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,MAAM;EACrC;EACA;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,OAAO;EACtC;EACA;GACE,MAAM,iBAAiB;GACvB,KAAK;GACL,OAAO,OAAO;GACd,eAAe,cAAc,MAAM;EACrC;CACF,GACA,CAAC,QAAQ,aAAa,CACxB;CAEA,OAAO,SAAS,WACd,oBAAC,QAAD;EACa;EACX,cAAc;EACP;EACE;EACT,SAAS,MAAM,KAAK,UAAe;GACjC,OACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;IAA1C,UAAA,CACE,oBAAC,MAAD,EAAM,MAAM,KAAK,KAAO,CAAA,GACvB,KAAK,KACC;;GAEX,OAAO,KAAK;EACd,EAAE;EACF,UAAU;CACX,CAAA,IAED,oBAAC,cAAD;EAAqB;EAAO,cAAc;EACxC,UAAA,oBAAC,YAAD;GACa;GACX,MAAM,iBAAiB;GACjB;GACC;GACE;EACV,CAAA;CACW,CAAA;AAElB;AAEA,YAAY,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toc.mjs","names":[],"sources":["../../src/Toc/Toc.tsx"],"sourcesContent":["'use client';\n\nimport { Anchor } from 'antd';\nimport { cx } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport { styles } from './style';\nimport { default as TocMobile } from './TocMobile';\nimport { type TocProps } from './type';\nimport { mapItems } from './utils';\n\nconst Toc = memo<TocProps>(\n ({ activeKey, items, getContainer, isMobile, headerHeight = 64, tocWidth = 176 }) => {\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--toc-header-height': `${headerHeight}px`,\n '--toc-width': `${tocWidth}px`,\n }),\n [headerHeight, tocWidth],\n );\n\n if (isMobile)\n return (\n <TocMobile\n activeKey={activeKey}\n getContainer={getContainer}\n headerHeight={headerHeight}\n items={items}\n />\n );\n\n return (\n <section className={cx(styles.container, styles.anchor)} style={cssVariables}>\n <h4>Table of Contents</h4>\n <Anchor\n getContainer={getContainer}\n items={mapItems(items)}\n targetOffset={headerHeight + 12}\n />\n </section>\n );\n },\n);\n\nToc.displayName = 'Toc';\n\nexport default Toc;\n"],"mappings":";;;;;;;;;AAWA,MAAM,MAAM,MACT,EAAE,WAAW,OAAO,cAAc,UAAU,eAAe,IAAI,WAAW,UAAU;CAEnF,MAAM,eAAe,eACZ;EACL,uBAAuB,GAAG,aAAa;EACvC,eAAe,GAAG,SAAS;CAC7B,IACA,CAAC,cAAc,QAAQ,CACzB;CAEA,IAAI,UACF,OACE,oBAAC,WAAD;EACa;EACG;EACA;EACP;CACR,CAAA;CAGL,OACE,qBAAC,WAAD;EAAS,WAAW,GAAG,OAAO,WAAW,OAAO,MAAM;EAAG,OAAO;YAAhE,CACE,oBAAC,MAAD,EAAA,UAAI,oBAAqB,CAAA,GACzB,oBAAC,QAAD;GACgB;GACd,OAAO,SAAS,KAAK;GACrB,cAAc,eAAe;EAC9B,CAAA,CACM;;AAEb,CACF;AAEA,IAAI,cAAc"}
1
+ {"version":3,"file":"Toc.mjs","names":[],"sources":["../../src/Toc/Toc.tsx"],"sourcesContent":["'use client';\n\nimport { Anchor } from 'antd';\nimport { cx } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport { styles } from './style';\nimport { default as TocMobile } from './TocMobile';\nimport { type TocProps } from './type';\nimport { mapItems } from './utils';\n\nconst Toc = memo<TocProps>(\n ({ activeKey, items, getContainer, isMobile, headerHeight = 64, tocWidth = 176 }) => {\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--toc-header-height': `${headerHeight}px`,\n '--toc-width': `${tocWidth}px`,\n }),\n [headerHeight, tocWidth],\n );\n\n if (isMobile)\n return (\n <TocMobile\n activeKey={activeKey}\n getContainer={getContainer}\n headerHeight={headerHeight}\n items={items}\n />\n );\n\n return (\n <section className={cx(styles.container, styles.anchor)} style={cssVariables}>\n <h4>Table of Contents</h4>\n <Anchor\n getContainer={getContainer}\n items={mapItems(items)}\n targetOffset={headerHeight + 12}\n />\n </section>\n );\n },\n);\n\nToc.displayName = 'Toc';\n\nexport default Toc;\n"],"mappings":";;;;;;;;;AAWA,MAAM,MAAM,MACT,EAAE,WAAW,OAAO,cAAc,UAAU,eAAe,IAAI,WAAW,UAAU;CAEnF,MAAM,eAAe,eACZ;EACL,uBAAuB,GAAG,aAAa;EACvC,eAAe,GAAG,SAAS;CAC7B,IACA,CAAC,cAAc,QAAQ,CACzB;CAEA,IAAI,UACF,OACE,oBAAC,WAAD;EACa;EACG;EACA;EACP;CACR,CAAA;CAGL,OACE,qBAAC,WAAD;EAAS,WAAW,GAAG,OAAO,WAAW,OAAO,MAAM;EAAG,OAAO;EAAhE,UAAA,CACE,oBAAC,MAAD,EAAA,UAAI,oBAAqB,CAAA,GACzB,oBAAC,QAAD;GACgB;GACd,OAAO,SAAS,KAAK;GACrB,cAAc,eAAe;EAC9B,CAAA,CACM;;AAEb,CACF;AAEA,IAAI,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"TocMobile.mjs","names":["useControlledState"],"sources":["../../src/Toc/TocMobile.tsx"],"sourcesContent":["'use client';\n\nimport { Anchor, Collapse, ConfigProvider } from 'antd';\nimport { PanelTopClose, PanelTopOpen } from 'lucide-react';\nimport { memo, useMemo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/ActionIcon';\n\nimport { styles } from './style';\nimport type { TocMobileProps } from './type';\nimport { mapItems } from './utils';\n\nconst TocMobile = memo<TocMobileProps>(\n ({ items, activeKey, onChange, getContainer, headerHeight = 64, tocWidth = 176 }) => {\n // tocWidth is part of the interface but not used in this component\n void tocWidth;\n const [activeLink, setActiveLink] = useControlledState<string>('', {\n onChange,\n value: activeKey,\n });\n\n const activeAnchor = items.find((item) => item.id === activeLink);\n\n const tocItems = useMemo(() => mapItems(items), [items]);\n\n return (\n <ConfigProvider theme={{ token: { fontSize: 12, sizeStep: 3 } }}>\n <section className={styles.mobileCtn}>\n <Collapse\n ghost\n className={styles.expand}\n expandIconPlacement={'end'}\n expandIcon={({ isActive }) => (\n <ActionIcon icon={isActive ? PanelTopClose : PanelTopOpen} size={'small'} />\n )}\n >\n <Collapse.Panel\n forceRender\n header={activeAnchor ? activeAnchor.title : 'TOC'}\n key={'toc'}\n >\n <ConfigProvider theme={{ token: { fontSize: 14, sizeStep: 4 } }}>\n <Anchor\n getContainer={getContainer}\n items={tocItems}\n targetOffset={headerHeight + 48}\n onChange={(currentLink) => {\n setActiveLink(currentLink.replace('#', ''));\n }}\n />\n </ConfigProvider>\n </Collapse.Panel>\n </Collapse>\n </section>\n </ConfigProvider>\n );\n },\n);\n\nTocMobile.displayName = 'TocMobile';\n\nexport default TocMobile;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAY,MACf,EAAE,OAAO,WAAW,UAAU,cAAc,eAAe,IAAI,WAAW,UAAU;CAGnF,MAAM,CAAC,YAAY,iBAAiBA,cAA2B,IAAI;EACjE;EACA,OAAO;CACT,CAAC;CAED,MAAM,eAAe,MAAM,MAAM,SAAS,KAAK,OAAO,UAAU;CAEhE,MAAM,WAAW,cAAc,SAAS,KAAK,GAAG,CAAC,KAAK,CAAC;CAEvD,OACE,oBAAC,gBAAD;EAAgB,OAAO,EAAE,OAAO;GAAE,UAAU;GAAI,UAAU;EAAE,EAAE;YAC5D,oBAAC,WAAD;GAAS,WAAW,OAAO;aACzB,oBAAC,UAAD;IACE,OAAA;IACA,WAAW,OAAO;IAClB,qBAAqB;IACrB,aAAa,EAAE,eACb,oBAAC,YAAD;KAAY,MAAM,WAAW,gBAAgB;KAAc,MAAM;IAAU,CAAA;cAG7E,oBAAC,SAAS,OAAV;KACE,aAAA;KACA,QAAQ,eAAe,aAAa,QAAQ;eAG5C,oBAAC,gBAAD;MAAgB,OAAO,EAAE,OAAO;OAAE,UAAU;OAAI,UAAU;MAAE,EAAE;gBAC5D,oBAAC,QAAD;OACgB;OACd,OAAO;OACP,cAAc,eAAe;OAC7B,WAAW,gBAAgB;QACzB,cAAc,YAAY,QAAQ,KAAK,EAAE,CAAC;OAC5C;MACD,CAAA;KACa,CAAA;IACF,GAZT,KAYS;GACR,CAAA;EACH,CAAA;CACK,CAAA;AAEpB,CACF;AAEA,UAAU,cAAc"}
1
+ {"version":3,"file":"TocMobile.mjs","names":["useControlledState"],"sources":["../../src/Toc/TocMobile.tsx"],"sourcesContent":["'use client';\n\nimport { Anchor, Collapse, ConfigProvider } from 'antd';\nimport { PanelTopClose, PanelTopOpen } from 'lucide-react';\nimport { memo, useMemo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/ActionIcon';\n\nimport { styles } from './style';\nimport type { TocMobileProps } from './type';\nimport { mapItems } from './utils';\n\nconst TocMobile = memo<TocMobileProps>(\n ({ items, activeKey, onChange, getContainer, headerHeight = 64, tocWidth = 176 }) => {\n // tocWidth is part of the interface but not used in this component\n void tocWidth;\n const [activeLink, setActiveLink] = useControlledState<string>('', {\n onChange,\n value: activeKey,\n });\n\n const activeAnchor = items.find((item) => item.id === activeLink);\n\n const tocItems = useMemo(() => mapItems(items), [items]);\n\n return (\n <ConfigProvider theme={{ token: { fontSize: 12, sizeStep: 3 } }}>\n <section className={styles.mobileCtn}>\n <Collapse\n ghost\n className={styles.expand}\n expandIconPlacement={'end'}\n expandIcon={({ isActive }) => (\n <ActionIcon icon={isActive ? PanelTopClose : PanelTopOpen} size={'small'} />\n )}\n >\n <Collapse.Panel\n forceRender\n header={activeAnchor ? activeAnchor.title : 'TOC'}\n key={'toc'}\n >\n <ConfigProvider theme={{ token: { fontSize: 14, sizeStep: 4 } }}>\n <Anchor\n getContainer={getContainer}\n items={tocItems}\n targetOffset={headerHeight + 48}\n onChange={(currentLink) => {\n setActiveLink(currentLink.replace('#', ''));\n }}\n />\n </ConfigProvider>\n </Collapse.Panel>\n </Collapse>\n </section>\n </ConfigProvider>\n );\n },\n);\n\nTocMobile.displayName = 'TocMobile';\n\nexport default TocMobile;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAY,MACf,EAAE,OAAO,WAAW,UAAU,cAAc,eAAe,IAAI,WAAW,UAAU;CAGnF,MAAM,CAAC,YAAY,iBAAiBA,cAA2B,IAAI;EACjE;EACA,OAAO;CACT,CAAC;CAED,MAAM,eAAe,MAAM,MAAM,SAAS,KAAK,OAAO,UAAU;CAEhE,MAAM,WAAW,cAAc,SAAS,KAAK,GAAG,CAAC,KAAK,CAAC;CAEvD,OACE,oBAAC,gBAAD;EAAgB,OAAO,EAAE,OAAO;GAAE,UAAU;GAAI,UAAU;EAAE,EAAE;EAC5D,UAAA,oBAAC,WAAD;GAAS,WAAW,OAAO;GACzB,UAAA,oBAAC,UAAD;IACE,OAAA;IACA,WAAW,OAAO;IAClB,qBAAqB;IACrB,aAAa,EAAE,eACb,oBAAC,YAAD;KAAY,MAAM,WAAW,gBAAgB;KAAc,MAAM;IAAU,CAAA;IAG7E,UAAA,oBAAC,SAAS,OAAV;KACE,aAAA;KACA,QAAQ,eAAe,aAAa,QAAQ;KAG5C,UAAA,oBAAC,gBAAD;MAAgB,OAAO,EAAE,OAAO;OAAE,UAAU;OAAI,UAAU;MAAE,EAAE;MAC5D,UAAA,oBAAC,QAAD;OACgB;OACd,OAAO;OACP,cAAc,eAAe;OAC7B,WAAW,gBAAgB;QACzB,cAAc,YAAY,QAAQ,KAAK,EAAE,CAAC;OAC5C;MACD,CAAA;KACa,CAAA;IACF,GAZT,KAYS;GACR,CAAA;EACH,CAAA;CACK,CAAA;AAEpB,CACF;AAEA,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["Flexbox"],"sources":["../../src/Video/index.tsx"],"sourcesContent":["'use client';\n\nimport { Skeleton } from 'antd';\nimport { cssVar, cx } from 'antd-style';\nimport { PlayIcon } from 'lucide-react';\nimport { type CSSProperties, memo, type Ref, useMemo, useState } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox, type FlexboxProps } from '@/Flex';\nimport { type VideoProps as VProps } from '@/types';\n\nimport { styles, variants } from './style';\n\nexport interface VideoProps extends VProps, Pick<FlexboxProps, 'width' | 'height'> {\n autoPlay?: boolean;\n classNames?: {\n mask?: string;\n video?: string;\n wrapper?: string;\n };\n isLoading?: boolean;\n loop?: boolean;\n maxHeight?: number | string;\n maxWidth?: number | string;\n minHeight?: number | string;\n minWidth?: number | string;\n muted?: HTMLVideoElement['muted'];\n onEnded?: VProps['onEnded'];\n onMouseEnter?: VProps['onMouseEnter'];\n onMouseLeave?: VProps['onMouseLeave'];\n onPause?: VProps['onPause'];\n onPlay?: VProps['onPlay'];\n onPlaying?: VProps['onPlaying'];\n onProgress?: VProps['onProgress'];\n poster?: string;\n preload?: HTMLVideoElement['preload'];\n preview?: boolean;\n ref?: Ref<HTMLDivElement>;\n size?: number | string;\n src: string;\n styles?: {\n mask?: CSSProperties;\n video?: CSSProperties;\n wrapper?: CSSProperties;\n };\n variant?: 'borderless' | 'filled' | 'outlined';\n}\n\nconst Video = memo<VideoProps>(\n ({\n ref,\n preload = 'auto',\n src,\n style,\n classNames,\n className,\n maxHeight = '100%',\n maxWidth = '100%',\n minHeight,\n minWidth,\n onEnded,\n onPause,\n onPlay,\n onPlaying,\n width,\n height,\n onMouseEnter,\n styles: customStyles,\n onMouseLeave,\n preview = true,\n isLoading,\n variant = 'filled',\n autoPlay,\n ...rest\n }) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const [showControls, setShowControls] = useState(false);\n\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(() => {\n const vars: Record<string, string> = {};\n if (maxHeight !== undefined) {\n vars['--video-max-height'] = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n }\n if (maxWidth !== undefined) {\n vars['--video-max-width'] = typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth;\n }\n if (minHeight !== undefined) {\n vars['--video-min-height'] = typeof minHeight === 'number' ? `${minHeight}px` : minHeight;\n }\n if (minWidth !== undefined) {\n vars['--video-min-width'] = typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n }\n return vars;\n }, [maxHeight, maxWidth, minHeight, minWidth]);\n\n if (isLoading)\n return (\n <Skeleton.Avatar\n active\n style={{\n borderRadius: cssVar.borderRadiusLG,\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n width,\n }}\n />\n );\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className, classNames?.wrapper)}\n height={height}\n ref={ref}\n width={width}\n style={{\n ...cssVariables,\n ...style,\n ...customStyles?.wrapper,\n }}\n >\n {preview && !isPlaying && (\n <Flexbox\n align={'center'}\n className={cx(styles.mask, classNames?.mask)}\n justify={'center'}\n style={customStyles?.mask}\n >\n <ActionIcon color={'#fff'} icon={PlayIcon} variant={'filled'} />\n </Flexbox>\n )}\n <video\n autoPlay={autoPlay}\n className={cx(styles.video, classNames?.video)}\n controls={showControls}\n height={height}\n preload={preload}\n width={width}\n style={{\n height: 'auto',\n maxWidth: '100%',\n ...customStyles?.video,\n }}\n onEnded={(e) => {\n setIsPlaying(false);\n onEnded?.(e);\n }}\n onMouseEnter={(e) => {\n setShowControls(true);\n onMouseEnter?.(e);\n }}\n onMouseLeave={(e) => {\n setShowControls(false);\n onMouseLeave?.(e);\n }}\n onPause={(e) => {\n setIsPlaying(false);\n onPause?.(e);\n }}\n onPlay={(e) => {\n setIsPlaying(true);\n onPlay?.(e);\n }}\n onPlaying={(e) => {\n setIsPlaying(true);\n onPlaying?.(e);\n }}\n {...rest}\n >\n <source src={src} />\n </video>\n </Flexbox>\n );\n },\n);\n\nVideo.displayName = 'Video';\n\nexport default Video;\n"],"mappings":";;;;;;;;;;AAgDA,MAAM,QAAQ,MACX,EACC,KACA,UAAU,QACV,KACA,OACA,YACA,WACA,YAAY,QACZ,WAAW,QACX,WACA,UACA,SACA,SACA,QACA,WACA,OACA,QACA,cACA,QAAQ,cACR,cACA,UAAU,MACV,WACA,UAAU,UACV,UACA,GAAG,WACC;CACJ,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAK;CAChD,MAAM,CAAC,cAAc,mBAAmB,SAAS,KAAK;CAGtD,MAAM,eAAe,cAAsC;EACzD,MAAM,OAA+B,CAAC;EACtC,IAAI,cAAc,KAAA,GAChB,KAAK,wBAAwB,OAAO,cAAc,WAAW,GAAG,UAAU,MAAM;EAElF,IAAI,aAAa,KAAA,GACf,KAAK,uBAAuB,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;EAE/E,IAAI,cAAc,KAAA,GAChB,KAAK,wBAAwB,OAAO,cAAc,WAAW,GAAG,UAAU,MAAM;EAElF,IAAI,aAAa,KAAA,GACf,KAAK,uBAAuB,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;EAE/E,OAAO;CACT,GAAG;EAAC;EAAW;EAAU;EAAW;CAAQ,CAAC;CAE7C,IAAI,WACF,OACE,oBAAC,SAAS,QAAV;EACE,QAAA;EACA,OAAO;GACL,cAAc,OAAO;GACrB;GACA;GACA;GACA;GACA;GACA;EACF;CACD,CAAA;CAGL,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,WAAW,YAAY,OAAO;EAC3D;EACH;EACE;EACP,OAAO;GACL,GAAG;GACH,GAAG;GACH,GAAG,cAAc;EACnB;YATF,CAWG,WAAW,CAAC,aACX,oBAACA,mBAAD;GACE,OAAO;GACP,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;GAC3C,SAAS;GACT,OAAO,cAAc;aAErB,oBAAC,YAAD;IAAY,OAAO;IAAQ,MAAM;IAAU,SAAS;GAAW,CAAA;EACxD,CAAA,GAEX,oBAAC,SAAD;GACY;GACV,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;GAC7C,UAAU;GACF;GACC;GACF;GACP,OAAO;IACL,QAAQ;IACR,UAAU;IACV,GAAG,cAAc;GACnB;GACA,UAAU,MAAM;IACd,aAAa,KAAK;IAClB,UAAU,CAAC;GACb;GACA,eAAe,MAAM;IACnB,gBAAgB,IAAI;IACpB,eAAe,CAAC;GAClB;GACA,eAAe,MAAM;IACnB,gBAAgB,KAAK;IACrB,eAAe,CAAC;GAClB;GACA,UAAU,MAAM;IACd,aAAa,KAAK;IAClB,UAAU,CAAC;GACb;GACA,SAAS,MAAM;IACb,aAAa,IAAI;IACjB,SAAS,CAAC;GACZ;GACA,YAAY,MAAM;IAChB,aAAa,IAAI;IACjB,YAAY,CAAC;GACf;GACA,GAAI;aAEJ,oBAAC,UAAD,EAAa,IAAM,CAAA;EACd,CAAA,CACA;;AAEb,CACF;AAEA,MAAM,cAAc"}
1
+ {"version":3,"file":"index.mjs","names":["Flexbox"],"sources":["../../src/Video/index.tsx"],"sourcesContent":["'use client';\n\nimport { Skeleton } from 'antd';\nimport { cssVar, cx } from 'antd-style';\nimport { PlayIcon } from 'lucide-react';\nimport { type CSSProperties, memo, type Ref, useMemo, useState } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox, type FlexboxProps } from '@/Flex';\nimport { type VideoProps as VProps } from '@/types';\n\nimport { styles, variants } from './style';\n\nexport interface VideoProps extends VProps, Pick<FlexboxProps, 'width' | 'height'> {\n autoPlay?: boolean;\n classNames?: {\n mask?: string;\n video?: string;\n wrapper?: string;\n };\n isLoading?: boolean;\n loop?: boolean;\n maxHeight?: number | string;\n maxWidth?: number | string;\n minHeight?: number | string;\n minWidth?: number | string;\n muted?: HTMLVideoElement['muted'];\n onEnded?: VProps['onEnded'];\n onMouseEnter?: VProps['onMouseEnter'];\n onMouseLeave?: VProps['onMouseLeave'];\n onPause?: VProps['onPause'];\n onPlay?: VProps['onPlay'];\n onPlaying?: VProps['onPlaying'];\n onProgress?: VProps['onProgress'];\n poster?: string;\n preload?: HTMLVideoElement['preload'];\n preview?: boolean;\n ref?: Ref<HTMLDivElement>;\n size?: number | string;\n src: string;\n styles?: {\n mask?: CSSProperties;\n video?: CSSProperties;\n wrapper?: CSSProperties;\n };\n variant?: 'borderless' | 'filled' | 'outlined';\n}\n\nconst Video = memo<VideoProps>(\n ({\n ref,\n preload = 'auto',\n src,\n style,\n classNames,\n className,\n maxHeight = '100%',\n maxWidth = '100%',\n minHeight,\n minWidth,\n onEnded,\n onPause,\n onPlay,\n onPlaying,\n width,\n height,\n onMouseEnter,\n styles: customStyles,\n onMouseLeave,\n preview = true,\n isLoading,\n variant = 'filled',\n autoPlay,\n ...rest\n }) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const [showControls, setShowControls] = useState(false);\n\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(() => {\n const vars: Record<string, string> = {};\n if (maxHeight !== undefined) {\n vars['--video-max-height'] = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n }\n if (maxWidth !== undefined) {\n vars['--video-max-width'] = typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth;\n }\n if (minHeight !== undefined) {\n vars['--video-min-height'] = typeof minHeight === 'number' ? `${minHeight}px` : minHeight;\n }\n if (minWidth !== undefined) {\n vars['--video-min-width'] = typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n }\n return vars;\n }, [maxHeight, maxWidth, minHeight, minWidth]);\n\n if (isLoading)\n return (\n <Skeleton.Avatar\n active\n style={{\n borderRadius: cssVar.borderRadiusLG,\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n width,\n }}\n />\n );\n\n return (\n <Flexbox\n className={cx(variants({ variant }), className, classNames?.wrapper)}\n height={height}\n ref={ref}\n width={width}\n style={{\n ...cssVariables,\n ...style,\n ...customStyles?.wrapper,\n }}\n >\n {preview && !isPlaying && (\n <Flexbox\n align={'center'}\n className={cx(styles.mask, classNames?.mask)}\n justify={'center'}\n style={customStyles?.mask}\n >\n <ActionIcon color={'#fff'} icon={PlayIcon} variant={'filled'} />\n </Flexbox>\n )}\n <video\n autoPlay={autoPlay}\n className={cx(styles.video, classNames?.video)}\n controls={showControls}\n height={height}\n preload={preload}\n width={width}\n style={{\n height: 'auto',\n maxWidth: '100%',\n ...customStyles?.video,\n }}\n onEnded={(e) => {\n setIsPlaying(false);\n onEnded?.(e);\n }}\n onMouseEnter={(e) => {\n setShowControls(true);\n onMouseEnter?.(e);\n }}\n onMouseLeave={(e) => {\n setShowControls(false);\n onMouseLeave?.(e);\n }}\n onPause={(e) => {\n setIsPlaying(false);\n onPause?.(e);\n }}\n onPlay={(e) => {\n setIsPlaying(true);\n onPlay?.(e);\n }}\n onPlaying={(e) => {\n setIsPlaying(true);\n onPlaying?.(e);\n }}\n {...rest}\n >\n <source src={src} />\n </video>\n </Flexbox>\n );\n },\n);\n\nVideo.displayName = 'Video';\n\nexport default Video;\n"],"mappings":";;;;;;;;;;AAgDA,MAAM,QAAQ,MACX,EACC,KACA,UAAU,QACV,KACA,OACA,YACA,WACA,YAAY,QACZ,WAAW,QACX,WACA,UACA,SACA,SACA,QACA,WACA,OACA,QACA,cACA,QAAQ,cACR,cACA,UAAU,MACV,WACA,UAAU,UACV,UACA,GAAG,WACC;CACJ,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAK;CAChD,MAAM,CAAC,cAAc,mBAAmB,SAAS,KAAK;CAGtD,MAAM,eAAe,cAAsC;EACzD,MAAM,OAA+B,CAAC;EACtC,IAAI,cAAc,KAAA,GAChB,KAAK,wBAAwB,OAAO,cAAc,WAAW,GAAG,UAAU,MAAM;EAElF,IAAI,aAAa,KAAA,GACf,KAAK,uBAAuB,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;EAE/E,IAAI,cAAc,KAAA,GAChB,KAAK,wBAAwB,OAAO,cAAc,WAAW,GAAG,UAAU,MAAM;EAElF,IAAI,aAAa,KAAA,GACf,KAAK,uBAAuB,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;EAE/E,OAAO;CACT,GAAG;EAAC;EAAW;EAAU;EAAW;CAAQ,CAAC;CAE7C,IAAI,WACF,OACE,oBAAC,SAAS,QAAV;EACE,QAAA;EACA,OAAO;GACL,cAAc,OAAO;GACrB;GACA;GACA;GACA;GACA;GACA;EACF;CACD,CAAA;CAGL,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,WAAW,YAAY,OAAO;EAC3D;EACH;EACE;EACP,OAAO;GACL,GAAG;GACH,GAAG;GACH,GAAG,cAAc;EACnB;EATF,UAAA,CAWG,WAAW,CAAC,aACX,oBAACA,mBAAD;GACE,OAAO;GACP,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;GAC3C,SAAS;GACT,OAAO,cAAc;GAErB,UAAA,oBAAC,YAAD;IAAY,OAAO;IAAQ,MAAM;IAAU,SAAS;GAAW,CAAA;EACxD,CAAA,GAEX,oBAAC,SAAD;GACY;GACV,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;GAC7C,UAAU;GACF;GACC;GACF;GACP,OAAO;IACL,QAAQ;IACR,UAAU;IACV,GAAG,cAAc;GACnB;GACA,UAAU,MAAM;IACd,aAAa,KAAK;IAClB,UAAU,CAAC;GACb;GACA,eAAe,MAAM;IACnB,gBAAgB,IAAI;IACpB,eAAe,CAAC;GAClB;GACA,eAAe,MAAM;IACnB,gBAAgB,KAAK;IACrB,eAAe,CAAC;GAClB;GACA,UAAU,MAAM;IACd,aAAa,KAAK;IAClB,UAAU,CAAC;GACb;GACA,SAAS,MAAM;IACb,aAAa,IAAI;IACjB,SAAS,CAAC;GACZ;GACA,YAAY,MAAM;IAChB,aAAa,IAAI;IACjB,YAAY,CAAC;GACf;GACA,GAAI;GAEJ,UAAA,oBAAC,UAAD,EAAa,IAAM,CAAA;EACd,CAAA,CACA;;AAEb,CACF;AAEA,MAAM,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuroraBackground.mjs","names":["Flexbox"],"sources":["../../../src/awesome/AuroraBackground/AuroraBackground.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { AuroraBackgroundProps } from './type';\n\nconst AuroraBackground = memo<AuroraBackgroundProps>(\n ({ ref, classNames, styles: customStyles, children, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n return (\n <Flexbox ref={ref} {...rest}>\n <Flexbox className={cx(styles.wrapper, classNames?.wrapper)} style={customStyles?.wrapper}>\n <div className={isDarkMode ? styles.bgDark : styles.bgLight} />\n </Flexbox>\n <Flexbox\n className={classNames?.content}\n flex={1}\n style={{ zIndex: 1, ...customStyles?.content }}\n width={'100%'}\n >\n {children}\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nAuroraBackground.displayName = 'AuroraBackground';\n\nexport default AuroraBackground;\n"],"mappings":";;;;;;;AAUA,MAAM,mBAAmB,MACtB,EAAE,KAAK,YAAY,QAAQ,cAAc,UAAU,GAAG,WAAW;CAChE,MAAM,EAAE,eAAe,aAAa;CACpC,OACE,qBAACA,mBAAD;EAAc;EAAK,GAAI;YAAvB,CACE,oBAACA,mBAAD;GAAS,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;GAAG,OAAO,cAAc;aAChF,oBAAC,OAAD,EAAK,WAAW,aAAa,OAAO,SAAS,OAAO,QAAU,CAAA;EACvD,CAAA,GACT,oBAACA,mBAAD;GACE,WAAW,YAAY;GACvB,MAAM;GACN,OAAO;IAAE,QAAQ;IAAG,GAAG,cAAc;GAAQ;GAC7C,OAAO;GAEN;EACM,CAAA,CACF;;AAEb,CACF;AAEA,iBAAiB,cAAc"}
1
+ {"version":3,"file":"AuroraBackground.mjs","names":["Flexbox"],"sources":["../../../src/awesome/AuroraBackground/AuroraBackground.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { AuroraBackgroundProps } from './type';\n\nconst AuroraBackground = memo<AuroraBackgroundProps>(\n ({ ref, classNames, styles: customStyles, children, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n return (\n <Flexbox ref={ref} {...rest}>\n <Flexbox className={cx(styles.wrapper, classNames?.wrapper)} style={customStyles?.wrapper}>\n <div className={isDarkMode ? styles.bgDark : styles.bgLight} />\n </Flexbox>\n <Flexbox\n className={classNames?.content}\n flex={1}\n style={{ zIndex: 1, ...customStyles?.content }}\n width={'100%'}\n >\n {children}\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nAuroraBackground.displayName = 'AuroraBackground';\n\nexport default AuroraBackground;\n"],"mappings":";;;;;;;AAUA,MAAM,mBAAmB,MACtB,EAAE,KAAK,YAAY,QAAQ,cAAc,UAAU,GAAG,WAAW;CAChE,MAAM,EAAE,eAAe,aAAa;CACpC,OACE,qBAACA,mBAAD;EAAc;EAAK,GAAI;EAAvB,UAAA,CACE,oBAACA,mBAAD;GAAS,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;GAAG,OAAO,cAAc;GAChF,UAAA,oBAAC,OAAD,EAAK,WAAW,aAAa,OAAO,SAAS,OAAO,QAAU,CAAA;EACvD,CAAA,GACT,oBAACA,mBAAD;GACE,WAAW,YAAY;GACvB,MAAM;GACN,OAAO;IAAE,QAAQ;IAAG,GAAG,cAAc;GAAQ;GAC7C,OAAO;GAEN;EACM,CAAA,CACF;;AAEb,CACF;AAEA,iBAAiB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureItem.mjs","names":["Flexbox"],"sources":["../../../src/awesome/Features/FeatureItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type CSSProperties, memo, useMemo } from 'react';\n\nimport A from '@/A';\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\nimport Text from '@/Text';\n\nimport { styles } from './style';\nimport type { FeatureItemProps } from './type';\n\nconst Image = memo<{ className?: string; image: string; style?: CSSProperties; title: string }>(\n ({ image, className, title, style }) => {\n return image.startsWith('http') ? (\n <Img alt={title} className={className} src={image} style={style} />\n ) : (\n <Center className={className} style={style}>\n {image}\n </Center>\n );\n },\n);\n\nconst Item = memo<FeatureItemProps>(\n ({\n style,\n className,\n row,\n column,\n description,\n image,\n title,\n link,\n icon,\n imageStyle,\n openExternal,\n ...rest\n }) => {\n const rowNumber = row || 7;\n const hasLink = Boolean(link);\n\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--features-row-num': String(rowNumber),\n '--features-title-hover-size': hasLink ? '14px' : '20px',\n }),\n [rowNumber, hasLink],\n );\n\n return (\n <div\n className={cx(hasLink ? styles.containerHasLink : styles.container, className)}\n style={{\n ...cssVariables,\n gridColumn: `span ${column || 1}`,\n gridRow: `span ${rowNumber}`,\n ...style,\n }}\n {...rest}\n >\n <div className={styles.cell}>\n {image ||\n (icon && (\n <Center className={styles.imgContainer} style={imageStyle}>\n {icon && <Icon className={styles.img} icon={icon} />}\n {image && <Image className={styles.img} image={image} title={title} />}\n </Center>\n ))}\n {title && (\n <Flexbox horizontal align={'center'} as={'h3'} className={styles.title} gap={8}>\n {title}\n </Flexbox>\n )}\n {description && (\n <Text\n className={styles.desc}\n ellipsis={{\n rows: 4,\n }}\n >\n {description}\n </Text>\n )}\n {link && (\n <div className={styles.link}>\n <A href={link} rel=\"noreferrer\" target={openExternal ? '_blank' : undefined}>\n Read More\n </A>\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nItem.displayName = 'FeatureItem';\n\nexport default Item;\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,QAAQ,MACX,EAAE,OAAO,WAAW,OAAO,YAAY;CACtC,OAAO,MAAM,WAAW,MAAM,IAC5B,oBAAC,KAAD;EAAK,KAAK;EAAkB;EAAW,KAAK;EAAc;CAAQ,CAAA,IAElE,oBAAC,QAAD;EAAmB;EAAkB;YAClC;CACK,CAAA;AAEZ,CACF;AAEA,MAAM,OAAO,MACV,EACC,OACA,WACA,KACA,QACA,aACA,OACA,OACA,MACA,MACA,YACA,cACA,GAAG,WACC;CACJ,MAAM,YAAY,OAAO;CACzB,MAAM,UAAU,QAAQ,IAAI;CAE5B,MAAM,eAAe,eACZ;EACL,sBAAsB,OAAO,SAAS;EACtC,+BAA+B,UAAU,SAAS;CACpD,IACA,CAAC,WAAW,OAAO,CACrB;CAEA,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,UAAU,OAAO,mBAAmB,OAAO,WAAW,SAAS;EAC7E,OAAO;GACL,GAAG;GACH,YAAY,QAAQ,UAAU;GAC9B,SAAS,QAAQ;GACjB,GAAG;EACL;EACA,GAAI;YAEJ,qBAAC,OAAD;GAAK,WAAW,OAAO;aAAvB;IACG,SACE,QACC,qBAAC,QAAD;KAAQ,WAAW,OAAO;KAAc,OAAO;eAA/C,CACG,QAAQ,oBAAC,MAAD;MAAM,WAAW,OAAO;MAAW;KAAO,CAAA,GAClD,SAAS,oBAAC,OAAD;MAAO,WAAW,OAAO;MAAY;MAAc;KAAQ,CAAA,CAC/D;;IAEX,SACC,oBAACA,mBAAD;KAAS,YAAA;KAAW,OAAO;KAAU,IAAI;KAAM,WAAW,OAAO;KAAO,KAAK;eAC1E;IACM,CAAA;IAEV,eACC,oBAAC,MAAD;KACE,WAAW,OAAO;KAClB,UAAU,EACR,MAAM,EACR;eAEC;IACG,CAAA;IAEP,QACC,oBAAC,OAAD;KAAK,WAAW,OAAO;eACrB,oBAAC,GAAD;MAAG,MAAM;MAAM,KAAI;MAAa,QAAQ,eAAe,WAAW,KAAA;gBAAW;KAE1E,CAAA;IACA,CAAA;GAEJ;;CACF,CAAA;AAET,CACF;AAEA,KAAK,cAAc"}
1
+ {"version":3,"file":"FeatureItem.mjs","names":["Flexbox"],"sources":["../../../src/awesome/Features/FeatureItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type CSSProperties, memo, useMemo } from 'react';\n\nimport A from '@/A';\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\nimport Text from '@/Text';\n\nimport { styles } from './style';\nimport type { FeatureItemProps } from './type';\n\nconst Image = memo<{ className?: string; image: string; style?: CSSProperties; title: string }>(\n ({ image, className, title, style }) => {\n return image.startsWith('http') ? (\n <Img alt={title} className={className} src={image} style={style} />\n ) : (\n <Center className={className} style={style}>\n {image}\n </Center>\n );\n },\n);\n\nconst Item = memo<FeatureItemProps>(\n ({\n style,\n className,\n row,\n column,\n description,\n image,\n title,\n link,\n icon,\n imageStyle,\n openExternal,\n ...rest\n }) => {\n const rowNumber = row || 7;\n const hasLink = Boolean(link);\n\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--features-row-num': String(rowNumber),\n '--features-title-hover-size': hasLink ? '14px' : '20px',\n }),\n [rowNumber, hasLink],\n );\n\n return (\n <div\n className={cx(hasLink ? styles.containerHasLink : styles.container, className)}\n style={{\n ...cssVariables,\n gridColumn: `span ${column || 1}`,\n gridRow: `span ${rowNumber}`,\n ...style,\n }}\n {...rest}\n >\n <div className={styles.cell}>\n {image ||\n (icon && (\n <Center className={styles.imgContainer} style={imageStyle}>\n {icon && <Icon className={styles.img} icon={icon} />}\n {image && <Image className={styles.img} image={image} title={title} />}\n </Center>\n ))}\n {title && (\n <Flexbox horizontal align={'center'} as={'h3'} className={styles.title} gap={8}>\n {title}\n </Flexbox>\n )}\n {description && (\n <Text\n className={styles.desc}\n ellipsis={{\n rows: 4,\n }}\n >\n {description}\n </Text>\n )}\n {link && (\n <div className={styles.link}>\n <A href={link} rel=\"noreferrer\" target={openExternal ? '_blank' : undefined}>\n Read More\n </A>\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nItem.displayName = 'FeatureItem';\n\nexport default Item;\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,QAAQ,MACX,EAAE,OAAO,WAAW,OAAO,YAAY;CACtC,OAAO,MAAM,WAAW,MAAM,IAC5B,oBAAC,KAAD;EAAK,KAAK;EAAkB;EAAW,KAAK;EAAc;CAAQ,CAAA,IAElE,oBAAC,QAAD;EAAmB;EAAkB;EAClC,UAAA;CACK,CAAA;AAEZ,CACF;AAEA,MAAM,OAAO,MACV,EACC,OACA,WACA,KACA,QACA,aACA,OACA,OACA,MACA,MACA,YACA,cACA,GAAG,WACC;CACJ,MAAM,YAAY,OAAO;CACzB,MAAM,UAAU,QAAQ,IAAI;CAE5B,MAAM,eAAe,eACZ;EACL,sBAAsB,OAAO,SAAS;EACtC,+BAA+B,UAAU,SAAS;CACpD,IACA,CAAC,WAAW,OAAO,CACrB;CAEA,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,UAAU,OAAO,mBAAmB,OAAO,WAAW,SAAS;EAC7E,OAAO;GACL,GAAG;GACH,YAAY,QAAQ,UAAU;GAC9B,SAAS,QAAQ;GACjB,GAAG;EACL;EACA,GAAI;EAEJ,UAAA,qBAAC,OAAD;GAAK,WAAW,OAAO;GAAvB,UAAA;IACG,SACE,QACC,qBAAC,QAAD;KAAQ,WAAW,OAAO;KAAc,OAAO;KAA/C,UAAA,CACG,QAAQ,oBAAC,MAAD;MAAM,WAAW,OAAO;MAAW;KAAO,CAAA,GAClD,SAAS,oBAAC,OAAD;MAAO,WAAW,OAAO;MAAY;MAAc;KAAQ,CAAA,CAC/D;;IAEX,SACC,oBAACA,mBAAD;KAAS,YAAA;KAAW,OAAO;KAAU,IAAI;KAAM,WAAW,OAAO;KAAO,KAAK;KAC1E,UAAA;IACM,CAAA;IAEV,eACC,oBAAC,MAAD;KACE,WAAW,OAAO;KAClB,UAAU,EACR,MAAM,EACR;KAEC,UAAA;IACG,CAAA;IAEP,QACC,oBAAC,OAAD;KAAK,WAAW,OAAO;KACrB,UAAA,oBAAC,GAAD;MAAG,MAAM;MAAM,KAAI;MAAa,QAAQ,eAAe,WAAW,KAAA;MAAW,UAAA;KAE1E,CAAA;IACA,CAAA;GAEJ;;CACF,CAAA;AAET,CACF;AAEA,KAAK,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Giscus.mjs","names":[],"sources":["../../../src/awesome/Giscus/Giscus.tsx"],"sourcesContent":["'use client';\n\nimport GiscusComponent from '@giscus/react';\nimport { memo } from 'react';\n\nimport { formatLang, useStyles } from './style';\nimport type { GiscusProps } from './type';\n\nconst Giscus = memo<GiscusProps>(\n ({\n style,\n className,\n reactionsEnabled = '1',\n mapping = 'title',\n lang = 'en_US',\n inputPosition = 'top',\n id = 'giscus',\n loading = 'lazy',\n emitMetadata = '0',\n ...rest\n }) => {\n const theme = useStyles();\n\n return (\n <div className={className} style={style}>\n <GiscusComponent\n emitMetadata={emitMetadata}\n id={id}\n inputPosition={inputPosition}\n lang={formatLang(lang)}\n loading={loading}\n mapping={mapping}\n reactionsEnabled={reactionsEnabled}\n theme={theme}\n {...rest}\n />\n </div>\n );\n },\n);\n\nGiscus.displayName = 'Giscus';\n\nexport default Giscus;\n"],"mappings":";;;;;;AAQA,MAAM,SAAS,MACZ,EACC,OACA,WACA,mBAAmB,KACnB,UAAU,SACV,OAAO,SACP,gBAAgB,OAChB,KAAK,UACL,UAAU,QACV,eAAe,KACf,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CAExB,OACE,oBAAC,OAAD;EAAgB;EAAkB;YAChC,oBAAC,iBAAD;GACgB;GACV;GACW;GACf,MAAM,WAAW,IAAI;GACZ;GACA;GACS;GACX;GACP,GAAI;EACL,CAAA;CACE,CAAA;AAET,CACF;AAEA,OAAO,cAAc"}
1
+ {"version":3,"file":"Giscus.mjs","names":[],"sources":["../../../src/awesome/Giscus/Giscus.tsx"],"sourcesContent":["'use client';\n\nimport GiscusComponent from '@giscus/react';\nimport { memo } from 'react';\n\nimport { formatLang, useStyles } from './style';\nimport type { GiscusProps } from './type';\n\nconst Giscus = memo<GiscusProps>(\n ({\n style,\n className,\n reactionsEnabled = '1',\n mapping = 'title',\n lang = 'en_US',\n inputPosition = 'top',\n id = 'giscus',\n loading = 'lazy',\n emitMetadata = '0',\n ...rest\n }) => {\n const theme = useStyles();\n\n return (\n <div className={className} style={style}>\n <GiscusComponent\n emitMetadata={emitMetadata}\n id={id}\n inputPosition={inputPosition}\n lang={formatLang(lang)}\n loading={loading}\n mapping={mapping}\n reactionsEnabled={reactionsEnabled}\n theme={theme}\n {...rest}\n />\n </div>\n );\n },\n);\n\nGiscus.displayName = 'Giscus';\n\nexport default Giscus;\n"],"mappings":";;;;;;AAQA,MAAM,SAAS,MACZ,EACC,OACA,WACA,mBAAmB,KACnB,UAAU,SACV,OAAO,SACP,gBAAgB,OAChB,KAAK,UACL,UAAU,QACV,eAAe,KACf,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CAExB,OACE,oBAAC,OAAD;EAAgB;EAAkB;EAChC,UAAA,oBAAC,iBAAD;GACgB;GACV;GACW;GACf,MAAM,WAAW,IAAI;GACZ;GACA;GACS;GACX;GACP,GAAI;EACL,CAAA;CACE,CAAA;AAET,CACF;AAEA,OAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"GradientButton.mjs","names":[],"sources":["../../../src/awesome/GradientButton/GradientButton.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar, cx, useThemeMode } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport Button from '@/Button';\n\nimport { styles } from './style';\nimport type { GradientButtonProps } from './type';\n\nconst GradientButton = memo<GradientButtonProps>(\n ({ glow = true, children, className, size, disabled, style, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n\n // Convert size prop to CSS variable for borderRadius\n const cssVariables = useMemo<Record<string, string>>(() => {\n if (!size || disabled) return {} as Record<string, string>;\n let borderRadius: string;\n switch (size) {\n case 'large': {\n borderRadius = cssVar.borderRadiusLG;\n break;\n }\n case 'small': {\n borderRadius = cssVar.borderRadiusSM;\n break;\n }\n default: {\n borderRadius = cssVar.borderRadius;\n break;\n }\n }\n return {\n '--gradient-button-border-radius': borderRadius,\n };\n }, [size, disabled]);\n\n return (\n <Button\n disabled={disabled}\n size={size}\n variant={disabled ? undefined : 'text'}\n className={cx(\n !disabled && (isDarkMode ? styles.buttonDark : styles.buttonLight),\n className,\n )}\n style={{\n ...cssVariables,\n ...style,\n }}\n {...rest}\n >\n {glow && <div className={styles.glow} />}\n {children}\n </Button>\n );\n },\n);\n\nGradientButton.displayName = 'GradientButton';\n\nexport default GradientButton;\n"],"mappings":";;;;;;;AAUA,MAAM,iBAAiB,MACpB,EAAE,OAAO,MAAM,UAAU,WAAW,MAAM,UAAU,OAAO,GAAG,WAAW;CACxE,MAAM,EAAE,eAAe,aAAa;CAGpC,MAAM,eAAe,cAAsC;EACzD,IAAI,CAAC,QAAQ,UAAU,OAAO,CAAC;EAC/B,IAAI;EACJ,QAAQ,MAAR;GACE,KAAK;IACH,eAAe,OAAO;IACtB;GAEF,KAAK;IACH,eAAe,OAAO;IACtB;GAEF;IACE,eAAe,OAAO;IACtB;EAEJ;EACA,OAAO,EACL,mCAAmC,aACrC;CACF,GAAG,CAAC,MAAM,QAAQ,CAAC;CAEnB,OACE,qBAAC,QAAD;EACY;EACJ;EACN,SAAS,WAAW,KAAA,IAAY;EAChC,WAAW,GACT,CAAC,aAAa,aAAa,OAAO,aAAa,OAAO,cACtD,SACF;EACA,OAAO;GACL,GAAG;GACH,GAAG;EACL;EACA,GAAI;YAZN,CAcG,QAAQ,oBAAC,OAAD,EAAK,WAAW,OAAO,KAAO,CAAA,GACtC,QACK;;AAEZ,CACF;AAEA,eAAe,cAAc"}
1
+ {"version":3,"file":"GradientButton.mjs","names":[],"sources":["../../../src/awesome/GradientButton/GradientButton.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar, cx, useThemeMode } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport Button from '@/Button';\n\nimport { styles } from './style';\nimport type { GradientButtonProps } from './type';\n\nconst GradientButton = memo<GradientButtonProps>(\n ({ glow = true, children, className, size, disabled, style, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n\n // Convert size prop to CSS variable for borderRadius\n const cssVariables = useMemo<Record<string, string>>(() => {\n if (!size || disabled) return {} as Record<string, string>;\n let borderRadius: string;\n switch (size) {\n case 'large': {\n borderRadius = cssVar.borderRadiusLG;\n break;\n }\n case 'small': {\n borderRadius = cssVar.borderRadiusSM;\n break;\n }\n default: {\n borderRadius = cssVar.borderRadius;\n break;\n }\n }\n return {\n '--gradient-button-border-radius': borderRadius,\n };\n }, [size, disabled]);\n\n return (\n <Button\n disabled={disabled}\n size={size}\n variant={disabled ? undefined : 'text'}\n className={cx(\n !disabled && (isDarkMode ? styles.buttonDark : styles.buttonLight),\n className,\n )}\n style={{\n ...cssVariables,\n ...style,\n }}\n {...rest}\n >\n {glow && <div className={styles.glow} />}\n {children}\n </Button>\n );\n },\n);\n\nGradientButton.displayName = 'GradientButton';\n\nexport default GradientButton;\n"],"mappings":";;;;;;;AAUA,MAAM,iBAAiB,MACpB,EAAE,OAAO,MAAM,UAAU,WAAW,MAAM,UAAU,OAAO,GAAG,WAAW;CACxE,MAAM,EAAE,eAAe,aAAa;CAGpC,MAAM,eAAe,cAAsC;EACzD,IAAI,CAAC,QAAQ,UAAU,OAAO,CAAC;EAC/B,IAAI;EACJ,QAAQ,MAAR;GACE,KAAK;IACH,eAAe,OAAO;IACtB;GAEF,KAAK;IACH,eAAe,OAAO;IACtB;GAEF;IACE,eAAe,OAAO;IACtB;EAEJ;EACA,OAAO,EACL,mCAAmC,aACrC;CACF,GAAG,CAAC,MAAM,QAAQ,CAAC;CAEnB,OACE,qBAAC,QAAD;EACY;EACJ;EACN,SAAS,WAAW,KAAA,IAAY;EAChC,WAAW,GACT,CAAC,aAAa,aAAa,OAAO,aAAa,OAAO,cACtD,SACF;EACA,OAAO;GACL,GAAG;GACH,GAAG;EACL;EACA,GAAI;EAZN,UAAA,CAcG,QAAQ,oBAAC,OAAD,EAAK,WAAW,OAAO,KAAO,CAAA,GACtC,QACK;;AAEZ,CACF;AAEA,eAAe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridBackground.mjs","names":[],"sources":["../../../src/awesome/GridBackground/GridBackground.tsx"],"sourcesContent":["'use client';\n\nimport { useSize } from 'ahooks';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { shuffle } from 'es-toolkit/compat';\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport Grid, { type GridProps } from './components/Grid';\nimport { styles } from './style';\nimport type { GridBackgroundProps } from './type';\n\nconst initialGroup = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\n\nconst GridBackground = memo<GridBackgroundProps>(\n ({\n flip,\n reverse,\n showBackground,\n backgroundColor,\n random,\n animationDuration = 8,\n className,\n colorFront,\n colorBack,\n strokeWidth,\n style,\n animation,\n ...rest\n }) => {\n const ref = useRef(null);\n const size = useSize(ref);\n const theme = useTheme();\n\n const backgroundCssVariables = useMemo<Record<string, string>>(() => {\n if (!showBackground) return {} as Record<string, string>;\n\n const scale = chroma\n .bezier([theme.colorText, backgroundColor || 'blue', theme.colorBgLayout])\n .scale()\n .mode('lch')\n .correctLightness()\n .colors(6);\n\n return {\n '--grid-background-color-1': scale[1],\n '--grid-background-color-2': scale[2],\n '--grid-background-color-3': scale[3],\n '--grid-background-color-4': scale[4],\n };\n }, [showBackground, backgroundColor, theme.colorText, theme.colorBgLayout]);\n\n const gridProps: GridProps = useMemo(\n () => ({\n className: reverse ? styles.highlightReverse : styles.highlight,\n color: colorFront || cssVar.colorText,\n strokeWidth,\n }),\n [reverse, colorFront, strokeWidth],\n );\n\n const [group, setGroup] = useState(random ? initialGroup : undefined);\n useEffect(() => {\n setGroup(random ? shuffle(initialGroup) : undefined);\n }, [random]);\n\n const HighlightGrid = useCallback(() => {\n if (!group)\n return <Grid style={{ '--duration': `${animationDuration}s` } as any} {...gridProps} />;\n\n return (\n <>\n {group.map((item, index) => {\n return (\n <Grid\n key={item}\n linePick={item}\n style={\n {\n '--delay': `${index + Math.random()}s`,\n '--duration': `${animationDuration}s`,\n } as any\n }\n {...gridProps}\n />\n );\n })}\n </>\n );\n }, [group, animationDuration, gridProps]);\n\n return (\n <div\n className={cx(styles.container, className)}\n ref={ref}\n style={flip ? { transform: 'scaleY(-1)', ...style } : style}\n {...rest}\n >\n <Grid\n color={colorBack || cssVar.colorBorder}\n strokeWidth={strokeWidth}\n style={{ zIndex: 2 }}\n />\n {animation && <HighlightGrid />}\n {showBackground && (\n <div\n className={styles.backgroundContainer}\n style={{\n ...(size ? { fontSize: size.width / 80 } : {}),\n ...backgroundCssVariables,\n }}\n >\n <div className={styles.background} />\n </div>\n )}\n </div>\n );\n },\n);\n\nGridBackground.displayName = 'GridBackground';\n\nexport default GridBackground;\n"],"mappings":";;;;;;;;;;AAYA,MAAM,eAAe;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;AAAE;AAEtE,MAAM,iBAAiB,MACpB,EACC,MACA,SACA,gBACA,iBACA,QACA,oBAAoB,GACpB,WACA,YACA,WACA,aACA,OACA,WACA,GAAG,WACC;CACJ,MAAM,MAAM,OAAO,IAAI;CACvB,MAAM,OAAO,QAAQ,GAAG;CACxB,MAAM,QAAQ,SAAS;CAEvB,MAAM,yBAAyB,cAAsC;EACnE,IAAI,CAAC,gBAAgB,OAAO,CAAC;EAE7B,MAAM,QAAQ,OACX,OAAO;GAAC,MAAM;GAAW,mBAAmB;GAAQ,MAAM;EAAa,CAAC,CAAC,CACzE,MAAM,CAAC,CACP,KAAK,KAAK,CAAC,CACX,iBAAiB,CAAC,CAClB,OAAO,CAAC;EAEX,OAAO;GACL,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;EACrC;CACF,GAAG;EAAC;EAAgB;EAAiB,MAAM;EAAW,MAAM;CAAa,CAAC;CAE1E,MAAM,YAAuB,eACpB;EACL,WAAW,UAAU,OAAO,mBAAmB,OAAO;EACtD,OAAO,cAAc,OAAO;EAC5B;CACF,IACA;EAAC;EAAS;EAAY;CAAW,CACnC;CAEA,MAAM,CAAC,OAAO,YAAY,SAAS,SAAS,eAAe,KAAA,CAAS;CACpE,gBAAgB;EACd,SAAS,SAAS,QAAQ,YAAY,IAAI,KAAA,CAAS;CACrD,GAAG,CAAC,MAAM,CAAC;CAEX,MAAM,gBAAgB,kBAAkB;EACtC,IAAI,CAAC,OACH,OAAO,oBAAC,MAAD;GAAM,OAAO,EAAE,cAAc,GAAG,kBAAkB,GAAG;GAAU,GAAI;EAAY,CAAA;EAExF,OACE,oBAAA,YAAA,EAAA,UACG,MAAM,KAAK,MAAM,UAAU;GAC1B,OACE,oBAAC,MAAD;IAEE,UAAU;IACV,OACE;KACE,WAAW,GAAG,QAAQ,KAAK,OAAO,EAAE;KACpC,cAAc,GAAG,kBAAkB;IACrC;IAEF,GAAI;GACL,GATM,IASN;EAEL,CAAC,EACD,CAAA;CAEN,GAAG;EAAC;EAAO;EAAmB;CAAS,CAAC;CAExC,OACE,qBAAC,OAAD;EACE,WAAW,GAAG,OAAO,WAAW,SAAS;EACpC;EACL,OAAO,OAAO;GAAE,WAAW;GAAc,GAAG;EAAM,IAAI;EACtD,GAAI;YAJN;GAME,oBAAC,MAAD;IACE,OAAO,aAAa,OAAO;IACd;IACb,OAAO,EAAE,QAAQ,EAAE;GACpB,CAAA;GACA,aAAa,oBAAC,eAAD,CAAgB,CAAA;GAC7B,kBACC,oBAAC,OAAD;IACE,WAAW,OAAO;IAClB,OAAO;KACL,GAAI,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;KAC5C,GAAG;IACL;cAEA,oBAAC,OAAD,EAAK,WAAW,OAAO,WAAa,CAAA;GACjC,CAAA;EAEJ;;AAET,CACF;AAEA,eAAe,cAAc"}
1
+ {"version":3,"file":"GridBackground.mjs","names":[],"sources":["../../../src/awesome/GridBackground/GridBackground.tsx"],"sourcesContent":["'use client';\n\nimport { useSize } from 'ahooks';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport chroma from 'chroma-js';\nimport { shuffle } from 'es-toolkit/compat';\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport Grid, { type GridProps } from './components/Grid';\nimport { styles } from './style';\nimport type { GridBackgroundProps } from './type';\n\nconst initialGroup = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\n\nconst GridBackground = memo<GridBackgroundProps>(\n ({\n flip,\n reverse,\n showBackground,\n backgroundColor,\n random,\n animationDuration = 8,\n className,\n colorFront,\n colorBack,\n strokeWidth,\n style,\n animation,\n ...rest\n }) => {\n const ref = useRef(null);\n const size = useSize(ref);\n const theme = useTheme();\n\n const backgroundCssVariables = useMemo<Record<string, string>>(() => {\n if (!showBackground) return {} as Record<string, string>;\n\n const scale = chroma\n .bezier([theme.colorText, backgroundColor || 'blue', theme.colorBgLayout])\n .scale()\n .mode('lch')\n .correctLightness()\n .colors(6);\n\n return {\n '--grid-background-color-1': scale[1],\n '--grid-background-color-2': scale[2],\n '--grid-background-color-3': scale[3],\n '--grid-background-color-4': scale[4],\n };\n }, [showBackground, backgroundColor, theme.colorText, theme.colorBgLayout]);\n\n const gridProps: GridProps = useMemo(\n () => ({\n className: reverse ? styles.highlightReverse : styles.highlight,\n color: colorFront || cssVar.colorText,\n strokeWidth,\n }),\n [reverse, colorFront, strokeWidth],\n );\n\n const [group, setGroup] = useState(random ? initialGroup : undefined);\n useEffect(() => {\n setGroup(random ? shuffle(initialGroup) : undefined);\n }, [random]);\n\n const HighlightGrid = useCallback(() => {\n if (!group)\n return <Grid style={{ '--duration': `${animationDuration}s` } as any} {...gridProps} />;\n\n return (\n <>\n {group.map((item, index) => {\n return (\n <Grid\n key={item}\n linePick={item}\n style={\n {\n '--delay': `${index + Math.random()}s`,\n '--duration': `${animationDuration}s`,\n } as any\n }\n {...gridProps}\n />\n );\n })}\n </>\n );\n }, [group, animationDuration, gridProps]);\n\n return (\n <div\n className={cx(styles.container, className)}\n ref={ref}\n style={flip ? { transform: 'scaleY(-1)', ...style } : style}\n {...rest}\n >\n <Grid\n color={colorBack || cssVar.colorBorder}\n strokeWidth={strokeWidth}\n style={{ zIndex: 2 }}\n />\n {animation && <HighlightGrid />}\n {showBackground && (\n <div\n className={styles.backgroundContainer}\n style={{\n ...(size ? { fontSize: size.width / 80 } : {}),\n ...backgroundCssVariables,\n }}\n >\n <div className={styles.background} />\n </div>\n )}\n </div>\n );\n },\n);\n\nGridBackground.displayName = 'GridBackground';\n\nexport default GridBackground;\n"],"mappings":";;;;;;;;;;AAYA,MAAM,eAAe;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAI;CAAI;CAAI;CAAI;AAAE;AAEtE,MAAM,iBAAiB,MACpB,EACC,MACA,SACA,gBACA,iBACA,QACA,oBAAoB,GACpB,WACA,YACA,WACA,aACA,OACA,WACA,GAAG,WACC;CACJ,MAAM,MAAM,OAAO,IAAI;CACvB,MAAM,OAAO,QAAQ,GAAG;CACxB,MAAM,QAAQ,SAAS;CAEvB,MAAM,yBAAyB,cAAsC;EACnE,IAAI,CAAC,gBAAgB,OAAO,CAAC;EAE7B,MAAM,QAAQ,OACX,OAAO;GAAC,MAAM;GAAW,mBAAmB;GAAQ,MAAM;EAAa,CAAC,CAAC,CACzE,MAAM,CAAC,CACP,KAAK,KAAK,CAAC,CACX,iBAAiB,CAAC,CAClB,OAAO,CAAC;EAEX,OAAO;GACL,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;GACnC,6BAA6B,MAAM;EACrC;CACF,GAAG;EAAC;EAAgB;EAAiB,MAAM;EAAW,MAAM;CAAa,CAAC;CAE1E,MAAM,YAAuB,eACpB;EACL,WAAW,UAAU,OAAO,mBAAmB,OAAO;EACtD,OAAO,cAAc,OAAO;EAC5B;CACF,IACA;EAAC;EAAS;EAAY;CAAW,CACnC;CAEA,MAAM,CAAC,OAAO,YAAY,SAAS,SAAS,eAAe,KAAA,CAAS;CACpE,gBAAgB;EACd,SAAS,SAAS,QAAQ,YAAY,IAAI,KAAA,CAAS;CACrD,GAAG,CAAC,MAAM,CAAC;CAEX,MAAM,gBAAgB,kBAAkB;EACtC,IAAI,CAAC,OACH,OAAO,oBAAC,MAAD;GAAM,OAAO,EAAE,cAAc,GAAG,kBAAkB,GAAG;GAAU,GAAI;EAAY,CAAA;EAExF,OACE,oBAAA,YAAA,EAAA,UACG,MAAM,KAAK,MAAM,UAAU;GAC1B,OACE,oBAAC,MAAD;IAEE,UAAU;IACV,OACE;KACE,WAAW,GAAG,QAAQ,KAAK,OAAO,EAAE;KACpC,cAAc,GAAG,kBAAkB;IACrC;IAEF,GAAI;GACL,GATM,IASN;EAEL,CAAC,EACD,CAAA;CAEN,GAAG;EAAC;EAAO;EAAmB;CAAS,CAAC;CAExC,OACE,qBAAC,OAAD;EACE,WAAW,GAAG,OAAO,WAAW,SAAS;EACpC;EACL,OAAO,OAAO;GAAE,WAAW;GAAc,GAAG;EAAM,IAAI;EACtD,GAAI;EAJN,UAAA;GAME,oBAAC,MAAD;IACE,OAAO,aAAa,OAAO;IACd;IACb,OAAO,EAAE,QAAQ,EAAE;GACpB,CAAA;GACA,aAAa,oBAAC,eAAD,CAAgB,CAAA;GAC7B,kBACC,oBAAC,OAAD;IACE,WAAW,OAAO;IAClB,OAAO;KACL,GAAI,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;KAC5C,GAAG;IACL;IAEA,UAAA,oBAAC,OAAD,EAAK,WAAW,OAAO,WAAa,CAAA;GACjC,CAAA;EAEJ;;AAET,CACF;AAEA,eAAe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridShowcase.mjs","names":["Flexbox"],"sources":["../../../src/awesome/GridBackground/GridShowcase.tsx"],"sourcesContent":["'use client';\n\nimport { useTheme } from 'antd-style';\nimport { rgba } from 'polished';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport GridBackground from './GridBackground';\nimport type { GridShowcaseProps } from './type';\n\nconst GridShowcase = memo<GridShowcaseProps>(\n ({ style, children, backgroundColor = '#001dff', innerProps, ...rest }) => {\n const theme = useTheme();\n\n return (\n <Flexbox style={{ position: 'relative', ...style }} {...rest}>\n <GridBackground\n animation\n flip\n colorBack={rgba(theme.colorText, 0.12)}\n colorFront={rgba(theme.colorText, 0.6)}\n />\n <Flexbox align={'center'} {...innerProps} style={{ zIndex: 4, ...innerProps?.style }}>\n {children}\n </Flexbox>\n <GridBackground\n animation\n random\n reverse\n showBackground\n backgroundColor={backgroundColor}\n colorBack={rgba(theme.colorText, 0.24)}\n colorFront={theme.colorText}\n style={{ zIndex: 0 }}\n />\n </Flexbox>\n );\n },\n);\n\nGridShowcase.displayName = 'GridShowcase';\n\nexport default GridShowcase;\n"],"mappings":";;;;;;;;AAWA,MAAM,eAAe,MAClB,EAAE,OAAO,UAAU,kBAAkB,WAAW,YAAY,GAAG,WAAW;CACzE,MAAM,QAAQ,SAAS;CAEvB,OACE,qBAACA,mBAAD;EAAS,OAAO;GAAE,UAAU;GAAY,GAAG;EAAM;EAAG,GAAI;YAAxD;GACE,oBAAC,gBAAD;IACE,WAAA;IACA,MAAA;IACA,WAAW,KAAK,MAAM,WAAW,GAAI;IACrC,YAAY,KAAK,MAAM,WAAW,EAAG;GACtC,CAAA;GACD,oBAACA,mBAAD;IAAS,OAAO;IAAU,GAAI;IAAY,OAAO;KAAE,QAAQ;KAAG,GAAG,YAAY;IAAM;IAChF;GACM,CAAA;GACT,oBAAC,gBAAD;IACE,WAAA;IACA,QAAA;IACA,SAAA;IACA,gBAAA;IACiB;IACjB,WAAW,KAAK,MAAM,WAAW,GAAI;IACrC,YAAY,MAAM;IAClB,OAAO,EAAE,QAAQ,EAAE;GACpB,CAAA;EACM;;AAEb,CACF;AAEA,aAAa,cAAc"}
1
+ {"version":3,"file":"GridShowcase.mjs","names":["Flexbox"],"sources":["../../../src/awesome/GridBackground/GridShowcase.tsx"],"sourcesContent":["'use client';\n\nimport { useTheme } from 'antd-style';\nimport { rgba } from 'polished';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport GridBackground from './GridBackground';\nimport type { GridShowcaseProps } from './type';\n\nconst GridShowcase = memo<GridShowcaseProps>(\n ({ style, children, backgroundColor = '#001dff', innerProps, ...rest }) => {\n const theme = useTheme();\n\n return (\n <Flexbox style={{ position: 'relative', ...style }} {...rest}>\n <GridBackground\n animation\n flip\n colorBack={rgba(theme.colorText, 0.12)}\n colorFront={rgba(theme.colorText, 0.6)}\n />\n <Flexbox align={'center'} {...innerProps} style={{ zIndex: 4, ...innerProps?.style }}>\n {children}\n </Flexbox>\n <GridBackground\n animation\n random\n reverse\n showBackground\n backgroundColor={backgroundColor}\n colorBack={rgba(theme.colorText, 0.24)}\n colorFront={theme.colorText}\n style={{ zIndex: 0 }}\n />\n </Flexbox>\n );\n },\n);\n\nGridShowcase.displayName = 'GridShowcase';\n\nexport default GridShowcase;\n"],"mappings":";;;;;;;;AAWA,MAAM,eAAe,MAClB,EAAE,OAAO,UAAU,kBAAkB,WAAW,YAAY,GAAG,WAAW;CACzE,MAAM,QAAQ,SAAS;CAEvB,OACE,qBAACA,mBAAD;EAAS,OAAO;GAAE,UAAU;GAAY,GAAG;EAAM;EAAG,GAAI;EAAxD,UAAA;GACE,oBAAC,gBAAD;IACE,WAAA;IACA,MAAA;IACA,WAAW,KAAK,MAAM,WAAW,GAAI;IACrC,YAAY,KAAK,MAAM,WAAW,EAAG;GACtC,CAAA;GACD,oBAACA,mBAAD;IAAS,OAAO;IAAU,GAAI;IAAY,OAAO;KAAE,QAAQ;KAAG,GAAG,YAAY;IAAM;IAChF;GACM,CAAA;GACT,oBAAC,gBAAD;IACE,WAAA;IACA,QAAA;IACA,SAAA;IACA,gBAAA;IACiB;IACjB,WAAW,KAAK,MAAM,WAAW,GAAI;IACrC,YAAY,MAAM;IAClB,OAAO,EAAE,QAAQ,EAAE;GACpB,CAAA;EACM;;AAEb,CACF;AAEA,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.mjs","names":[],"sources":["../../../../src/awesome/GridBackground/components/Grid.tsx"],"sourcesContent":["import { isUndefined } from 'es-toolkit/compat';\nimport { memo, useCallback } from 'react';\n\nimport type { SvgProps } from '@/types';\n\nenum Line {\n l7,\n l6,\n l5,\n l4,\n l3,\n l2,\n l1,\n center,\n r1,\n r2,\n r3,\n r4,\n r5,\n r6,\n r7,\n}\n\nexport interface GridProps extends SvgProps {\n color?: string;\n linePick?: Line;\n strokeWidth?: number;\n}\n\nconst Grid = memo<GridProps>(({ color = '#fff', strokeWidth = 3, linePick, ...rest }) => {\n const isUnpick = isUndefined(linePick);\n\n const showLine = useCallback((l: Line) => isUnpick || linePick === l, [linePick]);\n\n const vLine = (\n <>\n {showLine(Line.l7) && <path d=\"M2 420v-60.343c0-21.82 14.15-41.12 34.959-47.684L1026 0h0\" />}\n {showLine(Line.l6) && (\n <path d=\"M268 420v-62.077c0-20.977 13.094-39.724 32.789-46.944L1149 0h0\" />\n )}\n {showLine(Line.l5) && <path d=\"M534 420v-64.358a50 50 0 0129.884-45.775L1269 0h0\" />}\n {showLine(Line.l4) && <path d=\"M800 420v-67.395a50 50 0 0125.958-43.84L1389 0h0\" />}\n {showLine(Line.l3) && <path d=\"M1066 420v-71.645a50 50 0 0120.456-40.337L1507 0h0\" />}\n {showLine(Line.l2) && <path d=\"M1332 420v-77.506a50 50 0 0113.194-33.843L1629 0h0\" />}\n {showLine(Line.l1) && <path d=\"M1598 420v-86.225a50 50 0 014.438-20.594L1744 0h0\" />}\n {showLine(Line.center) && <path d=\"M1864 420V0h0\" />}\n {showLine(Line.r1) && <path d=\"M2130 420v-86.225a50 50 0 00-4.438-20.594L1984 0h0\" />}\n {showLine(Line.r2) && <path d=\"M2396 420v-77.506a50 50 0 00-13.194-33.843L2099 0h0\" />}\n {showLine(Line.r3) && <path d=\"M2662 420v-71.645a50 50 0 00-20.456-40.337L2221 0h0\" />}\n {showLine(Line.r4) && <path d=\"M2928 420v-67.395a50 50 0 00-25.958-43.84L2339 0h0\" />}\n {showLine(Line.r5) && <path d=\"M3194 420v-64.358a50 50 0 00-29.884-45.775L2459 0h0\" />}\n {showLine(Line.r6) && (\n <path d=\"M3460 420v-62.077c0-20.977-13.094-39.724-32.789-46.944L2579 0h0\" />\n )}\n {showLine(Line.r7) && (\n <path d=\"M3726 420v-60.343c0-21.82-14.15-41.12-34.959-47.684L2702 0h0\" />\n )}\n </>\n );\n\n const hLine = isUnpick && (\n <>\n <path d=\"M2835 42H892\" />\n <path d=\"M595 136h2538\" />\n <path d=\"M237 249h3254\" />\n </>\n );\n\n return (\n <svg\n style={{ width: '100%' }}\n viewBox=\"0 0 3728 422\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <g fill=\"none\" fillRule=\"evenodd\" stroke={color} strokeWidth={strokeWidth}>\n {vLine}\n {hLine}\n </g>\n </svg>\n );\n});\n\nGrid.displayName = 'Grid';\n\nexport default Grid;\n"],"mappings":";;;;AA6BA,MAAM,OAAO,MAAiB,EAAE,QAAQ,QAAQ,cAAc,GAAG,UAAU,GAAG,WAAW;CACvF,MAAM,WAAW,YAAY,QAAQ;CAErC,MAAM,WAAW,aAAa,MAAY,YAAY,aAAa,GAAG,CAAC,QAAQ,CAAC;CAEhF,MAAM,QACJ,qBAAA,YAAA,EAAA,UAAA;EACG,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,4DAA6D,CAAA;EAC1F,SAAA,CAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,iEAAkE,CAAA;EAE3E,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,oDAAqD,CAAA;EAClF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,mDAAoD,CAAA;EACjF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,oDAAqD,CAAA;EAClF,SAAA,CAAoB,KAAK,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;EAClD,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,kEAAmE,CAAA;EAE5E,SAAA,EAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,+DAAgE,CAAA;CAE1E,EAAA,CAAA;CAGJ,MAAM,QAAQ,YACZ,qBAAA,YAAA,EAAA,UAAA;EACE,oBAAC,QAAD,EAAM,GAAE,eAAgB,CAAA;EACxB,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;EACzB,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;CACzB,EAAA,CAAA;CAGJ,OACE,oBAAC,OAAD;EACE,OAAO,EAAE,OAAO,OAAO;EACvB,SAAQ;EACR,OAAM;EACN,GAAI;YAEJ,qBAAC,KAAD;GAAG,MAAK;GAAO,UAAS;GAAU,QAAQ;GAAoB;aAA9D,CACG,OACA,KACA;;CACA,CAAA;AAET,CAAC;AAED,KAAK,cAAc"}
1
+ {"version":3,"file":"Grid.mjs","names":[],"sources":["../../../../src/awesome/GridBackground/components/Grid.tsx"],"sourcesContent":["import { isUndefined } from 'es-toolkit/compat';\nimport { memo, useCallback } from 'react';\n\nimport type { SvgProps } from '@/types';\n\nenum Line {\n l7,\n l6,\n l5,\n l4,\n l3,\n l2,\n l1,\n center,\n r1,\n r2,\n r3,\n r4,\n r5,\n r6,\n r7,\n}\n\nexport interface GridProps extends SvgProps {\n color?: string;\n linePick?: Line;\n strokeWidth?: number;\n}\n\nconst Grid = memo<GridProps>(({ color = '#fff', strokeWidth = 3, linePick, ...rest }) => {\n const isUnpick = isUndefined(linePick);\n\n const showLine = useCallback((l: Line) => isUnpick || linePick === l, [linePick]);\n\n const vLine = (\n <>\n {showLine(Line.l7) && <path d=\"M2 420v-60.343c0-21.82 14.15-41.12 34.959-47.684L1026 0h0\" />}\n {showLine(Line.l6) && (\n <path d=\"M268 420v-62.077c0-20.977 13.094-39.724 32.789-46.944L1149 0h0\" />\n )}\n {showLine(Line.l5) && <path d=\"M534 420v-64.358a50 50 0 0129.884-45.775L1269 0h0\" />}\n {showLine(Line.l4) && <path d=\"M800 420v-67.395a50 50 0 0125.958-43.84L1389 0h0\" />}\n {showLine(Line.l3) && <path d=\"M1066 420v-71.645a50 50 0 0120.456-40.337L1507 0h0\" />}\n {showLine(Line.l2) && <path d=\"M1332 420v-77.506a50 50 0 0113.194-33.843L1629 0h0\" />}\n {showLine(Line.l1) && <path d=\"M1598 420v-86.225a50 50 0 014.438-20.594L1744 0h0\" />}\n {showLine(Line.center) && <path d=\"M1864 420V0h0\" />}\n {showLine(Line.r1) && <path d=\"M2130 420v-86.225a50 50 0 00-4.438-20.594L1984 0h0\" />}\n {showLine(Line.r2) && <path d=\"M2396 420v-77.506a50 50 0 00-13.194-33.843L2099 0h0\" />}\n {showLine(Line.r3) && <path d=\"M2662 420v-71.645a50 50 0 00-20.456-40.337L2221 0h0\" />}\n {showLine(Line.r4) && <path d=\"M2928 420v-67.395a50 50 0 00-25.958-43.84L2339 0h0\" />}\n {showLine(Line.r5) && <path d=\"M3194 420v-64.358a50 50 0 00-29.884-45.775L2459 0h0\" />}\n {showLine(Line.r6) && (\n <path d=\"M3460 420v-62.077c0-20.977-13.094-39.724-32.789-46.944L2579 0h0\" />\n )}\n {showLine(Line.r7) && (\n <path d=\"M3726 420v-60.343c0-21.82-14.15-41.12-34.959-47.684L2702 0h0\" />\n )}\n </>\n );\n\n const hLine = isUnpick && (\n <>\n <path d=\"M2835 42H892\" />\n <path d=\"M595 136h2538\" />\n <path d=\"M237 249h3254\" />\n </>\n );\n\n return (\n <svg\n style={{ width: '100%' }}\n viewBox=\"0 0 3728 422\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <g fill=\"none\" fillRule=\"evenodd\" stroke={color} strokeWidth={strokeWidth}>\n {vLine}\n {hLine}\n </g>\n </svg>\n );\n});\n\nGrid.displayName = 'Grid';\n\nexport default Grid;\n"],"mappings":";;;;AA6BA,MAAM,OAAO,MAAiB,EAAE,QAAQ,QAAQ,cAAc,GAAG,UAAU,GAAG,WAAW;CACvF,MAAM,WAAW,YAAY,QAAQ;CAErC,MAAM,WAAW,aAAa,MAAY,YAAY,aAAa,GAAG,CAAC,QAAQ,CAAC;CAEhF,MAAM,QACJ,qBAAA,YAAA,EAAA,UAAA;EACG,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,4DAA6D,CAAA;EAC1F,SAAA,CAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,iEAAkE,CAAA;EAE3E,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,oDAAqD,CAAA;EAClF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,mDAAoD,CAAA;EACjF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,oDAAqD,CAAA;EAClF,SAAA,CAAoB,KAAK,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;EAClD,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,CAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,qDAAsD,CAAA;EACnF,SAAA,EAAgB,KAAK,oBAAC,QAAD,EAAM,GAAE,sDAAuD,CAAA;EACpF,SAAA,EAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,kEAAmE,CAAA;EAE5E,SAAA,EAAgB,KACf,oBAAC,QAAD,EAAM,GAAE,+DAAgE,CAAA;CAE1E,EAAA,CAAA;CAGJ,MAAM,QAAQ,YACZ,qBAAA,YAAA,EAAA,UAAA;EACE,oBAAC,QAAD,EAAM,GAAE,eAAgB,CAAA;EACxB,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;EACzB,oBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;CACzB,EAAA,CAAA;CAGJ,OACE,oBAAC,OAAD;EACE,OAAO,EAAE,OAAO,OAAO;EACvB,SAAQ;EACR,OAAM;EACN,GAAI;EAEJ,UAAA,qBAAC,KAAD;GAAG,MAAK;GAAO,UAAS;GAAU,QAAQ;GAAoB;GAA9D,UAAA,CACG,OACA,KACA;;CACA,CAAA;AAET,CAAC;AAED,KAAK,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.mjs","names":["Flexbox","Button"],"sources":["../../../src/awesome/Hero/Hero.tsx"],"sourcesContent":["'use client';\n\nimport { GithubIcon } from '@lobehub/ui/icons';\nimport { ConfigProvider } from 'antd';\nimport { useResponsive } from 'antd-style';\nimport { memo, useCallback } from 'react';\n\nimport A from '@/A';\nimport AuroraBackground from '@/awesome/AuroraBackground';\nimport GradientButton from '@/awesome/GradientButton';\nimport Button from '@/Button';\nimport { Center, Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport { type HeroProps } from './type';\n\nconst Hero = memo<HeroProps>(({ title, description, actions, Link }) => {\n const { mobile } = useResponsive();\n\n const LinkRender = Link || A;\n\n const ButtonGroups = useCallback(\n () =>\n Boolean(actions?.length) && (\n <Flexbox horizontal className={styles.actions} gap={16} justify={'center'}>\n {actions!.map(({ text, link, openExternal, github, type }, index) => {\n const content =\n type === 'primary' ? (\n <GradientButton\n block={mobile}\n icon={github ? GithubIcon : undefined}\n key={index}\n size=\"large\"\n >\n {text}\n </GradientButton>\n ) : (\n <Button\n block={mobile}\n icon={github ? GithubIcon : undefined}\n key={index}\n size=\"large\"\n type=\"primary\"\n >\n {text}\n </Button>\n );\n\n return openExternal ? (\n <A href={link} key={text} target={openExternal ? '_blank' : undefined}>\n {content}\n </A>\n ) : (\n <LinkRender key={text} to={link}>\n {content}\n </LinkRender>\n );\n })}\n </Flexbox>\n ),\n [actions],\n );\n\n return (\n <>\n <AuroraBackground />\n <ConfigProvider theme={{ token: { fontSize: 16 } }}>\n <Flexbox align={'center'} style={{ zIndex: 1 }}>\n <Flexbox horizontal className={styles.container} distribution={'center'}>\n <Center>\n {title && (\n <Center\n horizontal\n as={'h1'}\n className={styles.title}\n dangerouslySetInnerHTML={{ __html: title }}\n gap={'0.25em'}\n wrap={'wrap'}\n />\n )}\n {description && (\n <p className={styles.desc} dangerouslySetInnerHTML={{ __html: description }} />\n )}\n <ButtonGroups />\n </Center>\n </Flexbox>\n </Flexbox>\n </ConfigProvider>\n </>\n );\n});\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,OAAO,MAAiB,EAAE,OAAO,aAAa,SAAS,WAAW;CACtE,MAAM,EAAE,WAAW,cAAc;CAEjC,MAAM,aAAa,QAAQ;CAE3B,MAAM,eAAe,kBAEjB,QAAQ,SAAS,MAAM,KACrB,oBAACA,mBAAD;EAAS,YAAA;EAAW,WAAW,OAAO;EAAS,KAAK;EAAI,SAAS;YAC9D,QAAS,KAAK,EAAE,MAAM,MAAM,cAAc,QAAQ,QAAQ,UAAU;GACnE,MAAM,UACJ,SAAS,YACP,oBAAC,gBAAD;IACE,OAAO;IACP,MAAM,SAAS,aAAa,KAAA;IAE5B,MAAK;cAEJ;GACa,GAJT,KAIS,IAEhB,oBAACC,UAAD;IACE,OAAO;IACP,MAAM,SAAS,aAAa,KAAA;IAE5B,MAAK;IACL,MAAK;cAEJ;GACK,GALD,KAKC;GAGZ,OAAO,eACL,oBAAC,GAAD;IAAG,MAAM;IAAiB,QAAQ,eAAe,WAAW,KAAA;cACzD;GACA,GAFiB,IAEjB,IAEH,oBAAC,YAAD;IAAuB,IAAI;cACxB;GACS,GAFK,IAEL;EAEhB,CAAC;CACM,CAAA,GAEb,CAAC,OAAO,CACV;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,kBAAD,CAAmB,CAAA,GACnB,oBAAC,gBAAD;EAAgB,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE;YAC/C,oBAACD,mBAAD;GAAS,OAAO;GAAU,OAAO,EAAE,QAAQ,EAAE;aAC3C,oBAACA,mBAAD;IAAS,YAAA;IAAW,WAAW,OAAO;IAAW,cAAc;cAC7D,qBAAC,QAAD,EAAA,UAAA;KACG,SACC,oBAAC,QAAD;MACE,YAAA;MACA,IAAI;MACJ,WAAW,OAAO;MAClB,yBAAyB,EAAE,QAAQ,MAAM;MACzC,KAAK;MACL,MAAM;KACP,CAAA;KAEF,eACC,oBAAC,KAAD;MAAG,WAAW,OAAO;MAAM,yBAAyB,EAAE,QAAQ,YAAY;KAAI,CAAA;KAEhF,oBAAC,cAAD,CAAe,CAAA;IACT,EAAA,CAAA;GACD,CAAA;EACF,CAAA;CACK,CAAA,CAChB,EAAA,CAAA;AAEN,CAAC;AAED,KAAK,cAAc"}
1
+ {"version":3,"file":"Hero.mjs","names":["Flexbox","Button"],"sources":["../../../src/awesome/Hero/Hero.tsx"],"sourcesContent":["'use client';\n\nimport { GithubIcon } from '@lobehub/ui/icons';\nimport { ConfigProvider } from 'antd';\nimport { useResponsive } from 'antd-style';\nimport { memo, useCallback } from 'react';\n\nimport A from '@/A';\nimport AuroraBackground from '@/awesome/AuroraBackground';\nimport GradientButton from '@/awesome/GradientButton';\nimport Button from '@/Button';\nimport { Center, Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport { type HeroProps } from './type';\n\nconst Hero = memo<HeroProps>(({ title, description, actions, Link }) => {\n const { mobile } = useResponsive();\n\n const LinkRender = Link || A;\n\n const ButtonGroups = useCallback(\n () =>\n Boolean(actions?.length) && (\n <Flexbox horizontal className={styles.actions} gap={16} justify={'center'}>\n {actions!.map(({ text, link, openExternal, github, type }, index) => {\n const content =\n type === 'primary' ? (\n <GradientButton\n block={mobile}\n icon={github ? GithubIcon : undefined}\n key={index}\n size=\"large\"\n >\n {text}\n </GradientButton>\n ) : (\n <Button\n block={mobile}\n icon={github ? GithubIcon : undefined}\n key={index}\n size=\"large\"\n type=\"primary\"\n >\n {text}\n </Button>\n );\n\n return openExternal ? (\n <A href={link} key={text} target={openExternal ? '_blank' : undefined}>\n {content}\n </A>\n ) : (\n <LinkRender key={text} to={link}>\n {content}\n </LinkRender>\n );\n })}\n </Flexbox>\n ),\n [actions],\n );\n\n return (\n <>\n <AuroraBackground />\n <ConfigProvider theme={{ token: { fontSize: 16 } }}>\n <Flexbox align={'center'} style={{ zIndex: 1 }}>\n <Flexbox horizontal className={styles.container} distribution={'center'}>\n <Center>\n {title && (\n <Center\n horizontal\n as={'h1'}\n className={styles.title}\n dangerouslySetInnerHTML={{ __html: title }}\n gap={'0.25em'}\n wrap={'wrap'}\n />\n )}\n {description && (\n <p className={styles.desc} dangerouslySetInnerHTML={{ __html: description }} />\n )}\n <ButtonGroups />\n </Center>\n </Flexbox>\n </Flexbox>\n </ConfigProvider>\n </>\n );\n});\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,OAAO,MAAiB,EAAE,OAAO,aAAa,SAAS,WAAW;CACtE,MAAM,EAAE,WAAW,cAAc;CAEjC,MAAM,aAAa,QAAQ;CAE3B,MAAM,eAAe,kBAEjB,QAAQ,SAAS,MAAM,KACrB,oBAACA,mBAAD;EAAS,YAAA;EAAW,WAAW,OAAO;EAAS,KAAK;EAAI,SAAS;EAC9D,UAAA,QAAS,KAAK,EAAE,MAAM,MAAM,cAAc,QAAQ,QAAQ,UAAU;GACnE,MAAM,UACJ,SAAS,YACP,oBAAC,gBAAD;IACE,OAAO;IACP,MAAM,SAAS,aAAa,KAAA;IAE5B,MAAK;IAEJ,UAAA;GACa,GAJT,KAIS,IAEhB,oBAACC,UAAD;IACE,OAAO;IACP,MAAM,SAAS,aAAa,KAAA;IAE5B,MAAK;IACL,MAAK;IAEJ,UAAA;GACK,GALD,KAKC;GAGZ,OAAO,eACL,oBAAC,GAAD;IAAG,MAAM;IAAiB,QAAQ,eAAe,WAAW,KAAA;IACzD,UAAA;GACA,GAFiB,IAEjB,IAEH,oBAAC,YAAD;IAAuB,IAAI;IACxB,UAAA;GACS,GAFK,IAEL;EAEhB,CAAC;CACM,CAAA,GAEb,CAAC,OAAO,CACV;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,kBAAD,CAAmB,CAAA,GACnB,oBAAC,gBAAD;EAAgB,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE;EAC/C,UAAA,oBAACD,mBAAD;GAAS,OAAO;GAAU,OAAO,EAAE,QAAQ,EAAE;GAC3C,UAAA,oBAACA,mBAAD;IAAS,YAAA;IAAW,WAAW,OAAO;IAAW,cAAc;IAC7D,UAAA,qBAAC,QAAD,EAAA,UAAA;KACG,SACC,oBAAC,QAAD;MACE,YAAA;MACA,IAAI;MACJ,WAAW,OAAO;MAClB,yBAAyB,EAAE,QAAQ,MAAM;MACzC,KAAK;MACL,MAAM;KACP,CAAA;KAEF,eACC,oBAAC,KAAD;MAAG,WAAW,OAAO;MAAM,yBAAyB,EAAE,QAAQ,YAAY;KAAI,CAAA;KAEhF,oBAAC,cAAD,CAAe,CAAA;IACT,EAAA,CAAA;GACD,CAAA;EACF,CAAA;CACK,CAAA,CAChB,EAAA,CAAA;AAEN,CAAC;AAED,KAAK,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParentSize.mjs","names":[],"sources":["../../../src/awesome/Spline/ParentSize.tsx"],"sourcesContent":["import { debounce } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n memo,\n type ReactNode,\n type Ref,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\ninterface ResizeObserverCallback {\n (entries: ResizeObserverEntry[], observer: ResizeObserver): void;\n}\n\ninterface ResizeObserverPolyfill {\n new (callback: ResizeObserverCallback): ResizeObserver;\n}\n\n// @TODO remove when upgraded to TS 4 which has its own declaration\ninterface PrivateWindow {\n ResizeObserver: ResizeObserverPolyfill;\n}\n\nexport interface ParentSizeProps {\n /** Child render function `({ width, height, top, left, ref, resize }) => ReactNode`. */\n children: (\n args: {\n ref: HTMLDivElement | null;\n resize: (state: ParentSizeState) => void;\n } & ParentSizeState,\n ) => ReactNode;\n /** Optional `className` to add to the parent `div` wrapper used for size measurement. */\n className?: string;\n /** Child render updates upon resize are delayed until `debounceTime` milliseconds _after_ the last resize event is observed. */\n debounceTime?: number;\n /** Optional flag to toggle leading debounce calls. When set to true this will ensure that the component always renders immediately. (defaults to true) */\n enableDebounceLeadingCall?: boolean;\n /** Optional dimensions provided won't trigger a state change when changed. */\n ignoreDimensions?: keyof ParentSizeState | (keyof ParentSizeState)[];\n /** Optional `style` object to apply to the parent `div` wrapper used for size measurement. */\n parentSizeStyles?: CSSProperties;\n ref?: Ref<HTMLDivElement>;\n /** Optionally inject a ResizeObserver polyfill, else this *must* be globally available. */\n resizeObserverPolyfill?: ResizeObserverPolyfill;\n}\n\ntype ParentSizeState = {\n height: number;\n left: number;\n top: number;\n width: number;\n};\n\nexport type ParentSizeProvidedProps = ParentSizeState;\n\nconst defaultIgnoreDimensions: ParentSizeProps['ignoreDimensions'] = [];\nconst defaultParentSizeStyles = { height: '100%', width: '100%' };\n\nconst ParentSize = memo<ParentSizeProps>(\n ({\n ref,\n className,\n children,\n debounceTime = 300,\n ignoreDimensions = defaultIgnoreDimensions,\n parentSizeStyles,\n enableDebounceLeadingCall = true,\n resizeObserverPolyfill,\n ...restProps\n }) => {\n const target = useRef<HTMLDivElement | null>(null);\n const animationFrameID = useRef(0);\n\n const [state, setState] = useState<ParentSizeState>({\n height: 0,\n left: 0,\n top: 0,\n width: 0,\n });\n\n const resize = useMemo(() => {\n const normalized = Array.isArray(ignoreDimensions) ? ignoreDimensions : [ignoreDimensions];\n\n return debounce(\n (incoming: ParentSizeState) => {\n setState((existing) => {\n const stateKeys = Object.keys(existing) as (keyof ParentSizeState)[];\n const keysWithChanges = stateKeys.filter((key) => existing[key] !== incoming[key]);\n const shouldBail = keysWithChanges.every((key) => normalized.includes(key));\n\n return shouldBail ? existing : incoming;\n });\n },\n debounceTime,\n { leading: enableDebounceLeadingCall },\n );\n }, [debounceTime, enableDebounceLeadingCall, ignoreDimensions]);\n\n useEffect(() => {\n const LocalResizeObserver =\n resizeObserverPolyfill || (window as unknown as PrivateWindow).ResizeObserver;\n\n const observer = new LocalResizeObserver((entries) => {\n for (const entry of entries) {\n const { left, top, width, height } = entry?.contentRect ?? {};\n animationFrameID.current = window.requestAnimationFrame(() => {\n resize({ height, left, top, width });\n });\n }\n });\n if (target.current) observer.observe(target.current);\n\n return () => {\n window.cancelAnimationFrame(animationFrameID.current);\n observer.disconnect();\n resize.cancel();\n };\n }, [resize, resizeObserverPolyfill]);\n\n return (\n <div\n className={className}\n ref={mergeRefs<HTMLDivElement>([ref, target])}\n style={{ ...defaultParentSizeStyles, ...parentSizeStyles }}\n {...restProps}\n >\n {children({\n ...state,\n ref: target.current,\n resize,\n })}\n </div>\n );\n },\n);\n\nexport default ParentSize;\n"],"mappings":";;;;;AA0DA,MAAM,0BAA+D,CAAC;AACtE,MAAM,0BAA0B;CAAE,QAAQ;CAAQ,OAAO;AAAO;AAEhE,MAAM,aAAa,MAChB,EACC,KACA,WACA,UACA,eAAe,KACf,mBAAmB,yBACnB,kBACA,4BAA4B,MAC5B,wBACA,GAAG,gBACC;CACJ,MAAM,SAAS,OAA8B,IAAI;CACjD,MAAM,mBAAmB,OAAO,CAAC;CAEjC,MAAM,CAAC,OAAO,YAAY,SAA0B;EAClD,QAAQ;EACR,MAAM;EACN,KAAK;EACL,OAAO;CACT,CAAC;CAED,MAAM,SAAS,cAAc;EAC3B,MAAM,aAAa,MAAM,QAAQ,gBAAgB,IAAI,mBAAmB,CAAC,gBAAgB;EAEzF,OAAO,UACJ,aAA8B;GAC7B,UAAU,aAAa;IAKrB,OAJkB,OAAO,KAAK,QACE,CAAC,CAAC,QAAQ,QAAQ,SAAS,SAAS,SAAS,IAC5C,CAAC,CAAC,OAAO,QAAQ,WAAW,SAAS,GAAG,CAEzD,IAAI,WAAW;GACjC,CAAC;EACH,GACA,cACA,EAAE,SAAS,0BAA0B,CACvC;CACF,GAAG;EAAC;EAAc;EAA2B;CAAgB,CAAC;CAE9D,gBAAgB;EAId,MAAM,WAAW,KAFf,0BAA2B,OAAoC,iBAEvB,YAAY;GACpD,KAAK,MAAM,SAAS,SAAS;IAC3B,MAAM,EAAE,MAAM,KAAK,OAAO,WAAW,OAAO,eAAe,CAAC;IAC5D,iBAAiB,UAAU,OAAO,4BAA4B;KAC5D,OAAO;MAAE;MAAQ;MAAM;MAAK;KAAM,CAAC;IACrC,CAAC;GACH;EACF,CAAC;EACD,IAAI,OAAO,SAAS,SAAS,QAAQ,OAAO,OAAO;EAEnD,aAAa;GACX,OAAO,qBAAqB,iBAAiB,OAAO;GACpD,SAAS,WAAW;GACpB,OAAO,OAAO;EAChB;CACF,GAAG,CAAC,QAAQ,sBAAsB,CAAC;CAEnC,OACE,oBAAC,OAAD;EACa;EACX,KAAK,UAA0B,CAAC,KAAK,MAAM,CAAC;EAC5C,OAAO;GAAE,GAAG;GAAyB,GAAG;EAAiB;EACzD,GAAI;YAEH,SAAS;GACR,GAAG;GACH,KAAK,OAAO;GACZ;EACF,CAAC;CACE,CAAA;AAET,CACF"}
1
+ {"version":3,"file":"ParentSize.mjs","names":[],"sources":["../../../src/awesome/Spline/ParentSize.tsx"],"sourcesContent":["import { debounce } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n memo,\n type ReactNode,\n type Ref,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\ninterface ResizeObserverCallback {\n (entries: ResizeObserverEntry[], observer: ResizeObserver): void;\n}\n\ninterface ResizeObserverPolyfill {\n new (callback: ResizeObserverCallback): ResizeObserver;\n}\n\n// @TODO remove when upgraded to TS 4 which has its own declaration\ninterface PrivateWindow {\n ResizeObserver: ResizeObserverPolyfill;\n}\n\nexport interface ParentSizeProps {\n /** Child render function `({ width, height, top, left, ref, resize }) => ReactNode`. */\n children: (\n args: {\n ref: HTMLDivElement | null;\n resize: (state: ParentSizeState) => void;\n } & ParentSizeState,\n ) => ReactNode;\n /** Optional `className` to add to the parent `div` wrapper used for size measurement. */\n className?: string;\n /** Child render updates upon resize are delayed until `debounceTime` milliseconds _after_ the last resize event is observed. */\n debounceTime?: number;\n /** Optional flag to toggle leading debounce calls. When set to true this will ensure that the component always renders immediately. (defaults to true) */\n enableDebounceLeadingCall?: boolean;\n /** Optional dimensions provided won't trigger a state change when changed. */\n ignoreDimensions?: keyof ParentSizeState | (keyof ParentSizeState)[];\n /** Optional `style` object to apply to the parent `div` wrapper used for size measurement. */\n parentSizeStyles?: CSSProperties;\n ref?: Ref<HTMLDivElement>;\n /** Optionally inject a ResizeObserver polyfill, else this *must* be globally available. */\n resizeObserverPolyfill?: ResizeObserverPolyfill;\n}\n\ntype ParentSizeState = {\n height: number;\n left: number;\n top: number;\n width: number;\n};\n\nexport type ParentSizeProvidedProps = ParentSizeState;\n\nconst defaultIgnoreDimensions: ParentSizeProps['ignoreDimensions'] = [];\nconst defaultParentSizeStyles = { height: '100%', width: '100%' };\n\nconst ParentSize = memo<ParentSizeProps>(\n ({\n ref,\n className,\n children,\n debounceTime = 300,\n ignoreDimensions = defaultIgnoreDimensions,\n parentSizeStyles,\n enableDebounceLeadingCall = true,\n resizeObserverPolyfill,\n ...restProps\n }) => {\n const target = useRef<HTMLDivElement | null>(null);\n const animationFrameID = useRef(0);\n\n const [state, setState] = useState<ParentSizeState>({\n height: 0,\n left: 0,\n top: 0,\n width: 0,\n });\n\n const resize = useMemo(() => {\n const normalized = Array.isArray(ignoreDimensions) ? ignoreDimensions : [ignoreDimensions];\n\n return debounce(\n (incoming: ParentSizeState) => {\n setState((existing) => {\n const stateKeys = Object.keys(existing) as (keyof ParentSizeState)[];\n const keysWithChanges = stateKeys.filter((key) => existing[key] !== incoming[key]);\n const shouldBail = keysWithChanges.every((key) => normalized.includes(key));\n\n return shouldBail ? existing : incoming;\n });\n },\n debounceTime,\n { leading: enableDebounceLeadingCall },\n );\n }, [debounceTime, enableDebounceLeadingCall, ignoreDimensions]);\n\n useEffect(() => {\n const LocalResizeObserver =\n resizeObserverPolyfill || (window as unknown as PrivateWindow).ResizeObserver;\n\n const observer = new LocalResizeObserver((entries) => {\n for (const entry of entries) {\n const { left, top, width, height } = entry?.contentRect ?? {};\n animationFrameID.current = window.requestAnimationFrame(() => {\n resize({ height, left, top, width });\n });\n }\n });\n if (target.current) observer.observe(target.current);\n\n return () => {\n window.cancelAnimationFrame(animationFrameID.current);\n observer.disconnect();\n resize.cancel();\n };\n }, [resize, resizeObserverPolyfill]);\n\n return (\n <div\n className={className}\n ref={mergeRefs<HTMLDivElement>([ref, target])}\n style={{ ...defaultParentSizeStyles, ...parentSizeStyles }}\n {...restProps}\n >\n {children({\n ...state,\n ref: target.current,\n resize,\n })}\n </div>\n );\n },\n);\n\nexport default ParentSize;\n"],"mappings":";;;;;AA0DA,MAAM,0BAA+D,CAAC;AACtE,MAAM,0BAA0B;CAAE,QAAQ;CAAQ,OAAO;AAAO;AAEhE,MAAM,aAAa,MAChB,EACC,KACA,WACA,UACA,eAAe,KACf,mBAAmB,yBACnB,kBACA,4BAA4B,MAC5B,wBACA,GAAG,gBACC;CACJ,MAAM,SAAS,OAA8B,IAAI;CACjD,MAAM,mBAAmB,OAAO,CAAC;CAEjC,MAAM,CAAC,OAAO,YAAY,SAA0B;EAClD,QAAQ;EACR,MAAM;EACN,KAAK;EACL,OAAO;CACT,CAAC;CAED,MAAM,SAAS,cAAc;EAC3B,MAAM,aAAa,MAAM,QAAQ,gBAAgB,IAAI,mBAAmB,CAAC,gBAAgB;EAEzF,OAAO,UACJ,aAA8B;GAC7B,UAAU,aAAa;IAKrB,OAJkB,OAAO,KAAK,QACE,CAAC,CAAC,QAAQ,QAAQ,SAAS,SAAS,SAAS,IAC5C,CAAC,CAAC,OAAO,QAAQ,WAAW,SAAS,GAAG,CAEzD,IAAI,WAAW;GACjC,CAAC;EACH,GACA,cACA,EAAE,SAAS,0BAA0B,CACvC;CACF,GAAG;EAAC;EAAc;EAA2B;CAAgB,CAAC;CAE9D,gBAAgB;EAId,MAAM,WAAW,KAFf,0BAA2B,OAAoC,iBAEvB,YAAY;GACpD,KAAK,MAAM,SAAS,SAAS;IAC3B,MAAM,EAAE,MAAM,KAAK,OAAO,WAAW,OAAO,eAAe,CAAC;IAC5D,iBAAiB,UAAU,OAAO,4BAA4B;KAC5D,OAAO;MAAE;MAAQ;MAAM;MAAK;KAAM,CAAC;IACrC,CAAC;GACH;EACF,CAAC;EACD,IAAI,OAAO,SAAS,SAAS,QAAQ,OAAO,OAAO;EAEnD,aAAa;GACX,OAAO,qBAAqB,iBAAiB,OAAO;GACpD,SAAS,WAAW;GACpB,OAAO,OAAO;EAChB;CACF,GAAG,CAAC,QAAQ,sBAAsB,CAAC;CAEnC,OACE,oBAAC,OAAD;EACa;EACX,KAAK,UAA0B,CAAC,KAAK,MAAM,CAAC;EAC5C,OAAO;GAAE,GAAG;GAAyB,GAAG;EAAiB;EACzD,GAAI;EAEH,UAAA,SAAS;GACR,GAAG;GACH,KAAK,OAAO;GACZ;EACF,CAAC;CACE,CAAA;AAET,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spine.mjs","names":[],"sources":["../../../src/awesome/Spline/Spine.tsx"],"sourcesContent":["'use client';\n\nimport { type SplineEvent, type SplineEventName } from '@splinetool/runtime';\nimport { Application } from '@splinetool/runtime';\nimport { memo, useEffect, useRef, useState } from 'react';\n\nimport ParentSize from './ParentSize';\nimport { type SplineProps } from './type';\n\nconst Spline = memo<SplineProps>(\n ({\n ref,\n scene,\n style,\n onMouseDown,\n onMouseUp,\n onMouseHover,\n onKeyDown,\n onKeyUp,\n onStart,\n onLookAt,\n onFollow,\n onWheel,\n onLoad,\n renderOnDemand = true,\n ...props\n }) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const init = async (\n speApp: Application,\n events: {\n cb?: (e: SplineEvent) => void;\n name: SplineEventName;\n }[],\n ) => {\n await speApp.load(scene);\n\n for (const event of events) {\n if (event.cb) {\n speApp.addEventListener(event.name, event.cb);\n }\n }\n\n setIsLoading(false);\n onLoad?.(speApp);\n };\n\n // Initialize runtime when component is mounted\n useEffect(() => {\n setIsLoading(true);\n\n let speApp: Application;\n const events: {\n cb?: (e: SplineEvent) => void;\n name: SplineEventName;\n }[] = [\n {\n cb: onMouseDown,\n name: 'mouseDown',\n },\n {\n cb: onMouseUp,\n name: 'mouseUp',\n },\n {\n cb: onMouseHover,\n name: 'mouseHover',\n },\n {\n cb: onKeyDown,\n name: 'keyDown',\n },\n {\n cb: onKeyUp,\n name: 'keyUp',\n },\n {\n cb: onStart,\n name: 'start',\n },\n {\n cb: onLookAt,\n name: 'lookAt',\n },\n {\n cb: onFollow,\n name: 'follow',\n },\n {\n cb: onWheel,\n name: 'scroll',\n },\n ];\n\n if (canvasRef.current) {\n speApp = new Application(canvasRef.current, { renderOnDemand });\n init(speApp, events);\n }\n\n return () => {\n for (const event of events) {\n if (event.cb) {\n speApp.removeEventListener(event.name, event.cb);\n }\n }\n speApp.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scene]);\n\n return (\n <ParentSize debounceTime={50} parentSizeStyles={style} ref={ref} {...props}>\n {() => {\n return (\n <canvas\n ref={canvasRef}\n style={{\n display: isLoading ? 'none' : 'block',\n }}\n />\n );\n }}\n </ParentSize>\n );\n },\n);\n\nSpline.displayName = 'Spline';\n\nexport default Spline;\n\nexport { type SPEObject, type SplineEvent, type SplineEventName } from '@splinetool/runtime';\n"],"mappings":";;;;;;AASA,MAAM,SAAS,MACZ,EACC,KACA,OACA,OACA,aACA,WACA,cACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,iBAAiB,MACjB,GAAG,YACC;CACJ,MAAM,YAAY,OAA0B,IAAI;CAChD,MAAM,CAAC,WAAW,gBAAgB,SAAS,IAAI;CAE/C,MAAM,OAAO,OACX,QACA,WAIG;EACH,MAAM,OAAO,KAAK,KAAK;EAEvB,KAAK,MAAM,SAAS,QAClB,IAAI,MAAM,IACR,OAAO,iBAAiB,MAAM,MAAM,MAAM,EAAE;EAIhD,aAAa,KAAK;EAClB,SAAS,MAAM;CACjB;CAGA,gBAAgB;EACd,aAAa,IAAI;EAEjB,IAAI;EACJ,MAAM,SAGA;GACJ;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;EACF;EAEA,IAAI,UAAU,SAAS;GACrB,SAAS,IAAI,YAAY,UAAU,SAAS,EAAE,eAAe,CAAC;GAC9D,KAAK,QAAQ,MAAM;EACrB;EAEA,aAAa;GACX,KAAK,MAAM,SAAS,QAClB,IAAI,MAAM,IACR,OAAO,oBAAoB,MAAM,MAAM,MAAM,EAAE;GAGnD,OAAO,QAAQ;EACjB;CAEF,GAAG,CAAC,KAAK,CAAC;CAEV,OACE,oBAAC,YAAD;EAAY,cAAc;EAAI,kBAAkB;EAAY;EAAK,GAAI;kBAC5D;GACL,OACE,oBAAC,UAAD;IACE,KAAK;IACL,OAAO,EACL,SAAS,YAAY,SAAS,QAChC;GACD,CAAA;EAEL;CACU,CAAA;AAEhB,CACF;AAEA,OAAO,cAAc"}
1
+ {"version":3,"file":"Spine.mjs","names":[],"sources":["../../../src/awesome/Spline/Spine.tsx"],"sourcesContent":["'use client';\n\nimport { type SplineEvent, type SplineEventName } from '@splinetool/runtime';\nimport { Application } from '@splinetool/runtime';\nimport { memo, useEffect, useRef, useState } from 'react';\n\nimport ParentSize from './ParentSize';\nimport { type SplineProps } from './type';\n\nconst Spline = memo<SplineProps>(\n ({\n ref,\n scene,\n style,\n onMouseDown,\n onMouseUp,\n onMouseHover,\n onKeyDown,\n onKeyUp,\n onStart,\n onLookAt,\n onFollow,\n onWheel,\n onLoad,\n renderOnDemand = true,\n ...props\n }) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n const init = async (\n speApp: Application,\n events: {\n cb?: (e: SplineEvent) => void;\n name: SplineEventName;\n }[],\n ) => {\n await speApp.load(scene);\n\n for (const event of events) {\n if (event.cb) {\n speApp.addEventListener(event.name, event.cb);\n }\n }\n\n setIsLoading(false);\n onLoad?.(speApp);\n };\n\n // Initialize runtime when component is mounted\n useEffect(() => {\n setIsLoading(true);\n\n let speApp: Application;\n const events: {\n cb?: (e: SplineEvent) => void;\n name: SplineEventName;\n }[] = [\n {\n cb: onMouseDown,\n name: 'mouseDown',\n },\n {\n cb: onMouseUp,\n name: 'mouseUp',\n },\n {\n cb: onMouseHover,\n name: 'mouseHover',\n },\n {\n cb: onKeyDown,\n name: 'keyDown',\n },\n {\n cb: onKeyUp,\n name: 'keyUp',\n },\n {\n cb: onStart,\n name: 'start',\n },\n {\n cb: onLookAt,\n name: 'lookAt',\n },\n {\n cb: onFollow,\n name: 'follow',\n },\n {\n cb: onWheel,\n name: 'scroll',\n },\n ];\n\n if (canvasRef.current) {\n speApp = new Application(canvasRef.current, { renderOnDemand });\n init(speApp, events);\n }\n\n return () => {\n for (const event of events) {\n if (event.cb) {\n speApp.removeEventListener(event.name, event.cb);\n }\n }\n speApp.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scene]);\n\n return (\n <ParentSize debounceTime={50} parentSizeStyles={style} ref={ref} {...props}>\n {() => {\n return (\n <canvas\n ref={canvasRef}\n style={{\n display: isLoading ? 'none' : 'block',\n }}\n />\n );\n }}\n </ParentSize>\n );\n },\n);\n\nSpline.displayName = 'Spline';\n\nexport default Spline;\n\nexport { type SPEObject, type SplineEvent, type SplineEventName } from '@splinetool/runtime';\n"],"mappings":";;;;;;AASA,MAAM,SAAS,MACZ,EACC,KACA,OACA,OACA,aACA,WACA,cACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,iBAAiB,MACjB,GAAG,YACC;CACJ,MAAM,YAAY,OAA0B,IAAI;CAChD,MAAM,CAAC,WAAW,gBAAgB,SAAS,IAAI;CAE/C,MAAM,OAAO,OACX,QACA,WAIG;EACH,MAAM,OAAO,KAAK,KAAK;EAEvB,KAAK,MAAM,SAAS,QAClB,IAAI,MAAM,IACR,OAAO,iBAAiB,MAAM,MAAM,MAAM,EAAE;EAIhD,aAAa,KAAK;EAClB,SAAS,MAAM;CACjB;CAGA,gBAAgB;EACd,aAAa,IAAI;EAEjB,IAAI;EACJ,MAAM,SAGA;GACJ;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;GACA;IACE,IAAI;IACJ,MAAM;GACR;EACF;EAEA,IAAI,UAAU,SAAS;GACrB,SAAS,IAAI,YAAY,UAAU,SAAS,EAAE,eAAe,CAAC;GAC9D,KAAK,QAAQ,MAAM;EACrB;EAEA,aAAa;GACX,KAAK,MAAM,SAAS,QAClB,IAAI,MAAM,IACR,OAAO,oBAAoB,MAAM,MAAM,MAAM,EAAE;GAGnD,OAAO,QAAQ;EACjB;CAEF,GAAG,CAAC,KAAK,CAAC;CAEV,OACE,oBAAC,YAAD;EAAY,cAAc;EAAI,kBAAkB;EAAY;EAAK,GAAI;EAC5D,gBAAA;GACL,OACE,oBAAC,UAAD;IACE,KAAK;IACL,OAAO,EACL,SAAS,YAAY,SAAS,QAChC;GACD,CAAA;EAEL;CACU,CAAA;AAEhB,CACF;AAEA,OAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightCard.mjs","names":[],"sources":["../../../src/awesome/SpotlightCard/SpotlightCard.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo, useEffect, useMemo, useRef } from 'react';\n\nimport Grid from '@/Grid';\n\nimport SpotlightCardItem from './SpotlightCardItem';\nimport { CHILDREN_CLASSNAME, styles } from './style';\nimport type { SpotlightCardProps } from './type';\n\nconst SpotlightCard = memo<SpotlightCardProps>(\n ({\n items,\n renderItem: Content,\n maxItemWidth,\n className,\n columns = 3,\n gap = '1em',\n style,\n size = 800,\n borderRadius = 12,\n spotlight = true,\n ...rest\n }) => {\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--spotlight-card-border-radius': `${borderRadius}px`,\n '--spotlight-card-size': `${size}px`,\n }),\n [borderRadius, size],\n );\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n if (!spotlight) return;\n const fn = (e: MouseEvent) => {\n for (const card of document.querySelectorAll(`.${CHILDREN_CLASSNAME}`)) {\n const rect = card.getBoundingClientRect(),\n x = e.clientX - rect.left,\n y = e.clientY - rect.top;\n\n (card as HTMLDivElement).style.setProperty('--mouse-x', `${x}px`);\n (card as HTMLDivElement).style.setProperty('--mouse-y', `${y}px`);\n }\n };\n ref.current.addEventListener('mousemove', fn);\n\n return () => {\n ref.current?.removeEventListener('mousemove', fn);\n };\n }, []);\n\n return (\n <Grid\n className={cx(styles.container, styles.grid, className)}\n gap={gap}\n maxItemWidth={maxItemWidth}\n ref={ref}\n rows={columns}\n style={{\n ...cssVariables,\n ...style,\n }}\n {...rest}\n >\n {items.map((item, index) => {\n return (\n <SpotlightCardItem\n borderRadius={borderRadius}\n className={CHILDREN_CLASSNAME}\n key={index}\n size={size}\n >\n <Content {...item} />\n </SpotlightCardItem>\n );\n })}\n </Grid>\n );\n },\n);\n\nSpotlightCard.displayName = 'SpotlightCard';\n\nexport default SpotlightCard;\n"],"mappings":";;;;;;;;AAWA,MAAM,gBAAgB,MACnB,EACC,OACA,YAAY,SACZ,cACA,WACA,UAAU,GACV,MAAM,OACN,OACA,OAAO,KACP,eAAe,IACf,YAAY,MACZ,GAAG,WACC;CACJ,MAAM,eAAe,eACZ;EACL,kCAAkC,GAAG,aAAa;EAClD,yBAAyB,GAAG,KAAK;CACnC,IACA,CAAC,cAAc,IAAI,CACrB;CACA,MAAM,MAAM,OAAuB,IAAI;CAEvC,gBAAgB;EACd,IAAI,CAAC,IAAI,SAAS;EAClB,IAAI,CAAC,WAAW;EAChB,MAAM,MAAM,MAAkB;GAC5B,KAAK,MAAM,QAAQ,SAAS,iBAAiB,IAAI,oBAAoB,GAAG;IACtE,MAAM,OAAO,KAAK,sBAAsB,GACtC,IAAI,EAAE,UAAU,KAAK,MACrB,IAAI,EAAE,UAAU,KAAK;IAEvB,KAAyB,MAAM,YAAY,aAAa,GAAG,EAAE,GAAG;IAChE,KAAyB,MAAM,YAAY,aAAa,GAAG,EAAE,GAAG;GAClE;EACF;EACA,IAAI,QAAQ,iBAAiB,aAAa,EAAE;EAE5C,aAAa;GACX,IAAI,SAAS,oBAAoB,aAAa,EAAE;EAClD;CACF,GAAG,CAAC,CAAC;CAEL,OACE,oBAAC,MAAD;EACE,WAAW,GAAG,OAAO,WAAW,OAAO,MAAM,SAAS;EACjD;EACS;EACT;EACL,MAAM;EACN,OAAO;GACL,GAAG;GACH,GAAG;EACL;EACA,GAAI;YAEH,MAAM,KAAK,MAAM,UAAU;GAC1B,OACE,oBAAC,mBAAD;IACgB;IACd,WAAW;IAEL;cAEN,oBAAC,SAAD,EAAS,GAAI,KAAO,CAAA;GACH,GAJZ,KAIY;EAEvB,CAAC;CACG,CAAA;AAEV,CACF;AAEA,cAAc,cAAc"}
1
+ {"version":3,"file":"SpotlightCard.mjs","names":[],"sources":["../../../src/awesome/SpotlightCard/SpotlightCard.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo, useEffect, useMemo, useRef } from 'react';\n\nimport Grid from '@/Grid';\n\nimport SpotlightCardItem from './SpotlightCardItem';\nimport { CHILDREN_CLASSNAME, styles } from './style';\nimport type { SpotlightCardProps } from './type';\n\nconst SpotlightCard = memo<SpotlightCardProps>(\n ({\n items,\n renderItem: Content,\n maxItemWidth,\n className,\n columns = 3,\n gap = '1em',\n style,\n size = 800,\n borderRadius = 12,\n spotlight = true,\n ...rest\n }) => {\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--spotlight-card-border-radius': `${borderRadius}px`,\n '--spotlight-card-size': `${size}px`,\n }),\n [borderRadius, size],\n );\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n if (!spotlight) return;\n const fn = (e: MouseEvent) => {\n for (const card of document.querySelectorAll(`.${CHILDREN_CLASSNAME}`)) {\n const rect = card.getBoundingClientRect(),\n x = e.clientX - rect.left,\n y = e.clientY - rect.top;\n\n (card as HTMLDivElement).style.setProperty('--mouse-x', `${x}px`);\n (card as HTMLDivElement).style.setProperty('--mouse-y', `${y}px`);\n }\n };\n ref.current.addEventListener('mousemove', fn);\n\n return () => {\n ref.current?.removeEventListener('mousemove', fn);\n };\n }, []);\n\n return (\n <Grid\n className={cx(styles.container, styles.grid, className)}\n gap={gap}\n maxItemWidth={maxItemWidth}\n ref={ref}\n rows={columns}\n style={{\n ...cssVariables,\n ...style,\n }}\n {...rest}\n >\n {items.map((item, index) => {\n return (\n <SpotlightCardItem\n borderRadius={borderRadius}\n className={CHILDREN_CLASSNAME}\n key={index}\n size={size}\n >\n <Content {...item} />\n </SpotlightCardItem>\n );\n })}\n </Grid>\n );\n },\n);\n\nSpotlightCard.displayName = 'SpotlightCard';\n\nexport default SpotlightCard;\n"],"mappings":";;;;;;;;AAWA,MAAM,gBAAgB,MACnB,EACC,OACA,YAAY,SACZ,cACA,WACA,UAAU,GACV,MAAM,OACN,OACA,OAAO,KACP,eAAe,IACf,YAAY,MACZ,GAAG,WACC;CACJ,MAAM,eAAe,eACZ;EACL,kCAAkC,GAAG,aAAa;EAClD,yBAAyB,GAAG,KAAK;CACnC,IACA,CAAC,cAAc,IAAI,CACrB;CACA,MAAM,MAAM,OAAuB,IAAI;CAEvC,gBAAgB;EACd,IAAI,CAAC,IAAI,SAAS;EAClB,IAAI,CAAC,WAAW;EAChB,MAAM,MAAM,MAAkB;GAC5B,KAAK,MAAM,QAAQ,SAAS,iBAAiB,IAAI,oBAAoB,GAAG;IACtE,MAAM,OAAO,KAAK,sBAAsB,GACtC,IAAI,EAAE,UAAU,KAAK,MACrB,IAAI,EAAE,UAAU,KAAK;IAEvB,KAAyB,MAAM,YAAY,aAAa,GAAG,EAAE,GAAG;IAChE,KAAyB,MAAM,YAAY,aAAa,GAAG,EAAE,GAAG;GAClE;EACF;EACA,IAAI,QAAQ,iBAAiB,aAAa,EAAE;EAE5C,aAAa;GACX,IAAI,SAAS,oBAAoB,aAAa,EAAE;EAClD;CACF,GAAG,CAAC,CAAC;CAEL,OACE,oBAAC,MAAD;EACE,WAAW,GAAG,OAAO,WAAW,OAAO,MAAM,SAAS;EACjD;EACS;EACT;EACL,MAAM;EACN,OAAO;GACL,GAAG;GACH,GAAG;EACL;EACA,GAAI;EAEH,UAAA,MAAM,KAAK,MAAM,UAAU;GAC1B,OACE,oBAAC,mBAAD;IACgB;IACd,WAAW;IAEL;IAEN,UAAA,oBAAC,SAAD,EAAS,GAAI,KAAO,CAAA;GACH,GAJZ,KAIY;EAEvB,CAAC;CACG,CAAA;AAEV,CACF;AAEA,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightCardItem.mjs","names":["Flexbox"],"sources":["../../../src/awesome/SpotlightCard/SpotlightCardItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { SpotlightCardItemProps } from './type';\n\nconst SpotlightCardItem = memo<SpotlightCardItemProps>(\n ({ children, className, style, borderRadius, size, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--spotlight-card-border-radius': `${borderRadius}px`,\n '--spotlight-card-size': `${size}px`,\n }),\n [borderRadius, size],\n );\n\n return (\n <Flexbox\n className={cx(isDarkMode ? styles.itemContainerDark : styles.itemContainerLight, className)}\n style={{\n ...cssVariables,\n borderRadius,\n ...style,\n }}\n {...rest}\n >\n <Flexbox className={styles.content}>{children}</Flexbox>\n </Flexbox>\n );\n },\n);\n\nSpotlightCardItem.displayName = 'SpotlightCardItem';\n\nexport default SpotlightCardItem;\n"],"mappings":";;;;;;;AAUA,MAAM,oBAAoB,MACvB,EAAE,UAAU,WAAW,OAAO,cAAc,MAAM,GAAG,WAAW;CAC/D,MAAM,EAAE,eAAe,aAAa;CAEpC,MAAM,eAAe,eACZ;EACL,kCAAkC,GAAG,aAAa;EAClD,yBAAyB,GAAG,KAAK;CACnC,IACA,CAAC,cAAc,IAAI,CACrB;CAEA,OACE,oBAACA,mBAAD;EACE,WAAW,GAAG,aAAa,OAAO,oBAAoB,OAAO,oBAAoB,SAAS;EAC1F,OAAO;GACL,GAAG;GACH;GACA,GAAG;EACL;EACA,GAAI;YAEJ,oBAACA,mBAAD;GAAS,WAAW,OAAO;GAAU;EAAkB,CAAA;CAChD,CAAA;AAEb,CACF;AAEA,kBAAkB,cAAc"}
1
+ {"version":3,"file":"SpotlightCardItem.mjs","names":["Flexbox"],"sources":["../../../src/awesome/SpotlightCard/SpotlightCardItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport { memo, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { SpotlightCardItemProps } from './type';\n\nconst SpotlightCardItem = memo<SpotlightCardItemProps>(\n ({ children, className, style, borderRadius, size, ...rest }) => {\n const { isDarkMode } = useThemeMode();\n\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--spotlight-card-border-radius': `${borderRadius}px`,\n '--spotlight-card-size': `${size}px`,\n }),\n [borderRadius, size],\n );\n\n return (\n <Flexbox\n className={cx(isDarkMode ? styles.itemContainerDark : styles.itemContainerLight, className)}\n style={{\n ...cssVariables,\n borderRadius,\n ...style,\n }}\n {...rest}\n >\n <Flexbox className={styles.content}>{children}</Flexbox>\n </Flexbox>\n );\n },\n);\n\nSpotlightCardItem.displayName = 'SpotlightCardItem';\n\nexport default SpotlightCardItem;\n"],"mappings":";;;;;;;AAUA,MAAM,oBAAoB,MACvB,EAAE,UAAU,WAAW,OAAO,cAAc,MAAM,GAAG,WAAW;CAC/D,MAAM,EAAE,eAAe,aAAa;CAEpC,MAAM,eAAe,eACZ;EACL,kCAAkC,GAAG,aAAa;EAClD,yBAAyB,GAAG,KAAK;CACnC,IACA,CAAC,cAAc,IAAI,CACrB;CAEA,OACE,oBAACA,mBAAD;EACE,WAAW,GAAG,aAAa,OAAO,oBAAoB,OAAO,oBAAoB,SAAS;EAC1F,OAAO;GACL,GAAG;GACH;GACA,GAAG;EACL;EACA,GAAI;EAEJ,UAAA,oBAACA,mBAAD;GAAS,WAAW,OAAO;GAAU;EAAkB,CAAA;CAChD,CAAA;AAEb,CACF;AAEA,kBAAkB,cAAc"}