@lobehub/ui 5.34.3 → 5.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/es/ActionIconGroup/ActionIconGroup.mjs +1 -1
  2. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  3. package/es/ActionIconGroup/type.d.mts +2 -2
  4. package/es/Alert/Alert.mjs +1 -1
  5. package/es/Alert/Alert.mjs.map +1 -1
  6. package/es/Burger/Burger.mjs +1 -1
  7. package/es/Burger/Burger.mjs.map +1 -1
  8. package/es/Burger/type.d.mts +2 -2
  9. package/es/CodeDiff/DiffPanel.mjs +1 -1
  10. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  11. package/es/CopyButton/CopyButton.mjs +1 -1
  12. package/es/CopyButton/CopyButton.mjs.map +1 -1
  13. package/es/CopyButton/type.d.mts +2 -2
  14. package/es/DownloadButton/DownloadButton.mjs +1 -1
  15. package/es/DownloadButton/DownloadButton.mjs.map +1 -1
  16. package/es/DownloadButton/type.d.mts +2 -2
  17. package/es/DraggablePanel/components/DraggablePanelHeader.mjs +1 -1
  18. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  19. package/es/Drawer/Drawer.mjs +1 -1
  20. package/es/Drawer/Drawer.mjs.map +1 -1
  21. package/es/Drawer/type.d.mts +2 -2
  22. package/es/EditableText/ControlInput.d.mts +2 -2
  23. package/es/EditableText/ControlInput.mjs +1 -1
  24. package/es/EditableText/ControlInput.mjs.map +1 -1
  25. package/es/EditableText/EditableText.mjs +1 -1
  26. package/es/EditableText/EditableText.mjs.map +1 -1
  27. package/es/EmojiPicker/EmojiPicker.mjs +1 -1
  28. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  29. package/es/GuideCard/GuideCard.mjs +1 -1
  30. package/es/GuideCard/GuideCard.mjs.map +1 -1
  31. package/es/GuideCard/type.d.mts +2 -2
  32. package/es/Highlighter/FullFeatured.mjs +1 -1
  33. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  34. package/es/Highlighter/type.d.mts +2 -2
  35. package/es/HotkeyInput/HotkeyInput.mjs +1 -1
  36. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  37. package/es/HtmlPreview/HtmlPreview.mjs +1 -1
  38. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  39. package/es/HtmlPreview/type.d.mts +2 -2
  40. package/es/Image/type.d.mts +1 -0
  41. package/es/Image/viewer/GalleryNav.mjs +1 -1
  42. package/es/Image/viewer/GalleryNav.mjs.map +1 -1
  43. package/es/Image/viewer/ImageViewer.mjs +75 -70
  44. package/es/Image/viewer/ImageViewer.mjs.map +1 -1
  45. package/es/Image/viewer/Toolbar.mjs +19 -7
  46. package/es/Image/viewer/Toolbar.mjs.map +1 -1
  47. package/es/Image/viewer/ViewerChrome.mjs +1 -1
  48. package/es/Image/viewer/ViewerChrome.mjs.map +1 -1
  49. package/es/Mermaid/FullFeatured.mjs +1 -1
  50. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  51. package/es/Mermaid/type.d.mts +2 -2
  52. package/es/Modal/Modal.mjs +1 -1
  53. package/es/Modal/Modal.mjs.map +1 -1
  54. package/es/SortableList/components/DragHandle.d.mts +2 -2
  55. package/es/SortableList/components/DragHandle.mjs +1 -1
  56. package/es/SortableList/components/DragHandle.mjs.map +1 -1
  57. package/es/Tabs/Tabs.mjs +1 -1
  58. package/es/Tabs/Tabs.mjs.map +1 -1
  59. package/es/ThemeSwitch/ThemeSwitch.mjs +1 -1
  60. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  61. package/es/ThemeSwitch/type.d.mts +2 -2
  62. package/es/Toc/TocMobile.mjs +1 -1
  63. package/es/Toc/TocMobile.mjs.map +1 -1
  64. package/es/Video/index.mjs +1 -1
  65. package/es/Video/index.mjs.map +1 -1
  66. package/es/base-ui/Button/SplitButton.mjs +1 -1
  67. package/es/base-ui/Form/components/FormSubmitFooter.mjs +1 -1
  68. package/es/base-ui/Input/style.d.mts +2 -2
  69. package/es/base-ui/Modal/imperative.mjs +1 -1
  70. package/es/base-ui/Tag/Tag.mjs +1 -1
  71. package/es/base-ui/Tag/Tag.mjs.map +1 -1
  72. package/es/base-ui/Tag/style.mjs +8 -3
  73. package/es/base-ui/Tag/style.mjs.map +1 -1
  74. package/es/base-ui/index.d.mts +4 -4
  75. package/es/base-ui/index.mjs +6 -6
  76. package/es/chat/ChatHeader/ChatHeader.mjs +1 -1
  77. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  78. package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
  79. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  80. package/es/chat/TokenTag/TokenTag.mjs +1 -1
  81. package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
  82. package/es/chat/TokenTag/type.d.mts +2 -2
  83. package/es/mobile/ChatHeader/ChatHeader.mjs +1 -1
  84. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  85. package/es/mobile/ChatInputArea/ChatInputArea.mjs +1 -1
  86. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  87. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { ActionIconProps } from "../../ActionIcon/type.mjs";
