@lobehub/ui 5.6.3 → 5.6.4
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.
- package/es/A/index.mjs +3 -6
- package/es/A/index.mjs.map +1 -1
- package/es/Accordion/Accordion.d.mts +2 -2
- package/es/Accordion/Accordion.mjs +3 -6
- package/es/Accordion/Accordion.mjs.map +1 -1
- package/es/Accordion/AccordionItem.d.mts +2 -2
- package/es/Accordion/AccordionItem.mjs +9 -12
- package/es/Accordion/AccordionItem.mjs.map +1 -1
- package/es/Accordion/ArrowIcon.mjs +3 -6
- package/es/Accordion/ArrowIcon.mjs.map +1 -1
- package/es/Accordion/context.mjs +1 -2
- package/es/Accordion/context.mjs.map +1 -1
- package/es/Accordion/index.mjs +3 -4
- package/es/Accordion/style.mjs +20 -21
- package/es/Accordion/style.mjs.map +1 -1
- package/es/Accordion/type.d.mts +0 -1
- package/es/ActionIcon/ActionIcon.d.mts +2 -2
- package/es/ActionIcon/ActionIcon.mjs +9 -12
- package/es/ActionIcon/ActionIcon.mjs.map +1 -1
- package/es/ActionIcon/components/utils.mjs +4 -5
- package/es/ActionIcon/components/utils.mjs.map +1 -1
- package/es/ActionIcon/index.mjs +2 -3
- package/es/ActionIcon/style.mjs +11 -12
- package/es/ActionIcon/style.mjs.map +1 -1
- package/es/ActionIcon/type.d.mts +0 -3
- package/es/ActionIconGroup/ActionIconGroup.mjs +11 -14
- package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
- package/es/ActionIconGroup/index.mjs +2 -3
- package/es/ActionIconGroup/style.mjs +4 -5
- package/es/ActionIconGroup/style.mjs.map +1 -1
- package/es/ActionIconGroup/type.d.mts +0 -4
- package/es/Alert/Alert.d.mts +2 -2
- package/es/Alert/Alert.mjs +13 -18
- package/es/Alert/Alert.mjs.map +1 -1
- package/es/Alert/index.mjs +2 -3
- package/es/Alert/style.mjs +24 -25
- package/es/Alert/style.mjs.map +1 -1
- package/es/Alert/type.d.mts +1 -2
- package/es/AutoComplete/Select.d.mts +2 -2
- package/es/AutoComplete/Select.mjs +3 -6
- package/es/AutoComplete/Select.mjs.map +1 -1
- package/es/AutoComplete/index.mjs +2 -3
- package/es/AutoComplete/style.mjs +7 -8
- package/es/AutoComplete/style.mjs.map +1 -1
- package/es/Avatar/Avatar.mjs +11 -14
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.d.mts +2 -2
- package/es/Avatar/AvatarGroup/index.mjs +6 -9
- package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/style.mjs +7 -8
- package/es/Avatar/AvatarGroup/style.mjs.map +1 -1
- package/es/Avatar/index.mjs +6 -8
- package/es/Avatar/index.mjs.map +1 -1
- package/es/Avatar/style.mjs +5 -6
- package/es/Avatar/style.mjs.map +1 -1
- package/es/Avatar/type.d.mts +0 -2
- package/es/Avatar/utils.mjs +1 -2
- package/es/Avatar/utils.mjs.map +1 -1
- package/es/Block/Block.mjs +3 -6
- package/es/Block/Block.mjs.map +1 -1
- package/es/Block/index.mjs +2 -3
- package/es/Block/style.mjs +5 -6
- package/es/Block/style.mjs.map +1 -1
- package/es/Block/type.d.mts +0 -1
- package/es/Burger/Burger.d.mts +2 -2
- package/es/Burger/Burger.mjs +7 -10
- package/es/Burger/Burger.mjs.map +1 -1
- package/es/Burger/index.mjs +2 -3
- package/es/Burger/style.mjs +26 -27
- package/es/Burger/style.mjs.map +1 -1
- package/es/Burger/type.d.mts +0 -1
- package/es/Button/Button.mjs +6 -9
- package/es/Button/Button.mjs.map +1 -1
- package/es/Button/index.mjs +2 -3
- package/es/Button/style.mjs +5 -6
- package/es/Button/style.mjs.map +1 -1
- package/es/Button/type.d.mts +0 -1
- package/es/Checkbox/Checkbox.mjs +6 -8
- package/es/Checkbox/Checkbox.mjs.map +1 -1
- package/es/Checkbox/CheckboxGroup.mjs +4 -6
- package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/es/Checkbox/index.mjs +6 -8
- package/es/Checkbox/index.mjs.map +1 -1
- package/es/Checkbox/style.mjs +15 -16
- package/es/Checkbox/style.mjs.map +1 -1
- package/es/Checkbox/type.d.mts +0 -2
- package/es/CodeDiff/CodeDiff.d.mts +2 -2
- package/es/CodeDiff/CodeDiff.mjs +7 -10
- package/es/CodeDiff/CodeDiff.mjs.map +1 -1
- package/es/CodeDiff/PatchDiff.d.mts +2 -2
- package/es/CodeDiff/PatchDiff.mjs +7 -10
- package/es/CodeDiff/PatchDiff.mjs.map +1 -1
- package/es/CodeDiff/index.mjs +3 -4
- package/es/CodeDiff/style.mjs +35 -36
- package/es/CodeDiff/style.mjs.map +1 -1
- package/es/CodeDiff/type.d.mts +0 -1
- package/es/CodeEditor/CodeEditor.d.mts +2 -2
- package/es/CodeEditor/CodeEditor.mjs +5 -8
- package/es/CodeEditor/CodeEditor.mjs.map +1 -1
- package/es/CodeEditor/index.mjs +2 -3
- package/es/CodeEditor/style.mjs +10 -11
- package/es/CodeEditor/style.mjs.map +1 -1
- package/es/CodeEditor/type.d.mts +0 -1
- package/es/Collapse/Collapse.d.mts +2 -2
- package/es/Collapse/Collapse.mjs +6 -9
- package/es/Collapse/Collapse.mjs.map +1 -1
- package/es/Collapse/index.mjs +2 -3
- package/es/Collapse/style.mjs +27 -28
- package/es/Collapse/style.mjs.map +1 -1
- package/es/Collapse/type.d.mts +1 -2
- package/es/ColorSwatches/ColorSwatches.mjs +10 -13
- package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
- package/es/ColorSwatches/index.mjs +2 -3
- package/es/ColorSwatches/style.mjs +29 -30
- package/es/ColorSwatches/style.mjs.map +1 -1
- package/es/ColorSwatches/type.d.mts +0 -1
- package/es/ConfigProvider/index.d.mts +2 -2
- package/es/ConfigProvider/index.mjs +3 -6
- package/es/ConfigProvider/index.mjs.map +1 -1
- package/es/ContextMenu/index.d.mts +0 -1
- package/es/ContextMenu/index.mjs +1 -2
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/CopyButton/CopyButton.mjs +5 -8
- package/es/CopyButton/CopyButton.mjs.map +1 -1
- package/es/CopyButton/index.mjs +2 -3
- package/es/CopyButton/type.d.mts +0 -2
- package/es/DatePicker/DatePicker.d.mts +2 -2
- package/es/DatePicker/DatePicker.mjs +3 -6
- package/es/DatePicker/DatePicker.mjs.map +1 -1
- package/es/DatePicker/index.mjs +2 -3
- package/es/DatePicker/style.mjs +3 -4
- package/es/DatePicker/style.mjs.map +1 -1
- package/es/DownloadButton/DownloadButton.mjs +6 -9
- package/es/DownloadButton/DownloadButton.mjs.map +1 -1
- package/es/DownloadButton/index.mjs +2 -3
- package/es/DownloadButton/type.d.mts +0 -2
- package/es/DraggablePanel/DraggablePanel.mjs +9 -12
- package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelBody.mjs +3 -6
- package/es/DraggablePanel/components/DraggablePanelBody.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelContainer.mjs +3 -6
- package/es/DraggablePanel/components/DraggablePanelContainer.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.mjs +3 -6
- package/es/DraggablePanel/components/DraggablePanelFooter.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelHeader.mjs +6 -9
- package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
- package/es/DraggablePanel/components/style.mjs +10 -11
- package/es/DraggablePanel/components/style.mjs.map +1 -1
- package/es/DraggablePanel/index.mjs +13 -16
- package/es/DraggablePanel/index.mjs.map +1 -1
- package/es/DraggablePanel/style.mjs +56 -57
- package/es/DraggablePanel/style.mjs.map +1 -1
- package/es/DraggablePanel/utils.mjs +1 -1
- package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
- package/es/DraggableSideNav/DraggableSideNav.mjs +11 -14
- package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
- package/es/DraggableSideNav/index.mjs +2 -3
- package/es/DraggableSideNav/style.mjs +36 -37
- package/es/DraggableSideNav/style.mjs.map +1 -1
- package/es/Drawer/Drawer.d.mts +2 -2
- package/es/Drawer/Drawer.mjs +5 -8
- package/es/Drawer/Drawer.mjs.map +1 -1
- package/es/Drawer/index.mjs +2 -3
- package/es/Drawer/type.d.mts +0 -1
- package/es/Dropdown/Dropdown.d.mts +2 -3
- package/es/Dropdown/Dropdown.mjs +3 -6
- package/es/Dropdown/Dropdown.mjs.map +1 -1
- package/es/Dropdown/index.mjs +2 -3
- package/es/Dropdown/type.d.mts +1 -3
- package/es/DropdownMenu/index.d.mts +0 -1
- package/es/DropdownMenu/index.mjs +2 -3
- package/es/EditableText/ControlInput.d.mts +0 -4
- package/es/EditableText/ControlInput.mjs +8 -11
- package/es/EditableText/ControlInput.mjs.map +1 -1
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EditableText/EditableText.mjs +7 -10
- package/es/EditableText/EditableText.mjs.map +1 -1
- package/es/EditableText/index.mjs +2 -3
- package/es/EditableText/type.d.mts +0 -1
- package/es/EditorSlashMenu/EditorSlashMenu.d.mts +11 -22
- package/es/EditorSlashMenu/EditorSlashMenu.mjs +6 -9
- package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
- package/es/EditorSlashMenu/MenuItemRenderer.mjs +1 -2
- package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
- package/es/EditorSlashMenu/atoms.d.mts +15 -15
- package/es/EditorSlashMenu/atoms.mjs +2 -4
- package/es/EditorSlashMenu/atoms.mjs.map +1 -1
- package/es/EditorSlashMenu/index.mjs +3 -5
- package/es/EditorSlashMenu/style.mjs +5 -7
- package/es/EditorSlashMenu/style.mjs.map +1 -1
- package/es/EditorSlashMenu/type.d.mts +7 -15
- package/es/EditorSlashMenu/useKeyboardNavigation.mjs +1 -2
- package/es/EditorSlashMenu/useKeyboardNavigation.mjs.map +1 -1
- package/es/EditorSlashMenu/useNormalizedItems.mjs +1 -2
- package/es/EditorSlashMenu/useNormalizedItems.mjs.map +1 -1
- package/es/EditorSlashMenu/utils.mjs +1 -1
- package/es/EmojiPicker/AvatarUploader.mjs +19 -22
- package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
- package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
- package/es/EmojiPicker/EmojiPicker.mjs +22 -25
- package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
- package/es/EmojiPicker/index.mjs +2 -3
- package/es/EmojiPicker/style.mjs +10 -11
- package/es/EmojiPicker/style.mjs.map +1 -1
- package/es/EmojiPicker/type.d.mts +0 -1
- package/es/Empty/Empty.mjs +12 -15
- package/es/Empty/Empty.mjs.map +1 -1
- package/es/Empty/index.mjs +2 -3
- package/es/Empty/type.d.mts +0 -4
- package/es/FileTypeIcon/FileTypeIcon.mjs +9 -12
- package/es/FileTypeIcon/FileTypeIcon.mjs.map +1 -1
- package/es/FileTypeIcon/components/FileIcon.mjs +2 -4
- package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
- package/es/FileTypeIcon/components/FolderIcon.mjs +2 -4
- package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
- package/es/FileTypeIcon/index.mjs +2 -3
- package/es/FileTypeIcon/style.mjs +5 -6
- package/es/FileTypeIcon/style.mjs.map +1 -1
- package/es/Flex/Center.mjs +2 -4
- package/es/Flex/Center.mjs.map +1 -1
- package/es/Flex/FlexBasic.d.mts +2 -2
- package/es/Flex/FlexBasic.mjs +2 -4
- package/es/Flex/FlexBasic.mjs.map +1 -1
- package/es/Flex/index.d.mts +0 -1
- package/es/Flex/index.mjs +2 -3
- package/es/Flex/utils.mjs +4 -4
- package/es/Flex/utils.mjs.map +1 -1
- package/es/FluentEmoji/FluentEmoji.mjs +7 -10
- package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
- package/es/FluentEmoji/index.mjs +2 -3
- package/es/FluentEmoji/style.mjs +3 -4
- package/es/FluentEmoji/style.mjs.map +1 -1
- package/es/FluentEmoji/utils.mjs +1 -1
- package/es/FontLoader/index.d.mts +2 -2
- package/es/FontLoader/index.mjs +3 -6
- package/es/FontLoader/index.mjs.map +1 -1
- package/es/Footer/Footer.d.mts +2 -2
- package/es/Footer/Footer.mjs +3 -6
- package/es/Footer/Footer.mjs.map +1 -1
- package/es/Footer/index.mjs +2 -3
- package/es/Footer/style.mjs +14 -15
- package/es/Footer/style.mjs.map +1 -1
- package/es/Footer/type.d.mts +0 -1
- package/es/Form/Form.mjs +9 -12
- package/es/Form/Form.mjs.map +1 -1
- package/es/Form/components/FormDivider.mjs +5 -8
- package/es/Form/components/FormDivider.mjs.map +1 -1
- package/es/Form/components/FormFlatGroup.mjs +3 -6
- package/es/Form/components/FormFlatGroup.mjs.map +1 -1
- package/es/Form/components/FormGroup.d.mts +2 -2
- package/es/Form/components/FormGroup.mjs +7 -10
- package/es/Form/components/FormGroup.mjs.map +1 -1
- package/es/Form/components/FormItem.d.mts +2 -2
- package/es/Form/components/FormItem.mjs +7 -10
- package/es/Form/components/FormItem.mjs.map +1 -1
- package/es/Form/components/FormProvider.mjs +2 -4
- package/es/Form/components/FormProvider.mjs.map +1 -1
- package/es/Form/components/FormSubmitFooter.d.mts +2 -2
- package/es/Form/components/FormSubmitFooter.mjs +8 -11
- package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
- package/es/Form/components/FormTitle.mjs +5 -8
- package/es/Form/components/FormTitle.mjs.map +1 -1
- package/es/Form/components/merge.mjs +2 -3
- package/es/Form/components/merge.mjs.map +1 -1
- package/es/Form/index.mjs +16 -19
- package/es/Form/index.mjs.map +1 -1
- package/es/Form/style.mjs +47 -48
- package/es/Form/style.mjs.map +1 -1
- package/es/Form/type.d.mts +1 -6
- package/es/FormModal/FormModal.d.mts +2 -2
- package/es/FormModal/FormModal.mjs +9 -12
- package/es/FormModal/FormModal.mjs.map +1 -1
- package/es/FormModal/index.mjs +2 -3
- package/es/FormModal/style.mjs +7 -8
- package/es/FormModal/style.mjs.map +1 -1
- package/es/FormModal/type.d.mts +0 -3
- package/es/Freeze/Freeze.d.mts +2 -2
- package/es/Freeze/Freeze.mjs +3 -6
- package/es/Freeze/Freeze.mjs.map +1 -1
- package/es/Freeze/index.mjs +2 -3
- package/es/Grid/Grid.mjs +3 -6
- package/es/Grid/Grid.mjs.map +1 -1
- package/es/Grid/index.mjs +2 -3
- package/es/Grid/style.mjs +3 -4
- package/es/Grid/style.mjs.map +1 -1
- package/es/Grid/type.d.mts +0 -1
- package/es/GroupAvatar/GroupAvatar.mjs +10 -13
- package/es/GroupAvatar/GroupAvatar.mjs.map +1 -1
- package/es/GroupAvatar/index.mjs +2 -3
- package/es/GroupAvatar/style.mjs +4 -5
- package/es/GroupAvatar/style.mjs.map +1 -1
- package/es/GuideCard/GuideCard.d.mts +2 -2
- package/es/GuideCard/GuideCard.mjs +7 -10
- package/es/GuideCard/GuideCard.mjs.map +1 -1
- package/es/GuideCard/style.mjs +16 -17
- package/es/GuideCard/style.mjs.map +1 -1
- package/es/GuideCard/type.d.mts +0 -2
- package/es/Header/Header.d.mts +2 -2
- package/es/Header/Header.mjs +3 -6
- package/es/Header/Header.mjs.map +1 -1
- package/es/Header/index.mjs +2 -3
- package/es/Header/style.mjs +10 -11
- package/es/Header/style.mjs.map +1 -1
- package/es/Header/type.d.mts +0 -1
- package/es/Highlighter/FullFeatured.mjs +13 -16
- package/es/Highlighter/FullFeatured.mjs.map +1 -1
- package/es/Highlighter/Highlighter.d.mts +2 -2
- package/es/Highlighter/Highlighter.mjs +11 -14
- package/es/Highlighter/Highlighter.mjs.map +1 -1
- package/es/Highlighter/LangSelect.mjs +10 -13
- package/es/Highlighter/LangSelect.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs +3 -6
- package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +3 -6
- package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
- package/es/Highlighter/SyntaxHighlighter/index.mjs +7 -10
- package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/style.mjs +20 -21
- package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
- package/es/Highlighter/const.mjs +1 -2
- package/es/Highlighter/const.mjs.map +1 -1
- package/es/Highlighter/index.mjs +3 -4
- package/es/Highlighter/style.mjs +24 -25
- package/es/Highlighter/style.mjs.map +1 -1
- package/es/Highlighter/theme/lobe-theme.mjs +1 -2
- package/es/Highlighter/theme/lobe-theme.mjs.map +1 -1
- package/es/Highlighter/type.d.mts +0 -2
- package/es/Hotkey/Hotkey.d.mts +2 -2
- package/es/Hotkey/Hotkey.mjs +36 -39
- package/es/Hotkey/Hotkey.mjs.map +1 -1
- package/es/Hotkey/const.mjs +1 -1
- package/es/Hotkey/index.mjs +2 -3
- package/es/Hotkey/style.mjs +13 -14
- package/es/Hotkey/style.mjs.map +1 -1
- package/es/Hotkey/type.d.mts +0 -1
- package/es/Hotkey/utils.d.mts +0 -1
- package/es/Hotkey/utils.mjs +1 -2
- package/es/Hotkey/utils.mjs.map +1 -1
- package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
- package/es/HotkeyInput/HotkeyInput.mjs +9 -12
- package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
- package/es/HotkeyInput/index.mjs +2 -3
- package/es/HotkeyInput/style.mjs +13 -14
- package/es/HotkeyInput/style.mjs.map +1 -1
- package/es/Icon/Icon.d.mts +2 -2
- package/es/Icon/Icon.mjs +3 -6
- package/es/Icon/Icon.mjs.map +1 -1
- package/es/Icon/components/IconProvider.d.mts +3 -3
- package/es/Icon/components/IconProvider.mjs +2 -4
- package/es/Icon/components/IconProvider.mjs.map +1 -1
- package/es/Icon/components/utils.mjs +1 -2
- package/es/Icon/components/utils.mjs.map +1 -1
- package/es/Icon/index.mjs +2 -3
- package/es/Icon/style.mjs +6 -8
- package/es/Icon/style.mjs.map +1 -1
- package/es/Image/Image.mjs +5 -8
- package/es/Image/Image.mjs.map +1 -1
- package/es/Image/PreviewGroup.d.mts +2 -2
- package/es/Image/PreviewGroup.mjs +5 -8
- package/es/Image/PreviewGroup.mjs.map +1 -1
- package/es/Image/components/Preview.mjs +3 -6
- package/es/Image/components/Preview.mjs.map +1 -1
- package/es/Image/components/Toolbar.mjs +13 -15
- package/es/Image/components/Toolbar.mjs.map +1 -1
- package/es/Image/components/usePreview.mjs +8 -10
- package/es/Image/components/usePreview.mjs.map +1 -1
- package/es/Image/components/usePreviewGroup.mjs +8 -10
- package/es/Image/components/usePreviewGroup.mjs.map +1 -1
- package/es/Image/index.mjs +6 -8
- package/es/Image/index.mjs.map +1 -1
- package/es/Image/style.mjs +28 -29
- package/es/Image/style.mjs.map +1 -1
- package/es/Image/type.d.mts +2 -2
- package/es/ImageSelect/ImageSelect.d.mts +2 -2
- package/es/ImageSelect/ImageSelect.mjs +7 -10
- package/es/ImageSelect/ImageSelect.mjs.map +1 -1
- package/es/ImageSelect/styles.mjs +11 -12
- package/es/ImageSelect/styles.mjs.map +1 -1
- package/es/ImageSelect/type.d.mts +0 -2
- package/es/Img/index.mjs +3 -6
- package/es/Img/index.mjs.map +1 -1
- package/es/Input/Input.d.mts +2 -2
- package/es/Input/Input.mjs +3 -6
- package/es/Input/Input.mjs.map +1 -1
- package/es/Input/InputNumber.d.mts +2 -2
- package/es/Input/InputNumber.mjs +3 -6
- package/es/Input/InputNumber.mjs.map +1 -1
- package/es/Input/InputOPT.d.mts +2 -2
- package/es/Input/InputOPT.mjs +3 -6
- package/es/Input/InputOPT.mjs.map +1 -1
- package/es/Input/InputPassword.d.mts +2 -2
- package/es/Input/InputPassword.mjs +3 -6
- package/es/Input/InputPassword.mjs.map +1 -1
- package/es/Input/TextArea.d.mts +2 -2
- package/es/Input/TextArea.mjs +3 -6
- package/es/Input/TextArea.mjs.map +1 -1
- package/es/Input/style.mjs +11 -12
- package/es/Input/style.mjs.map +1 -1
- package/es/Input/type.d.mts +3 -3
- package/es/Layout/Layout.mjs +18 -21
- package/es/Layout/Layout.mjs.map +1 -1
- package/es/Layout/components/LayoutFooter.d.mts +2 -3
- package/es/Layout/components/LayoutFooter.mjs +3 -6
- package/es/Layout/components/LayoutFooter.mjs.map +1 -1
- package/es/Layout/components/LayoutHeader.d.mts +2 -2
- package/es/Layout/components/LayoutHeader.mjs +3 -6
- package/es/Layout/components/LayoutHeader.mjs.map +1 -1
- package/es/Layout/components/LayoutMain.d.mts +2 -3
- package/es/Layout/components/LayoutMain.mjs +3 -6
- package/es/Layout/components/LayoutMain.mjs.map +1 -1
- package/es/Layout/components/LayoutSidebar.d.mts +2 -2
- package/es/Layout/components/LayoutSidebar.mjs +3 -6
- package/es/Layout/components/LayoutSidebar.mjs.map +1 -1
- package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
- package/es/Layout/components/LayoutSidebarInner.mjs +3 -6
- package/es/Layout/components/LayoutSidebarInner.mjs.map +1 -1
- package/es/Layout/components/LayoutToc.d.mts +2 -2
- package/es/Layout/components/LayoutToc.mjs +3 -6
- package/es/Layout/components/LayoutToc.mjs.map +1 -1
- package/es/Layout/index.mjs +16 -18
- package/es/Layout/index.mjs.map +1 -1
- package/es/Layout/style.mjs +10 -11
- package/es/Layout/style.mjs.map +1 -1
- package/es/List/List.mjs +5 -8
- package/es/List/List.mjs.map +1 -1
- package/es/List/ListItem/index.d.mts +2 -2
- package/es/List/ListItem/index.mjs +9 -12
- package/es/List/ListItem/index.mjs.map +1 -1
- package/es/List/ListItem/style.mjs +16 -17
- package/es/List/ListItem/style.mjs.map +1 -1
- package/es/List/ListItem/time.mjs +1 -2
- package/es/List/ListItem/time.mjs.map +1 -1
- package/es/List/index.mjs +6 -8
- package/es/List/index.mjs.map +1 -1
- package/es/List/type.d.mts +0 -1
- package/es/Markdown/Markdown.d.mts +2 -2
- package/es/Markdown/Markdown.mjs +14 -17
- package/es/Markdown/Markdown.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/MarkdownRender.mjs +3 -6
- package/es/Markdown/SyntaxMarkdown/MarkdownRender.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs +3 -6
- package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/streamAnimationMeta.mjs +1 -1
- package/es/Markdown/SyntaxMarkdown/style.mjs +3 -4
- package/es/Markdown/SyntaxMarkdown/style.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs +2 -4
- package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/useStreamQueue.mjs +1 -2
- package/es/Markdown/SyntaxMarkdown/useStreamQueue.mjs.map +1 -1
- package/es/Markdown/Typography.d.mts +2 -2
- package/es/Markdown/Typography.mjs +3 -6
- package/es/Markdown/Typography.mjs.map +1 -1
- package/es/Markdown/components/CodeBlock.mjs +5 -6
- package/es/Markdown/components/CodeBlock.mjs.map +1 -1
- package/es/Markdown/components/Footnotes.mjs +13 -16
- package/es/Markdown/components/Footnotes.mjs.map +1 -1
- package/es/Markdown/components/MarkdownProvider.mjs +2 -4
- package/es/Markdown/components/MarkdownProvider.mjs.map +1 -1
- package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs +17 -20
- package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
- package/es/Markdown/components/SearchResultCards/index.d.mts +2 -3
- package/es/Markdown/components/SearchResultCards/index.mjs +7 -10
- package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
- package/es/Markdown/components/SearchResultCards/style.mjs +4 -5
- package/es/Markdown/components/SearchResultCards/style.mjs.map +1 -1
- package/es/Markdown/components/useDelayedAnimated.mjs +1 -2
- package/es/Markdown/components/useDelayedAnimated.mjs.map +1 -1
- package/es/Markdown/index.mjs +3 -4
- package/es/Markdown/markdown.style.mjs +42 -43
- package/es/Markdown/markdown.style.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeCustomFootnotes.mjs +1 -2
- package/es/Markdown/plugins/rehypeCustomFootnotes.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeKatexDir.d.mts +1 -1
- package/es/Markdown/plugins/rehypeKatexDir.mjs +1 -2
- package/es/Markdown/plugins/rehypeKatexDir.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeStreamAnimated.d.mts +1 -1
- package/es/Markdown/plugins/rehypeStreamAnimated.mjs +1 -2
- package/es/Markdown/plugins/rehypeStreamAnimated.mjs.map +1 -1
- package/es/Markdown/plugins/remarkBr.mjs +1 -2
- package/es/Markdown/plugins/remarkBr.mjs.map +1 -1
- package/es/Markdown/plugins/remarkColor.mjs +1 -2
- package/es/Markdown/plugins/remarkColor.mjs.map +1 -1
- package/es/Markdown/plugins/remarkCustomFootnotes.d.mts +0 -1
- package/es/Markdown/plugins/remarkCustomFootnotes.mjs +1 -2
- package/es/Markdown/plugins/remarkCustomFootnotes.mjs.map +1 -1
- package/es/Markdown/plugins/remarkGfmPlus.mjs +2 -3
- package/es/Markdown/plugins/remarkGfmPlus.mjs.map +1 -1
- package/es/Markdown/plugins/remarkVideo.mjs +1 -2
- package/es/Markdown/plugins/remarkVideo.mjs.map +1 -1
- package/es/Markdown/streamProfiler/StreamdownProfilerProvider.mjs +2 -4
- package/es/Markdown/streamProfiler/StreamdownProfilerProvider.mjs.map +1 -1
- package/es/Markdown/style.mjs +29 -30
- package/es/Markdown/style.mjs.map +1 -1
- package/es/Markdown/type.d.mts +0 -3
- package/es/MaskShadow/MaskShadow.d.mts +2 -2
- package/es/MaskShadow/MaskShadow.mjs +3 -6
- package/es/MaskShadow/MaskShadow.mjs.map +1 -1
- package/es/MaskShadow/index.mjs +2 -3
- package/es/MaskShadow/style.mjs +7 -8
- package/es/MaskShadow/style.mjs.map +1 -1
- package/es/MaskShadow/type.d.mts +0 -2
- package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.mjs +11 -14
- package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.mjs.map +1 -1
- package/es/MaterialFileTypeIcon/{icon-map.d.mts → icon-map.json.d.mts} +2 -2
- package/es/MaterialFileTypeIcon/icon-map.mjs +1 -1
- package/es/MaterialFileTypeIcon/index.mjs +2 -3
- package/es/MaterialFileTypeIcon/type.d.mts +1 -1
- package/es/MaterialFileTypeIcon/utils.mjs +1 -2
- package/es/MaterialFileTypeIcon/utils.mjs.map +1 -1
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Menu/Menu.mjs +3 -6
- package/es/Menu/Menu.mjs.map +1 -1
- package/es/Menu/baseItem.d.mts +0 -1
- package/es/Menu/checkboxItem.d.mts +0 -2
- package/es/Menu/index.mjs +2 -3
- package/es/Menu/renderUtils.d.mts +0 -1
- package/es/Menu/renderUtils.mjs +3 -4
- package/es/Menu/renderUtils.mjs.map +1 -1
- package/es/Menu/sharedStyle.mjs +37 -38
- package/es/Menu/sharedStyle.mjs.map +1 -1
- package/es/Menu/style.mjs +6 -7
- package/es/Menu/style.mjs.map +1 -1
- package/es/Menu/switchItem.d.mts +0 -2
- package/es/Menu/type.d.mts +1 -2
- package/es/Menu/utils.d.mts +1 -1
- package/es/Menu/utils.mjs +3 -4
- package/es/Menu/utils.mjs.map +1 -1
- package/es/Mermaid/FullFeatured.mjs +11 -14
- package/es/Mermaid/FullFeatured.mjs.map +1 -1
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/Mermaid.mjs +11 -14
- package/es/Mermaid/Mermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +5 -8
- package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +5 -8
- package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/index.mjs +7 -10
- package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/style.mjs +10 -11
- package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
- package/es/Mermaid/const.mjs +1 -1
- package/es/Mermaid/const.mjs.map +1 -1
- package/es/Mermaid/index.mjs +3 -4
- package/es/Mermaid/type.d.mts +0 -1
- package/es/Modal/Modal.d.mts +2 -2
- package/es/Modal/Modal.mjs +8 -11
- package/es/Modal/Modal.mjs.map +1 -1
- package/es/Modal/ModalProvider.d.mts +2 -2
- package/es/Modal/ModalProvider.mjs +2 -4
- package/es/Modal/ModalProvider.mjs.map +1 -1
- package/es/Modal/ModalStackItem.mjs +4 -6
- package/es/Modal/ModalStackItem.mjs.map +1 -1
- package/es/Modal/RawModalStackItem.mjs +2 -4
- package/es/Modal/RawModalStackItem.mjs.map +1 -1
- package/es/Modal/imperative.d.mts +2 -2
- package/es/Modal/imperative.mjs +2 -4
- package/es/Modal/imperative.mjs.map +1 -1
- package/es/Modal/index.mjs +2 -3
- package/es/Modal/style.mjs +8 -11
- package/es/Modal/style.mjs.map +1 -1
- package/es/MotionProvider/index.d.mts +4 -4
- package/es/MotionProvider/index.mjs +2 -4
- package/es/MotionProvider/index.mjs.map +1 -1
- package/es/Popover/index.d.mts +0 -1
- package/es/Popover/index.mjs +3 -4
- package/es/ScrollArea/index.d.mts +0 -1
- package/es/ScrollArea/index.mjs +1 -2
- package/es/ScrollShadow/ScrollShadow.mjs +3 -6
- package/es/ScrollShadow/ScrollShadow.mjs.map +1 -1
- package/es/ScrollShadow/index.mjs +2 -3
- package/es/ScrollShadow/style.mjs +12 -13
- package/es/ScrollShadow/style.mjs.map +1 -1
- package/es/ScrollShadow/type.d.mts +0 -1
- package/es/ScrollShadow/useScrollOverflow.mjs +1 -2
- package/es/ScrollShadow/useScrollOverflow.mjs.map +1 -1
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/SearchBar/SearchBar.mjs +11 -14
- package/es/SearchBar/SearchBar.mjs.map +1 -1
- package/es/SearchBar/index.mjs +2 -3
- package/es/SearchBar/style.mjs +7 -8
- package/es/SearchBar/style.mjs.map +1 -1
- package/es/SearchBar/type.d.mts +0 -1
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Segmented/Segmented.mjs +3 -6
- package/es/Segmented/Segmented.mjs.map +1 -1
- package/es/Segmented/index.mjs +2 -3
- package/es/Segmented/style.mjs +8 -9
- package/es/Segmented/style.mjs.map +1 -1
- package/es/Segmented/type.d.mts +0 -1
- package/es/Select/Select.d.mts +2 -2
- package/es/Select/Select.mjs +5 -8
- package/es/Select/Select.mjs.map +1 -1
- package/es/Select/index.mjs +2 -3
- package/es/Select/style.mjs +8 -9
- package/es/Select/style.mjs.map +1 -1
- package/es/Select/type.d.mts +0 -1
- package/es/SideNav/SideNav.d.mts +2 -2
- package/es/SideNav/SideNav.mjs +3 -6
- package/es/SideNav/SideNav.mjs.map +1 -1
- package/es/SideNav/index.mjs +2 -3
- package/es/SideNav/style.mjs +4 -5
- package/es/SideNav/style.mjs.map +1 -1
- package/es/SideNav/type.d.mts +0 -1
- package/es/Skeleton/Skeleton.mjs +9 -12
- package/es/Skeleton/Skeleton.mjs.map +1 -1
- package/es/Skeleton/SkeletonAvatar.mjs +5 -8
- package/es/Skeleton/SkeletonAvatar.mjs.map +1 -1
- package/es/Skeleton/SkeletonBlock.mjs +5 -8
- package/es/Skeleton/SkeletonBlock.mjs.map +1 -1
- package/es/Skeleton/SkeletonButton.mjs +5 -8
- package/es/Skeleton/SkeletonButton.mjs.map +1 -1
- package/es/Skeleton/SkeletonParagraph.mjs +6 -10
- package/es/Skeleton/SkeletonParagraph.mjs.map +1 -1
- package/es/Skeleton/SkeletonTags.mjs +5 -8
- package/es/Skeleton/SkeletonTags.mjs.map +1 -1
- package/es/Skeleton/SkeletonTitle.mjs +5 -8
- package/es/Skeleton/SkeletonTitle.mjs.map +1 -1
- package/es/Skeleton/index.mjs +16 -18
- package/es/Skeleton/index.mjs.map +1 -1
- package/es/Skeleton/style.mjs +10 -11
- package/es/Skeleton/style.mjs.map +1 -1
- package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
- package/es/SliderWithInput/SliderWithInput.mjs +8 -11
- package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
- package/es/SliderWithInput/index.mjs +2 -3
- package/es/SliderWithInput/type.d.mts +0 -2
- package/es/Snippet/Snippet.mjs +9 -12
- package/es/Snippet/Snippet.mjs.map +1 -1
- package/es/Snippet/index.mjs +2 -3
- package/es/Snippet/style.mjs +5 -6
- package/es/Snippet/style.mjs.map +1 -1
- package/es/Snippet/type.d.mts +0 -1
- package/es/SortableList/SortableList.mjs +13 -16
- package/es/SortableList/SortableList.mjs.map +1 -1
- package/es/SortableList/components/DragHandle.d.mts +2 -3
- package/es/SortableList/components/DragHandle.mjs +5 -8
- package/es/SortableList/components/DragHandle.mjs.map +1 -1
- package/es/SortableList/components/SortableItem.d.mts +2 -6
- package/es/SortableList/components/SortableItem.mjs +3 -6
- package/es/SortableList/components/SortableItem.mjs.map +1 -1
- package/es/SortableList/components/SortableOverlay.mjs +3 -6
- package/es/SortableList/components/SortableOverlay.mjs.map +1 -1
- package/es/SortableList/index.mjs +2 -3
- package/es/SortableList/style.mjs +6 -7
- package/es/SortableList/style.mjs.map +1 -1
- package/es/SortableList/type.d.mts +0 -1
- package/es/Tabs/Tabs.mjs +5 -8
- package/es/Tabs/Tabs.mjs.map +1 -1
- package/es/Tabs/index.mjs +2 -3
- package/es/Tabs/style.mjs +15 -16
- package/es/Tabs/style.mjs.map +1 -1
- package/es/Tag/Tag.mjs +3 -6
- package/es/Tag/Tag.mjs.map +1 -1
- package/es/Tag/styles.mjs +6 -7
- package/es/Tag/styles.mjs.map +1 -1
- package/es/Tag/utils.mjs +1 -2
- package/es/Tag/utils.mjs.map +1 -1
- package/es/Text/Text.mjs +6 -9
- package/es/Text/Text.mjs.map +1 -1
- package/es/Text/index.mjs +2 -3
- package/es/Text/styles.mjs +37 -38
- package/es/Text/styles.mjs.map +1 -1
- package/es/Text/type.d.mts +0 -1
- package/es/ThemeProvider/AppElementContext.d.mts +0 -2
- package/es/ThemeProvider/AppElementContext.mjs +3 -6
- package/es/ThemeProvider/AppElementContext.mjs.map +1 -1
- package/es/ThemeProvider/ConfigProvider.mjs +3 -6
- package/es/ThemeProvider/ConfigProvider.mjs.map +1 -1
- package/es/ThemeProvider/GlobalStyle/antdOverride.mjs +1 -2
- package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
- package/es/ThemeProvider/GlobalStyle/global.mjs +1 -2
- package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
- package/es/ThemeProvider/GlobalStyle/index.mjs +3 -6
- package/es/ThemeProvider/GlobalStyle/index.mjs.map +1 -1
- package/es/ThemeProvider/Meta.mjs +3 -6
- package/es/ThemeProvider/Meta.mjs.map +1 -1
- package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
- package/es/ThemeProvider/ThemeProvider.mjs +16 -19
- package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
- package/es/ThemeProvider/constants.mjs +1 -1
- package/es/ThemeProvider/index.mjs +3 -4
- package/es/ThemeProvider/type.d.mts +0 -1
- package/es/ThemeSwitch/ThemeSwitch.mjs +9 -12
- package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
- package/es/ThemeSwitch/index.mjs +2 -3
- package/es/ThemeSwitch/type.d.mts +0 -1
- package/es/Toast/index.d.mts +0 -1
- package/es/Toast/index.mjs +1 -2
- package/es/Toc/Toc.d.mts +2 -2
- package/es/Toc/Toc.mjs +5 -8
- package/es/Toc/Toc.mjs.map +1 -1
- package/es/Toc/TocMobile.mjs +5 -8
- package/es/Toc/TocMobile.mjs.map +1 -1
- package/es/Toc/index.mjs +2 -3
- package/es/Toc/style.mjs +11 -12
- package/es/Toc/style.mjs.map +1 -1
- package/es/Toc/utils.mjs +1 -1
- package/es/Tooltip/ArrowIcon.mjs +2 -4
- package/es/Tooltip/ArrowIcon.mjs.map +1 -1
- package/es/Tooltip/Tooltip.mjs +3 -6
- package/es/Tooltip/Tooltip.mjs.map +1 -1
- package/es/Tooltip/TooltipContent.mjs +5 -8
- package/es/Tooltip/TooltipContent.mjs.map +1 -1
- package/es/Tooltip/TooltipGroup.mjs +8 -11
- package/es/Tooltip/TooltipGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipInGroup.mjs +2 -4
- package/es/Tooltip/TooltipInGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipStandalone.mjs +4 -6
- package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
- package/es/Tooltip/groupContext.mjs +2 -4
- package/es/Tooltip/groupContext.mjs.map +1 -1
- package/es/Tooltip/style.mjs +14 -15
- package/es/Tooltip/style.mjs.map +1 -1
- package/es/Tooltip/type.d.mts +0 -1
- package/es/Tooltip/useMergedTooltipProps.mjs +2 -4
- package/es/Tooltip/useMergedTooltipProps.mjs.map +1 -1
- package/es/Video/index.d.mts +2 -3
- package/es/Video/index.mjs +5 -8
- package/es/Video/index.mjs.map +1 -1
- package/es/Video/style.mjs +8 -9
- package/es/Video/style.mjs.map +1 -1
- package/es/_virtual/_rolldown/runtime.mjs +13 -0
- package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
- package/es/awesome/AuroraBackground/AuroraBackground.mjs +3 -6
- package/es/awesome/AuroraBackground/AuroraBackground.mjs.map +1 -1
- package/es/awesome/AuroraBackground/style.mjs +5 -6
- package/es/awesome/AuroraBackground/style.mjs.map +1 -1
- package/es/awesome/AuroraBackground/type.d.mts +0 -1
- package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -3
- package/es/awesome/BottomGradientButton/BottomGradientButton.mjs +5 -8
- package/es/awesome/BottomGradientButton/BottomGradientButton.mjs.map +1 -1
- package/es/awesome/BottomGradientButton/style.mjs +4 -5
- package/es/awesome/BottomGradientButton/style.mjs.map +1 -1
- package/es/awesome/BottomGradientButton/type.d.mts +0 -2
- package/es/awesome/Features/FeatureItem.mjs +14 -17
- package/es/awesome/Features/FeatureItem.mjs.map +1 -1
- package/es/awesome/Features/Features.d.mts +2 -2
- package/es/awesome/Features/Features.mjs +7 -10
- package/es/awesome/Features/Features.mjs.map +1 -1
- package/es/awesome/Features/style.mjs +21 -22
- package/es/awesome/Features/style.mjs.map +1 -1
- package/es/awesome/Features/type.d.mts +0 -2
- package/es/awesome/Giscus/Giscus.d.mts +2 -2
- package/es/awesome/Giscus/Giscus.mjs +3 -6
- package/es/awesome/Giscus/Giscus.mjs.map +1 -1
- package/es/awesome/Giscus/style.mjs +1 -2
- package/es/awesome/Giscus/style.mjs.map +1 -1
- package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
- package/es/awesome/GradientButton/GradientButton.mjs +5 -8
- package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
- package/es/awesome/GradientButton/style.mjs +11 -12
- package/es/awesome/GradientButton/style.mjs.map +1 -1
- package/es/awesome/GradientButton/type.d.mts +0 -2
- package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
- package/es/awesome/GridBackground/GridBackground.mjs +7 -10
- package/es/awesome/GridBackground/GridBackground.mjs.map +1 -1
- package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.mjs +6 -9
- package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
- package/es/awesome/GridBackground/components/Grid.mjs +19 -21
- package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
- package/es/awesome/GridBackground/style.mjs +7 -8
- package/es/awesome/GridBackground/style.mjs.map +1 -1
- package/es/awesome/GridBackground/type.d.mts +0 -1
- package/es/awesome/Hero/Hero.d.mts +2 -2
- package/es/awesome/Hero/Hero.mjs +18 -21
- package/es/awesome/Hero/Hero.mjs.map +1 -1
- package/es/awesome/Hero/style.mjs +9 -10
- package/es/awesome/Hero/style.mjs.map +1 -1
- package/es/awesome/Spline/ParentSize.mjs +2 -4
- package/es/awesome/Spline/ParentSize.mjs.map +1 -1
- package/es/awesome/Spline/Spine.d.mts +2 -4
- package/es/awesome/Spline/Spine.mjs +5 -8
- package/es/awesome/Spline/Spine.mjs.map +1 -1
- package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
- package/es/awesome/Spotlight/Spotlight.mjs +3 -6
- package/es/awesome/Spotlight/Spotlight.mjs.map +1 -1
- package/es/awesome/Spotlight/style.mjs +10 -11
- package/es/awesome/Spotlight/style.mjs.map +1 -1
- package/es/awesome/Spotlight/useMouseOffset.mjs +1 -2
- package/es/awesome/Spotlight/useMouseOffset.mjs.map +1 -1
- package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
- package/es/awesome/SpotlightCard/SpotlightCard.mjs +7 -10
- package/es/awesome/SpotlightCard/SpotlightCard.mjs.map +1 -1
- package/es/awesome/SpotlightCard/SpotlightCardItem.mjs +3 -6
- package/es/awesome/SpotlightCard/SpotlightCardItem.mjs.map +1 -1
- package/es/awesome/SpotlightCard/style.mjs +14 -15
- package/es/awesome/SpotlightCard/style.mjs.map +1 -1
- package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +3 -6
- package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
- package/es/awesome/TypewriterEffect/style.mjs +15 -16
- package/es/awesome/TypewriterEffect/style.mjs.map +1 -1
- package/es/awesome/index.d.mts +0 -11
- package/es/awesome/index.mjs +13 -14
- package/es/base-ui/ContextMenu/ContextMenuHost.d.mts +3 -3
- package/es/base-ui/ContextMenu/ContextMenuHost.mjs +2 -4
- package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -1
- package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs +2 -4
- package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
- package/es/base-ui/ContextMenu/index.d.mts +1 -3
- package/es/base-ui/ContextMenu/renderItems.d.mts +0 -2
- package/es/base-ui/ContextMenu/renderItems.mjs +18 -19
- package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -1
- package/es/base-ui/ContextMenu/store.d.mts +0 -5
- package/es/base-ui/ContextMenu/store.mjs +1 -1
- package/es/base-ui/ContextMenu/store.mjs.map +1 -1
- package/es/base-ui/ContextMenu/type.d.mts +0 -2
- package/es/base-ui/DropdownMenu/DropdownMenu.d.mts +2 -2
- package/es/base-ui/DropdownMenu/DropdownMenu.mjs +3 -6
- package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/es/base-ui/DropdownMenu/atoms.d.mts +21 -21
- package/es/base-ui/DropdownMenu/atoms.mjs +2 -4
- package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -1
- package/es/base-ui/DropdownMenu/renderItems.d.mts +0 -1
- package/es/base-ui/DropdownMenu/renderItems.mjs +14 -15
- package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -1
- package/es/base-ui/DropdownMenu/type.d.mts +0 -3
- package/es/base-ui/Modal/Modal.mjs +3 -6
- package/es/base-ui/Modal/Modal.mjs.map +1 -1
- package/es/base-ui/Modal/atoms.d.mts +12 -12
- package/es/base-ui/Modal/atoms.mjs +2 -4
- package/es/base-ui/Modal/atoms.mjs.map +1 -1
- package/es/base-ui/Modal/constants.mjs +1 -1
- package/es/base-ui/Modal/constants.mjs.map +1 -1
- package/es/base-ui/Modal/context.d.mts +2 -2
- package/es/base-ui/Modal/context.mjs +2 -4
- package/es/base-ui/Modal/context.mjs.map +1 -1
- package/es/base-ui/Modal/imperative.d.mts +2 -2
- package/es/base-ui/Modal/imperative.mjs +2 -4
- package/es/base-ui/Modal/imperative.mjs.map +1 -1
- package/es/base-ui/Modal/style.mjs +64 -65
- package/es/base-ui/Modal/style.mjs.map +1 -1
- package/es/base-ui/Popover/ArrowIcon.d.mts +2 -2
- package/es/base-ui/Popover/ArrowIcon.mjs +2 -4
- package/es/base-ui/Popover/ArrowIcon.mjs.map +1 -1
- package/es/base-ui/Popover/Popover.mjs +4 -7
- package/es/base-ui/Popover/Popover.mjs.map +1 -1
- package/es/base-ui/Popover/PopoverGroup.mjs +5 -8
- package/es/base-ui/Popover/PopoverGroup.mjs.map +1 -1
- package/es/base-ui/Popover/PopoverInGroup.mjs +2 -4
- package/es/base-ui/Popover/PopoverInGroup.mjs.map +1 -1
- package/es/base-ui/Popover/PopoverPortal.mjs +2 -4
- package/es/base-ui/Popover/PopoverPortal.mjs.map +1 -1
- package/es/base-ui/Popover/PopoverStandalone.mjs +2 -4
- package/es/base-ui/Popover/PopoverStandalone.mjs.map +1 -1
- package/es/base-ui/Popover/atoms.d.mts +10 -10
- package/es/base-ui/Popover/atoms.mjs +2 -4
- package/es/base-ui/Popover/atoms.mjs.map +1 -1
- package/es/base-ui/Popover/context.d.mts +2 -2
- package/es/base-ui/Popover/context.mjs +4 -8
- package/es/base-ui/Popover/context.mjs.map +1 -1
- package/es/base-ui/Popover/groupContext.d.mts +0 -1
- package/es/base-ui/Popover/groupContext.mjs +2 -4
- package/es/base-ui/Popover/groupContext.mjs.map +1 -1
- package/es/base-ui/Popover/style.mjs +14 -15
- package/es/base-ui/Popover/style.mjs.map +1 -1
- package/es/base-ui/Popover/type.d.mts +0 -1
- package/es/base-ui/Popover/useMergedPopoverProps.mjs +2 -4
- package/es/base-ui/Popover/useMergedPopoverProps.mjs.map +1 -1
- package/es/base-ui/ScrollArea/ScrollArea.mjs +2 -4
- package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -1
- package/es/base-ui/ScrollArea/atoms.d.mts +7 -7
- package/es/base-ui/ScrollArea/atoms.mjs +4 -6
- package/es/base-ui/ScrollArea/atoms.mjs.map +1 -1
- package/es/base-ui/ScrollArea/globalStyle.mjs +3 -6
- package/es/base-ui/ScrollArea/globalStyle.mjs.map +1 -1
- package/es/base-ui/ScrollArea/style.mjs +17 -18
- package/es/base-ui/ScrollArea/style.mjs.map +1 -1
- package/es/base-ui/Select/Select.d.mts +2 -2
- package/es/base-ui/Select/Select.mjs +17 -22
- package/es/base-ui/Select/Select.mjs.map +1 -1
- package/es/base-ui/Select/atoms.d.mts +21 -21
- package/es/base-ui/Select/atoms.mjs +2 -4
- package/es/base-ui/Select/atoms.mjs.map +1 -1
- package/es/base-ui/Select/style.mjs +65 -66
- package/es/base-ui/Select/style.mjs.map +1 -1
- package/es/base-ui/Select/type.d.mts +0 -1
- package/es/base-ui/Switch/Switch.d.mts +2 -2
- package/es/base-ui/Switch/Switch.mjs +5 -8
- package/es/base-ui/Switch/Switch.mjs.map +1 -1
- package/es/base-ui/Switch/atoms.d.mts +4 -4
- package/es/base-ui/Switch/atoms.mjs +2 -4
- package/es/base-ui/Switch/atoms.mjs.map +1 -1
- package/es/base-ui/Switch/style.mjs +24 -25
- package/es/base-ui/Switch/style.mjs.map +1 -1
- package/es/base-ui/Toast/Toast.mjs +5 -8
- package/es/base-ui/Toast/Toast.mjs.map +1 -1
- package/es/base-ui/Toast/context.mjs +2 -4
- package/es/base-ui/Toast/context.mjs.map +1 -1
- package/es/base-ui/Toast/imperative.d.mts +4 -4
- package/es/base-ui/Toast/imperative.mjs +4 -6
- package/es/base-ui/Toast/imperative.mjs.map +1 -1
- package/es/base-ui/Toast/style.mjs +67 -68
- package/es/base-ui/Toast/style.mjs.map +1 -1
- package/es/base-ui/Toast/type.d.mts +0 -1
- package/es/base-ui/index.d.mts +0 -8
- package/es/base-ui/index.mjs +6 -7
- package/es/brand/BrandLoading/index.mjs +2 -4
- package/es/brand/BrandLoading/index.mjs.map +1 -1
- package/es/brand/LobeChat/index.d.mts +2 -2
- package/es/brand/LobeChat/index.mjs +11 -14
- package/es/brand/LobeChat/index.mjs.map +1 -1
- package/es/brand/LobeChatText/index.mjs +2 -4
- package/es/brand/LobeChatText/index.mjs.map +1 -1
- package/es/brand/LobeHub/index.d.mts +2 -2
- package/es/brand/LobeHub/index.mjs +11 -14
- package/es/brand/LobeHub/index.mjs.map +1 -1
- package/es/brand/LobeHub/style.mjs +3 -4
- package/es/brand/LobeHub/style.mjs.map +1 -1
- package/es/brand/LobeHubText/index.mjs +2 -4
- package/es/brand/LobeHubText/index.mjs.map +1 -1
- package/es/brand/Logo3d/index.mjs +5 -8
- package/es/brand/Logo3d/index.mjs.map +1 -1
- package/es/brand/LogoFlat/index.d.mts +2 -2
- package/es/brand/LogoFlat/index.mjs +1 -2
- package/es/brand/LogoFlat/index.mjs.map +1 -1
- package/es/brand/LogoMono/index.mjs +1 -2
- package/es/brand/LogoThree/Loading.mjs +6 -8
- package/es/brand/LogoThree/Loading.mjs.map +1 -1
- package/es/brand/LogoThree/LogoSpline.d.mts +2 -3
- package/es/brand/LogoThree/LogoSpline.mjs +5 -7
- package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
- package/es/brand/LogoThree/index.d.mts +2 -3
- package/es/brand/LogoThree/index.mjs +7 -10
- package/es/brand/LogoThree/index.mjs.map +1 -1
- package/es/brand/components/Divider.mjs +2 -4
- package/es/brand/components/Divider.mjs.map +1 -1
- package/es/brand/index.mjs +9 -10
- package/es/chat/BackBottom/BackBottom.d.mts +2 -2
- package/es/chat/BackBottom/BackBottom.mjs +5 -8
- package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
- package/es/chat/BackBottom/style.mjs +6 -7
- package/es/chat/BackBottom/style.mjs.map +1 -1
- package/es/chat/BackBottom/type.d.mts +1 -1
- package/es/chat/ChatHeader/ChatHeader.mjs +5 -8
- package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
- package/es/chat/ChatHeader/ChatHeaderTitle.mjs +2 -4
- package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
- package/es/chat/ChatHeader/index.mjs +6 -8
- package/es/chat/ChatHeader/index.mjs.map +1 -1
- package/es/chat/ChatHeader/style.mjs +16 -17
- package/es/chat/ChatHeader/style.mjs.map +1 -1
- package/es/chat/ChatHeader/type.d.mts +0 -1
- package/es/chat/ChatInputArea/ChatInputArea.mjs +7 -10
- package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs +3 -6
- package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs +5 -8
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatSendButton.mjs +8 -10
- package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
- package/es/chat/ChatInputArea/index.mjs +10 -12
- package/es/chat/ChatInputArea/index.mjs.map +1 -1
- package/es/chat/ChatInputArea/style.mjs +9 -10
- package/es/chat/ChatInputArea/style.mjs.map +1 -1
- package/es/chat/ChatInputArea/type.d.mts +1 -4
- package/es/chat/ChatItem/ChatItem.d.mts +2 -2
- package/es/chat/ChatItem/ChatItem.mjs +16 -19
- package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
- package/es/chat/ChatItem/components/Actions.mjs +2 -4
- package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
- package/es/chat/ChatItem/components/Avatar.mjs +6 -8
- package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
- package/es/chat/ChatItem/components/BorderSpacing.mjs +2 -4
- package/es/chat/ChatItem/components/BorderSpacing.mjs.map +1 -1
- package/es/chat/ChatItem/components/ErrorContent.mjs +4 -6
- package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
- package/es/chat/ChatItem/components/Loading.mjs +4 -6
- package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
- package/es/chat/ChatItem/components/MessageContent.mjs +4 -6
- package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
- package/es/chat/ChatItem/components/Title.mjs +2 -4
- package/es/chat/ChatItem/components/Title.mjs.map +1 -1
- package/es/chat/ChatItem/style.mjs +53 -54
- package/es/chat/ChatItem/style.mjs.map +1 -1
- package/es/chat/ChatItem/type.d.mts +0 -6
- package/es/chat/ChatList/ChatList.d.mts +2 -2
- package/es/chat/ChatList/ChatList.mjs +7 -10
- package/es/chat/ChatList/ChatList.mjs.map +1 -1
- package/es/chat/ChatList/components/ChatActionsBar.mjs +4 -6
- package/es/chat/ChatList/components/ChatActionsBar.mjs.map +1 -1
- package/es/chat/ChatList/components/ChatListItem.mjs +13 -15
- package/es/chat/ChatList/components/ChatListItem.mjs.map +1 -1
- package/es/chat/ChatList/components/HistoryDivider.mjs +6 -8
- package/es/chat/ChatList/components/HistoryDivider.mjs.map +1 -1
- package/es/chat/ChatList/components/useChatListActionsBar.mjs +2 -4
- package/es/chat/ChatList/components/useChatListActionsBar.mjs.map +1 -1
- package/es/chat/ChatList/style.mjs +3 -4
- package/es/chat/ChatList/style.mjs.map +1 -1
- package/es/chat/ChatList/type.d.mts +0 -4
- package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
- package/es/chat/EditableMessage/EditableMessage.mjs +11 -14
- package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
- package/es/chat/EditableMessage/type.d.mts +0 -3
- package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
- package/es/chat/EditableMessageList/EditableMessageList.mjs +11 -14
- package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
- package/es/chat/EditableMessageList/messageReducer.mjs +1 -2
- package/es/chat/EditableMessageList/messageReducer.mjs.map +1 -1
- package/es/chat/EditableMessageList/type.d.mts +0 -2
- package/es/chat/LoadingDots/LoadingDots.mjs +3 -6
- package/es/chat/LoadingDots/LoadingDots.mjs.map +1 -1
- package/es/chat/LoadingDots/style.mjs +12 -13
- package/es/chat/LoadingDots/style.mjs.map +1 -1
- package/es/chat/MessageInput/MessageInput.d.mts +2 -2
- package/es/chat/MessageInput/MessageInput.mjs +14 -17
- package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
- package/es/chat/MessageInput/style.mjs +3 -4
- package/es/chat/MessageInput/style.mjs.map +1 -1
- package/es/chat/MessageInput/type.d.mts +0 -3
- package/es/chat/MessageModal/MessageModal.d.mts +2 -2
- package/es/chat/MessageModal/MessageModal.mjs +16 -19
- package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
- package/es/chat/MessageModal/type.d.mts +0 -2
- package/es/chat/TokenTag/TokenTag.mjs +5 -8
- package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
- package/es/chat/TokenTag/type.d.mts +0 -2
- package/es/chat/index.d.mts +0 -10
- package/es/chat/index.mjs +17 -18
- package/es/chat/types/chatMessage.d.mts +0 -1
- package/es/chat/types/error.mjs +1 -1
- package/es/chat/types/llm.d.mts +1 -1
- package/es/chat/types/llm.mjs +7 -7
- package/es/chat/types/llm.mjs.map +1 -1
- package/es/color/ColorScales/ScaleRow.mjs +2 -4
- package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
- package/es/color/ColorScales/index.d.mts +2 -2
- package/es/color/ColorScales/index.mjs +8 -11
- package/es/color/ColorScales/index.mjs.map +1 -1
- package/es/color/ColorScales/style.mjs +7 -8
- package/es/color/ColorScales/style.mjs.map +1 -1
- package/es/color/CssVar/ScaleRow.mjs +2 -4
- package/es/color/CssVar/ScaleRow.mjs.map +1 -1
- package/es/color/CssVar/VarRow.mjs +2 -4
- package/es/color/CssVar/VarRow.mjs.map +1 -1
- package/es/color/CssVar/index.d.mts +2 -2
- package/es/color/CssVar/index.mjs +10 -13
- package/es/color/CssVar/index.mjs.map +1 -1
- package/es/color/CssVar/style.mjs +7 -8
- package/es/color/CssVar/style.mjs.map +1 -1
- package/es/color/colors/blue.mjs +2 -3
- package/es/color/colors/blue.mjs.map +1 -1
- package/es/color/colors/cyan.mjs +2 -3
- package/es/color/colors/cyan.mjs.map +1 -1
- package/es/color/colors/geekblue.mjs +2 -3
- package/es/color/colors/geekblue.mjs.map +1 -1
- package/es/color/colors/gold.mjs +2 -3
- package/es/color/colors/gold.mjs.map +1 -1
- package/es/color/colors/gray.mjs +2 -3
- package/es/color/colors/gray.mjs.map +1 -1
- package/es/color/colors/green.mjs +2 -3
- package/es/color/colors/green.mjs.map +1 -1
- package/es/color/colors/index.mjs +29 -30
- package/es/color/colors/index.mjs.map +1 -1
- package/es/color/colors/lime.mjs +2 -3
- package/es/color/colors/lime.mjs.map +1 -1
- package/es/color/colors/magenta.mjs +2 -3
- package/es/color/colors/magenta.mjs.map +1 -1
- package/es/color/colors/orange.mjs +2 -3
- package/es/color/colors/orange.mjs.map +1 -1
- package/es/color/colors/primary.mjs +2 -3
- package/es/color/colors/primary.mjs.map +1 -1
- package/es/color/colors/purple.mjs +2 -3
- package/es/color/colors/purple.mjs.map +1 -1
- package/es/color/colors/red.mjs +2 -3
- package/es/color/colors/red.mjs.map +1 -1
- package/es/color/colors/volcano.mjs +2 -3
- package/es/color/colors/volcano.mjs.map +1 -1
- package/es/color/colors/yellow.mjs +2 -3
- package/es/color/colors/yellow.mjs.map +1 -1
- package/es/color/index.mjs +22 -23
- package/es/color/neutrals/index.mjs +11 -12
- package/es/color/neutrals/index.mjs.map +1 -1
- package/es/color/neutrals/mauve.mjs +2 -3
- package/es/color/neutrals/mauve.mjs.map +1 -1
- package/es/color/neutrals/olive.mjs +2 -3
- package/es/color/neutrals/olive.mjs.map +1 -1
- package/es/color/neutrals/sage.mjs +2 -3
- package/es/color/neutrals/sage.mjs.map +1 -1
- package/es/color/neutrals/sand.mjs +2 -3
- package/es/color/neutrals/sand.mjs.map +1 -1
- package/es/color/neutrals/slate.mjs +2 -3
- package/es/color/neutrals/slate.mjs.map +1 -1
- package/es/hooks/useCopied.mjs +2 -4
- package/es/hooks/useCopied.mjs.map +1 -1
- package/es/hooks/useEventCallback.mjs +1 -2
- package/es/hooks/useEventCallback.mjs.map +1 -1
- package/es/hooks/useFloatingLayer.mjs +2 -4
- package/es/hooks/useFloatingLayer.mjs.map +1 -1
- package/es/hooks/useHighlight.mjs +3 -7
- package/es/hooks/useHighlight.mjs.map +1 -1
- package/es/hooks/useIsClient.mjs +1 -2
- package/es/hooks/useIsClient.mjs.map +1 -1
- package/es/hooks/useMarkdown/latex.mjs +1 -2
- package/es/hooks/useMarkdown/latex.mjs.map +1 -1
- package/es/hooks/useMarkdown/useMarkdownComponents.mjs +12 -14
- package/es/hooks/useMarkdown/useMarkdownComponents.mjs.map +1 -1
- package/es/hooks/useMarkdown/useMarkdownContent.mjs +2 -4
- package/es/hooks/useMarkdown/useMarkdownContent.mjs.map +1 -1
- package/es/hooks/useMarkdown/useMarkdownRehypePlugins.mjs +2 -4
- package/es/hooks/useMarkdown/useMarkdownRehypePlugins.mjs.map +1 -1
- package/es/hooks/useMarkdown/useMarkdownRemarkPlugins.mjs +2 -4
- package/es/hooks/useMarkdown/useMarkdownRemarkPlugins.mjs.map +1 -1
- package/es/hooks/useMarkdown/utils.d.mts +0 -1
- package/es/hooks/useMarkdown/utils.mjs +1 -2
- package/es/hooks/useMarkdown/utils.mjs.map +1 -1
- package/es/hooks/useMermaid.mjs +3 -7
- package/es/hooks/useMermaid.mjs.map +1 -1
- package/es/hooks/useNativeButton.mjs +1 -2
- package/es/hooks/useNativeButton.mjs.map +1 -1
- package/es/hooks/useStreamHighlight.mjs +2 -4
- package/es/hooks/useStreamHighlight.mjs.map +1 -1
- package/es/hooks/useStreamMermaid.mjs +6 -8
- package/es/hooks/useStreamMermaid.mjs.map +1 -1
- package/es/hooks/useTextOverflow.mjs +1 -2
- package/es/hooks/useTextOverflow.mjs.map +1 -1
- package/es/i18n/context.d.mts +2 -3
- package/es/i18n/context.mjs +3 -4
- package/es/i18n/context.mjs.map +1 -1
- package/es/i18n/index.mjs +1 -2
- package/es/i18n/resources/en/chat.mjs +1 -1
- package/es/i18n/resources/en/chat.mjs.map +1 -1
- package/es/i18n/resources/en/common.mjs +1 -1
- package/es/i18n/resources/en/common.mjs.map +1 -1
- package/es/i18n/resources/en/editableMessage.mjs +1 -1
- package/es/i18n/resources/en/editableMessage.mjs.map +1 -1
- package/es/i18n/resources/en/emojiPicker.mjs +1 -1
- package/es/i18n/resources/en/emojiPicker.mjs.map +1 -1
- package/es/i18n/resources/en/form.mjs +1 -1
- package/es/i18n/resources/en/form.mjs.map +1 -1
- package/es/i18n/resources/en/hotkey.mjs +1 -1
- package/es/i18n/resources/en/hotkey.mjs.map +1 -1
- package/es/i18n/resources/en/image.mjs +1 -1
- package/es/i18n/resources/en/image.mjs.map +1 -1
- package/es/i18n/resources/en/index.mjs +2 -3
- package/es/i18n/resources/en/messageModal.mjs +1 -1
- package/es/i18n/resources/en/messageModal.mjs.map +1 -1
- package/es/i18n/resources/en/sideNav.mjs +1 -1
- package/es/i18n/resources/en/sideNav.mjs.map +1 -1
- package/es/i18n/resources/index.mjs +1 -2
- package/es/i18n/resources/zhCn/chat.mjs +1 -1
- package/es/i18n/resources/zhCn/chat.mjs.map +1 -1
- package/es/i18n/resources/zhCn/common.mjs +1 -1
- package/es/i18n/resources/zhCn/common.mjs.map +1 -1
- package/es/i18n/resources/zhCn/editableMessage.mjs +1 -1
- package/es/i18n/resources/zhCn/editableMessage.mjs.map +1 -1
- package/es/i18n/resources/zhCn/emojiPicker.mjs +1 -1
- package/es/i18n/resources/zhCn/emojiPicker.mjs.map +1 -1
- package/es/i18n/resources/zhCn/form.mjs +1 -1
- package/es/i18n/resources/zhCn/form.mjs.map +1 -1
- package/es/i18n/resources/zhCn/hotkey.mjs +1 -1
- package/es/i18n/resources/zhCn/hotkey.mjs.map +1 -1
- package/es/i18n/resources/zhCn/image.mjs +1 -1
- package/es/i18n/resources/zhCn/image.mjs.map +1 -1
- package/es/i18n/resources/zhCn/index.mjs +2 -3
- package/es/i18n/resources/zhCn/messageModal.mjs +1 -1
- package/es/i18n/resources/zhCn/messageModal.mjs.map +1 -1
- package/es/i18n/resources/zhCn/sideNav.mjs +1 -1
- package/es/i18n/resources/zhCn/sideNav.mjs.map +1 -1
- package/es/i18n/useTranslation.mjs +1 -2
- package/es/i18n/useTranslation.mjs.map +1 -1
- package/es/icons/Auth0/components/Avatar.mjs +7 -10
- package/es/icons/Auth0/components/Avatar.mjs.map +1 -1
- package/es/icons/Auth0/components/Mono.mjs +3 -6
- package/es/icons/Auth0/components/Mono.mjs.map +1 -1
- package/es/icons/Auth0/index.mjs +7 -10
- package/es/icons/Auth0/index.mjs.map +1 -1
- package/es/icons/Auth0/style.mjs +1 -1
- package/es/icons/Authelia/components/Avatar.mjs +7 -10
- package/es/icons/Authelia/components/Avatar.mjs.map +1 -1
- package/es/icons/Authelia/components/Color.mjs +3 -6
- package/es/icons/Authelia/components/Color.mjs.map +1 -1
- package/es/icons/Authelia/components/Mono.mjs +3 -6
- package/es/icons/Authelia/components/Mono.mjs.map +1 -1
- package/es/icons/Authelia/index.mjs +9 -12
- package/es/icons/Authelia/index.mjs.map +1 -1
- package/es/icons/Authelia/style.mjs +1 -1
- package/es/icons/Authentik/components/Avatar.mjs +7 -10
- package/es/icons/Authentik/components/Avatar.mjs.map +1 -1
- package/es/icons/Authentik/components/Color.mjs +3 -6
- package/es/icons/Authentik/components/Color.mjs.map +1 -1
- package/es/icons/Authentik/components/Mono.mjs +3 -6
- package/es/icons/Authentik/components/Mono.mjs.map +1 -1
- package/es/icons/Authentik/index.mjs +9 -12
- package/es/icons/Authentik/index.mjs.map +1 -1
- package/es/icons/Authentik/style.mjs +1 -1
- package/es/icons/Casdoor/components/Avatar.mjs +7 -10
- package/es/icons/Casdoor/components/Avatar.mjs.map +1 -1
- package/es/icons/Casdoor/components/Color.mjs +3 -6
- package/es/icons/Casdoor/components/Color.mjs.map +1 -1
- package/es/icons/Casdoor/components/Mono.mjs +3 -6
- package/es/icons/Casdoor/components/Mono.mjs.map +1 -1
- package/es/icons/Casdoor/index.mjs +9 -12
- package/es/icons/Casdoor/index.mjs.map +1 -1
- package/es/icons/Casdoor/style.mjs +1 -1
- package/es/icons/Clerk/components/Avatar.mjs +7 -10
- package/es/icons/Clerk/components/Avatar.mjs.map +1 -1
- package/es/icons/Clerk/components/Color.mjs +3 -6
- package/es/icons/Clerk/components/Color.mjs.map +1 -1
- package/es/icons/Clerk/components/Mono.mjs +3 -6
- package/es/icons/Clerk/components/Mono.mjs.map +1 -1
- package/es/icons/Clerk/index.mjs +9 -12
- package/es/icons/Clerk/index.mjs.map +1 -1
- package/es/icons/Clerk/style.mjs +1 -1
- package/es/icons/Discord/components/Avatar.mjs +7 -10
- package/es/icons/Discord/components/Avatar.mjs.map +1 -1
- package/es/icons/Discord/components/Color.mjs +3 -6
- package/es/icons/Discord/components/Color.mjs.map +1 -1
- package/es/icons/Discord/components/Mono.mjs +3 -6
- package/es/icons/Discord/components/Mono.mjs.map +1 -1
- package/es/icons/Discord/index.mjs +9 -12
- package/es/icons/Discord/index.mjs.map +1 -1
- package/es/icons/Discord/style.mjs +1 -1
- package/es/icons/GoogleChat/components/Avatar.mjs +7 -10
- package/es/icons/GoogleChat/components/Avatar.mjs.map +1 -1
- package/es/icons/GoogleChat/components/Color.mjs +3 -6
- package/es/icons/GoogleChat/components/Color.mjs.map +1 -1
- package/es/icons/GoogleChat/components/Mono.mjs +3 -6
- package/es/icons/GoogleChat/components/Mono.mjs.map +1 -1
- package/es/icons/GoogleChat/index.mjs +9 -12
- package/es/icons/GoogleChat/index.mjs.map +1 -1
- package/es/icons/GoogleChat/style.mjs +1 -1
- package/es/icons/IMessage/components/Avatar.mjs +7 -10
- package/es/icons/IMessage/components/Avatar.mjs.map +1 -1
- package/es/icons/IMessage/components/Color.mjs +3 -6
- package/es/icons/IMessage/components/Color.mjs.map +1 -1
- package/es/icons/IMessage/components/Inner.mjs +3 -6
- package/es/icons/IMessage/components/Inner.mjs.map +1 -1
- package/es/icons/IMessage/components/Mono.mjs +3 -6
- package/es/icons/IMessage/components/Mono.mjs.map +1 -1
- package/es/icons/IMessage/index.mjs +9 -12
- package/es/icons/IMessage/index.mjs.map +1 -1
- package/es/icons/IMessage/style.mjs +1 -1
- package/es/icons/Lark/components/Avatar.mjs +7 -10
- package/es/icons/Lark/components/Avatar.mjs.map +1 -1
- package/es/icons/Lark/components/Color.mjs +3 -6
- package/es/icons/Lark/components/Color.mjs.map +1 -1
- package/es/icons/Lark/components/Mono.mjs +3 -6
- package/es/icons/Lark/components/Mono.mjs.map +1 -1
- package/es/icons/Lark/index.mjs +9 -12
- package/es/icons/Lark/index.mjs.map +1 -1
- package/es/icons/Lark/style.mjs +1 -1
- package/es/icons/Logto/components/Avatar.mjs +7 -10
- package/es/icons/Logto/components/Avatar.mjs.map +1 -1
- package/es/icons/Logto/components/Color.mjs +3 -6
- package/es/icons/Logto/components/Color.mjs.map +1 -1
- package/es/icons/Logto/components/Mono.mjs +3 -6
- package/es/icons/Logto/components/Mono.mjs.map +1 -1
- package/es/icons/Logto/index.mjs +9 -12
- package/es/icons/Logto/index.mjs.map +1 -1
- package/es/icons/Logto/style.mjs +1 -1
- package/es/icons/MicrosoftEntra/components/Avatar.mjs +7 -10
- package/es/icons/MicrosoftEntra/components/Avatar.mjs.map +1 -1
- package/es/icons/MicrosoftEntra/components/Color.mjs +3 -6
- package/es/icons/MicrosoftEntra/components/Color.mjs.map +1 -1
- package/es/icons/MicrosoftEntra/components/Mono.mjs +3 -6
- package/es/icons/MicrosoftEntra/components/Mono.mjs.map +1 -1
- package/es/icons/MicrosoftEntra/index.mjs +9 -12
- package/es/icons/MicrosoftEntra/index.mjs.map +1 -1
- package/es/icons/MicrosoftEntra/style.mjs +1 -1
- package/es/icons/MicrosoftTeams/components/Avatar.mjs +7 -10
- package/es/icons/MicrosoftTeams/components/Avatar.mjs.map +1 -1
- package/es/icons/MicrosoftTeams/components/Color.mjs +3 -6
- package/es/icons/MicrosoftTeams/components/Color.mjs.map +1 -1
- package/es/icons/MicrosoftTeams/components/Mono.mjs +3 -6
- package/es/icons/MicrosoftTeams/components/Mono.mjs.map +1 -1
- package/es/icons/MicrosoftTeams/index.mjs +9 -12
- package/es/icons/MicrosoftTeams/index.mjs.map +1 -1
- package/es/icons/MicrosoftTeams/style.mjs +1 -1
- package/es/icons/NextAuth/components/Avatar.mjs +7 -10
- package/es/icons/NextAuth/components/Avatar.mjs.map +1 -1
- package/es/icons/NextAuth/components/Color.mjs +3 -6
- package/es/icons/NextAuth/components/Color.mjs.map +1 -1
- package/es/icons/NextAuth/components/Mono.mjs +3 -6
- package/es/icons/NextAuth/components/Mono.mjs.map +1 -1
- package/es/icons/NextAuth/index.mjs +9 -12
- package/es/icons/NextAuth/index.mjs.map +1 -1
- package/es/icons/NextAuth/style.mjs +1 -1
- package/es/icons/QQ/components/Avatar.mjs +8 -11
- package/es/icons/QQ/components/Avatar.mjs.map +1 -1
- package/es/icons/QQ/components/Color.mjs +4 -8
- package/es/icons/QQ/components/Color.mjs.map +1 -1
- package/es/icons/QQ/components/Mono.mjs +4 -8
- package/es/icons/QQ/components/Mono.mjs.map +1 -1
- package/es/icons/QQ/index.mjs +11 -14
- package/es/icons/QQ/index.mjs.map +1 -1
- package/es/icons/QQ/style.mjs +2 -3
- package/es/icons/QQ/style.mjs.map +1 -1
- package/es/icons/Slack/components/Avatar.mjs +7 -10
- package/es/icons/Slack/components/Avatar.mjs.map +1 -1
- package/es/icons/Slack/components/Color.mjs +3 -6
- package/es/icons/Slack/components/Color.mjs.map +1 -1
- package/es/icons/Slack/components/Mono.mjs +3 -6
- package/es/icons/Slack/components/Mono.mjs.map +1 -1
- package/es/icons/Slack/index.mjs +9 -12
- package/es/icons/Slack/index.mjs.map +1 -1
- package/es/icons/Slack/style.mjs +1 -1
- package/es/icons/Telegram/components/Avatar.mjs +7 -10
- package/es/icons/Telegram/components/Avatar.mjs.map +1 -1
- package/es/icons/Telegram/components/Color.mjs +3 -6
- package/es/icons/Telegram/components/Color.mjs.map +1 -1
- package/es/icons/Telegram/components/Inner.mjs +3 -6
- package/es/icons/Telegram/components/Inner.mjs.map +1 -1
- package/es/icons/Telegram/components/Mono.mjs +3 -6
- package/es/icons/Telegram/components/Mono.mjs.map +1 -1
- package/es/icons/Telegram/index.mjs +9 -12
- package/es/icons/Telegram/index.mjs.map +1 -1
- package/es/icons/Telegram/style.mjs +1 -1
- package/es/icons/WeChat/components/Avatar.mjs +7 -10
- package/es/icons/WeChat/components/Avatar.mjs.map +1 -1
- package/es/icons/WeChat/components/Color.mjs +3 -6
- package/es/icons/WeChat/components/Color.mjs.map +1 -1
- package/es/icons/WeChat/components/Mono.mjs +3 -6
- package/es/icons/WeChat/components/Mono.mjs.map +1 -1
- package/es/icons/WeChat/index.mjs +9 -12
- package/es/icons/WeChat/index.mjs.map +1 -1
- package/es/icons/WeChat/style.mjs +1 -1
- package/es/icons/WhatsApp/components/Avatar.mjs +7 -10
- package/es/icons/WhatsApp/components/Avatar.mjs.map +1 -1
- package/es/icons/WhatsApp/components/Color.mjs +3 -6
- package/es/icons/WhatsApp/components/Color.mjs.map +1 -1
- package/es/icons/WhatsApp/components/Mono.mjs +3 -6
- package/es/icons/WhatsApp/components/Mono.mjs.map +1 -1
- package/es/icons/WhatsApp/index.mjs +9 -12
- package/es/icons/WhatsApp/index.mjs.map +1 -1
- package/es/icons/WhatsApp/style.mjs +1 -1
- package/es/icons/Zitadel/components/Avatar.mjs +7 -10
- package/es/icons/Zitadel/components/Avatar.mjs.map +1 -1
- package/es/icons/Zitadel/components/Color.mjs +3 -6
- package/es/icons/Zitadel/components/Color.mjs.map +1 -1
- package/es/icons/Zitadel/components/Mono.mjs +3 -6
- package/es/icons/Zitadel/components/Mono.mjs.map +1 -1
- package/es/icons/Zitadel/index.mjs +9 -12
- package/es/icons/Zitadel/index.mjs.map +1 -1
- package/es/icons/Zitadel/style.mjs +1 -1
- package/es/icons/index.d.mts +0 -1
- package/es/icons/index.mjs +57 -58
- package/es/icons/lucideExtra/AndroidIcon.d.mts +3 -3
- package/es/icons/lucideExtra/AndroidIcon.mjs +2 -4
- package/es/icons/lucideExtra/AndroidIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/AppleIcon.d.mts +3 -3
- package/es/icons/lucideExtra/AppleIcon.mjs +2 -4
- package/es/icons/lucideExtra/AppleIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/AppstoreIcon.d.mts +3 -3
- package/es/icons/lucideExtra/AppstoreIcon.mjs +2 -4
- package/es/icons/lucideExtra/AppstoreIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/BotPromptIcon.d.mts +3 -3
- package/es/icons/lucideExtra/BotPromptIcon.mjs +2 -4
- package/es/icons/lucideExtra/BotPromptIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/BrainOffIcon.d.mts +3 -3
- package/es/icons/lucideExtra/BrainOffIcon.mjs +2 -4
- package/es/icons/lucideExtra/BrainOffIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/ChromeIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ChromeIcon.mjs +2 -4
- package/es/icons/lucideExtra/ChromeIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/CodepenIcon.d.mts +3 -3
- package/es/icons/lucideExtra/CodepenIcon.mjs +2 -4
- package/es/icons/lucideExtra/CodepenIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/CodesandboxIcon.d.mts +3 -3
- package/es/icons/lucideExtra/CodesandboxIcon.mjs +2 -4
- package/es/icons/lucideExtra/CodesandboxIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
- package/es/icons/lucideExtra/CreateBotIcon.mjs +2 -4
- package/es/icons/lucideExtra/CreateBotIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
- package/es/icons/lucideExtra/DiscordIcon.mjs +2 -4
- package/es/icons/lucideExtra/DiscordIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/FacebookIcon.d.mts +3 -3
- package/es/icons/lucideExtra/FacebookIcon.mjs +2 -4
- package/es/icons/lucideExtra/FacebookIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/FigmaIcon.d.mts +3 -3
- package/es/icons/lucideExtra/FigmaIcon.mjs +2 -4
- package/es/icons/lucideExtra/FigmaIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/FramerIcon.d.mts +3 -3
- package/es/icons/lucideExtra/FramerIcon.mjs +2 -4
- package/es/icons/lucideExtra/FramerIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GithubIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GithubIcon.mjs +2 -4
- package/es/icons/lucideExtra/GithubIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GitlabIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GitlabIcon.mjs +2 -4
- package/es/icons/lucideExtra/GitlabIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GlobeOffIcon.mjs +2 -4
- package/es/icons/lucideExtra/GlobeOffIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GooglePlayIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GooglePlayIcon.mjs +2 -4
- package/es/icons/lucideExtra/GooglePlayIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotIcon.mjs +2 -4
- package/es/icons/lucideExtra/GroupBotIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotSquareIcon.mjs +2 -4
- package/es/icons/lucideExtra/GroupBotSquareIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/InstagramIcon.d.mts +3 -3
- package/es/icons/lucideExtra/InstagramIcon.mjs +2 -4
- package/es/icons/lucideExtra/InstagramIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftClickIcon.mjs +2 -4
- package/es/icons/lucideExtra/LeftClickIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftDoubleClickIcon.mjs +2 -4
- package/es/icons/lucideExtra/LeftDoubleClickIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/LinkedinIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LinkedinIcon.mjs +2 -4
- package/es/icons/lucideExtra/LinkedinIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
- package/es/icons/lucideExtra/McpIcon.mjs +2 -4
- package/es/icons/lucideExtra/McpIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/NotionIcon.d.mts +3 -3
- package/es/icons/lucideExtra/NotionIcon.mjs +2 -4
- package/es/icons/lucideExtra/NotionIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/PocketIcon.d.mts +3 -3
- package/es/icons/lucideExtra/PocketIcon.mjs +2 -4
- package/es/icons/lucideExtra/PocketIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ProviderIcon.mjs +2 -4
- package/es/icons/lucideExtra/ProviderIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/RailSymbolIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RailSymbolIcon.mjs +2 -4
- package/es/icons/lucideExtra/RailSymbolIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/RedditIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RedditIcon.mjs +2 -4
- package/es/icons/lucideExtra/RedditIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightClickIcon.mjs +2 -4
- package/es/icons/lucideExtra/RightClickIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightDoubleClickIcon.mjs +2 -4
- package/es/icons/lucideExtra/RightDoubleClickIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ShapesUploadIcon.mjs +2 -4
- package/es/icons/lucideExtra/ShapesUploadIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/SkillsIcon.d.mts +3 -3
- package/es/icons/lucideExtra/SkillsIcon.mjs +2 -4
- package/es/icons/lucideExtra/SkillsIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/SlackIcon.d.mts +3 -3
- package/es/icons/lucideExtra/SlackIcon.mjs +2 -4
- package/es/icons/lucideExtra/SlackIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/ThinkIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ThinkIcon.mjs +2 -4
- package/es/icons/lucideExtra/ThinkIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeDownRightIcon.mjs +2 -4
- package/es/icons/lucideExtra/TreeDownRightIcon.mjs.map +1 -1
- package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeUpDownRightIcon.mjs +2 -4
- package/es/icons/lucideExtra/TreeUpDownRightIcon.mjs.map +1 -1
- package/es/index.d.mts +0 -66
- package/es/index.mjs +111 -112
- package/es/mdx/Callout/index.d.mts +0 -1
- package/es/mdx/Callout/index.mjs +5 -8
- package/es/mdx/Callout/index.mjs.map +1 -1
- package/es/mdx/Callout/style.mjs +5 -6
- package/es/mdx/Callout/style.mjs.map +1 -1
- package/es/mdx/Cards/Card.d.mts +0 -3
- package/es/mdx/Cards/Card.mjs +22 -25
- package/es/mdx/Cards/Card.mjs.map +1 -1
- package/es/mdx/Cards/index.d.mts +0 -1
- package/es/mdx/Cards/index.mjs +5 -8
- package/es/mdx/Cards/index.mjs.map +1 -1
- package/es/mdx/Cards/style.mjs +3 -4
- package/es/mdx/Cards/style.mjs.map +1 -1
- package/es/mdx/FileTree/File.d.mts +0 -2
- package/es/mdx/FileTree/File.mjs +5 -8
- package/es/mdx/FileTree/File.mjs.map +1 -1
- package/es/mdx/FileTree/Folder.d.mts +0 -2
- package/es/mdx/FileTree/Folder.mjs +5 -8
- package/es/mdx/FileTree/Folder.mjs.map +1 -1
- package/es/mdx/FileTree/index.mjs +3 -6
- package/es/mdx/FileTree/index.mjs.map +1 -1
- package/es/mdx/FileTree/style.mjs +7 -8
- package/es/mdx/FileTree/style.mjs.map +1 -1
- package/es/mdx/Mdx/index.d.mts +2 -3
- package/es/mdx/Mdx/index.mjs +17 -20
- package/es/mdx/Mdx/index.mjs.map +1 -1
- package/es/mdx/Steps/index.mjs +3 -6
- package/es/mdx/Steps/index.mjs.map +1 -1
- package/es/mdx/Steps/style.mjs +7 -8
- package/es/mdx/Steps/style.mjs.map +1 -1
- package/es/mdx/Tabs/Tab.mjs +3 -6
- package/es/mdx/Tabs/Tab.mjs.map +1 -1
- package/es/mdx/Tabs/index.d.mts +0 -2
- package/es/mdx/Tabs/index.mjs +5 -8
- package/es/mdx/Tabs/index.mjs.map +1 -1
- package/es/mdx/Tabs/style.mjs +5 -6
- package/es/mdx/Tabs/style.mjs.map +1 -1
- package/es/mdx/index.mjs +17 -18
- package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +11 -14
- package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
- package/es/mdx/mdxComponents/Citation/index.mjs +6 -9
- package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Citation/style.mjs +8 -9
- package/es/mdx/mdxComponents/Citation/style.mjs.map +1 -1
- package/es/mdx/mdxComponents/CodeBlock.d.mts +0 -1
- package/es/mdx/mdxComponents/CodeBlock.mjs +6 -9
- package/es/mdx/mdxComponents/CodeBlock.mjs.map +1 -1
- package/es/mdx/mdxComponents/Image.d.mts +0 -1
- package/es/mdx/mdxComponents/Image.mjs +5 -8
- package/es/mdx/mdxComponents/Image.mjs.map +1 -1
- package/es/mdx/mdxComponents/Link.mjs +8 -11
- package/es/mdx/mdxComponents/Link.mjs.map +1 -1
- package/es/mdx/mdxComponents/Pre.d.mts +0 -3
- package/es/mdx/mdxComponents/Pre.mjs +10 -13
- package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
- package/es/mdx/mdxComponents/Section.mjs +5 -8
- package/es/mdx/mdxComponents/Section.mjs.map +1 -1
- package/es/mdx/mdxComponents/Video.mjs +5 -8
- package/es/mdx/mdxComponents/Video.mjs.map +1 -1
- package/es/mdx/mdxComponents/index.d.mts +1 -1
- package/es/mdx/mdxComponents/index.mjs +22 -24
- package/es/mdx/mdxComponents/index.mjs.map +1 -1
- package/es/mobile/ChatHeader/ChatHeader.mjs +7 -10
- package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
- package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
- package/es/mobile/ChatHeader/ChatHeaderTitle.mjs +3 -6
- package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
- package/es/mobile/ChatHeader/index.mjs +6 -8
- package/es/mobile/ChatHeader/index.mjs.map +1 -1
- package/es/mobile/ChatHeader/style.mjs +15 -16
- package/es/mobile/ChatHeader/style.mjs.map +1 -1
- package/es/mobile/ChatHeader/type.d.mts +0 -1
- package/es/mobile/ChatInputArea/ChatInputArea.mjs +9 -12
- package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
- package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.mjs +5 -8
- package/es/mobile/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
- package/es/mobile/ChatInputArea/index.mjs +6 -8
- package/es/mobile/ChatInputArea/index.mjs.map +1 -1
- package/es/mobile/ChatInputArea/style.mjs +9 -10
- package/es/mobile/ChatInputArea/style.mjs.map +1 -1
- package/es/mobile/ChatInputArea/type.d.mts +1 -3
- package/es/mobile/SafeArea/SafeArea.mjs +3 -6
- package/es/mobile/SafeArea/SafeArea.mjs.map +1 -1
- package/es/mobile/SafeArea/style.mjs +5 -6
- package/es/mobile/SafeArea/style.mjs.map +1 -1
- package/es/mobile/TabBar/TabBar.d.mts +2 -2
- package/es/mobile/TabBar/TabBar.mjs +5 -8
- package/es/mobile/TabBar/TabBar.mjs.map +1 -1
- package/es/mobile/TabBar/style.mjs +12 -13
- package/es/mobile/TabBar/style.mjs.map +1 -1
- package/es/mobile/TabBar/type.d.mts +0 -1
- package/es/mobile/index.d.mts +0 -2
- package/es/mobile/index.mjs +7 -8
- package/es/node_modules/@base-ui/react/esm/separator/Separator.d.mts +31 -0
- package/es/node_modules/@base-ui/react/esm/utils/types.d.mts +49 -0
- package/es/node_modules/@types/hast/index.d.mts +228 -0
- package/es/node_modules/@types/mdx/types.d.mts +59 -0
- package/es/node_modules/@types/unist/index.d.mts +84 -0
- package/es/node_modules/unist-util-is/lib/index.mjs +3 -3
- package/es/node_modules/unist-util-is/lib/index.mjs.map +1 -1
- package/es/node_modules/unist-util-visit/lib/index.mjs +2 -3
- package/es/node_modules/unist-util-visit/lib/index.mjs.map +1 -1
- package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/color.node.mjs +1 -1
- package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/index.mjs +6 -15
- package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/index.mjs.map +1 -1
- package/es/storybook/StoryBook/index.d.mts +2 -3
- package/es/storybook/StoryBook/index.mjs +7 -10
- package/es/storybook/StoryBook/index.mjs.map +1 -1
- package/es/storybook/StoryBook/style.mjs +21 -22
- package/es/storybook/StoryBook/style.mjs.map +1 -1
- package/es/storybook/index.mjs +2 -3
- package/es/styles/animations.mjs +1 -2
- package/es/styles/animations.mjs.map +1 -1
- package/es/styles/classNames.mjs +1 -1
- package/es/styles/customTheme.mjs +36 -38
- package/es/styles/customTheme.mjs.map +1 -1
- package/es/styles/index.mjs +1 -2
- package/es/styles/theme/algorithms/darkAlgorithm.mjs +3 -4
- package/es/styles/theme/algorithms/darkAlgorithm.mjs.map +1 -1
- package/es/styles/theme/algorithms/lightAlgorithm.mjs +3 -4
- package/es/styles/theme/algorithms/lightAlgorithm.mjs.map +1 -1
- package/es/styles/theme/antdTheme.mjs +1 -2
- package/es/styles/theme/antdTheme.mjs.map +1 -1
- package/es/styles/theme/customStylish.mjs +20 -21
- package/es/styles/theme/customStylish.mjs.map +1 -1
- package/es/styles/theme/customStylishStatic.mjs +52 -53
- package/es/styles/theme/customStylishStatic.mjs.map +1 -1
- package/es/styles/theme/customToken.mjs +1 -2
- package/es/styles/theme/customToken.mjs.map +1 -1
- package/es/styles/theme/generateColorPalette.d.mts +1 -1
- package/es/styles/theme/generateColorPalette.mjs +1 -2
- package/es/styles/theme/generateColorPalette.mjs.map +1 -1
- package/es/styles/theme/token/base.mjs +2 -3
- package/es/styles/theme/token/base.mjs.map +1 -1
- package/es/styles/theme/token/dark.mjs +14 -16
- package/es/styles/theme/token/dark.mjs.map +1 -1
- package/es/styles/theme/token/light.mjs +14 -16
- package/es/styles/theme/token/light.mjs.map +1 -1
- package/es/types/index.mjs +1 -1
- package/es/utils/blobToPng.mjs +1 -1
- package/es/utils/copyToClipboard.mjs +1 -1
- package/es/utils/destroyOnInvalidActiveTriggerElement.mjs +1 -2
- package/es/utils/destroyOnInvalidActiveTriggerElement.mjs.map +1 -1
- package/es/utils/devSingleton.mjs +7 -7
- package/es/utils/devSingleton.mjs.map +1 -1
- package/es/utils/dom.mjs +1 -1
- package/es/utils/downloadBlob.mjs +1 -1
- package/es/utils/formatTime.mjs +1 -2
- package/es/utils/formatTime.mjs.map +1 -1
- package/es/utils/genCdnUrl.d.mts +0 -1
- package/es/utils/genCdnUrl.mjs +1 -2
- package/es/utils/genCdnUrl.mjs.map +1 -1
- package/es/utils/parseTrigger.d.mts +0 -2
- package/es/utils/parseTrigger.mjs +3 -5
- package/es/utils/parseTrigger.mjs.map +1 -1
- package/es/utils/placement.d.mts +0 -1
- package/es/utils/placement.mjs +33 -41
- package/es/utils/placement.mjs.map +1 -1
- package/es/utils/safeParseJSON.mjs +1 -1
- package/es/utils/safeParseJSON.mjs.map +1 -1
- package/es/utils/safeReadableColor.mjs +1 -2
- package/es/utils/safeReadableColor.mjs.map +1 -1
- package/es/utils/smoothCorners.d.mts +0 -1
- package/es/utils/smoothCorners.mjs +1 -1
- package/es/utils/smoothCorners.mjs.map +1 -1
- package/package.json +38 -40
- package/es/_virtual/rolldown_runtime.mjs +0 -18
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import Hotkey_default from "../../Hotkey/Hotkey.mjs";
|
|
1
|
+
"use client";
|
|
2
|
+
import Hotkey from "../../Hotkey/Hotkey.mjs";
|
|
4
3
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs";
|
|
5
4
|
import { CodeBlock } from "../../Markdown/components/CodeBlock.mjs";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
5
|
+
import Image from "../../mdx/mdxComponents/Image.mjs";
|
|
6
|
+
import Link from "../../mdx/mdxComponents/Link.mjs";
|
|
7
|
+
import Section from "../../mdx/mdxComponents/Section.mjs";
|
|
8
|
+
import Video from "../../mdx/mdxComponents/Video.mjs";
|
|
10
9
|
import { useCallback, useMemo } from "react";
|
|
11
10
|
import { jsx } from "react/jsx-runtime";
|
|
12
|
-
|
|
13
11
|
//#region src/hooks/useMarkdown/useMarkdownComponents.tsx
|
|
14
12
|
const useMarkdownComponents = () => {
|
|
15
13
|
const { components, animated, citations, componentProps, enableMermaid, fullFeaturedCodeBlock, showFootnotes } = useMarkdownContext();
|
|
16
|
-
const memoA = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(
|
|
14
|
+
const memoA = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(Link, {
|
|
17
15
|
citations,
|
|
18
16
|
...props,
|
|
19
17
|
...componentProps?.a
|
|
20
18
|
}), [citations, componentProps?.a]);
|
|
21
|
-
const memoImg = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(
|
|
19
|
+
const memoImg = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(Image, {
|
|
22
20
|
...props,
|
|
23
21
|
...componentProps?.img
|
|
24
22
|
}), [componentProps?.img]);
|
|
25
|
-
const memoVideo = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(
|
|
23
|
+
const memoVideo = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(Video, {
|
|
26
24
|
...props,
|
|
27
25
|
...componentProps?.video
|
|
28
26
|
}), [componentProps?.video]);
|
|
29
|
-
const memoSection = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(
|
|
27
|
+
const memoSection = useCallback(({ node, ...props }) => /* @__PURE__ */ jsx(Section, {
|
|
30
28
|
showFootnotes,
|
|
31
29
|
...props
|
|
32
30
|
}), [showFootnotes]);
|
|
33
|
-
const memoKbd = useCallback(({ children }) => /* @__PURE__ */ jsx(
|
|
31
|
+
const memoKbd = useCallback(({ children }) => /* @__PURE__ */ jsx(Hotkey, {
|
|
34
32
|
keys: children,
|
|
35
33
|
style: { display: "inline-flex" }
|
|
36
34
|
}), []);
|
|
@@ -99,7 +97,7 @@ const useMarkdownComponents = () => {
|
|
|
99
97
|
...components
|
|
100
98
|
}), [memoComponents, components]);
|
|
101
99
|
};
|
|
102
|
-
|
|
103
100
|
//#endregion
|
|
104
101
|
export { useMarkdownComponents };
|
|
102
|
+
|
|
105
103
|
//# sourceMappingURL=useMarkdownComponents.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkdownComponents.mjs","names":[
|
|
1
|
+
{"version":3,"file":"useMarkdownComponents.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownComponents.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback, useMemo } from 'react';\nimport type { Components } from 'react-markdown';\n\nimport Hotkey from '@/Hotkey';\nimport { CodeBlock } from '@/Markdown/components/CodeBlock';\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport Image from '@/mdx/mdxComponents/Image';\nimport Link from '@/mdx/mdxComponents/Link';\nimport Section from '@/mdx/mdxComponents/Section';\nimport Video from '@/mdx/mdxComponents/Video';\n\nexport const useMarkdownComponents = (): Components => {\n const {\n components,\n animated,\n citations,\n componentProps,\n enableMermaid,\n fullFeaturedCodeBlock,\n showFootnotes,\n } = useMarkdownContext();\n\n const memoA = useCallback(\n ({ node, ...props }: any) => <Link citations={citations} {...props} {...componentProps?.a} />,\n [citations, componentProps?.a],\n );\n\n const memoImg = useCallback(\n ({ node, ...props }: any) => <Image {...props} {...componentProps?.img} />,\n [componentProps?.img],\n );\n\n const memoVideo = useCallback(\n ({ node, ...props }: any) => <Video {...props} {...componentProps?.video} />,\n [componentProps?.video],\n );\n\n const memoSection = useCallback(\n ({ node, ...props }: any) => <Section showFootnotes={showFootnotes} {...props} />,\n [showFootnotes],\n );\n\n const memoKbd = useCallback(\n ({ children }: any) => <Hotkey keys={children} style={{ display: 'inline-flex' }} />,\n [],\n );\n\n const memoBr = useCallback(() => <br />, []);\n\n const memeP = useCallback(({ style, children, className }: any) => {\n const skipWrapperTags = ['img', 'video'];\n if (typeof children === 'object' && skipWrapperTags.includes(children?.props?.node?.tagName)) {\n return children;\n }\n return (\n <p className={className} style={style}>\n {children}\n </p>\n );\n }, []);\n\n // Stable references for theme objects to prevent unnecessary re-renders\n const highlightTheme = useMemo(\n () => componentProps?.highlight?.theme,\n [JSON.stringify(componentProps?.highlight?.theme)],\n );\n\n const mermaidTheme = useMemo(\n () => componentProps?.mermaid?.theme,\n [JSON.stringify(componentProps?.mermaid?.theme)],\n );\n\n // Create stable component props reference\n const stableComponentProps = useMemo(() => {\n if (!componentProps) return;\n\n return {\n highlight: componentProps.highlight\n ? { ...componentProps.highlight, theme: highlightTheme }\n : undefined,\n mermaid: componentProps.mermaid\n ? { ...componentProps.mermaid, theme: mermaidTheme }\n : undefined,\n };\n }, [highlightTheme, mermaidTheme]);\n\n const memoPre = useCallback(\n ({ node, ...props }: any) => (\n <CodeBlock\n animated={animated}\n enableMermaid={enableMermaid}\n fullFeatured={fullFeaturedCodeBlock}\n {...stableComponentProps}\n {...componentProps?.pre}\n {...props}\n />\n ),\n [animated, enableMermaid, fullFeaturedCodeBlock, stableComponentProps, componentProps?.pre],\n );\n\n const memoColorPreview = useCallback(({ node, ...props }: any) => <code {...props} />, []);\n\n const memoComponents = useMemo(\n () => ({\n a: memoA,\n br: memoBr,\n colorPreview: memoColorPreview,\n img: memoImg,\n kbd: memoKbd,\n p: memeP,\n pre: memoPre,\n section: memoSection,\n video: memoVideo,\n }),\n [memoA, memoBr, memoImg, memoVideo, memoPre, memoSection, memeP, memoColorPreview, memoKbd],\n );\n\n return useMemo(\n () => ({\n ...memoComponents,\n ...components,\n }),\n [memoComponents, components],\n );\n};\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,8BAA0C;CACrD,MAAM,EACJ,YACA,UACA,WACA,gBACA,eACA,uBACA,kBACE,oBAAoB;CAExB,MAAM,QAAQ,aACX,EAAE,MAAM,GAAG,YAAiB,oBAAC,MAAD;EAAiB;EAAW,GAAI;EAAO,GAAI,gBAAgB;EAAK,CAAA,EAC7F,CAAC,WAAW,gBAAgB,EAAE,CAC/B;CAED,MAAM,UAAU,aACb,EAAE,MAAM,GAAG,YAAiB,oBAAC,OAAD;EAAO,GAAI;EAAO,GAAI,gBAAgB;EAAO,CAAA,EAC1E,CAAC,gBAAgB,IAAI,CACtB;CAED,MAAM,YAAY,aACf,EAAE,MAAM,GAAG,YAAiB,oBAAC,OAAD;EAAO,GAAI;EAAO,GAAI,gBAAgB;EAAS,CAAA,EAC5E,CAAC,gBAAgB,MAAM,CACxB;CAED,MAAM,cAAc,aACjB,EAAE,MAAM,GAAG,YAAiB,oBAAC,SAAD;EAAwB;EAAe,GAAI;EAAS,CAAA,EACjF,CAAC,cAAc,CAChB;CAED,MAAM,UAAU,aACb,EAAE,eAAoB,oBAAC,QAAD;EAAQ,MAAM;EAAU,OAAO,EAAE,SAAS,eAAe;EAAI,CAAA,EACpF,EAAE,CACH;CAED,MAAM,SAAS,kBAAkB,oBAAC,MAAD,EAAM,CAAA,EAAE,EAAE,CAAC;CAE5C,MAAM,QAAQ,aAAa,EAAE,OAAO,UAAU,gBAAqB;AAEjE,MAAI,OAAO,aAAa,YADA,CAAC,OAAO,QAAQ,CACY,SAAS,UAAU,OAAO,MAAM,QAAQ,CAC1F,QAAO;AAET,SACE,oBAAC,KAAD;GAAc;GAAkB;GAC7B;GACC,CAAA;IAEL,EAAE,CAAC;CAGN,MAAM,iBAAiB,cACf,gBAAgB,WAAW,OACjC,CAAC,KAAK,UAAU,gBAAgB,WAAW,MAAM,CAAC,CACnD;CAED,MAAM,eAAe,cACb,gBAAgB,SAAS,OAC/B,CAAC,KAAK,UAAU,gBAAgB,SAAS,MAAM,CAAC,CACjD;CAGD,MAAM,uBAAuB,cAAc;AACzC,MAAI,CAAC,eAAgB;AAErB,SAAO;GACL,WAAW,eAAe,YACtB;IAAE,GAAG,eAAe;IAAW,OAAO;IAAgB,GACtD,KAAA;GACJ,SAAS,eAAe,UACpB;IAAE,GAAG,eAAe;IAAS,OAAO;IAAc,GAClD,KAAA;GACL;IACA,CAAC,gBAAgB,aAAa,CAAC;CAElC,MAAM,UAAU,aACb,EAAE,MAAM,GAAG,YACV,oBAAC,WAAD;EACY;EACK;EACf,cAAc;EACd,GAAI;EACJ,GAAI,gBAAgB;EACpB,GAAI;EACJ,CAAA,EAEJ;EAAC;EAAU;EAAe;EAAuB;EAAsB,gBAAgB;EAAI,CAC5F;CAED,MAAM,mBAAmB,aAAa,EAAE,MAAM,GAAG,YAAiB,oBAAC,QAAD,EAAM,GAAI,OAAS,CAAA,EAAE,EAAE,CAAC;CAE1F,MAAM,iBAAiB,eACd;EACL,GAAG;EACH,IAAI;EACJ,cAAc;EACd,KAAK;EACL,KAAK;EACL,GAAG;EACH,KAAK;EACL,SAAS;EACT,OAAO;EACR,GACD;EAAC;EAAO;EAAQ;EAAS;EAAW;EAAS;EAAa;EAAO;EAAkB;EAAQ,CAC5F;AAED,QAAO,eACE;EACL,GAAG;EACH,GAAG;EACJ,GACD,CAAC,gBAAgB,WAAW,CAC7B"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { isLastFormulaRenderable } from "./latex.mjs";
|
|
4
3
|
import { addToCache, contentCache, preprocessMarkdownContent } from "./utils.mjs";
|
|
5
4
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs";
|
|
6
5
|
import { useMemo, useRef, useState } from "react";
|
|
7
|
-
|
|
8
6
|
//#region src/hooks/useMarkdown/useMarkdownContent.ts
|
|
9
7
|
const useMarkdownContent = (children) => {
|
|
10
8
|
const { animated, enableLatex = true, enableCustomFootnotes, citations } = useMarkdownContext();
|
|
@@ -43,7 +41,7 @@ const useMarkdownContent = (children) => {
|
|
|
43
41
|
validContent
|
|
44
42
|
]);
|
|
45
43
|
};
|
|
46
|
-
|
|
47
44
|
//#endregion
|
|
48
45
|
export { useMarkdownContent };
|
|
46
|
+
|
|
49
47
|
//# sourceMappingURL=useMarkdownContent.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkdownContent.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownContent.ts"],"sourcesContent":["'use client';\n\nimport { useMemo, useRef, useState } from 'react';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\n\nimport { isLastFormulaRenderable } from './latex';\nimport { addToCache, contentCache, preprocessMarkdownContent } from './utils';\n\nexport const useMarkdownContent = (children: string): string | undefined => {\n const { animated, enableLatex = true, enableCustomFootnotes, citations } = useMarkdownContext();\n const [validContent, setValidContent] = useState<string>('');\n const prevProcessedContent = useRef<string>('');\n\n const citationsLength = citations?.length || 0;\n\n // Calculate cache key with fewer string concatenations and better performance\n const cacheKey = useMemo(\n () => `${children}|${enableLatex ? 1 : 0}|${enableCustomFootnotes ? 1 : 0}|${citationsLength}`,\n [children, enableLatex, enableCustomFootnotes, citationsLength],\n );\n\n // Process content and use cache to avoid repeated calculations\n return useMemo(() => {\n // Try to get from cache first for best performance\n if (contentCache.has(cacheKey)) {\n return contentCache.get(cacheKey);\n }\n\n // Process new content only if needed\n let processedContent = preprocessMarkdownContent(children, {\n citationsLength,\n enableCustomFootnotes,\n enableLatex,\n });\n\n // Special handling for LaTeX content when animated\n if (animated && enableLatex) {\n const isRenderable = isLastFormulaRenderable(processedContent);\n if (!isRenderable && validContent) {\n processedContent = validContent;\n }\n }\n\n // Only update state if content changed (prevents unnecessary re-renders)\n if (processedContent !== prevProcessedContent.current) {\n setValidContent(processedContent);\n prevProcessedContent.current = processedContent;\n }\n\n // Cache the processed result\n addToCache(cacheKey, processedContent);\n return processedContent;\n }, [\n cacheKey,\n children,\n enableLatex,\n enableCustomFootnotes,\n citationsLength,\n animated,\n validContent,\n ]);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMarkdownContent.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownContent.ts"],"sourcesContent":["'use client';\n\nimport { useMemo, useRef, useState } from 'react';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\n\nimport { isLastFormulaRenderable } from './latex';\nimport { addToCache, contentCache, preprocessMarkdownContent } from './utils';\n\nexport const useMarkdownContent = (children: string): string | undefined => {\n const { animated, enableLatex = true, enableCustomFootnotes, citations } = useMarkdownContext();\n const [validContent, setValidContent] = useState<string>('');\n const prevProcessedContent = useRef<string>('');\n\n const citationsLength = citations?.length || 0;\n\n // Calculate cache key with fewer string concatenations and better performance\n const cacheKey = useMemo(\n () => `${children}|${enableLatex ? 1 : 0}|${enableCustomFootnotes ? 1 : 0}|${citationsLength}`,\n [children, enableLatex, enableCustomFootnotes, citationsLength],\n );\n\n // Process content and use cache to avoid repeated calculations\n return useMemo(() => {\n // Try to get from cache first for best performance\n if (contentCache.has(cacheKey)) {\n return contentCache.get(cacheKey);\n }\n\n // Process new content only if needed\n let processedContent = preprocessMarkdownContent(children, {\n citationsLength,\n enableCustomFootnotes,\n enableLatex,\n });\n\n // Special handling for LaTeX content when animated\n if (animated && enableLatex) {\n const isRenderable = isLastFormulaRenderable(processedContent);\n if (!isRenderable && validContent) {\n processedContent = validContent;\n }\n }\n\n // Only update state if content changed (prevents unnecessary re-renders)\n if (processedContent !== prevProcessedContent.current) {\n setValidContent(processedContent);\n prevProcessedContent.current = processedContent;\n }\n\n // Cache the processed result\n addToCache(cacheKey, processedContent);\n return processedContent;\n }, [\n cacheKey,\n children,\n enableLatex,\n enableCustomFootnotes,\n citationsLength,\n animated,\n validContent,\n ]);\n};\n"],"mappings":";;;;;;AASA,MAAa,sBAAsB,aAAyC;CAC1E,MAAM,EAAE,UAAU,cAAc,MAAM,uBAAuB,cAAc,oBAAoB;CAC/F,MAAM,CAAC,cAAc,mBAAmB,SAAiB,GAAG;CAC5D,MAAM,uBAAuB,OAAe,GAAG;CAE/C,MAAM,kBAAkB,WAAW,UAAU;CAG7C,MAAM,WAAW,cACT,GAAG,SAAS,GAAG,cAAc,IAAI,EAAE,GAAG,wBAAwB,IAAI,EAAE,GAAG,mBAC7E;EAAC;EAAU;EAAa;EAAuB;EAAgB,CAChE;AAGD,QAAO,cAAc;AAEnB,MAAI,aAAa,IAAI,SAAS,CAC5B,QAAO,aAAa,IAAI,SAAS;EAInC,IAAI,mBAAmB,0BAA0B,UAAU;GACzD;GACA;GACA;GACD,CAAC;AAGF,MAAI,YAAY;OAEV,CADiB,wBAAwB,iBAAiB,IACzC,aACnB,oBAAmB;;AAKvB,MAAI,qBAAqB,qBAAqB,SAAS;AACrD,mBAAgB,iBAAiB;AACjC,wBAAqB,UAAU;;AAIjC,aAAW,UAAU,iBAAiB;AACtC,SAAO;IACN;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs";
|
|
4
3
|
import { rehypeCustomFootnotes } from "../../Markdown/plugins/rehypeCustomFootnotes.mjs";
|
|
5
4
|
import { rehypeKatexDir } from "../../Markdown/plugins/rehypeKatexDir.mjs";
|
|
@@ -7,7 +6,6 @@ import { useMemo } from "react";
|
|
|
7
6
|
import { rehypeGithubAlerts } from "rehype-github-alerts";
|
|
8
7
|
import rehypeKatex from "rehype-katex";
|
|
9
8
|
import rehypeRaw from "rehype-raw";
|
|
10
|
-
|
|
11
9
|
//#region src/hooks/useMarkdown/useMarkdownRehypePlugins.ts
|
|
12
10
|
const useMarkdownRehypePlugins = () => {
|
|
13
11
|
const { enableLatex, enableCustomFootnotes, enableGithubAlert, allowHtml, rehypePlugins = [], rehypePluginsAhead = [] } = useMarkdownContext();
|
|
@@ -33,7 +31,7 @@ const useMarkdownRehypePlugins = () => {
|
|
|
33
31
|
rehypePluginsAhead
|
|
34
32
|
]);
|
|
35
33
|
};
|
|
36
|
-
|
|
37
34
|
//#endregion
|
|
38
35
|
export { useMarkdownRehypePlugins };
|
|
36
|
+
|
|
39
37
|
//# sourceMappingURL=useMarkdownRehypePlugins.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkdownRehypePlugins.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownRehypePlugins.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { rehypeGithubAlerts } from 'rehype-github-alerts';\nimport rehypeKatex from 'rehype-katex';\nimport rehypeRaw from 'rehype-raw';\nimport type { Pluggable } from 'unified';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport { rehypeCustomFootnotes } from '@/Markdown/plugins/rehypeCustomFootnotes';\nimport { rehypeKatexDir } from '@/Markdown/plugins/rehypeKatexDir';\n\nexport const useMarkdownRehypePlugins = (): Pluggable[] => {\n const {\n enableLatex,\n enableCustomFootnotes,\n enableGithubAlert,\n allowHtml,\n rehypePlugins = [],\n rehypePluginsAhead = [],\n } = useMarkdownContext();\n\n const memoPlugins = useMemo(\n () =>\n [\n allowHtml && rehypeRaw,\n enableGithubAlert && rehypeGithubAlerts,\n enableLatex && rehypeKatex,\n enableLatex && rehypeKatexDir,\n enableCustomFootnotes && rehypeCustomFootnotes,\n ].filter(Boolean) as Pluggable[],\n [enableLatex, enableGithubAlert, enableCustomFootnotes, allowHtml],\n );\n\n return useMemo(\n () => [...rehypePluginsAhead, ...memoPlugins, ...rehypePlugins],\n [rehypePlugins, memoPlugins, rehypePluginsAhead],\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMarkdownRehypePlugins.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownRehypePlugins.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { rehypeGithubAlerts } from 'rehype-github-alerts';\nimport rehypeKatex from 'rehype-katex';\nimport rehypeRaw from 'rehype-raw';\nimport type { Pluggable } from 'unified';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport { rehypeCustomFootnotes } from '@/Markdown/plugins/rehypeCustomFootnotes';\nimport { rehypeKatexDir } from '@/Markdown/plugins/rehypeKatexDir';\n\nexport const useMarkdownRehypePlugins = (): Pluggable[] => {\n const {\n enableLatex,\n enableCustomFootnotes,\n enableGithubAlert,\n allowHtml,\n rehypePlugins = [],\n rehypePluginsAhead = [],\n } = useMarkdownContext();\n\n const memoPlugins = useMemo(\n () =>\n [\n allowHtml && rehypeRaw,\n enableGithubAlert && rehypeGithubAlerts,\n enableLatex && rehypeKatex,\n enableLatex && rehypeKatexDir,\n enableCustomFootnotes && rehypeCustomFootnotes,\n ].filter(Boolean) as Pluggable[],\n [enableLatex, enableGithubAlert, enableCustomFootnotes, allowHtml],\n );\n\n return useMemo(\n () => [...rehypePluginsAhead, ...memoPlugins, ...rehypePlugins],\n [rehypePlugins, memoPlugins, rehypePluginsAhead],\n );\n};\n"],"mappings":";;;;;;;;;AAYA,MAAa,iCAA8C;CACzD,MAAM,EACJ,aACA,uBACA,mBACA,WACA,gBAAgB,EAAE,EAClB,qBAAqB,EAAE,KACrB,oBAAoB;CAExB,MAAM,cAAc,cAEhB;EACE,aAAa;EACb,qBAAqB;EACrB,eAAe;EACf,eAAe;EACf,yBAAyB;EAC1B,CAAC,OAAO,QAAQ,EACnB;EAAC;EAAa;EAAmB;EAAuB;EAAU,CACnE;AAED,QAAO,cACC;EAAC,GAAG;EAAoB,GAAG;EAAa,GAAG;EAAc,EAC/D;EAAC;EAAe;EAAa;EAAmB,CACjD"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs";
|
|
4
3
|
import { remarkBr } from "../../Markdown/plugins/remarkBr.mjs";
|
|
5
4
|
import { remarkCustomFootnotes } from "../../Markdown/plugins/remarkCustomFootnotes.mjs";
|
|
@@ -10,7 +9,6 @@ import remarkBreaks from "remark-breaks";
|
|
|
10
9
|
import remarkCjkFriendly from "remark-cjk-friendly";
|
|
11
10
|
import remarkGfm from "remark-gfm";
|
|
12
11
|
import remarkMath from "remark-math";
|
|
13
|
-
|
|
14
12
|
//#region src/hooks/useMarkdown/useMarkdownRemarkPlugins.ts
|
|
15
13
|
const useMarkdownRemarkPlugins = () => {
|
|
16
14
|
const { enableLatex, enableCustomFootnotes, remarkPlugins = [], remarkPluginsAhead = [], variant, allowHtml } = useMarkdownContext();
|
|
@@ -40,7 +38,7 @@ const useMarkdownRemarkPlugins = () => {
|
|
|
40
38
|
remarkPluginsAhead
|
|
41
39
|
]);
|
|
42
40
|
};
|
|
43
|
-
|
|
44
41
|
//#endregion
|
|
45
42
|
export { useMarkdownRemarkPlugins };
|
|
43
|
+
|
|
46
44
|
//# sourceMappingURL=useMarkdownRemarkPlugins.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkdownRemarkPlugins.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownRemarkPlugins.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport remarkBreaks from 'remark-breaks';\nimport remarkCjkFriendly from 'remark-cjk-friendly';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\nimport type { Pluggable } from 'unified';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport { remarkBr } from '@/Markdown/plugins/remarkBr';\nimport { remarkCustomFootnotes } from '@/Markdown/plugins/remarkCustomFootnotes';\nimport { remarkGfmPlus } from '@/Markdown/plugins/remarkGfmPlus';\nimport { remarkVideo } from '@/Markdown/plugins/remarkVideo';\n\nexport const useMarkdownRemarkPlugins = (): Pluggable[] => {\n const {\n enableLatex,\n enableCustomFootnotes,\n remarkPlugins = [],\n remarkPluginsAhead = [],\n variant,\n allowHtml,\n } = useMarkdownContext();\n\n const isChatMode = variant === 'chat';\n\n const memoPlugins = useMemo(\n () =>\n [\n remarkCjkFriendly,\n // Parse math before GFM so that '|' inside $...$ isn't treated as a table separator\n enableLatex && remarkMath,\n [remarkGfm, { singleTilde: false }],\n !allowHtml && remarkBr,\n !allowHtml && remarkGfmPlus,\n !allowHtml && remarkVideo,\n enableCustomFootnotes && remarkCustomFootnotes,\n isChatMode && remarkBreaks,\n ].filter(Boolean) as Pluggable[],\n [allowHtml, isChatMode, enableLatex, enableCustomFootnotes],\n );\n\n return useMemo(\n () => [...remarkPluginsAhead, ...memoPlugins, ...remarkPlugins],\n [remarkPlugins, memoPlugins, remarkPluginsAhead],\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMarkdownRemarkPlugins.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownRemarkPlugins.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport remarkBreaks from 'remark-breaks';\nimport remarkCjkFriendly from 'remark-cjk-friendly';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\nimport type { Pluggable } from 'unified';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport { remarkBr } from '@/Markdown/plugins/remarkBr';\nimport { remarkCustomFootnotes } from '@/Markdown/plugins/remarkCustomFootnotes';\nimport { remarkGfmPlus } from '@/Markdown/plugins/remarkGfmPlus';\nimport { remarkVideo } from '@/Markdown/plugins/remarkVideo';\n\nexport const useMarkdownRemarkPlugins = (): Pluggable[] => {\n const {\n enableLatex,\n enableCustomFootnotes,\n remarkPlugins = [],\n remarkPluginsAhead = [],\n variant,\n allowHtml,\n } = useMarkdownContext();\n\n const isChatMode = variant === 'chat';\n\n const memoPlugins = useMemo(\n () =>\n [\n remarkCjkFriendly,\n // Parse math before GFM so that '|' inside $...$ isn't treated as a table separator\n enableLatex && remarkMath,\n [remarkGfm, { singleTilde: false }],\n !allowHtml && remarkBr,\n !allowHtml && remarkGfmPlus,\n !allowHtml && remarkVideo,\n enableCustomFootnotes && remarkCustomFootnotes,\n isChatMode && remarkBreaks,\n ].filter(Boolean) as Pluggable[],\n [allowHtml, isChatMode, enableLatex, enableCustomFootnotes],\n );\n\n return useMemo(\n () => [...remarkPluginsAhead, ...memoPlugins, ...remarkPlugins],\n [remarkPlugins, memoPlugins, remarkPluginsAhead],\n );\n};\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,iCAA8C;CACzD,MAAM,EACJ,aACA,uBACA,gBAAgB,EAAE,EAClB,qBAAqB,EAAE,EACvB,SACA,cACE,oBAAoB;CAExB,MAAM,aAAa,YAAY;CAE/B,MAAM,cAAc,cAEhB;EACE;EAEA,eAAe;EACf,CAAC,WAAW,EAAE,aAAa,OAAO,CAAC;EACnC,CAAC,aAAa;EACd,CAAC,aAAa;EACd,CAAC,aAAa;EACd,yBAAyB;EACzB,cAAc;EACf,CAAC,OAAO,QAAQ,EACnB;EAAC;EAAW;EAAY;EAAa;EAAsB,CAC5D;AAED,QAAO,cACC;EAAC,GAAG;EAAoB,GAAG;EAAa,GAAG;EAAc,EAC/D;EAAC;EAAe;EAAa;EAAmB,CACjD"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { preprocessLaTeX } from "./latex.mjs";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/useMarkdown/utils.ts
|
|
4
3
|
const CACHE_SIZE = 50;
|
|
5
4
|
/**
|
|
@@ -77,7 +76,7 @@ const preprocessMarkdownContent = (str, { enableCustomFootnotes, enableLatex, ci
|
|
|
77
76
|
if (enableCustomFootnotes) content = transformCitations(content, citationsLength);
|
|
78
77
|
return content;
|
|
79
78
|
};
|
|
80
|
-
|
|
81
79
|
//#endregion
|
|
82
80
|
export { addToCache, contentCache, preprocessMarkdownContent };
|
|
81
|
+
|
|
83
82
|
//# sourceMappingURL=utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/utils.ts"],"sourcesContent":["import { preprocessLaTeX } from './latex';\n\n// Cache configuration\nconst CACHE_SIZE = 50;\n\n/**\n * Cache for storing processed content to avoid redundant processing\n */\nexport const contentCache = new Map<string, string>();\n\n/**\n * Adds content to the cache with size limitation\n * Removes oldest entry if cache size limit is reached\n *\n * @param key The cache key\n * @param value The processed content to store\n */\nexport const addToCache = (key: string, value: string) => {\n if (contentCache.size >= CACHE_SIZE) {\n // Remove the oldest cache entry\n const firstKey = contentCache.keys().next().value;\n if (firstKey) contentCache.delete(firstKey);\n }\n contentCache.set(key, value);\n};\n\n/**\n * Transforms citation references in the format [n] to markdown links\n *\n * @param rawContent The markdown content with citation references\n * @param length The number of citations\n * @returns The content with citations transformed to markdown links\n */\nexport const transformCitations = (rawContent: string, length: number = 0) => {\n if (length === 0) return rawContent;\n\n // 生成引用索引\n const citationIndices = Array.from({ length })\n .fill('')\n .map((_, index) => index + 1);\n\n // 匹配所有潜在的引用\n const pattern = new RegExp(`\\\\[(${citationIndices.join('|')})\\\\]`, 'g');\n const matches: { id: string; index: number; length: number }[] = [];\n\n let match;\n while ((match = pattern.exec(rawContent)) !== null) {\n matches.push({\n id: match[1],\n index: match.index,\n length: match[0].length,\n });\n }\n\n // 识别所有需要排除的区域\n const excludedRanges: { end: number; start: number }[] = [];\n\n // 查找LaTeX块 $$...$$\n const latexBlockRegex = /\\$\\$([\\s\\S]*?)\\$\\$/g;\n while ((match = latexBlockRegex.exec(rawContent)) !== null) {\n excludedRanges.push({\n end: match.index + match[0].length - 1,\n start: match.index,\n });\n }\n\n // 查找行内LaTeX $...$\n const inlineLatexRegex = /\\$([^$]*)\\$/g;\n while ((match = inlineLatexRegex.exec(rawContent)) !== null) {\n excludedRanges.push({\n end: match.index + match[0].length - 1,\n start: match.index,\n });\n }\n\n // 查找代码块 ```...```\n const codeBlockRegex = /```([\\s\\S]*?)```/g;\n while ((match = codeBlockRegex.exec(rawContent)) !== null) {\n excludedRanges.push({\n end: match.index + match[0].length - 1,\n start: match.index,\n });\n }\n\n // 查找行内代码 `...`\n const inlineCodeRegex = /`([^`]*)`/g;\n while ((match = inlineCodeRegex.exec(rawContent)) !== null) {\n excludedRanges.push({\n end: match.index + match[0].length - 1,\n start: match.index,\n });\n }\n\n // 过滤掉在排除区域内的引用\n const validMatches = matches.filter((citation) => {\n return !excludedRanges.some(\n (range) => citation.index >= range.start && citation.index <= range.end,\n );\n });\n\n // 从后向前替换,避免索引变化问题\n let result = rawContent;\n for (let i = validMatches.length - 1; i >= 0; i--) {\n const citation = validMatches[i];\n const before = result.slice(0, Math.max(0, citation.index));\n const after = result.slice(Math.max(0, citation.index + citation.length));\n result = before + `[#citation-${citation.id}](citation-${citation.id})` + after;\n }\n\n // 处理连续引用\n return result.replaceAll('][', '] [');\n};\n\n/**\n * Preprocessing options for markdown content\n */\ninterface PreprocessOptions {\n citationsLength?: number;\n enableCustomFootnotes?: boolean;\n enableLatex?: boolean;\n}\n\nexport const preprocessMarkdownContent = (\n str: string,\n { enableCustomFootnotes, enableLatex, citationsLength }: PreprocessOptions = {},\n) => {\n let content = str;\n\n // Process LaTeX expressions\n if (enableLatex) {\n content = preprocessLaTeX(content);\n }\n\n // Process custom footnotes/citations\n if (enableCustomFootnotes) {\n content = transformCitations(content, citationsLength);\n }\n\n return content;\n};\n"],"mappings":";;AAGA,MAAM,aAAa;;;;AAKnB,MAAa,+BAAe,IAAI,KAAqB;;;;;;;;AASrD,MAAa,cAAc,KAAa,UAAkB;AACxD,KAAI,aAAa,QAAQ,YAAY;EAEnC,MAAM,WAAW,aAAa,MAAM,CAAC,MAAM,CAAC;AAC5C,MAAI,SAAU,cAAa,OAAO,SAAS;;AAE7C,cAAa,IAAI,KAAK,MAAM;;;;;;;;;AAU9B,MAAa,sBAAsB,YAAoB,SAAiB,MAAM;AAC5E,KAAI,WAAW,EAAG,QAAO;CAGzB,MAAM,kBAAkB,MAAM,KAAK,EAAE,QAAQ,CAAC,CAC3C,KAAK,GAAG,CACR,KAAK,GAAG,UAAU,QAAQ,EAAE;CAG/B,MAAM,UAAU,IAAI,OAAO,OAAO,gBAAgB,KAAK,IAAI,CAAC,OAAO,IAAI;CACvE,MAAM,UAA2D,EAAE;CAEnE,IAAI;AACJ,SAAQ,QAAQ,QAAQ,KAAK,WAAW,MAAM,KAC5C,SAAQ,KAAK;EACX,IAAI,MAAM;EACV,OAAO,MAAM;EACb,QAAQ,MAAM,GAAG;EAClB,CAAC;CAIJ,MAAM,iBAAmD,EAAE;CAG3D,MAAM,kBAAkB;AACxB,SAAQ,QAAQ,gBAAgB,KAAK,WAAW,MAAM,KACpD,gBAAe,KAAK;EAClB,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS;EACrC,OAAO,MAAM;EACd,CAAC;CAIJ,MAAM,mBAAmB;AACzB,SAAQ,QAAQ,iBAAiB,KAAK,WAAW,MAAM,KACrD,gBAAe,KAAK;EAClB,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS;EACrC,OAAO,MAAM;EACd,CAAC;CAIJ,MAAM,iBAAiB;AACvB,SAAQ,QAAQ,eAAe,KAAK,WAAW,MAAM,KACnD,gBAAe,KAAK;EAClB,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS;EACrC,OAAO,MAAM;EACd,CAAC;CAIJ,MAAM,kBAAkB;AACxB,SAAQ,QAAQ,gBAAgB,KAAK,WAAW,MAAM,KACpD,gBAAe,KAAK;EAClB,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS;EACrC,OAAO,MAAM;EACd,CAAC;CAIJ,MAAM,eAAe,QAAQ,QAAQ,aAAa;AAChD,SAAO,CAAC,eAAe,MACpB,UAAU,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,MAAM,IACrE;GACD;CAGF,IAAI,SAAS;AACb,MAAK,IAAI,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;EACjD,MAAM,WAAW,aAAa;EAC9B,MAAM,SAAS,OAAO,MAAM,GAAG,KAAK,IAAI,GAAG,SAAS,MAAM,CAAC;EAC3D,MAAM,QAAQ,OAAO,MAAM,KAAK,IAAI,GAAG,SAAS,QAAQ,SAAS,OAAO,CAAC;AACzE,WAAS,SAAS,cAAc,SAAS,GAAG,aAAa,SAAS,GAAG,KAAK;;AAI5E,QAAO,OAAO,WAAW,MAAM,MAAM;;AAYvC,MAAa,6BACX,KACA,EAAE,uBAAuB,aAAa,oBAAuC,EAAE,KAC5E;CACH,IAAI,UAAU;AAGd,KAAI,YACF,WAAU,gBAAgB,QAAQ;AAIpC,KAAI,sBACF,WAAU,mBAAmB,SAAS,gBAAgB;AAGxD,QAAO"}
|
package/es/hooks/useMermaid.mjs
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useEffect, useMemo, useState } from "react";
|
|
4
3
|
import { useTheme } from "antd-style";
|
|
5
4
|
import { Md5 } from "ts-md5";
|
|
6
|
-
|
|
7
|
-
//#region src/hooks/useMermaid.ts
|
|
8
|
-
const MD5_LENGTH_THRESHOLD = 1e4;
|
|
9
5
|
const mermaidCache = /* @__PURE__ */ new Map();
|
|
10
6
|
const MAX_CACHE_SIZE = 500;
|
|
11
7
|
const cleanupCache = () => {
|
|
@@ -79,7 +75,7 @@ const useMermaid = (content, { id, theme: customTheme }) => {
|
|
|
79
75
|
customTheme
|
|
80
76
|
]);
|
|
81
77
|
const cacheKey = useMemo(() => {
|
|
82
|
-
const hash = content.length <
|
|
78
|
+
const hash = content.length < 1e4 ? content : Md5.hashStr(content);
|
|
83
79
|
return [
|
|
84
80
|
id,
|
|
85
81
|
customTheme || (theme.isDarkMode ? "d" : "l"),
|
|
@@ -128,7 +124,7 @@ const useMermaid = (content, { id, theme: customTheme }) => {
|
|
|
128
124
|
]);
|
|
129
125
|
return data;
|
|
130
126
|
};
|
|
131
|
-
|
|
132
127
|
//#endregion
|
|
133
128
|
export { createMermaidConfig, loadMermaid, useMermaid };
|
|
129
|
+
|
|
134
130
|
//# sourceMappingURL=useMermaid.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMermaid.mjs","names":[
|
|
1
|
+
{"version":3,"file":"useMermaid.mjs","names":[],"sources":["../../src/hooks/useMermaid.ts"],"sourcesContent":["'use client';\n\nimport { useTheme } from 'antd-style';\nimport type { MermaidConfig } from 'mermaid';\nimport { useEffect, useMemo, useState } from 'react';\nimport { Md5 } from 'ts-md5';\n\n// 缓存已验证的图表内容\nexport const MD5_LENGTH_THRESHOLD = 10_000;\n\n// Application-level cache for rendered Mermaid SVG\n// Key: cacheKey string, Value: Promise<string>\nconst mermaidCache = new Map<string, Promise<string>>();\n\n// Maximum cache size to prevent memory leaks\nconst MAX_CACHE_SIZE = 500;\n\n// Clean up old cache entries when limit is reached\nconst cleanupCache = () => {\n if (mermaidCache.size > MAX_CACHE_SIZE) {\n // Remove oldest 20% of entries\n const entriesToRemove = Math.floor(MAX_CACHE_SIZE * 0.2);\n const keysToRemove = Array.from(mermaidCache.keys()).slice(0, entriesToRemove);\n for (const key of keysToRemove) {\n mermaidCache.delete(key);\n }\n }\n};\n\n// 懒加载 mermaid 实例\nlet mermaidPromise: Promise<typeof import('mermaid').default | null> | null = null;\n\nexport const loadMermaid = (): Promise<typeof import('mermaid').default | null> => {\n if (typeof window === 'undefined') return Promise.resolve(null);\n\n if (!mermaidPromise) {\n mermaidPromise = import('mermaid').then((mod) => mod.default);\n }\n\n return mermaidPromise;\n};\n\n// Helper to create mermaid config\nexport const createMermaidConfig = (\n theme: ReturnType<typeof useTheme>,\n customTheme?: MermaidConfig['theme'],\n): MermaidConfig => ({\n fontFamily: theme.fontFamilyCode,\n gantt: {\n useWidth: 1920,\n },\n securityLevel: 'loose',\n startOnLoad: false,\n theme: customTheme || (theme.isDarkMode ? 'dark' : 'neutral'),\n themeVariables: customTheme\n ? undefined\n : {\n errorBkgColor: theme.colorTextDescription,\n errorTextColor: theme.colorTextDescription,\n fontFamily: theme.fontFamily,\n lineColor: theme.colorTextSecondary,\n mainBkg: theme.colorBgContainer,\n noteBkgColor: theme.colorInfoBg,\n noteTextColor: theme.colorInfoText,\n pie1: theme.geekblue,\n pie2: theme.colorWarning,\n pie3: theme.colorSuccess,\n pie4: theme.colorError,\n primaryBorderColor: theme.colorBorder,\n primaryColor: theme.colorBgContainer,\n primaryTextColor: theme.colorText,\n secondaryBorderColor: theme.colorInfoBorder,\n secondaryColor: theme.colorInfoBg,\n secondaryTextColor: theme.colorInfoText,\n tertiaryBorderColor: theme.colorSuccessBorder,\n tertiaryColor: theme.colorSuccessBg,\n tertiaryTextColor: theme.colorSuccessText,\n textColor: theme.colorText,\n },\n});\n\n/**\n * 验证并处理 Mermaid 图表内容 - 优化版本(移除 SWR)\n */\nexport const useMermaid = (\n content: string,\n {\n id,\n theme: customTheme,\n }: {\n id: string;\n theme?: MermaidConfig['theme'];\n },\n): string => {\n const theme = useTheme();\n const [data, setData] = useState<string>('');\n\n // 提取主题相关配置到 useMemo 中 - 只依赖实际使用的 theme 属性\n const mermaidConfig = useMemo(\n () => createMermaidConfig(theme, customTheme),\n [\n theme.fontFamilyCode,\n theme.isDarkMode,\n theme.colorTextDescription,\n theme.fontFamily,\n theme.colorTextSecondary,\n theme.colorBgContainer,\n theme.colorInfoBg,\n theme.colorInfoText,\n theme.geekblue,\n theme.colorWarning,\n theme.colorSuccess,\n theme.colorError,\n theme.colorBorder,\n theme.colorInfoBorder,\n theme.colorSuccessBorder,\n theme.colorSuccessBg,\n theme.colorSuccessText,\n theme.colorText,\n customTheme,\n ],\n );\n\n // 为长内容生成哈希键\n const cacheKey = useMemo((): string => {\n const hash = content.length < MD5_LENGTH_THRESHOLD ? content : Md5.hashStr(content);\n return [id, customTheme || (theme.isDarkMode ? 'd' : 'l'), hash].filter(Boolean).join('-');\n }, [content, id, theme.isDarkMode, customTheme]);\n\n useEffect(() => {\n // Check cache first\n const cachedPromise = mermaidCache.get(cacheKey);\n if (cachedPromise) {\n cachedPromise\n .then((svg) => {\n setData(svg);\n })\n .catch(() => {\n // Silently handle errors, fallback will be handled in the promise\n });\n return;\n }\n\n // Create new promise for rendering\n const renderPromise = (async (): Promise<string> => {\n try {\n const mermaidInstance = await loadMermaid();\n if (!mermaidInstance) return '';\n\n // 验证语法\n const isValid = await mermaidInstance.parse(content);\n\n if (isValid) {\n // 初始化并渲染\n mermaidInstance.initialize(mermaidConfig);\n const { svg } = await mermaidInstance.render(id, content);\n return svg;\n } else {\n throw new Error('Mermaid 语法无效');\n }\n } catch (error_) {\n console.error('Mermaid 解析错误:', error_);\n return '';\n }\n })();\n\n // Cache the promise\n mermaidCache.set(cacheKey, renderPromise);\n cleanupCache();\n\n // Handle promise result\n renderPromise\n .then((svg) => {\n // Only update if this is still the current cache key\n if (mermaidCache.get(cacheKey) === renderPromise) {\n setData(svg);\n }\n })\n .catch(() => {\n // Remove failed promise from cache\n if (mermaidCache.get(cacheKey) === renderPromise) {\n mermaidCache.delete(cacheKey);\n }\n });\n }, [cacheKey, content, id, mermaidConfig]);\n\n return data;\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isValidElement, useMemo } from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/useNativeButton.ts
|
|
4
3
|
/**
|
|
5
4
|
* Map of component displayNames to their nativeButton values.
|
|
@@ -99,7 +98,7 @@ function useNativeButton({ children, nativeButton, triggerNativeButton }) {
|
|
|
99
98
|
])
|
|
100
99
|
};
|
|
101
100
|
}
|
|
102
|
-
|
|
103
101
|
//#endregion
|
|
104
102
|
export { useNativeButton };
|
|
103
|
+
|
|
105
104
|
//# sourceMappingURL=useNativeButton.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNativeButton.mjs","names":[
|
|
1
|
+
{"version":3,"file":"useNativeButton.mjs","names":[],"sources":["../../src/hooks/useNativeButton.ts"],"sourcesContent":["import { isValidElement, type ReactElement, type ReactNode, useMemo } from 'react';\n\nexport interface UseNativeButtonOptions {\n /**\n * The children element that will be used as the trigger\n */\n children: ReactNode;\n /**\n * User-provided nativeButton prop\n */\n nativeButton?: boolean;\n /**\n * Additional nativeButton from trigger props (for DropdownMenu)\n */\n triggerNativeButton?: boolean;\n}\n\nexport interface UseNativeButtonResult {\n /**\n * Whether the trigger element is a native button\n */\n isNativeButtonTriggerElement: boolean;\n /**\n * The resolved nativeButton value to pass to Base UI components\n */\n resolvedNativeButton: boolean | undefined;\n}\n\n/**\n * Map of component displayNames to their nativeButton values.\n * Components that render native <button> elements should be true,\n * components that render non-button elements should be false.\n */\nconst NATIVE_BUTTON_MAP: Record<string, boolean> = {\n A: false,\n ActionIcon: false,\n ActionIconGroup: false,\n Alert: false,\n Avatar: false,\n AvatarGroup: false,\n Block: false,\n BottomGradientButton: true,\n Burger: false,\n Button: true,\n Center: false,\n Checkbox: false,\n CheckboxGroup: false,\n Collapse: false,\n ColorSwatches: false,\n CopyButton: false,\n DownloadButton: false,\n EditableText: false,\n Empty: false,\n FileTypeIcon: false,\n Flexbox: false,\n FluentEmoji: false,\n GradientButton: true,\n Highlighter: false,\n Hotkey: false,\n Icon: false,\n Image: false,\n Img: false,\n Input: false,\n InputNumber: false,\n InputPassword: false,\n List: false,\n ListItem: false,\n Select: false,\n Switch: false,\n Markdown: false,\n MaterialFileTypeIcon: false,\n Segmented: false,\n Skeleton: false,\n SkeletonAvatar: false,\n SkeletonBlock: false,\n SkeletonButton: false,\n SkeletonParagraph: false,\n SkeletonTags: false,\n SkeletonTitle: false,\n Snippet: false,\n Tag: false,\n Text: false,\n TextArea: false,\n ThemeSwitch: false,\n Video: false,\n};\n\n/**\n * Get the displayName of a React component from an element.\n * Handles function components, forwardRef, memo, etc.\n */\nfunction getComponentDisplayName(element: ReactElement): string | undefined {\n const type = element.type;\n\n if (typeof type === 'string') return undefined;\n\n if (typeof type === 'function') {\n return (type as any).displayName || type.name;\n }\n\n if (typeof type === 'object' && type !== null) {\n // Handle forwardRef, memo, etc.\n const displayName =\n (type as any).displayName ||\n (type as any).render?.displayName ||\n (type as any).render?.name ||\n (type as any).type?.displayName ||\n (type as any).type?.name;\n return displayName;\n }\n\n return undefined;\n}\n\n/**\n * Hook to resolve nativeButton prop for Base UI trigger components.\n *\n * When using `render`, Base UI expects the rendered element to be a native <button> by default.\n * If we can infer it's not, we opt out to avoid warnings (users can still override via `nativeButton`).\n */\nexport function useNativeButton({\n children,\n nativeButton,\n triggerNativeButton,\n}: UseNativeButtonOptions): UseNativeButtonResult {\n const isNativeButtonTriggerElement = useMemo(() => {\n if (!isValidElement(children)) return false;\n return typeof children.type === 'string' && children.type === 'button';\n }, [children]);\n\n const resolvedNativeButton = useMemo(() => {\n // User-provided nativeButton takes highest priority\n if (nativeButton !== undefined) return nativeButton;\n // Trigger props nativeButton (for DropdownMenu) takes second priority\n if (triggerNativeButton !== undefined) return triggerNativeButton;\n // If it's a native button element, return true\n if (isNativeButtonTriggerElement) return true;\n // If children is not a valid element, let Base UI decide\n if (!isValidElement(children)) return undefined;\n // If it's a string type but not a button (e.g., 'div'), return false\n if (typeof children.type === 'string') return false;\n\n // Check if it's a known component from the library\n const displayName = getComponentDisplayName(children);\n if (displayName && displayName in NATIVE_BUTTON_MAP) {\n return NATIVE_BUTTON_MAP[displayName];\n }\n\n // For unknown React components, default to false to avoid warnings\n // since most custom components don't render native buttons\n return false;\n }, [children, isNativeButtonTriggerElement, nativeButton, triggerNativeButton]);\n\n return {\n isNativeButtonTriggerElement,\n resolvedNativeButton,\n };\n}\n"],"mappings":";;;;;;;AAiCA,MAAM,oBAA6C;CACjD,GAAG;CACH,YAAY;CACZ,iBAAiB;CACjB,OAAO;CACP,QAAQ;CACR,aAAa;CACb,OAAO;CACP,sBAAsB;CACtB,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,eAAe;CACf,UAAU;CACV,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,OAAO;CACP,cAAc;CACd,SAAS;CACT,aAAa;CACb,gBAAgB;CAChB,aAAa;CACb,QAAQ;CACR,MAAM;CACN,OAAO;CACP,KAAK;CACL,OAAO;CACP,aAAa;CACb,eAAe;CACf,MAAM;CACN,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,sBAAsB;CACtB,WAAW;CACX,UAAU;CACV,gBAAgB;CAChB,eAAe;CACf,gBAAgB;CAChB,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf,SAAS;CACT,KAAK;CACL,MAAM;CACN,UAAU;CACV,aAAa;CACb,OAAO;CACR;;;;;AAMD,SAAS,wBAAwB,SAA2C;CAC1E,MAAM,OAAO,QAAQ;AAErB,KAAI,OAAO,SAAS,SAAU,QAAO,KAAA;AAErC,KAAI,OAAO,SAAS,WAClB,QAAQ,KAAa,eAAe,KAAK;AAG3C,KAAI,OAAO,SAAS,YAAY,SAAS,KAQvC,QALG,KAAa,eACb,KAAa,QAAQ,eACrB,KAAa,QAAQ,QACrB,KAAa,MAAM,eACnB,KAAa,MAAM;;;;;;;;AAa1B,SAAgB,gBAAgB,EAC9B,UACA,cACA,uBACgD;CAChD,MAAM,+BAA+B,cAAc;AACjD,MAAI,CAAC,eAAe,SAAS,CAAE,QAAO;AACtC,SAAO,OAAO,SAAS,SAAS,YAAY,SAAS,SAAS;IAC7D,CAAC,SAAS,CAAC;AAyBd,QAAO;EACL;EACA,sBAzB2B,cAAc;AAEzC,OAAI,iBAAiB,KAAA,EAAW,QAAO;AAEvC,OAAI,wBAAwB,KAAA,EAAW,QAAO;AAE9C,OAAI,6BAA8B,QAAO;AAEzC,OAAI,CAAC,eAAe,SAAS,CAAE,QAAO,KAAA;AAEtC,OAAI,OAAO,SAAS,SAAS,SAAU,QAAO;GAG9C,MAAM,cAAc,wBAAwB,SAAS;AACrD,OAAI,eAAe,eAAe,kBAChC,QAAO,kBAAkB;AAK3B,UAAO;KACN;GAAC;GAAU;GAA8B;GAAc;GAAoB,CAAC;EAK9E"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { getCodeLanguageByInput } from "../Highlighter/const.mjs";
|
|
4
3
|
import lobe_theme_default from "../Highlighter/theme/lobe-theme.mjs";
|
|
5
4
|
import { shikiModulePromise } from "./useHighlight.mjs";
|
|
6
5
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
7
6
|
import { ShikiStreamTokenizer } from "shiki-stream";
|
|
8
|
-
|
|
9
7
|
//#region src/hooks/useStreamHighlight.ts
|
|
10
8
|
const tokensToLineTokens = (tokens) => {
|
|
11
9
|
if (!tokens.length) return [[]];
|
|
@@ -215,7 +213,7 @@ const useStreamHighlight = (text, { language, theme: builtinTheme, streaming })
|
|
|
215
213
|
theme: effectiveTheme
|
|
216
214
|
});
|
|
217
215
|
};
|
|
218
|
-
|
|
219
216
|
//#endregion
|
|
220
217
|
export { useStreamHighlight };
|
|
218
|
+
|
|
221
219
|
//# sourceMappingURL=useStreamHighlight.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStreamHighlight.mjs","names":["lines: ThemedToken[][]","currentLine: ThemedToken[]","mergedLines: ThemedToken[][]","themesToLoad: any[]","lobeTheme"],"sources":["../../src/hooks/useStreamHighlight.ts"],"sourcesContent":["'use client';\n\nimport { type CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { type BuiltinTheme, type ThemedToken } from 'shiki';\nimport { ShikiStreamTokenizer } from 'shiki-stream';\n\nimport { getCodeLanguageByInput } from '@/Highlighter/const';\nimport lobeTheme from '@/Highlighter/theme/lobe-theme';\n\nimport { shikiModulePromise, type StreamingHighlightResult } from './useHighlight';\n\ntype StreamingOptions = {\n customThemes?: Record<string, any>;\n enabled?: boolean;\n language: string;\n theme: string;\n};\n\n// Optimized version: reduce array allocations and object spreading\nconst tokensToLineTokens = (tokens: ThemedToken[]): ThemedToken[][] => {\n if (!tokens.length) return [[]];\n\n const lines: ThemedToken[][] = [];\n let currentLine: ThemedToken[] = [];\n\n for (const token of tokens) {\n const content = token.content ?? '';\n\n if (content === '\\n') {\n lines.push(currentLine);\n currentLine = [];\n continue;\n }\n\n const newlineIndex = content.indexOf('\\n');\n if (newlineIndex === -1) {\n // No newline, add token directly\n currentLine.push(token);\n } else {\n // Split on newlines\n const segments = content.split('\\n');\n for (const [j, segment] of segments.entries()) {\n if (segment) {\n // Only create new object if we need to modify content\n currentLine.push(j === 0 && segment === content ? token : { ...token, content: segment });\n }\n if (j < segments.length - 1) {\n lines.push(currentLine);\n currentLine = [];\n }\n }\n }\n }\n\n // Don't forget the last line\n if (currentLine.length > 0 || lines.length === 0) {\n lines.push(currentLine);\n }\n\n return lines.length > 0 ? lines : [[]];\n};\n\nconst createPreStyle = (bg?: string, fg?: string): CSSProperties | undefined => {\n if (!bg && !fg) return undefined;\n return {\n backgroundColor: bg,\n color: fg,\n };\n};\n\nconst useStreamingHighlighter = (\n text: string,\n options: StreamingOptions,\n): StreamingHighlightResult | undefined => {\n const { customThemes, enabled, language, theme } = options;\n const [result, setResult] = useState<StreamingHighlightResult>();\n const tokenizerRef = useRef<ShikiStreamTokenizer | null>(null);\n const previousTextRef = useRef('');\n const safeText = text ?? '';\n const latestTextRef = useRef(safeText);\n const preStyleRef = useRef<CSSProperties | undefined>(undefined);\n const linesRef = useRef<ThemedToken[][]>([[]]);\n\n useEffect(() => {\n latestTextRef.current = safeText;\n }, [safeText]);\n\n // Use ref to store callback to avoid recreating it\n const setStreamingResultRef = useRef((rawLines: ThemedToken[][]) => {\n const previousLines = linesRef.current;\n const newLinesLength = rawLines.length;\n const prevLinesLength = previousLines.length;\n\n // Fast path: if lengths differ or it's a complete reset, use new lines directly\n if (newLinesLength !== prevLinesLength || newLinesLength === 0) {\n linesRef.current = rawLines;\n setResult({\n lines: rawLines,\n preStyle: preStyleRef.current,\n });\n return;\n }\n\n // Optimized comparison: only check changed lines\n let hasChanges = false;\n const mergedLines: ThemedToken[][] = [];\n\n for (let i = 0; i < newLinesLength; i++) {\n const newLine = rawLines[i];\n const prevLine = previousLines[i];\n\n // Quick reference equality check first\n if (prevLine === newLine) {\n mergedLines[i] = prevLine;\n continue;\n }\n\n // Length check\n if (!prevLine || prevLine.length !== newLine.length) {\n mergedLines[i] = newLine;\n hasChanges = true;\n continue;\n }\n\n // Deep comparison only for lines that might have changed\n let lineChanged = false;\n for (const [j, newToken] of newLine.entries()) {\n if (prevLine[j] !== newToken) {\n lineChanged = true;\n break;\n }\n }\n\n if (lineChanged) {\n mergedLines[i] = newLine;\n hasChanges = true;\n } else {\n mergedLines[i] = prevLine;\n }\n }\n\n // Only update state if there are actual changes\n if (hasChanges) {\n linesRef.current = mergedLines;\n setResult({\n lines: mergedLines,\n preStyle: preStyleRef.current,\n });\n }\n });\n\n const updateTokens = useCallback(async (nextText: string, forceReset = false) => {\n const tokenizer = tokenizerRef.current;\n if (!tokenizer) return;\n\n if (forceReset) {\n tokenizer.clear();\n previousTextRef.current = '';\n }\n\n const previousText = previousTextRef.current;\n let chunk = nextText;\n const canAppend = !forceReset && nextText.startsWith(previousText);\n\n if (canAppend) {\n chunk = nextText.slice(previousText.length);\n } else if (!forceReset) {\n tokenizer.clear();\n }\n\n previousTextRef.current = nextText;\n\n if (!chunk) {\n // Optimize: avoid array spread if possible\n const stableTokens = tokenizer.tokensStable;\n const unstableTokens = tokenizer.tokensUnstable;\n const totalLength = stableTokens.length + unstableTokens.length;\n\n if (totalLength === 0) {\n setStreamingResultRef.current([[]]);\n return;\n }\n\n // Only create merged array if we have both stable and unstable tokens\n const mergedTokens =\n stableTokens.length === 0\n ? unstableTokens\n : unstableTokens.length === 0\n ? stableTokens\n : [...stableTokens, ...unstableTokens];\n\n setStreamingResultRef.current(tokensToLineTokens(mergedTokens));\n return;\n }\n\n try {\n await tokenizer.enqueue(chunk);\n // Optimize: avoid array spread if possible\n const stableTokens = tokenizer.tokensStable;\n const unstableTokens = tokenizer.tokensUnstable;\n const mergedTokens =\n stableTokens.length === 0\n ? unstableTokens\n : unstableTokens.length === 0\n ? stableTokens\n : [...stableTokens, ...unstableTokens];\n setStreamingResultRef.current(tokensToLineTokens(mergedTokens));\n } catch (error) {\n console.error('Streaming highlighting failed:', error);\n }\n }, []);\n\n // Cache highlighter key to avoid unnecessary recreations\n const highlighterKeyRef = useRef<string>('');\n\n useEffect(() => {\n if (!enabled) {\n tokenizerRef.current?.clear();\n tokenizerRef.current = null;\n previousTextRef.current = '';\n preStyleRef.current = undefined;\n linesRef.current = [[]];\n setResult(undefined);\n highlighterKeyRef.current = '';\n return;\n }\n\n // Skip if language/theme combination hasn't changed\n const currentKey = `${language}-${theme}`;\n if (highlighterKeyRef.current === currentKey && tokenizerRef.current) {\n return;\n }\n\n let cancelled = false;\n\n (async () => {\n const mod = await shikiModulePromise;\n if (!mod || cancelled) return;\n\n try {\n // Load custom theme if using slack-dark or slack-ochin\n let themesToLoad: any[] = [theme];\n if (customThemes && theme === 'lobe-theme') {\n const customTheme = customThemes[theme];\n if (customTheme) {\n themesToLoad = [customTheme as any];\n }\n }\n\n // Only load the specific language and theme needed\n // getSingletonHighlighter will cache the instance internally\n const highlighter = await mod.getSingletonHighlighter({\n langs: language ? [language] : ['plaintext'],\n themes: themesToLoad,\n });\n\n if (!highlighter || cancelled) return;\n\n // Only create new tokenizer if key changed\n if (highlighterKeyRef.current !== currentKey) {\n // Clear old tokenizer\n tokenizerRef.current?.clear();\n\n const tokenizer = new ShikiStreamTokenizer({\n highlighter,\n lang: language,\n theme,\n });\n\n tokenizerRef.current = tokenizer;\n highlighterKeyRef.current = currentKey;\n previousTextRef.current = '';\n linesRef.current = [[]];\n\n const themeInfo = highlighter.getTheme(theme);\n preStyleRef.current = createPreStyle(themeInfo?.bg, themeInfo?.fg);\n }\n\n const currentText = latestTextRef.current;\n if (currentText) {\n await updateTokens(currentText, true);\n } else {\n setStreamingResultRef.current([[]]);\n }\n } catch (error) {\n console.error('Streaming highlighter initialization failed:', error);\n // Reset on error\n highlighterKeyRef.current = '';\n }\n })();\n\n return () => {\n cancelled = true;\n // Cleanup only if this effect was cancelled before completion\n // The next effect will handle cleanup if key changed\n };\n }, [enabled, language, theme, updateTokens, customThemes]);\n\n // Separate effect for text updates to avoid unnecessary tokenizer recreation\n useEffect(() => {\n if (!enabled) return;\n if (!tokenizerRef.current) return;\n // Use ref to get latest text to avoid stale closures\n const currentText = latestTextRef.current;\n updateTokens(currentText);\n }, [enabled, safeText, updateTokens]);\n\n return result;\n};\n\nexport const useStreamHighlight = (\n text: string,\n {\n language,\n theme: builtinTheme,\n streaming,\n }: { enableTransformer?: boolean; language: string; streaming?: boolean; theme?: BuiltinTheme },\n) => {\n // Safely handle language and text with boundary checks\n const safeText = text ?? '';\n const lang = (language ?? 'plaintext').toLowerCase();\n\n // Match supported languages\n const matchedLanguage = useMemo(() => getCodeLanguageByInput(lang), [lang]);\n\n const effectiveTheme = builtinTheme || 'lobe-theme';\n\n return useStreamingHighlighter(safeText, {\n customThemes: {\n 'lobe-theme': lobeTheme,\n },\n enabled: streaming,\n language: matchedLanguage,\n theme: effectiveTheme,\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useStreamHighlight.mjs","names":["lobeTheme"],"sources":["../../src/hooks/useStreamHighlight.ts"],"sourcesContent":["'use client';\n\nimport { type CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { type BuiltinTheme, type ThemedToken } from 'shiki';\nimport { ShikiStreamTokenizer } from 'shiki-stream';\n\nimport { getCodeLanguageByInput } from '@/Highlighter/const';\nimport lobeTheme from '@/Highlighter/theme/lobe-theme';\n\nimport { shikiModulePromise, type StreamingHighlightResult } from './useHighlight';\n\ntype StreamingOptions = {\n customThemes?: Record<string, any>;\n enabled?: boolean;\n language: string;\n theme: string;\n};\n\n// Optimized version: reduce array allocations and object spreading\nconst tokensToLineTokens = (tokens: ThemedToken[]): ThemedToken[][] => {\n if (!tokens.length) return [[]];\n\n const lines: ThemedToken[][] = [];\n let currentLine: ThemedToken[] = [];\n\n for (const token of tokens) {\n const content = token.content ?? '';\n\n if (content === '\\n') {\n lines.push(currentLine);\n currentLine = [];\n continue;\n }\n\n const newlineIndex = content.indexOf('\\n');\n if (newlineIndex === -1) {\n // No newline, add token directly\n currentLine.push(token);\n } else {\n // Split on newlines\n const segments = content.split('\\n');\n for (const [j, segment] of segments.entries()) {\n if (segment) {\n // Only create new object if we need to modify content\n currentLine.push(j === 0 && segment === content ? token : { ...token, content: segment });\n }\n if (j < segments.length - 1) {\n lines.push(currentLine);\n currentLine = [];\n }\n }\n }\n }\n\n // Don't forget the last line\n if (currentLine.length > 0 || lines.length === 0) {\n lines.push(currentLine);\n }\n\n return lines.length > 0 ? lines : [[]];\n};\n\nconst createPreStyle = (bg?: string, fg?: string): CSSProperties | undefined => {\n if (!bg && !fg) return undefined;\n return {\n backgroundColor: bg,\n color: fg,\n };\n};\n\nconst useStreamingHighlighter = (\n text: string,\n options: StreamingOptions,\n): StreamingHighlightResult | undefined => {\n const { customThemes, enabled, language, theme } = options;\n const [result, setResult] = useState<StreamingHighlightResult>();\n const tokenizerRef = useRef<ShikiStreamTokenizer | null>(null);\n const previousTextRef = useRef('');\n const safeText = text ?? '';\n const latestTextRef = useRef(safeText);\n const preStyleRef = useRef<CSSProperties | undefined>(undefined);\n const linesRef = useRef<ThemedToken[][]>([[]]);\n\n useEffect(() => {\n latestTextRef.current = safeText;\n }, [safeText]);\n\n // Use ref to store callback to avoid recreating it\n const setStreamingResultRef = useRef((rawLines: ThemedToken[][]) => {\n const previousLines = linesRef.current;\n const newLinesLength = rawLines.length;\n const prevLinesLength = previousLines.length;\n\n // Fast path: if lengths differ or it's a complete reset, use new lines directly\n if (newLinesLength !== prevLinesLength || newLinesLength === 0) {\n linesRef.current = rawLines;\n setResult({\n lines: rawLines,\n preStyle: preStyleRef.current,\n });\n return;\n }\n\n // Optimized comparison: only check changed lines\n let hasChanges = false;\n const mergedLines: ThemedToken[][] = [];\n\n for (let i = 0; i < newLinesLength; i++) {\n const newLine = rawLines[i];\n const prevLine = previousLines[i];\n\n // Quick reference equality check first\n if (prevLine === newLine) {\n mergedLines[i] = prevLine;\n continue;\n }\n\n // Length check\n if (!prevLine || prevLine.length !== newLine.length) {\n mergedLines[i] = newLine;\n hasChanges = true;\n continue;\n }\n\n // Deep comparison only for lines that might have changed\n let lineChanged = false;\n for (const [j, newToken] of newLine.entries()) {\n if (prevLine[j] !== newToken) {\n lineChanged = true;\n break;\n }\n }\n\n if (lineChanged) {\n mergedLines[i] = newLine;\n hasChanges = true;\n } else {\n mergedLines[i] = prevLine;\n }\n }\n\n // Only update state if there are actual changes\n if (hasChanges) {\n linesRef.current = mergedLines;\n setResult({\n lines: mergedLines,\n preStyle: preStyleRef.current,\n });\n }\n });\n\n const updateTokens = useCallback(async (nextText: string, forceReset = false) => {\n const tokenizer = tokenizerRef.current;\n if (!tokenizer) return;\n\n if (forceReset) {\n tokenizer.clear();\n previousTextRef.current = '';\n }\n\n const previousText = previousTextRef.current;\n let chunk = nextText;\n const canAppend = !forceReset && nextText.startsWith(previousText);\n\n if (canAppend) {\n chunk = nextText.slice(previousText.length);\n } else if (!forceReset) {\n tokenizer.clear();\n }\n\n previousTextRef.current = nextText;\n\n if (!chunk) {\n // Optimize: avoid array spread if possible\n const stableTokens = tokenizer.tokensStable;\n const unstableTokens = tokenizer.tokensUnstable;\n const totalLength = stableTokens.length + unstableTokens.length;\n\n if (totalLength === 0) {\n setStreamingResultRef.current([[]]);\n return;\n }\n\n // Only create merged array if we have both stable and unstable tokens\n const mergedTokens =\n stableTokens.length === 0\n ? unstableTokens\n : unstableTokens.length === 0\n ? stableTokens\n : [...stableTokens, ...unstableTokens];\n\n setStreamingResultRef.current(tokensToLineTokens(mergedTokens));\n return;\n }\n\n try {\n await tokenizer.enqueue(chunk);\n // Optimize: avoid array spread if possible\n const stableTokens = tokenizer.tokensStable;\n const unstableTokens = tokenizer.tokensUnstable;\n const mergedTokens =\n stableTokens.length === 0\n ? unstableTokens\n : unstableTokens.length === 0\n ? stableTokens\n : [...stableTokens, ...unstableTokens];\n setStreamingResultRef.current(tokensToLineTokens(mergedTokens));\n } catch (error) {\n console.error('Streaming highlighting failed:', error);\n }\n }, []);\n\n // Cache highlighter key to avoid unnecessary recreations\n const highlighterKeyRef = useRef<string>('');\n\n useEffect(() => {\n if (!enabled) {\n tokenizerRef.current?.clear();\n tokenizerRef.current = null;\n previousTextRef.current = '';\n preStyleRef.current = undefined;\n linesRef.current = [[]];\n setResult(undefined);\n highlighterKeyRef.current = '';\n return;\n }\n\n // Skip if language/theme combination hasn't changed\n const currentKey = `${language}-${theme}`;\n if (highlighterKeyRef.current === currentKey && tokenizerRef.current) {\n return;\n }\n\n let cancelled = false;\n\n (async () => {\n const mod = await shikiModulePromise;\n if (!mod || cancelled) return;\n\n try {\n // Load custom theme if using slack-dark or slack-ochin\n let themesToLoad: any[] = [theme];\n if (customThemes && theme === 'lobe-theme') {\n const customTheme = customThemes[theme];\n if (customTheme) {\n themesToLoad = [customTheme as any];\n }\n }\n\n // Only load the specific language and theme needed\n // getSingletonHighlighter will cache the instance internally\n const highlighter = await mod.getSingletonHighlighter({\n langs: language ? [language] : ['plaintext'],\n themes: themesToLoad,\n });\n\n if (!highlighter || cancelled) return;\n\n // Only create new tokenizer if key changed\n if (highlighterKeyRef.current !== currentKey) {\n // Clear old tokenizer\n tokenizerRef.current?.clear();\n\n const tokenizer = new ShikiStreamTokenizer({\n highlighter,\n lang: language,\n theme,\n });\n\n tokenizerRef.current = tokenizer;\n highlighterKeyRef.current = currentKey;\n previousTextRef.current = '';\n linesRef.current = [[]];\n\n const themeInfo = highlighter.getTheme(theme);\n preStyleRef.current = createPreStyle(themeInfo?.bg, themeInfo?.fg);\n }\n\n const currentText = latestTextRef.current;\n if (currentText) {\n await updateTokens(currentText, true);\n } else {\n setStreamingResultRef.current([[]]);\n }\n } catch (error) {\n console.error('Streaming highlighter initialization failed:', error);\n // Reset on error\n highlighterKeyRef.current = '';\n }\n })();\n\n return () => {\n cancelled = true;\n // Cleanup only if this effect was cancelled before completion\n // The next effect will handle cleanup if key changed\n };\n }, [enabled, language, theme, updateTokens, customThemes]);\n\n // Separate effect for text updates to avoid unnecessary tokenizer recreation\n useEffect(() => {\n if (!enabled) return;\n if (!tokenizerRef.current) return;\n // Use ref to get latest text to avoid stale closures\n const currentText = latestTextRef.current;\n updateTokens(currentText);\n }, [enabled, safeText, updateTokens]);\n\n return result;\n};\n\nexport const useStreamHighlight = (\n text: string,\n {\n language,\n theme: builtinTheme,\n streaming,\n }: { enableTransformer?: boolean; language: string; streaming?: boolean; theme?: BuiltinTheme },\n) => {\n // Safely handle language and text with boundary checks\n const safeText = text ?? '';\n const lang = (language ?? 'plaintext').toLowerCase();\n\n // Match supported languages\n const matchedLanguage = useMemo(() => getCodeLanguageByInput(lang), [lang]);\n\n const effectiveTheme = builtinTheme || 'lobe-theme';\n\n return useStreamingHighlighter(safeText, {\n customThemes: {\n 'lobe-theme': lobeTheme,\n },\n enabled: streaming,\n language: matchedLanguage,\n theme: effectiveTheme,\n });\n};\n"],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { createMermaidConfig, loadMermaid } from "./useMermaid.mjs";
|
|
4
3
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
5
4
|
import { useTheme } from "antd-style";
|
|
6
|
-
|
|
7
5
|
//#region src/hooks/useStreamMermaid.ts
|
|
8
6
|
/**
|
|
9
7
|
* 流式 Mermaid 渲染 - 支持内容逐步更新
|
|
@@ -42,8 +40,8 @@ const useStreamMermaid = (content, { enabled = true, id, theme: customTheme }) =
|
|
|
42
40
|
if (!enabled) {
|
|
43
41
|
setData("");
|
|
44
42
|
previousContentRef.current = "";
|
|
45
|
-
const timeoutId
|
|
46
|
-
if (timeoutId
|
|
43
|
+
const timeoutId = renderTimeoutRef.current;
|
|
44
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
47
45
|
return;
|
|
48
46
|
}
|
|
49
47
|
const currentContent = latestContentRef.current;
|
|
@@ -69,8 +67,8 @@ const useStreamMermaid = (content, { enabled = true, id, theme: customTheme }) =
|
|
|
69
67
|
}
|
|
70
68
|
}, 300);
|
|
71
69
|
return () => {
|
|
72
|
-
const timeoutId
|
|
73
|
-
if (timeoutId
|
|
70
|
+
const timeoutId = renderTimeoutRef.current;
|
|
71
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
74
72
|
};
|
|
75
73
|
}, [
|
|
76
74
|
enabled,
|
|
@@ -81,7 +79,7 @@ const useStreamMermaid = (content, { enabled = true, id, theme: customTheme }) =
|
|
|
81
79
|
]);
|
|
82
80
|
return data;
|
|
83
81
|
};
|
|
84
|
-
|
|
85
82
|
//#endregion
|
|
86
83
|
export { useStreamMermaid };
|
|
84
|
+
|
|
87
85
|
//# sourceMappingURL=useStreamMermaid.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStreamMermaid.mjs","names":[
|
|
1
|
+
{"version":3,"file":"useStreamMermaid.mjs","names":[],"sources":["../../src/hooks/useStreamMermaid.ts"],"sourcesContent":["'use client';\n\nimport { useTheme } from 'antd-style';\nimport type { MermaidConfig } from 'mermaid';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { createMermaidConfig, loadMermaid } from './useMermaid';\n\n/**\n * 流式 Mermaid 渲染 - 支持内容逐步更新\n */\nexport const useStreamMermaid = (\n content: string,\n {\n enabled = true,\n id,\n theme: customTheme,\n }: {\n enabled?: boolean;\n id: string;\n theme?: MermaidConfig['theme'];\n },\n): string => {\n const theme = useTheme();\n const [data, setData] = useState<string>('');\n const previousContentRef = useRef<string>('');\n const latestContentRef = useRef(content);\n const renderTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n // 提取主题相关配置到 useMemo 中\n const mermaidConfig = useMemo(\n () => createMermaidConfig(theme, customTheme),\n [\n theme.fontFamilyCode,\n theme.isDarkMode,\n theme.colorTextDescription,\n theme.fontFamily,\n theme.colorTextSecondary,\n theme.colorBgContainer,\n theme.colorInfoBg,\n theme.colorInfoText,\n theme.geekblue,\n theme.colorWarning,\n theme.colorSuccess,\n theme.colorError,\n theme.colorBorder,\n theme.colorInfoBorder,\n theme.colorSuccessBorder,\n theme.colorSuccessBg,\n theme.colorSuccessText,\n theme.colorText,\n customTheme,\n ],\n );\n\n // Update latest content ref\n useEffect(() => {\n latestContentRef.current = content;\n }, [content]);\n\n // Debounced rendering for streaming content\n useEffect(() => {\n if (!enabled) {\n setData('');\n previousContentRef.current = '';\n const timeoutId = renderTimeoutRef.current;\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n return;\n }\n\n const currentContent = latestContentRef.current;\n\n // Skip if content hasn't changed\n if (currentContent === previousContentRef.current && data) {\n return;\n }\n\n // Clear previous timeout\n const timeoutId = renderTimeoutRef.current;\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n // Debounce rendering for streaming content (wait 300ms after last change)\n renderTimeoutRef.current = setTimeout(async () => {\n const contentToRender = latestContentRef.current;\n\n // Skip if content changed during debounce\n if (contentToRender !== currentContent) {\n return;\n }\n\n try {\n const mermaidInstance = await loadMermaid();\n if (!mermaidInstance) return;\n\n // 验证语法\n const isValid = await mermaidInstance.parse(contentToRender);\n\n if (isValid) {\n // 初始化并渲染\n mermaidInstance.initialize(mermaidConfig);\n const { svg } = await mermaidInstance.render(id, contentToRender);\n\n // Only update if content hasn't changed during rendering\n if (latestContentRef.current === contentToRender) {\n setData(svg);\n previousContentRef.current = contentToRender;\n }\n }\n } catch (error_) {\n // Silently handle errors during streaming\n // Only log if this is the final content\n if (contentToRender === latestContentRef.current) {\n console.error('Mermaid 解析错误:', error_);\n }\n }\n }, 300);\n\n return () => {\n const timeoutId = renderTimeoutRef.current;\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [enabled, content, id, mermaidConfig, data]);\n\n return data;\n};\n"],"mappings":";;;;;;;;AAWA,MAAa,oBACX,SACA,EACE,UAAU,MACV,IACA,OAAO,kBAME;CACX,MAAM,QAAQ,UAAU;CACxB,MAAM,CAAC,MAAM,WAAW,SAAiB,GAAG;CAC5C,MAAM,qBAAqB,OAAe,GAAG;CAC7C,MAAM,mBAAmB,OAAO,QAAQ;CACxC,MAAM,mBAAmB,OAAkD,KAAA,EAAU;CAGrF,MAAM,gBAAgB,cACd,oBAAoB,OAAO,YAAY,EAC7C;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN;EACD,CACF;AAGD,iBAAgB;AACd,mBAAiB,UAAU;IAC1B,CAAC,QAAQ,CAAC;AAGb,iBAAgB;AACd,MAAI,CAAC,SAAS;AACZ,WAAQ,GAAG;AACX,sBAAmB,UAAU;GAC7B,MAAM,YAAY,iBAAiB;AACnC,OAAI,UACF,cAAa,UAAU;AAEzB;;EAGF,MAAM,iBAAiB,iBAAiB;AAGxC,MAAI,mBAAmB,mBAAmB,WAAW,KACnD;EAIF,MAAM,YAAY,iBAAiB;AACnC,MAAI,UACF,cAAa,UAAU;AAIzB,mBAAiB,UAAU,WAAW,YAAY;GAChD,MAAM,kBAAkB,iBAAiB;AAGzC,OAAI,oBAAoB,eACtB;AAGF,OAAI;IACF,MAAM,kBAAkB,MAAM,aAAa;AAC3C,QAAI,CAAC,gBAAiB;AAKtB,QAFgB,MAAM,gBAAgB,MAAM,gBAAgB,EAE/C;AAEX,qBAAgB,WAAW,cAAc;KACzC,MAAM,EAAE,QAAQ,MAAM,gBAAgB,OAAO,IAAI,gBAAgB;AAGjE,SAAI,iBAAiB,YAAY,iBAAiB;AAChD,cAAQ,IAAI;AACZ,yBAAmB,UAAU;;;YAG1B,QAAQ;AAGf,QAAI,oBAAoB,iBAAiB,QACvC,SAAQ,MAAM,iBAAiB,OAAO;;KAGzC,IAAI;AAEP,eAAa;GACX,MAAM,YAAY,iBAAiB;AACnC,OAAI,UACF,cAAa,UAAU;;IAG1B;EAAC;EAAS;EAAS;EAAI;EAAe;EAAK,CAAC;AAE/C,QAAO"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
|
|
3
2
|
//#region src/hooks/useTextOverflow.ts
|
|
4
3
|
const useTextOverflow = (textRef, ellipsis, children) => {
|
|
5
4
|
const [isOverflow, setIsOverflow] = useState(false);
|
|
@@ -25,7 +24,7 @@ const useTextOverflow = (textRef, ellipsis, children) => {
|
|
|
25
24
|
]);
|
|
26
25
|
return isOverflow;
|
|
27
26
|
};
|
|
28
|
-
|
|
29
27
|
//#endregion
|
|
30
28
|
export { useTextOverflow };
|
|
29
|
+
|
|
31
30
|
//# sourceMappingURL=useTextOverflow.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTextOverflow.mjs","names":[],"sources":["../../src/hooks/useTextOverflow.ts"],"sourcesContent":["import { type ReactNode, type RefObject, useEffect, useState } from 'react';\n\ninterface EllipsisConfig {\n rows?: number;\n tooltipWhenOverflow?: boolean;\n}\n\nexport const useTextOverflow = <T extends HTMLElement = HTMLElement>(\n textRef: RefObject<T | null>,\n ellipsis: boolean | EllipsisConfig | undefined,\n children: ReactNode,\n) => {\n const [isOverflow, setIsOverflow] = useState(false);\n\n const tooltipWhenOverflow = typeof ellipsis === 'object' && ellipsis.tooltipWhenOverflow;\n\n useEffect(() => {\n if (!tooltipWhenOverflow) return;\n\n const checkOverflow = () => {\n const element = textRef.current;\n if (!element) return;\n\n const rows = typeof ellipsis === 'object' ? ellipsis.rows : undefined;\n if (rows && rows > 1) {\n setIsOverflow(element.scrollHeight > element.clientHeight);\n } else {\n setIsOverflow(element.scrollWidth > element.clientWidth);\n }\n };\n\n checkOverflow();\n\n const resizeObserver = new ResizeObserver(checkOverflow);\n if (textRef.current) {\n resizeObserver.observe(textRef.current);\n }\n\n return () => resizeObserver.disconnect();\n }, [tooltipWhenOverflow, ellipsis, children, textRef]);\n\n return isOverflow;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTextOverflow.mjs","names":[],"sources":["../../src/hooks/useTextOverflow.ts"],"sourcesContent":["import { type ReactNode, type RefObject, useEffect, useState } from 'react';\n\ninterface EllipsisConfig {\n rows?: number;\n tooltipWhenOverflow?: boolean;\n}\n\nexport const useTextOverflow = <T extends HTMLElement = HTMLElement>(\n textRef: RefObject<T | null>,\n ellipsis: boolean | EllipsisConfig | undefined,\n children: ReactNode,\n) => {\n const [isOverflow, setIsOverflow] = useState(false);\n\n const tooltipWhenOverflow = typeof ellipsis === 'object' && ellipsis.tooltipWhenOverflow;\n\n useEffect(() => {\n if (!tooltipWhenOverflow) return;\n\n const checkOverflow = () => {\n const element = textRef.current;\n if (!element) return;\n\n const rows = typeof ellipsis === 'object' ? ellipsis.rows : undefined;\n if (rows && rows > 1) {\n setIsOverflow(element.scrollHeight > element.clientHeight);\n } else {\n setIsOverflow(element.scrollWidth > element.clientWidth);\n }\n };\n\n checkOverflow();\n\n const resizeObserver = new ResizeObserver(checkOverflow);\n if (textRef.current) {\n resizeObserver.observe(textRef.current);\n }\n\n return () => resizeObserver.disconnect();\n }, [tooltipWhenOverflow, ellipsis, children, textRef]);\n\n return isOverflow;\n};\n"],"mappings":";;AAOA,MAAa,mBACX,SACA,UACA,aACG;CACH,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CAEnD,MAAM,sBAAsB,OAAO,aAAa,YAAY,SAAS;AAErE,iBAAgB;AACd,MAAI,CAAC,oBAAqB;EAE1B,MAAM,sBAAsB;GAC1B,MAAM,UAAU,QAAQ;AACxB,OAAI,CAAC,QAAS;GAEd,MAAM,OAAO,OAAO,aAAa,WAAW,SAAS,OAAO,KAAA;AAC5D,OAAI,QAAQ,OAAO,EACjB,eAAc,QAAQ,eAAe,QAAQ,aAAa;OAE1D,eAAc,QAAQ,cAAc,QAAQ,YAAY;;AAI5D,iBAAe;EAEf,MAAM,iBAAiB,IAAI,eAAe,cAAc;AACxD,MAAI,QAAQ,QACV,gBAAe,QAAQ,QAAQ,QAAQ;AAGzC,eAAa,eAAe,YAAY;IACvC;EAAC;EAAqB;EAAU;EAAU;EAAQ,CAAC;AAEtD,QAAO"}
|
package/es/i18n/context.d.mts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { I18nContextValue, TranslationKey, TranslationResources, TranslationResourcesInput } from "./types.mjs";
|
|
2
2
|
import { MotionComponentType } from "../MotionProvider/index.mjs";
|
|
3
|
-
import "
|
|
4
|
-
import * as react12 from "react";
|
|
3
|
+
import * as _$react from "react";
|
|
5
4
|
import { ReactNode } from "react";
|
|
6
5
|
|
|
7
6
|
//#region src/i18n/context.d.ts
|
|
@@ -11,7 +10,7 @@ interface I18nProviderProps {
|
|
|
11
10
|
motion: MotionComponentType;
|
|
12
11
|
resources?: TranslationResourcesInput;
|
|
13
12
|
}
|
|
14
|
-
declare const I18nProvider:
|
|
13
|
+
declare const I18nProvider: _$react.NamedExoticComponent<I18nProviderProps>;
|
|
15
14
|
//#endregion
|
|
16
15
|
export { I18nProvider, I18nProviderProps };
|
|
17
16
|
//# sourceMappingURL=context.d.mts.map
|