2
- import "../../ActionIcon/index.mjs";
1
+ import { ActionIconProps } from "../../base-ui/ActionIcon/type.mjs";
2
+ import "../../base-ui/ActionIcon/index.mjs";
3
3
  //#region src/chat/TokenTag/type.d.ts
4
4
  interface TokenTagProps extends ActionIconProps {
5
5
  maxValue: number;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import FlexBasic_default from "../../Flex/FlexBasic.mjs";
3
- import ActionIcon from "../../ActionIcon/ActionIcon.mjs";
3
+ import ActionIcon from "../../base-ui/ActionIcon/ActionIcon.mjs";
4
4
  import SafeArea from "../SafeArea/SafeArea.mjs";
5
5
  import { styles } from "./style.mjs";
6
6
  import { memo } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHeader.mjs","names":["Flexbox","MobileSafeArea"],"sources":["../../../src/mobile/ChatHeader/ChatHeader.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronLeft } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport MobileSafeArea from '@/mobile/SafeArea';\n\nimport { styles } from './style';\nimport type { ChatHeaderProps } from './type';\n\nconst ChatHeader = memo<ChatHeaderProps>(\n ({\n ref,\n className,\n safeArea = true,\n style,\n center,\n left,\n right,\n gaps,\n classNames,\n onBackClick,\n showBackButton,\n styles: custmStyles,\n children,\n ...rest\n }) => {\n return (\n <Flexbox\n as={'header'}\n className={cx(styles.container, className)}\n ref={ref}\n style={style}\n {...rest}\n >\n {safeArea && <MobileSafeArea position={'top'} />}\n <Flexbox\n horizontal\n align={'center'}\n className={styles.inner}\n flex={1}\n justify={'space-between'}\n >\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.left, classNames?.left)}\n flex={1}\n gap={gaps?.left}\n style={custmStyles?.left}\n >\n {showBackButton && <ActionIcon icon={ChevronLeft} onClick={() => onBackClick?.()} />}\n {left}\n </Flexbox>\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.center, classNames?.center)}\n flex={1}\n gap={gaps?.center}\n justify={'center'}\n style={custmStyles?.center}\n >\n {children}\n {center}\n </Flexbox>\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.right, classNames?.right)}\n flex={1}\n gap={gaps?.right}\n style={custmStyles?.right}\n >\n {right}\n </Flexbox>\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nChatHeader.displayName = 'ChatHeader';\n\nexport default ChatHeader;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,aAAa,MAChB,EACC,KACA,WACA,WAAW,MACX,OACA,QACA,MACA,OACA,MACA,YACA,aACA,gBACA,QAAQ,aACR,UACA,GAAG,WACC;CACJ,OACE,qBAACA,mBAAD;EACE,IAAI;EACJ,WAAW,GAAG,OAAO,WAAW,SAAS;EACpC;EACE;EACP,GAAI;EALN,UAAA,CAOG,YAAY,oBAACC,UAAD,EAAgB,UAAU,MAAQ,CAAA,GAC/C,qBAACD,mBAAD;GACE,YAAA;GACA,OAAO;GACP,WAAW,OAAO;GAClB,MAAM;GACN,SAAS;GALX,UAAA;IAOE,qBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;KAC3C,MAAM;KACN,KAAK,MAAM;KACX,OAAO,aAAa;KANtB,UAAA,CAQG,kBAAkB,oBAAC,YAAD;MAAY,MAAM;MAAa,eAAe,cAAc;KAAI,CAAA,GAClF,IACM;;IACT,qBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,QAAQ,YAAY,MAAM;KAC/C,MAAM;KACN,KAAK,MAAM;KACX,SAAS;KACT,OAAO,aAAa;KAPtB,UAAA,CASG,UACA,MACM;;IACT,oBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;KAC7C,MAAM;KACN,KAAK,MAAM;KACX,OAAO,aAAa;KAEnB,UAAA;IACM,CAAA;GACF;EACF,CAAA,CAAA;;AAEb,CACF;AAEA,WAAW,cAAc"}
1
+ {"version":3,"file":"ChatHeader.mjs","names":["Flexbox","MobileSafeArea"],"sources":["../../../src/mobile/ChatHeader/ChatHeader.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronLeft } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport MobileSafeArea from '@/mobile/SafeArea';\n\nimport { styles } from './style';\nimport type { ChatHeaderProps } from './type';\n\nconst ChatHeader = memo<ChatHeaderProps>(\n ({\n ref,\n className,\n safeArea = true,\n style,\n center,\n left,\n right,\n gaps,\n classNames,\n onBackClick,\n showBackButton,\n styles: custmStyles,\n children,\n ...rest\n }) => {\n return (\n <Flexbox\n as={'header'}\n className={cx(styles.container, className)}\n ref={ref}\n style={style}\n {...rest}\n >\n {safeArea && <MobileSafeArea position={'top'} />}\n <Flexbox\n horizontal\n align={'center'}\n className={styles.inner}\n flex={1}\n justify={'space-between'}\n >\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.left, classNames?.left)}\n flex={1}\n gap={gaps?.left}\n style={custmStyles?.left}\n >\n {showBackButton && <ActionIcon icon={ChevronLeft} onClick={() => onBackClick?.()} />}\n {left}\n </Flexbox>\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.center, classNames?.center)}\n flex={1}\n gap={gaps?.center}\n justify={'center'}\n style={custmStyles?.center}\n >\n {children}\n {center}\n </Flexbox>\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.right, classNames?.right)}\n flex={1}\n gap={gaps?.right}\n style={custmStyles?.right}\n >\n {right}\n </Flexbox>\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nChatHeader.displayName = 'ChatHeader';\n\nexport default ChatHeader;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,aAAa,MAChB,EACC,KACA,WACA,WAAW,MACX,OACA,QACA,MACA,OACA,MACA,YACA,aACA,gBACA,QAAQ,aACR,UACA,GAAG,WACC;CACJ,OACE,qBAACA,mBAAD;EACE,IAAI;EACJ,WAAW,GAAG,OAAO,WAAW,SAAS;EACpC;EACE;EACP,GAAI;EALN,UAAA,CAOG,YAAY,oBAACC,UAAD,EAAgB,UAAU,MAAQ,CAAA,GAC/C,qBAACD,mBAAD;GACE,YAAA;GACA,OAAO;GACP,WAAW,OAAO;GAClB,MAAM;GACN,SAAS;GALX,UAAA;IAOE,qBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,MAAM,YAAY,IAAI;KAC3C,MAAM;KACN,KAAK,MAAM;KACX,OAAO,aAAa;KANtB,UAAA,CAQG,kBAAkB,oBAAC,YAAD;MAAY,MAAM;MAAa,eAAe,cAAc;KAAI,CAAA,GAClF,IACM;;IACT,qBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,QAAQ,YAAY,MAAM;KAC/C,MAAM;KACN,KAAK,MAAM;KACX,SAAS;KACT,OAAO,aAAa;KAPtB,UAAA,CASG,UACA,MACM;;IACT,oBAACA,mBAAD;KACE,YAAA;KACA,OAAO;KACP,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;KAC7C,MAAM;KACN,KAAK,MAAM;KACX,OAAO,aAAa;KAEnB,UAAA;IACM,CAAA;GACF;EACF,CAAA,CAAA;;AAEb,CACF;AAEA,WAAW,cAAc"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import FlexBasic_default from "../../Flex/FlexBasic.mjs";
3
- import ActionIcon from "../../ActionIcon/ActionIcon.mjs";
3
+ import ActionIcon from "../../base-ui/ActionIcon/ActionIcon.mjs";
4
4
  import ChatInputAreaInner from "../../chat/ChatInputArea/components/ChatInputAreaInner.mjs";
5
5
  import SafeArea from "../SafeArea/SafeArea.mjs";
6
6
  import { styles } from "./style.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInputArea.mjs","names":["Flexbox"],"sources":["../../../src/mobile/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["'use client';\n\nimport { useSize } from 'ahooks';\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronUp } from 'lucide-react';\nimport {\n type FC,\n memo,\n type PropsWithChildren,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport ChatInputAreaInner from '@/chat/ChatInputArea/components/ChatInputAreaInner';\nimport { Flexbox } from '@/Flex';\nimport SafeArea from '@/mobile/SafeArea';\n\nimport { styles } from './style';\nimport { type ChatInputAreaProps } from './type';\n\nconst ChatInputArea = memo<ChatInputAreaProps>(\n ({\n ref,\n className,\n style,\n topAddons,\n textAreaLeftAddons,\n textAreaRightAddons,\n bottomAddons,\n expand = false,\n setExpand,\n onSend,\n onInput,\n loading,\n value,\n safeArea,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const size = useSize(containerRef);\n const [showFullscreen, setShowFullscreen] = useState<boolean>(false);\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n useEffect(() => {\n if (!size?.height) return;\n setShowFullscreen(size.height > 72);\n }, [size]);\n\n const InnerContainer: FC<\n PropsWithChildren & {\n bottomAddons?: ReactNode;\n textAreaLeftAddons?: ReactNode;\n textAreaRightAddons?: ReactNode;\n topAddons?: ReactNode;\n }\n > = useCallback(\n ({ children, ...r }) =>\n expand ? (\n <Flexbox className={styles.inner} gap={8}>\n <Flexbox horizontal gap={8} justify={'flex-end'}>\n {r.textAreaLeftAddons}\n {r.textAreaRightAddons}\n </Flexbox>\n {children}\n {r.topAddons}\n {r.bottomAddons}\n </Flexbox>\n ) : (\n <Flexbox horizontal align={'flex-end'} className={styles.inner} gap={8}>\n {r.textAreaLeftAddons}\n {children}\n {r.textAreaRightAddons}\n </Flexbox>\n ),\n [expand, loading],\n );\n\n const showAddons = !expand && !isFocused;\n\n return (\n <Flexbox\n className={cx(styles.container, expand && styles.expand, className)}\n gap={12}\n style={style}\n >\n {topAddons && <Flexbox style={showAddons ? {} : { display: 'none' }}>{topAddons}</Flexbox>}\n <Flexbox\n className={cx(expand && styles.expand)}\n ref={containerRef}\n style={{ position: 'relative' }}\n >\n {showFullscreen && (\n <ActionIcon\n active\n className={styles.expandButton}\n icon={expand ? ChevronDown : ChevronUp}\n id={'sssssss'}\n size={{ blockSize: 24, borderRadius: '50%', size: 14 }}\n style={expand ? { top: 6 } : {}}\n onClick={() => setExpand?.(!expand)}\n />\n )}\n <InnerContainer\n bottomAddons={bottomAddons}\n textAreaLeftAddons={textAreaLeftAddons}\n textAreaRightAddons={textAreaRightAddons}\n topAddons={topAddons}\n >\n <ChatInputAreaInner\n autoSize={expand ? false : { maxRows: 6, minRows: 1 }}\n className={styles.expandTextArea}\n loading={loading}\n ref={ref}\n style={{ height: 36, paddingBlock: 6 }}\n value={value}\n variant={expand ? 'borderless' : 'filled'}\n onBlur={() => setIsFocused(false)}\n onFocus={() => setIsFocused(true)}\n onInput={onInput}\n onSend={onSend}\n />\n </InnerContainer>\n </Flexbox>\n {bottomAddons && (\n <Flexbox style={showAddons ? {} : { display: 'none' }}>{bottomAddons}</Flexbox>\n )}\n {safeArea && !isFocused && <SafeArea position={'bottom'} />}\n </Flexbox>\n );\n },\n);\n\nChatInputArea.displayName = 'ChatInputArea';\n\nexport default ChatInputArea;\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,gBAAgB,MACnB,EACC,KACA,WACA,OACA,WACA,oBACA,qBACA,cACA,SAAS,OACT,WACA,QACA,SACA,SACA,OACA,eACI;CACJ,MAAM,eAAe,OAAuB,IAAI;CAChD,MAAM,OAAO,QAAQ,YAAY;CACjC,MAAM,CAAC,gBAAgB,qBAAqB,SAAkB,KAAK;CACnE,MAAM,CAAC,WAAW,gBAAgB,SAAkB,KAAK;CAEzD,gBAAgB;EACd,IAAI,CAAC,MAAM,QAAQ;EACnB,kBAAkB,KAAK,SAAS,EAAE;CACpC,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,iBAOF,aACD,EAAE,UAAU,GAAG,QACd,SACE,qBAACA,mBAAD;EAAS,WAAW,OAAO;EAAO,KAAK;EAAvC,UAAA;GACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,KAAK;IAAG,SAAS;IAArC,UAAA,CACG,EAAE,oBACF,EAAE,mBACI;;GACR;GACA,EAAE;GACF,EAAE;EACI;CAET,CAAA,IAAA,qBAACA,mBAAD;EAAS,YAAA;EAAW,OAAO;EAAY,WAAW,OAAO;EAAO,KAAK;EAArE,UAAA;GACG,EAAE;GACF;GACA,EAAE;EACI;CAEb,CAAA,GAAA,CAAC,QAAQ,OAAO,CAClB;CAEA,MAAM,aAAa,CAAC,UAAU,CAAC;CAE/B,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,OAAO,WAAW,UAAU,OAAO,QAAQ,SAAS;EAClE,KAAK;EACE;EAHT,UAAA;GAKG,aAAa,oBAACA,mBAAD;IAAS,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;IAAI,UAAA;GAAmB,CAAA;GACzF,qBAACA,mBAAD;IACE,WAAW,GAAG,UAAU,OAAO,MAAM;IACrC,KAAK;IACL,OAAO,EAAE,UAAU,WAAW;IAHhC,UAAA,CAKG,kBACC,oBAAC,YAAD;KACE,QAAA;KACA,WAAW,OAAO;KAClB,MAAM,SAAS,cAAc;KAC7B,IAAI;KACJ,MAAM;MAAE,WAAW;MAAI,cAAc;MAAO,MAAM;KAAG;KACrD,OAAO,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC;KAC9B,eAAe,YAAY,CAAC,MAAM;IACnC,CAAA,GAEH,oBAAC,gBAAD;KACgB;KACM;KACC;KACV;KAEX,UAAA,oBAAC,oBAAD;MACE,UAAU,SAAS,QAAQ;OAAE,SAAS;OAAG,SAAS;MAAE;MACpD,WAAW,OAAO;MACT;MACJ;MACL,OAAO;OAAE,QAAQ;OAAI,cAAc;MAAE;MAC9B;MACP,SAAS,SAAS,eAAe;MACjC,cAAc,aAAa,KAAK;MAChC,eAAe,aAAa,IAAI;MACvB;MACD;KACT,CAAA;IACa,CAAA,CACT;;GACR,gBACC,oBAACA,mBAAD;IAAS,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;IAAI,UAAA;GAAsB,CAAA;GAE/E,YAAY,CAAC,aAAa,oBAAC,UAAD,EAAU,UAAU,SAAW,CAAA;EACnD;;AAEb,CACF;AAEA,cAAc,cAAc"}
1
+ {"version":3,"file":"ChatInputArea.mjs","names":["Flexbox"],"sources":["../../../src/mobile/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["'use client';\n\nimport { useSize } from 'ahooks';\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronUp } from 'lucide-react';\nimport {\n type FC,\n memo,\n type PropsWithChildren,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport ChatInputAreaInner from '@/chat/ChatInputArea/components/ChatInputAreaInner';\nimport { Flexbox } from '@/Flex';\nimport SafeArea from '@/mobile/SafeArea';\n\nimport { styles } from './style';\nimport { type ChatInputAreaProps } from './type';\n\nconst ChatInputArea = memo<ChatInputAreaProps>(\n ({\n ref,\n className,\n style,\n topAddons,\n textAreaLeftAddons,\n textAreaRightAddons,\n bottomAddons,\n expand = false,\n setExpand,\n onSend,\n onInput,\n loading,\n value,\n safeArea,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const size = useSize(containerRef);\n const [showFullscreen, setShowFullscreen] = useState<boolean>(false);\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n useEffect(() => {\n if (!size?.height) return;\n setShowFullscreen(size.height > 72);\n }, [size]);\n\n const InnerContainer: FC<\n PropsWithChildren & {\n bottomAddons?: ReactNode;\n textAreaLeftAddons?: ReactNode;\n textAreaRightAddons?: ReactNode;\n topAddons?: ReactNode;\n }\n > = useCallback(\n ({ children, ...r }) =>\n expand ? (\n <Flexbox className={styles.inner} gap={8}>\n <Flexbox horizontal gap={8} justify={'flex-end'}>\n {r.textAreaLeftAddons}\n {r.textAreaRightAddons}\n </Flexbox>\n {children}\n {r.topAddons}\n {r.bottomAddons}\n </Flexbox>\n ) : (\n <Flexbox horizontal align={'flex-end'} className={styles.inner} gap={8}>\n {r.textAreaLeftAddons}\n {children}\n {r.textAreaRightAddons}\n </Flexbox>\n ),\n [expand, loading],\n );\n\n const showAddons = !expand && !isFocused;\n\n return (\n <Flexbox\n className={cx(styles.container, expand && styles.expand, className)}\n gap={12}\n style={style}\n >\n {topAddons && <Flexbox style={showAddons ? {} : { display: 'none' }}>{topAddons}</Flexbox>}\n <Flexbox\n className={cx(expand && styles.expand)}\n ref={containerRef}\n style={{ position: 'relative' }}\n >\n {showFullscreen && (\n <ActionIcon\n active\n className={styles.expandButton}\n icon={expand ? ChevronDown : ChevronUp}\n id={'sssssss'}\n size={{ blockSize: 24, borderRadius: '50%', size: 14 }}\n style={expand ? { top: 6 } : {}}\n onClick={() => setExpand?.(!expand)}\n />\n )}\n <InnerContainer\n bottomAddons={bottomAddons}\n textAreaLeftAddons={textAreaLeftAddons}\n textAreaRightAddons={textAreaRightAddons}\n topAddons={topAddons}\n >\n <ChatInputAreaInner\n autoSize={expand ? false : { maxRows: 6, minRows: 1 }}\n className={styles.expandTextArea}\n loading={loading}\n ref={ref}\n style={{ height: 36, paddingBlock: 6 }}\n value={value}\n variant={expand ? 'borderless' : 'filled'}\n onBlur={() => setIsFocused(false)}\n onFocus={() => setIsFocused(true)}\n onInput={onInput}\n onSend={onSend}\n />\n </InnerContainer>\n </Flexbox>\n {bottomAddons && (\n <Flexbox style={showAddons ? {} : { display: 'none' }}>{bottomAddons}</Flexbox>\n )}\n {safeArea && !isFocused && <SafeArea position={'bottom'} />}\n </Flexbox>\n );\n },\n);\n\nChatInputArea.displayName = 'ChatInputArea';\n\nexport default ChatInputArea;\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,gBAAgB,MACnB,EACC,KACA,WACA,OACA,WACA,oBACA,qBACA,cACA,SAAS,OACT,WACA,QACA,SACA,SACA,OACA,eACI;CACJ,MAAM,eAAe,OAAuB,IAAI;CAChD,MAAM,OAAO,QAAQ,YAAY;CACjC,MAAM,CAAC,gBAAgB,qBAAqB,SAAkB,KAAK;CACnE,MAAM,CAAC,WAAW,gBAAgB,SAAkB,KAAK;CAEzD,gBAAgB;EACd,IAAI,CAAC,MAAM,QAAQ;EACnB,kBAAkB,KAAK,SAAS,EAAE;CACpC,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,iBAOF,aACD,EAAE,UAAU,GAAG,QACd,SACE,qBAACA,mBAAD;EAAS,WAAW,OAAO;EAAO,KAAK;EAAvC,UAAA;GACE,qBAACA,mBAAD;IAAS,YAAA;IAAW,KAAK;IAAG,SAAS;IAArC,UAAA,CACG,EAAE,oBACF,EAAE,mBACI;;GACR;GACA,EAAE;GACF,EAAE;EACI;CAET,CAAA,IAAA,qBAACA,mBAAD;EAAS,YAAA;EAAW,OAAO;EAAY,WAAW,OAAO;EAAO,KAAK;EAArE,UAAA;GACG,EAAE;GACF;GACA,EAAE;EACI;CAEb,CAAA,GAAA,CAAC,QAAQ,OAAO,CAClB;CAEA,MAAM,aAAa,CAAC,UAAU,CAAC;CAE/B,OACE,qBAACA,mBAAD;EACE,WAAW,GAAG,OAAO,WAAW,UAAU,OAAO,QAAQ,SAAS;EAClE,KAAK;EACE;EAHT,UAAA;GAKG,aAAa,oBAACA,mBAAD;IAAS,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;IAAI,UAAA;GAAmB,CAAA;GACzF,qBAACA,mBAAD;IACE,WAAW,GAAG,UAAU,OAAO,MAAM;IACrC,KAAK;IACL,OAAO,EAAE,UAAU,WAAW;IAHhC,UAAA,CAKG,kBACC,oBAAC,YAAD;KACE,QAAA;KACA,WAAW,OAAO;KAClB,MAAM,SAAS,cAAc;KAC7B,IAAI;KACJ,MAAM;MAAE,WAAW;MAAI,cAAc;MAAO,MAAM;KAAG;KACrD,OAAO,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC;KAC9B,eAAe,YAAY,CAAC,MAAM;IACnC,CAAA,GAEH,oBAAC,gBAAD;KACgB;KACM;KACC;KACV;KAEX,UAAA,oBAAC,oBAAD;MACE,UAAU,SAAS,QAAQ;OAAE,SAAS;OAAG,SAAS;MAAE;MACpD,WAAW,OAAO;MACT;MACJ;MACL,OAAO;OAAE,QAAQ;OAAI,cAAc;MAAE;MAC9B;MACP,SAAS,SAAS,eAAe;MACjC,cAAc,aAAa,KAAK;MAChC,eAAe,aAAa,IAAI;MACvB;MACD;KACT,CAAA;IACa,CAAA,CACT;;GACR,gBACC,oBAACA,mBAAD;IAAS,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;IAAI,UAAA;GAAsB,CAAA;GAE/E,YAAY,CAAC,aAAa,oBAAC,UAAD,EAAU,UAAU,SAAW,CAAA;EACnD;;AAEb,CACF;AAEA,cAAc,cAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/ui",
3
- "version": "5.34.3",
3
+ "version": "5.35.0",
4
4
  "description": "Lobe UI is an open-source UI component library for building AIGC web apps",
5
5
  "keywords": [
6
6
  "lobehub",