@lobehub/ui 3.4.5 → 4.0.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 (220) hide show
  1. package/README.md +48 -0
  2. package/es/Accordion/Accordion.d.mts +2 -2
  3. package/es/Accordion/AccordionItem.d.mts +2 -2
  4. package/es/Accordion/AccordionItem.mjs +5 -5
  5. package/es/Accordion/AccordionItem.mjs.map +1 -1
  6. package/es/ActionIcon/ActionIcon.d.mts +2 -2
  7. package/es/Alert/Alert.d.mts +2 -2
  8. package/es/AutoComplete/Select.d.mts +2 -2
  9. package/es/Avatar/AvatarGroup/index.d.mts +2 -2
  10. package/es/Burger/Burger.d.mts +2 -2
  11. package/es/CodeEditor/CodeEditor.d.mts +2 -2
  12. package/es/Collapse/Collapse.d.mts +2 -2
  13. package/es/ConfigProvider/index.d.mts +10 -4
  14. package/es/ConfigProvider/index.mjs +28 -6
  15. package/es/ConfigProvider/index.mjs.map +1 -1
  16. package/es/CopyButton/CopyButton.d.mts +2 -2
  17. package/es/DatePicker/DatePicker.d.mts +2 -2
  18. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
  19. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
  20. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
  21. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
  22. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
  23. package/es/Drawer/Drawer.d.mts +2 -2
  24. package/es/Dropdown/Dropdown.d.mts +2 -2
  25. package/es/EditableText/EditableText.d.mts +2 -2
  26. package/es/EmojiPicker/AvatarUploader.mjs +10 -4
  27. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  28. package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
  29. package/es/EmojiPicker/EmojiPicker.mjs +9 -3
  30. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  31. package/es/Flex/FlexBasic.d.mts +2 -2
  32. package/es/Footer/Footer.d.mts +2 -2
  33. package/es/Form/components/FormGroup.d.mts +2 -2
  34. package/es/Form/components/FormItem.d.mts +2 -2
  35. package/es/Form/components/FormSubmitFooter.d.mts +2 -2
  36. package/es/Form/components/FormSubmitFooter.mjs +20 -8
  37. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  38. package/es/FormModal/FormModal.d.mts +2 -2
  39. package/es/GuideCard/GuideCard.d.mts +2 -2
  40. package/es/Header/Header.d.mts +2 -2
  41. package/es/Highlighter/Highlighter.d.mts +2 -2
  42. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
  43. package/es/Hotkey/Hotkey.d.mts +2 -2
  44. package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
  45. package/es/HotkeyInput/HotkeyInput.mjs +13 -6
  46. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  47. package/es/Icon/Icon.d.mts +2 -2
  48. package/es/Icon/components/IconProvider.d.mts +3 -3
  49. package/es/Image/PreviewGroup.d.mts +2 -2
  50. package/es/ImageSelect/ImageSelect.d.mts +2 -2
  51. package/es/Input/Input.d.mts +2 -2
  52. package/es/Input/InputNumber.d.mts +2 -2
  53. package/es/Input/InputOPT.d.mts +2 -2
  54. package/es/Input/InputPassword.d.mts +2 -2
  55. package/es/Input/TextArea.d.mts +2 -2
  56. package/es/Layout/components/LayoutFooter.d.mts +2 -2
  57. package/es/Layout/components/LayoutHeader.d.mts +2 -2
  58. package/es/Layout/components/LayoutMain.d.mts +2 -2
  59. package/es/Layout/components/LayoutSidebar.d.mts +2 -2
  60. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
  61. package/es/Layout/components/LayoutToc.d.mts +2 -2
  62. package/es/List/ListItem/index.d.mts +2 -2
  63. package/es/Markdown/Markdown.d.mts +2 -2
  64. package/es/Markdown/Typography.d.mts +2 -2
  65. package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
  66. package/es/MaskShadow/MaskShadow.d.mts +2 -2
  67. package/es/Menu/Menu.d.mts +2 -2
  68. package/es/Mermaid/Mermaid.d.mts +2 -2
  69. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
  70. package/es/Modal/Modal.d.mts +2 -2
  71. package/es/MotionProvider/index.d.mts +15 -0
  72. package/es/MotionProvider/index.d.ts +1 -0
  73. package/es/MotionProvider/index.js +1 -0
  74. package/es/MotionProvider/index.mjs +22 -0
  75. package/es/MotionProvider/index.mjs.map +1 -0
  76. package/es/Provider.d.mts +2 -0
  77. package/es/Segmented/Segmented.d.mts +2 -2
  78. package/es/Select/Select.d.mts +2 -2
  79. package/es/SideNav/SideNav.d.mts +2 -2
  80. package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
  81. package/es/SortableList/components/DragHandle.d.mts +2 -2
  82. package/es/SortableList/components/SortableItem.d.mts +2 -2
  83. package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
  84. package/es/ThemeProvider/ThemeProvider.mjs +11 -4
  85. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  86. package/es/ThemeProvider/type.d.mts +4 -0
  87. package/es/Toc/Toc.d.mts +2 -2
  88. package/es/Tooltip/Tooltip.mjs +1 -1
  89. package/es/Tooltip/Tooltip.mjs.map +1 -1
  90. package/es/Tooltip/TooltipFloating.mjs.map +1 -1
  91. package/es/Video/index.d.mts +2 -2
  92. package/es/_virtual/rolldown_runtime.mjs +18 -0
  93. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
  94. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
  95. package/es/awesome/Features/Features.d.mts +2 -2
  96. package/es/awesome/Giscus/Giscus.d.mts +2 -2
  97. package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
  98. package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
  99. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
  100. package/es/awesome/Hero/Hero.d.mts +2 -2
  101. package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
  102. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
  103. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
  104. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +5 -4
  105. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  106. package/es/brand/BrandLoading/{style-CB0aumHV.css → style-Cof4dJBw.css} +1 -1
  107. package/es/brand/BrandLoading/{style-CB0aumHV.css.map → style-Cof4dJBw.css.map} +1 -1
  108. package/es/brand/LobeChat/index.d.mts +2 -2
  109. package/es/brand/LobeHub/index.d.mts +2 -2
  110. package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
  111. package/es/brand/LogoThree/index.d.mts +2 -2
  112. package/es/chat/BackBottom/BackBottom.d.mts +2 -2
  113. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
  114. package/es/chat/ChatItem/ChatItem.d.mts +2 -2
  115. package/es/chat/ChatItem/ChatItem.mjs +8 -3
  116. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  117. package/es/chat/ChatList/ChatList.d.mts +2 -2
  118. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
  119. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
  120. package/es/chat/EditableMessageList/EditableMessageList.mjs +17 -7
  121. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  122. package/es/chat/EditableMessageList/type.d.mts +9 -0
  123. package/es/chat/MessageInput/MessageInput.d.mts +2 -2
  124. package/es/chat/MessageModal/MessageModal.d.mts +2 -2
  125. package/es/chat/MessageModal/MessageModal.mjs +27 -22
  126. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  127. package/es/chat/TokenTag/TokenTag.mjs +7 -1
  128. package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
  129. package/es/color/ColorScales/index.d.mts +2 -2
  130. package/es/i18n/context.d.mts +17 -0
  131. package/es/i18n/context.mjs +18 -0
  132. package/es/i18n/context.mjs.map +1 -0
  133. package/es/i18n/index.d.mts +6 -0
  134. package/es/i18n/index.d.ts +1 -0
  135. package/es/i18n/index.js +1 -0
  136. package/es/i18n/index.mjs +6 -0
  137. package/es/i18n/resources/en/chat.d.mts +11 -0
  138. package/es/i18n/resources/en/chat.mjs +12 -0
  139. package/es/i18n/resources/en/chat.mjs.map +1 -0
  140. package/es/i18n/resources/en/common.d.mts +10 -0
  141. package/es/i18n/resources/en/common.mjs +11 -0
  142. package/es/i18n/resources/en/common.mjs.map +1 -0
  143. package/es/i18n/resources/en/editableMessage.d.mts +13 -0
  144. package/es/i18n/resources/en/editableMessage.mjs +14 -0
  145. package/es/i18n/resources/en/editableMessage.mjs.map +1 -0
  146. package/es/i18n/resources/en/emojiPicker.d.mts +12 -0
  147. package/es/i18n/resources/en/emojiPicker.mjs +13 -0
  148. package/es/i18n/resources/en/emojiPicker.mjs.map +1 -0
  149. package/es/i18n/resources/en/form.d.mts +10 -0
  150. package/es/i18n/resources/en/form.mjs +11 -0
  151. package/es/i18n/resources/en/form.mjs.map +1 -0
  152. package/es/i18n/resources/en/hotkey.d.mts +10 -0
  153. package/es/i18n/resources/en/hotkey.mjs +11 -0
  154. package/es/i18n/resources/en/hotkey.mjs.map +1 -0
  155. package/es/i18n/resources/en/index.d.mts +16 -0
  156. package/es/i18n/resources/en/index.mjs +25 -0
  157. package/es/i18n/resources/en/index.mjs.map +1 -0
  158. package/es/i18n/resources/en/messageModal.d.mts +9 -0
  159. package/es/i18n/resources/en/messageModal.mjs +10 -0
  160. package/es/i18n/resources/en/messageModal.mjs.map +1 -0
  161. package/es/i18n/resources/en/sideNav.d.mts +21 -0
  162. package/es/i18n/resources/en/sideNav.mjs +22 -0
  163. package/es/i18n/resources/en/sideNav.mjs.map +1 -0
  164. package/es/i18n/resources/index.d.mts +3 -0
  165. package/es/i18n/resources/index.mjs +4 -0
  166. package/es/i18n/resources/zhCn/chat.d.mts +11 -0
  167. package/es/i18n/resources/zhCn/chat.mjs +12 -0
  168. package/es/i18n/resources/zhCn/chat.mjs.map +1 -0
  169. package/es/i18n/resources/zhCn/common.d.mts +10 -0
  170. package/es/i18n/resources/zhCn/common.mjs +11 -0
  171. package/es/i18n/resources/zhCn/common.mjs.map +1 -0
  172. package/es/i18n/resources/zhCn/editableMessage.d.mts +13 -0
  173. package/es/i18n/resources/zhCn/editableMessage.mjs +14 -0
  174. package/es/i18n/resources/zhCn/editableMessage.mjs.map +1 -0
  175. package/es/i18n/resources/zhCn/emojiPicker.d.mts +12 -0
  176. package/es/i18n/resources/zhCn/emojiPicker.mjs +13 -0
  177. package/es/i18n/resources/zhCn/emojiPicker.mjs.map +1 -0
  178. package/es/i18n/resources/zhCn/form.d.mts +10 -0
  179. package/es/i18n/resources/zhCn/form.mjs +11 -0
  180. package/es/i18n/resources/zhCn/form.mjs.map +1 -0
  181. package/es/i18n/resources/zhCn/hotkey.d.mts +10 -0
  182. package/es/i18n/resources/zhCn/hotkey.mjs +11 -0
  183. package/es/i18n/resources/zhCn/hotkey.mjs.map +1 -0
  184. package/es/i18n/resources/zhCn/index.d.mts +16 -0
  185. package/es/i18n/resources/zhCn/index.mjs +25 -0
  186. package/es/i18n/resources/zhCn/index.mjs.map +1 -0
  187. package/es/i18n/resources/zhCn/messageModal.d.mts +9 -0
  188. package/es/i18n/resources/zhCn/messageModal.mjs +10 -0
  189. package/es/i18n/resources/zhCn/messageModal.mjs.map +1 -0
  190. package/es/i18n/resources/zhCn/sideNav.d.mts +21 -0
  191. package/es/i18n/resources/zhCn/sideNav.mjs +22 -0
  192. package/es/i18n/resources/zhCn/sideNav.mjs.map +1 -0
  193. package/es/i18n/types.d.mts +28 -0
  194. package/es/i18n/useTranslation.d.mts +10 -0
  195. package/es/i18n/useTranslation.mjs +22 -0
  196. package/es/i18n/useTranslation.mjs.map +1 -0
  197. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
  198. package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
  199. package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
  200. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
  201. package/es/icons/lucideExtra/GroupBotIcon.d.mts +3 -3
  202. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
  203. package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
  204. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
  205. package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
  206. package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
  207. package/es/icons/lucideExtra/RightClickIcon.d.mts +2 -2
  208. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
  209. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
  210. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
  211. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
  212. package/es/index.d.mts +5 -1
  213. package/es/index.mjs +4 -1
  214. package/es/mdx/Mdx/index.d.mts +2 -2
  215. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
  216. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
  217. package/es/mobile/TabBar/TabBar.d.mts +2 -2
  218. package/es/motion/LazyMotion.d.mts +2 -2
  219. package/es/storybook/StoryBook/index.d.mts +2 -2
  220. package/package.json +27 -1
@@ -4,9 +4,11 @@ import FlexBasic_default from "../../Flex/FlexBasic.mjs";
4
4
  import Button_default from "../../Button/Button.mjs";
5
5
  import CodeEditor_default from "../../CodeEditor/CodeEditor.mjs";
6
6
  import TextArea_default from "../../Input/TextArea.mjs";
7
+ import { useTranslation } from "../../i18n/useTranslation.mjs";
7
8
  import Modal_default from "../../Modal/Modal.mjs";
8
9
  import Markdown_default from "../../Markdown/Markdown.mjs";
9
10
  import { useStyles } from "../MessageInput/style.mjs";
11
+ import messageModal_default from "../../i18n/resources/en/messageModal.mjs";
10
12
  import { memo, useState } from "react";
11
13
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
14
  import useMergeState from "use-merge-value";
@@ -16,6 +18,7 @@ import { useResponsive } from "antd-style";
16
18
  const MessageModal = memo(({ panelRef, editing, open, height = "75vh", onOpenChange, onEditingChange, placeholder, value, language = "markdown", onChange, text, footer, extra }) => {
17
19
  const { mobile } = useResponsive();
18
20
  const { styles: textStyles } = useStyles();
21
+ const { t } = useTranslation(messageModal_default);
19
22
  const [isEdit, setTyping] = useMergeState(false, {
20
23
  onChange: onEditingChange,
21
24
  value: editing
@@ -25,32 +28,34 @@ const MessageModal = memo(({ panelRef, editing, open, height = "75vh", onOpenCha
25
28
  value: open
26
29
  });
27
30
  const [temporaryValue, setMessage] = useState(value);
28
- const modalFooter = isEdit ? /* @__PURE__ */ jsxs(FlexBasic_default, {
29
- direction: "horizontal-reverse",
30
- gap: 8,
31
- children: [/* @__PURE__ */ jsx(Button_default, {
32
- onClick: () => {
33
- setTyping(false);
34
- onChange?.(temporaryValue);
35
- setMessage(value);
36
- },
37
- type: "primary",
38
- children: text?.confirm || "Confirm"
39
- }), /* @__PURE__ */ jsx(Button_default, {
40
- onClick: () => {
41
- setTyping(false);
42
- setMessage(value);
43
- },
44
- children: text?.cancel || "Cancel"
45
- })]
46
- }) : footer;
31
+ const confirmText = text?.confirm ?? t("messageModal.confirm");
32
+ const cancelText = text?.cancel ?? t("messageModal.cancel");
33
+ const editText = text?.edit ?? t("messageModal.edit");
47
34
  return /* @__PURE__ */ jsx(Modal_default, {
48
35
  allowFullscreen: true,
49
- cancelText: text?.cancel || "Cancel",
36
+ cancelText,
50
37
  destroyOnHidden: true,
51
- footer: modalFooter,
38
+ footer: isEdit ? /* @__PURE__ */ jsxs(FlexBasic_default, {
39
+ direction: "horizontal-reverse",
40
+ gap: 8,
41
+ children: [/* @__PURE__ */ jsx(Button_default, {
42
+ onClick: () => {
43
+ setTyping(false);
44
+ onChange?.(temporaryValue);
45
+ setMessage(value);
46
+ },
47
+ type: "primary",
48
+ children: confirmText
49
+ }), /* @__PURE__ */ jsx(Button_default, {
50
+ onClick: () => {
51
+ setTyping(false);
52
+ setMessage(value);
53
+ },
54
+ children: cancelText
55
+ })]
56
+ }) : footer,
52
57
  height,
53
- okText: text?.edit || "Edit",
58
+ okText: editText,
54
59
  onCancel: () => {
55
60
  setShowModal(false);
56
61
  setTyping(false);
@@ -1 +1 @@
1
- {"version":3,"file":"MessageModal.mjs","names":["useTextStyles","useControlledState","Flexbox","Button","Modal","TextArea","value","CodeEditor","Markdown"],"sources":["../../../src/chat/MessageModal/MessageModal.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { memo, useState } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport Button from '@/Button';\nimport CodeEditor from '@/CodeEditor';\nimport { Flexbox } from '@/Flex';\nimport TextArea from '@/Input/TextArea';\nimport Markdown from '@/Markdown';\nimport Modal from '@/Modal';\nimport { useStyles as useTextStyles } from '@/chat/MessageInput/style';\n\nimport type { MessageModalProps } from './type';\n\nconst MessageModal = memo<MessageModalProps>(\n ({\n panelRef,\n editing,\n open,\n height = '75vh',\n onOpenChange,\n onEditingChange,\n placeholder,\n value,\n language = 'markdown',\n onChange,\n text,\n footer,\n extra,\n }) => {\n const { mobile } = useResponsive();\n const { styles: textStyles } = useTextStyles();\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [showModal, setShowModal] = useControlledState(false, {\n onChange: onOpenChange,\n value: open,\n });\n\n const [temporaryValue, setMessage] = useState(value);\n\n const modalFooter = isEdit ? (\n <Flexbox direction={'horizontal-reverse'} gap={8}>\n <Button\n onClick={() => {\n setTyping(false);\n onChange?.(temporaryValue);\n setMessage(value);\n }}\n type=\"primary\"\n >\n {text?.confirm || 'Confirm'}\n </Button>\n <Button\n onClick={() => {\n setTyping(false);\n setMessage(value);\n }}\n >\n {text?.cancel || 'Cancel'}\n </Button>\n </Flexbox>\n ) : (\n footer\n );\n\n return (\n <Modal\n allowFullscreen\n cancelText={text?.cancel || 'Cancel'}\n destroyOnHidden\n footer={modalFooter}\n height={height}\n okText={text?.edit || 'Edit'}\n onCancel={() => {\n setShowModal(false);\n setTyping(false);\n setMessage(value);\n }}\n onOk={() => setTyping(true)}\n open={showModal}\n panelRef={panelRef}\n title={text?.title}\n >\n {isEdit ? (\n mobile ? (\n <TextArea\n autoSize\n className={textStyles}\n defaultValue={temporaryValue}\n onBlur={(e) => setMessage(e.target.value)}\n onChange={(value) => setMessage(value.target.value)}\n placeholder={placeholder}\n value={temporaryValue}\n variant={'borderless'}\n />\n ) : (\n <CodeEditor\n className={textStyles}\n defaultValue={temporaryValue}\n language={language}\n onBlur={(e) => setMessage(e.target.value)}\n onValueChange={(value) => setMessage(value)}\n placeholder={placeholder}\n value={temporaryValue}\n variant={'borderless'}\n />\n )\n ) : (\n <>\n {extra}\n <Markdown variant={'chat'}>{String(value || placeholder)}</Markdown>\n </>\n )}\n </Modal>\n );\n },\n);\n\nMessageModal.displayName = 'MessageModal';\n\nexport default MessageModal;\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAM,eAAe,MAClB,EACC,UACA,SACA,MACA,SAAS,QACT,cACA,iBACA,aACA,OACA,WAAW,YACX,UACA,MACA,QACA,YACI;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,EAAE,QAAQ,eAAeA,WAAe;CAC9C,MAAM,CAAC,QAAQ,aAAaC,cAAmB,OAAO;EACpD,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,WAAW,gBAAgBA,cAAmB,OAAO;EAC1D,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,gBAAgB,cAAc,SAAS,MAAM;CAEpD,MAAM,cAAc,SAClB,qBAACC;EAAQ,WAAW;EAAsB,KAAK;aAC7C,oBAACC;GACC,eAAe;AACb,cAAU,MAAM;AAChB,eAAW,eAAe;AAC1B,eAAW,MAAM;;GAEnB,MAAK;aAEJ,MAAM,WAAW;IACX,EACT,oBAACA;GACC,eAAe;AACb,cAAU,MAAM;AAChB,eAAW,MAAM;;aAGlB,MAAM,UAAU;IACV;GACD,GAEV;AAGF,QACE,oBAACC;EACC;EACA,YAAY,MAAM,UAAU;EAC5B;EACA,QAAQ;EACA;EACR,QAAQ,MAAM,QAAQ;EACtB,gBAAgB;AACd,gBAAa,MAAM;AACnB,aAAU,MAAM;AAChB,cAAW,MAAM;;EAEnB,YAAY,UAAU,KAAK;EAC3B,MAAM;EACI;EACV,OAAO,MAAM;YAEZ,SACC,SACE,oBAACC;GACC;GACA,WAAW;GACX,cAAc;GACd,SAAS,MAAM,WAAW,EAAE,OAAO,MAAM;GACzC,WAAW,YAAU,WAAWC,QAAM,OAAO,MAAM;GACtC;GACb,OAAO;GACP,SAAS;IACT,GAEF,oBAACC;GACC,WAAW;GACX,cAAc;GACJ;GACV,SAAS,MAAM,WAAW,EAAE,OAAO,MAAM;GACzC,gBAAgB,YAAU,WAAWD,QAAM;GAC9B;GACb,OAAO;GACP,SAAS;IACT,GAGJ,8CACG,OACD,oBAACE;GAAS,SAAS;aAAS,OAAO,SAAS,YAAY;IAAY,IACnE;GAEC;EAGb;AAED,aAAa,cAAc;AAE3B,2BAAe"}
1
+ {"version":3,"file":"MessageModal.mjs","names":["useTextStyles","messageModalMessages","useControlledState","Modal","Flexbox","Button","TextArea","value","CodeEditor","Markdown"],"sources":["../../../src/chat/MessageModal/MessageModal.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { memo, useState } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport Button from '@/Button';\nimport CodeEditor from '@/CodeEditor';\nimport { Flexbox } from '@/Flex';\nimport TextArea from '@/Input/TextArea';\nimport Markdown from '@/Markdown';\nimport Modal from '@/Modal';\nimport { useStyles as useTextStyles } from '@/chat/MessageInput/style';\nimport messageModalMessages from '@/i18n/resources/en/messageModal';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport type { MessageModalProps } from './type';\n\nconst MessageModal = memo<MessageModalProps>(\n ({\n panelRef,\n editing,\n open,\n height = '75vh',\n onOpenChange,\n onEditingChange,\n placeholder,\n value,\n language = 'markdown',\n onChange,\n text,\n footer,\n extra,\n }) => {\n const { mobile } = useResponsive();\n const { styles: textStyles } = useTextStyles();\n const { t } = useTranslation(messageModalMessages);\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [showModal, setShowModal] = useControlledState(false, {\n onChange: onOpenChange,\n value: open,\n });\n\n const [temporaryValue, setMessage] = useState(value);\n\n const confirmText = text?.confirm ?? t('messageModal.confirm');\n const cancelText = text?.cancel ?? t('messageModal.cancel');\n const editText = text?.edit ?? t('messageModal.edit');\n\n const modalFooter = isEdit ? (\n <Flexbox direction={'horizontal-reverse'} gap={8}>\n <Button\n onClick={() => {\n setTyping(false);\n onChange?.(temporaryValue);\n setMessage(value);\n }}\n type=\"primary\"\n >\n {confirmText}\n </Button>\n <Button\n onClick={() => {\n setTyping(false);\n setMessage(value);\n }}\n >\n {cancelText}\n </Button>\n </Flexbox>\n ) : (\n footer\n );\n\n return (\n <Modal\n allowFullscreen\n cancelText={cancelText}\n destroyOnHidden\n footer={modalFooter}\n height={height}\n okText={editText}\n onCancel={() => {\n setShowModal(false);\n setTyping(false);\n setMessage(value);\n }}\n onOk={() => setTyping(true)}\n open={showModal}\n panelRef={panelRef}\n title={text?.title}\n >\n {isEdit ? (\n mobile ? (\n <TextArea\n autoSize\n className={textStyles}\n defaultValue={temporaryValue}\n onBlur={(e) => setMessage(e.target.value)}\n onChange={(value) => setMessage(value.target.value)}\n placeholder={placeholder}\n value={temporaryValue}\n variant={'borderless'}\n />\n ) : (\n <CodeEditor\n className={textStyles}\n defaultValue={temporaryValue}\n language={language}\n onBlur={(e) => setMessage(e.target.value)}\n onValueChange={(value) => setMessage(value)}\n placeholder={placeholder}\n value={temporaryValue}\n variant={'borderless'}\n />\n )\n ) : (\n <>\n {extra}\n <Markdown variant={'chat'}>{String(value || placeholder)}</Markdown>\n </>\n )}\n </Modal>\n );\n },\n);\n\nMessageModal.displayName = 'MessageModal';\n\nexport default MessageModal;\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,eAAe,MAClB,EACC,UACA,SACA,MACA,SAAS,QACT,cACA,iBACA,aACA,OACA,WAAW,YACX,UACA,MACA,QACA,YACI;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,EAAE,QAAQ,eAAeA,WAAe;CAC9C,MAAM,EAAE,MAAM,eAAeC,qBAAqB;CAClD,MAAM,CAAC,QAAQ,aAAaC,cAAmB,OAAO;EACpD,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,WAAW,gBAAgBA,cAAmB,OAAO;EAC1D,UAAU;EACV,OAAO;EACR,CAAC;CAEF,MAAM,CAAC,gBAAgB,cAAc,SAAS,MAAM;CAEpD,MAAM,cAAc,MAAM,WAAW,EAAE,uBAAuB;CAC9D,MAAM,aAAa,MAAM,UAAU,EAAE,sBAAsB;CAC3D,MAAM,WAAW,MAAM,QAAQ,EAAE,oBAAoB;AA2BrD,QACE,oBAACC;EACC;EACY;EACZ;EACA,QA9BgB,SAClB,qBAACC;GAAQ,WAAW;GAAsB,KAAK;cAC7C,oBAACC;IACC,eAAe;AACb,eAAU,MAAM;AAChB,gBAAW,eAAe;AAC1B,gBAAW,MAAM;;IAEnB,MAAK;cAEJ;KACM,EACT,oBAACA;IACC,eAAe;AACb,eAAU,MAAM;AAChB,gBAAW,MAAM;;cAGlB;KACM;IACD,GAEV;EASU;EACR,QAAQ;EACR,gBAAgB;AACd,gBAAa,MAAM;AACnB,aAAU,MAAM;AAChB,cAAW,MAAM;;EAEnB,YAAY,UAAU,KAAK;EAC3B,MAAM;EACI;EACV,OAAO,MAAM;YAEZ,SACC,SACE,oBAACC;GACC;GACA,WAAW;GACX,cAAc;GACd,SAAS,MAAM,WAAW,EAAE,OAAO,MAAM;GACzC,WAAW,YAAU,WAAWC,QAAM,OAAO,MAAM;GACtC;GACb,OAAO;GACP,SAAS;IACT,GAEF,oBAACC;GACC,WAAW;GACX,cAAc;GACJ;GACV,SAAS,MAAM,WAAW,EAAE,OAAO,MAAM;GACzC,gBAAgB,YAAU,WAAWD,QAAM;GAC9B;GACb,OAAO;GACP,SAAS;IACT,GAGJ,8CACG,OACD,oBAACE;GAAS,SAAS;aAAS,OAAO,SAAS,YAAY;IAAY,IACnE;GAEC;EAGb;AAED,aAAa,cAAc;AAE3B,2BAAe"}
@@ -2,6 +2,8 @@
2
2
 
3
3
  import FluentEmoji_default from "../../FluentEmoji/FluentEmoji.mjs";
4
4
  import Button_default from "../../Button/Button.mjs";
5
+ import { useTranslation } from "../../i18n/useTranslation.mjs";
6
+ import chat_default from "../../i18n/resources/en/chat.mjs";
5
7
  import { useStyles } from "./style.mjs";
6
8
  import { useMemo } from "react";
7
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -13,9 +15,13 @@ import numeral from "numeral";
13
15
  const format = (number) => numeral(number).format("0,0");
14
16
  const TokenTag = ({ className, shape = "round", mode = "remained", maxValue, value, text, unoptimized, hideText, ref, ...rest }) => {
15
17
  const { mobile } = useResponsive();
18
+ const { t } = useTranslation(chat_default);
16
19
  const valueLeft = maxValue - value;
17
20
  const percent = valueLeft / maxValue;
18
21
  const showText = !hideText && !mobile;
22
+ const remainedText = text?.remained ?? t("tokenTag.remained");
23
+ const usedText = text?.used ?? t("tokenTag.used");
24
+ const overloadText = text?.overload ?? t("tokenTag.overload");
19
25
  const data = useMemo(() => {
20
26
  let type;
21
27
  let emoji;
@@ -52,7 +58,7 @@ const TokenTag = ({ className, shape = "round", mode = "remained", maxValue, val
52
58
  emoji: data.emoji,
53
59
  size: 18,
54
60
  unoptimized
55
- }), valueLeft > 0 ? [showText ? mode === "remained" ? text?.remained || "Remained" : text?.used || "Used" : "", mode === "remained" ? format(valueLeft) : format(value)].join(" ") : text?.overload || "Overload"]
61
+ }), valueLeft > 0 ? [showText ? mode === "remained" ? remainedText : usedText : "", mode === "remained" ? format(valueLeft) : format(value)].join(" ") : overloadText]
56
62
  });
57
63
  };
58
64
  TokenTag.displayName = "TokenTag";
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTag.mjs","names":["TokenTag: FC<TokenTagProps>","type: 'normal' | 'low' | 'overload'","Button","cx","FluentEmoji"],"sources":["../../../src/chat/TokenTag/TokenTag.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { cva } from 'class-variance-authority';\nimport numeral from 'numeral';\nimport { type FC, useMemo } from 'react';\n\nimport Button from '@/Button';\nimport FluentEmoji from '@/FluentEmoji';\n\nimport { useStyles } from './style';\nimport type { TokenTagProps } from './type';\n\nconst format = (number: number) => numeral(number).format('0,0');\n\nconst TokenTag: FC<TokenTagProps> = ({\n className,\n shape = 'round',\n mode = 'remained',\n maxValue,\n value,\n text,\n unoptimized,\n hideText,\n ref,\n ...rest\n}) => {\n const { mobile } = useResponsive();\n const valueLeft = maxValue - value;\n const percent = valueLeft / maxValue;\n const showText = !hideText && !mobile;\n\n const data = useMemo(() => {\n let type: 'normal' | 'low' | 'overload';\n let emoji;\n\n if (percent > 0.3) {\n type = 'normal';\n emoji = '😀';\n } else if (percent > 0) {\n type = 'low';\n emoji = '😅';\n } else {\n type = 'overload';\n emoji = '🤯';\n }\n return {\n emoji,\n type,\n };\n }, [percent]);\n\n const { styles, cx } = useStyles();\n\n const variants = useMemo(\n () =>\n cva(styles.root, {\n defaultVariants: {\n type: 'normal',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n type: {\n normal: styles.normal,\n low: styles.low,\n overload: styles.overload,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n }),\n [styles],\n );\n\n return (\n <Button\n className={cx(variants({ type: data.type }), className)}\n ref={ref}\n shape={shape}\n variant={'filled'}\n {...rest}\n >\n <FluentEmoji emoji={data.emoji} size={18} unoptimized={unoptimized} />\n {valueLeft > 0\n ? [\n showText\n ? mode === 'remained'\n ? text?.remained || 'Remained'\n : text?.used || 'Used'\n : '',\n mode === 'remained' ? format(valueLeft) : format(value),\n ].join(' ')\n : text?.overload || 'Overload'}\n </Button>\n );\n};\n\nTokenTag.displayName = 'TokenTag';\n\nexport default TokenTag;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,UAAU,WAAmB,QAAQ,OAAO,CAAC,OAAO,MAAM;AAEhE,MAAMA,YAA+B,EACnC,WACA,QAAQ,SACR,OAAO,YACP,UACA,OACA,MACA,aACA,UACA,KACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAC5B,MAAM,WAAW,CAAC,YAAY,CAAC;CAE/B,MAAM,OAAO,cAAc;EACzB,IAAIC;EACJ,IAAI;AAEJ,MAAI,UAAU,IAAK;AACjB,UAAO;AACP,WAAQ;aACC,UAAU,GAAG;AACtB,UAAO;AACP,WAAQ;SACH;AACL,UAAO;AACP,WAAQ;;AAEV,SAAO;GACL;GACA;GACD;IACA,CAAC,QAAQ,CAAC;CAEb,MAAM,EAAE,QAAQ,aAAO,WAAW;AAqBlC,QACE,qBAACC;EACC,WAAWC,KArBE,cAEb,IAAI,OAAO,MAAM;GACf,iBAAiB,EACf,MAAM,UACP;GAED,UAAU,EACR,MAAM;IACJ,QAAQ,OAAO;IACf,KAAK,OAAO;IACZ,UAAU,OAAO;IAClB,EACF;GAEF,CAAC,EACJ,CAAC,OAAO,CACT,CAI0B,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,UAAU;EAClD;EACE;EACP,SAAS;EACT,GAAI;aAEJ,oBAACC;GAAY,OAAO,KAAK;GAAO,MAAM;GAAiB;IAAe,EACrE,YAAY,IACT,CACE,WACI,SAAS,aACP,MAAM,YAAY,aAClB,MAAM,QAAQ,SAChB,IACJ,SAAS,aAAa,OAAO,UAAU,GAAG,OAAO,MAAM,CACxD,CAAC,KAAK,IAAI,GACX,MAAM,YAAY;GACf;;AAIb,SAAS,cAAc;AAEvB,uBAAe"}
1
+ {"version":3,"file":"TokenTag.mjs","names":["TokenTag: FC<TokenTagProps>","chatMessages","type: 'normal' | 'low' | 'overload'","Button","cx","FluentEmoji"],"sources":["../../../src/chat/TokenTag/TokenTag.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { cva } from 'class-variance-authority';\nimport numeral from 'numeral';\nimport { type FC, useMemo } from 'react';\n\nimport Button from '@/Button';\nimport FluentEmoji from '@/FluentEmoji';\nimport chatMessages from '@/i18n/resources/en/chat';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { useStyles } from './style';\nimport type { TokenTagProps } from './type';\n\nconst format = (number: number) => numeral(number).format('0,0');\n\nconst TokenTag: FC<TokenTagProps> = ({\n className,\n shape = 'round',\n mode = 'remained',\n maxValue,\n value,\n text,\n unoptimized,\n hideText,\n ref,\n ...rest\n}) => {\n const { mobile } = useResponsive();\n const { t } = useTranslation(chatMessages);\n const valueLeft = maxValue - value;\n const percent = valueLeft / maxValue;\n const showText = !hideText && !mobile;\n const remainedText = text?.remained ?? t('tokenTag.remained');\n const usedText = text?.used ?? t('tokenTag.used');\n const overloadText = text?.overload ?? t('tokenTag.overload');\n\n const data = useMemo(() => {\n let type: 'normal' | 'low' | 'overload';\n let emoji;\n\n if (percent > 0.3) {\n type = 'normal';\n emoji = '😀';\n } else if (percent > 0) {\n type = 'low';\n emoji = '😅';\n } else {\n type = 'overload';\n emoji = '🤯';\n }\n return {\n emoji,\n type,\n };\n }, [percent]);\n\n const { styles, cx } = useStyles();\n\n const variants = useMemo(\n () =>\n cva(styles.root, {\n defaultVariants: {\n type: 'normal',\n },\n /* eslint-disable sort-keys-fix/sort-keys-fix */\n variants: {\n type: {\n normal: styles.normal,\n low: styles.low,\n overload: styles.overload,\n },\n },\n /* eslint-enable sort-keys-fix/sort-keys-fix */\n }),\n [styles],\n );\n\n return (\n <Button\n className={cx(variants({ type: data.type }), className)}\n ref={ref}\n shape={shape}\n variant={'filled'}\n {...rest}\n >\n <FluentEmoji emoji={data.emoji} size={18} unoptimized={unoptimized} />\n {valueLeft > 0\n ? [\n showText ? (mode === 'remained' ? remainedText : usedText) : '',\n mode === 'remained' ? format(valueLeft) : format(value),\n ].join(' ')\n : overloadText}\n </Button>\n );\n};\n\nTokenTag.displayName = 'TokenTag';\n\nexport default TokenTag;\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,UAAU,WAAmB,QAAQ,OAAO,CAAC,OAAO,MAAM;AAEhE,MAAMA,YAA+B,EACnC,WACA,QAAQ,SACR,OAAO,YACP,UACA,OACA,MACA,aACA,UACA,KACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,EAAE,MAAM,eAAeC,aAAa;CAC1C,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAC5B,MAAM,WAAW,CAAC,YAAY,CAAC;CAC/B,MAAM,eAAe,MAAM,YAAY,EAAE,oBAAoB;CAC7D,MAAM,WAAW,MAAM,QAAQ,EAAE,gBAAgB;CACjD,MAAM,eAAe,MAAM,YAAY,EAAE,oBAAoB;CAE7D,MAAM,OAAO,cAAc;EACzB,IAAIC;EACJ,IAAI;AAEJ,MAAI,UAAU,IAAK;AACjB,UAAO;AACP,WAAQ;aACC,UAAU,GAAG;AACtB,UAAO;AACP,WAAQ;SACH;AACL,UAAO;AACP,WAAQ;;AAEV,SAAO;GACL;GACA;GACD;IACA,CAAC,QAAQ,CAAC;CAEb,MAAM,EAAE,QAAQ,aAAO,WAAW;AAqBlC,QACE,qBAACC;EACC,WAAWC,KArBE,cAEb,IAAI,OAAO,MAAM;GACf,iBAAiB,EACf,MAAM,UACP;GAED,UAAU,EACR,MAAM;IACJ,QAAQ,OAAO;IACf,KAAK,OAAO;IACZ,UAAU,OAAO;IAClB,EACF;GAEF,CAAC,EACJ,CAAC,OAAO,CACT,CAI0B,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,UAAU;EAClD;EACE;EACP,SAAS;EACT,GAAI;aAEJ,oBAACC;GAAY,OAAO,KAAK;GAAO,MAAM;GAAiB;IAAe,EACrE,YAAY,IACT,CACE,WAAY,SAAS,aAAa,eAAe,WAAY,IAC7D,SAAS,aAAa,OAAO,UAAU,GAAG,OAAO,MAAM,CACxD,CAAC,KAAK,IAAI,GACX;GACG;;AAIb,SAAS,cAAc;AAEvB,uBAAe"}
@@ -1,5 +1,5 @@
1
1
  import { ColorScaleItem } from "../types.mjs";
2
- import * as react3 from "react";
2
+ import * as react57 from "react";
3
3
 
4
4
  //#region src/color/ColorScales/index.d.ts
5
5
  interface ColorScalesProps {
@@ -16,7 +16,7 @@ interface ColorScalesProps {
16
16
  */
17
17
  scale: ColorScaleItem;
18
18
  }
19
- declare const ColorScales: react3.NamedExoticComponent<ColorScalesProps>;
19
+ declare const ColorScales: react57.NamedExoticComponent<ColorScalesProps>;
20
20
  //#endregion
21
21
  export { ColorScales, ColorScalesProps };
22
22
  //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,17 @@
1
+ import { MotionComponentType } from "../MotionProvider/index.mjs";
2
+ import { I18nContextValue, TranslationKey, TranslationResources } from "./types.mjs";
3
+ import "../ConfigProvider/index.mjs";
4
+ import * as react54 from "react";
5
+ import { ReactNode } from "react";
6
+
7
+ //#region src/i18n/context.d.ts
8
+ interface I18nProviderProps {
9
+ children: ReactNode;
10
+ locale?: string;
11
+ motion: MotionComponentType;
12
+ resources?: TranslationResources[] | Record<string, TranslationResources>;
13
+ }
14
+ declare const I18nProvider: react54.NamedExoticComponent<I18nProviderProps>;
15
+ //#endregion
16
+ export { I18nProvider, I18nProviderProps };
17
+ //# sourceMappingURL=context.d.mts.map
@@ -0,0 +1,18 @@
1
+ import ConfigProvider_default, { I18nContextInternal, useI18n } from "../ConfigProvider/index.mjs";
2
+ import { memo } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+
5
+ //#region src/i18n/context.tsx
6
+ const I18nProvider = memo(({ children, locale, resources, motion }) => {
7
+ return /* @__PURE__ */ jsx(ConfigProvider_default, {
8
+ config: {},
9
+ locale,
10
+ motion,
11
+ resources,
12
+ children
13
+ });
14
+ });
15
+
16
+ //#endregion
17
+ export { I18nProvider };
18
+ //# sourceMappingURL=context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","names":["ConfigProvider"],"sources":["../../src/i18n/context.tsx"],"sourcesContent":["import { type ReactNode, memo } from 'react';\n\nimport ConfigProvider from '@/ConfigProvider';\nimport { type MotionComponentType } from '@/MotionProvider';\n\nimport type { TranslationResources } from './types';\n\nexport interface I18nProviderProps {\n children: ReactNode;\n locale?: string;\n motion: MotionComponentType;\n resources?: TranslationResources[] | Record<string, TranslationResources>;\n}\n\n// Re-export for backward compatibility\nexport { I18nContext } from '@/ConfigProvider';\n\n// I18nProvider delegates to ConfigProvider with flattened i18n props\nexport const I18nProvider = memo<I18nProviderProps>(({ children, locale, resources, motion }) => {\n return (\n <ConfigProvider config={{}} locale={locale} motion={motion} resources={resources}>\n {children}\n </ConfigProvider>\n );\n});\n\n// Internal useI18n - for useTranslation only, not exported publicly\nexport { useI18n } from '@/ConfigProvider';\n\n// Re-export types\nexport type { I18nContextValue, TranslationKey, TranslationResources } from './types';\n"],"mappings":";;;;;AAkBA,MAAa,eAAe,MAAyB,EAAE,UAAU,QAAQ,WAAW,aAAa;AAC/F,QACE,oBAACA;EAAe,QAAQ,EAAE;EAAU;EAAgB;EAAmB;EACpE;GACc;EAEnB"}
@@ -0,0 +1,6 @@
1
+ import { I18nContextValue, Locale, TranslationKey, TranslationResources, TranslationValue } from "./types.mjs";
2
+ import { I18nProvider, I18nProviderProps } from "./context.mjs";
3
+ import { useTranslation } from "./useTranslation.mjs";
4
+ import { index_d_exports } from "./resources/en/index.mjs";
5
+ import { index_d_exports as index_d_exports$1 } from "./resources/zhCn/index.mjs";
6
+ export { type I18nContextValue, I18nProvider, type I18nProviderProps, type Locale, type TranslationKey, type TranslationResources, type TranslationValue, index_d_exports as en, useTranslation, index_d_exports$1 as zhCn };
@@ -0,0 +1 @@
1
+ export * from './index.d.mts';
@@ -0,0 +1 @@
1
+ export * from './index.mjs';
@@ -0,0 +1,6 @@
1
+ import { I18nProvider } from "./context.mjs";
2
+ import { useTranslation } from "./useTranslation.mjs";
3
+ import { en_exports } from "./resources/en/index.mjs";
4
+ import { zhCn_exports } from "./resources/zhCn/index.mjs";
5
+
6
+ export { I18nProvider, en_exports as en, useTranslation, zhCn_exports as zhCn };
@@ -0,0 +1,11 @@
1
+ //#region src/i18n/resources/en/chat.d.ts
2
+ declare const _default: {
3
+ readonly 'chat.avatar': "avatar";
4
+ readonly 'chat.placeholder': "...";
5
+ readonly 'tokenTag.overload': "Overload";
6
+ readonly 'tokenTag.remained': "Remained";
7
+ readonly 'tokenTag.used': "Used";
8
+ };
9
+ //#endregion
10
+ export { _default };
11
+ //# sourceMappingURL=chat.d.mts.map
@@ -0,0 +1,12 @@
1
+ //#region src/i18n/resources/en/chat.ts
2
+ var chat_default = {
3
+ "chat.avatar": "avatar",
4
+ "chat.placeholder": "...",
5
+ "tokenTag.overload": "Overload",
6
+ "tokenTag.remained": "Remained",
7
+ "tokenTag.used": "Used"
8
+ };
9
+
10
+ //#endregion
11
+ export { chat_default as default };
12
+ //# sourceMappingURL=chat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.mjs","names":[],"sources":["../../../../src/i18n/resources/en/chat.ts"],"sourcesContent":["export default {\n 'chat.avatar': 'avatar',\n 'chat.placeholder': '...',\n 'tokenTag.overload': 'Overload',\n 'tokenTag.remained': 'Remained',\n 'tokenTag.used': 'Used',\n} as const;\n"],"mappings":";AAAA,mBAAe;CACb,eAAe;CACf,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,iBAAiB;CAClB"}
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/resources/en/common.d.ts
2
+ declare const _default: {
3
+ readonly 'common.cancel': "Cancel";
4
+ readonly 'common.confirm': "Confirm";
5
+ readonly 'common.delete': "Delete";
6
+ readonly 'common.edit': "Edit";
7
+ };
8
+ //#endregion
9
+ export { _default };
10
+ //# sourceMappingURL=common.d.mts.map
@@ -0,0 +1,11 @@
1
+ //#region src/i18n/resources/en/common.ts
2
+ var common_default = {
3
+ "common.cancel": "Cancel",
4
+ "common.confirm": "Confirm",
5
+ "common.delete": "Delete",
6
+ "common.edit": "Edit"
7
+ };
8
+
9
+ //#endregion
10
+ export { common_default as default };
11
+ //# sourceMappingURL=common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.mjs","names":[],"sources":["../../../../src/i18n/resources/en/common.ts"],"sourcesContent":["export default {\n 'common.cancel': 'Cancel',\n 'common.confirm': 'Confirm',\n 'common.delete': 'Delete',\n 'common.edit': 'Edit',\n} as const;\n"],"mappings":";AAAA,qBAAe;CACb,iBAAiB;CACjB,kBAAkB;CAClB,iBAAiB;CACjB,eAAe;CAChB"}
@@ -0,0 +1,13 @@
1
+ //#region src/i18n/resources/en/editableMessage.d.ts
2
+ declare const _default: {
3
+ readonly 'editableMessage.addProps': "Add Props";
4
+ readonly 'editableMessage.delete': "Delete";
5
+ readonly 'editableMessage.input': "Input";
6
+ readonly 'editableMessage.inputPlaceholder': "Please enter sample input content";
7
+ readonly 'editableMessage.output': "Output";
8
+ readonly 'editableMessage.outputPlaceholder': "Please enter sample output content";
9
+ readonly 'editableMessage.system': "System";
10
+ };
11
+ //#endregion
12
+ export { _default };
13
+ //# sourceMappingURL=editableMessage.d.mts.map
@@ -0,0 +1,14 @@
1
+ //#region src/i18n/resources/en/editableMessage.ts
2
+ var editableMessage_default = {
3
+ "editableMessage.addProps": "Add Props",
4
+ "editableMessage.delete": "Delete",
5
+ "editableMessage.input": "Input",
6
+ "editableMessage.inputPlaceholder": "Please enter sample input content",
7
+ "editableMessage.output": "Output",
8
+ "editableMessage.outputPlaceholder": "Please enter sample output content",
9
+ "editableMessage.system": "System"
10
+ };
11
+
12
+ //#endregion
13
+ export { editableMessage_default as default };
14
+ //# sourceMappingURL=editableMessage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editableMessage.mjs","names":[],"sources":["../../../../src/i18n/resources/en/editableMessage.ts"],"sourcesContent":["export default {\n 'editableMessage.addProps': 'Add Props',\n 'editableMessage.delete': 'Delete',\n 'editableMessage.input': 'Input',\n 'editableMessage.inputPlaceholder': 'Please enter sample input content',\n 'editableMessage.output': 'Output',\n 'editableMessage.outputPlaceholder': 'Please enter sample output content',\n 'editableMessage.system': 'System',\n} as const;\n"],"mappings":";AAAA,8BAAe;CACb,4BAA4B;CAC5B,0BAA0B;CAC1B,yBAAyB;CACzB,oCAAoC;CACpC,0BAA0B;CAC1B,qCAAqC;CACrC,0BAA0B;CAC3B"}
@@ -0,0 +1,12 @@
1
+ //#region src/i18n/resources/en/emojiPicker.d.ts
2
+ declare const _default: {
3
+ readonly 'emojiPicker.delete': "Delete";
4
+ readonly 'emojiPicker.draggerDesc': "Click or Drag image to this area to upload";
5
+ readonly 'emojiPicker.emoji': "Emoji";
6
+ readonly 'emojiPicker.fileTypeError': "You can only upload image file!";
7
+ readonly 'emojiPicker.upload': "Upload";
8
+ readonly 'emojiPicker.uploadBtn': "Crop and Upload";
9
+ };
10
+ //#endregion
11
+ export { _default };
12
+ //# sourceMappingURL=emojiPicker.d.mts.map
@@ -0,0 +1,13 @@
1
+ //#region src/i18n/resources/en/emojiPicker.ts
2
+ var emojiPicker_default = {
3
+ "emojiPicker.delete": "Delete",
4
+ "emojiPicker.draggerDesc": "Click or Drag image to this area to upload",
5
+ "emojiPicker.emoji": "Emoji",
6
+ "emojiPicker.fileTypeError": "You can only upload image file!",
7
+ "emojiPicker.upload": "Upload",
8
+ "emojiPicker.uploadBtn": "Crop and Upload"
9
+ };
10
+
11
+ //#endregion
12
+ export { emojiPicker_default as default };
13
+ //# sourceMappingURL=emojiPicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emojiPicker.mjs","names":[],"sources":["../../../../src/i18n/resources/en/emojiPicker.ts"],"sourcesContent":["export default {\n 'emojiPicker.delete': 'Delete',\n 'emojiPicker.draggerDesc': 'Click or Drag image to this area to upload',\n 'emojiPicker.emoji': 'Emoji',\n 'emojiPicker.fileTypeError': 'You can only upload image file!',\n 'emojiPicker.upload': 'Upload',\n 'emojiPicker.uploadBtn': 'Crop and Upload',\n} as const;\n"],"mappings":";AAAA,0BAAe;CACb,sBAAsB;CACtB,2BAA2B;CAC3B,qBAAqB;CACrB,6BAA6B;CAC7B,sBAAsB;CACtB,yBAAyB;CAC1B"}
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/resources/en/form.d.ts
2
+ declare const _default: {
3
+ readonly 'form.reset': "Reset";
4
+ readonly 'form.submit': "Submit";
5
+ readonly 'form.unsavedChanges': "Unsaved changes";
6
+ readonly 'form.unsavedWarning': "You have unsaved changes. Are you sure you want to leave?";
7
+ };
8
+ //#endregion
9
+ export { _default };
10
+ //# sourceMappingURL=form.d.mts.map
@@ -0,0 +1,11 @@
1
+ //#region src/i18n/resources/en/form.ts
2
+ var form_default = {
3
+ "form.reset": "Reset",
4
+ "form.submit": "Submit",
5
+ "form.unsavedChanges": "Unsaved changes",
6
+ "form.unsavedWarning": "You have unsaved changes. Are you sure you want to leave?"
7
+ };
8
+
9
+ //#endregion
10
+ export { form_default as default };
11
+ //# sourceMappingURL=form.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/i18n/resources/en/form.ts"],"sourcesContent":["export default {\n 'form.reset': 'Reset',\n 'form.submit': 'Submit',\n 'form.unsavedChanges': 'Unsaved changes',\n 'form.unsavedWarning': 'You have unsaved changes. Are you sure you want to leave?',\n} as const;\n"],"mappings":";AAAA,mBAAe;CACb,cAAc;CACd,eAAe;CACf,uBAAuB;CACvB,uBAAuB;CACxB"}
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/resources/en/hotkey.d.ts
2
+ declare const _default: {
3
+ readonly 'hotkey.conflict': "This shortcut conflicts with an existing one.";
4
+ readonly 'hotkey.invalidCombination': "Shortcut must include a modifier key (Ctrl, Alt, Shift) and only one regular key.";
5
+ readonly 'hotkey.placeholder': "Press keys to record shortcut";
6
+ readonly 'hotkey.reset': "Reset to default";
7
+ };
8
+ //#endregion
9
+ export { _default };
10
+ //# sourceMappingURL=hotkey.d.mts.map
@@ -0,0 +1,11 @@
1
+ //#region src/i18n/resources/en/hotkey.ts
2
+ var hotkey_default = {
3
+ "hotkey.conflict": "This shortcut conflicts with an existing one.",
4
+ "hotkey.invalidCombination": "Shortcut must include a modifier key (Ctrl, Alt, Shift) and only one regular key.",
5
+ "hotkey.placeholder": "Press keys to record shortcut",
6
+ "hotkey.reset": "Reset to default"
7
+ };
8
+
9
+ //#endregion
10
+ export { hotkey_default as default };
11
+ //# sourceMappingURL=hotkey.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey.mjs","names":[],"sources":["../../../../src/i18n/resources/en/hotkey.ts"],"sourcesContent":["export default {\n 'hotkey.conflict': 'This shortcut conflicts with an existing one.',\n 'hotkey.invalidCombination':\n 'Shortcut must include a modifier key (Ctrl, Alt, Shift) and only one regular key.',\n 'hotkey.placeholder': 'Press keys to record shortcut',\n 'hotkey.reset': 'Reset to default',\n} as const;\n"],"mappings":";AAAA,qBAAe;CACb,mBAAmB;CACnB,6BACE;CACF,sBAAsB;CACtB,gBAAgB;CACjB"}
@@ -0,0 +1,16 @@
1
+ import { _default } from "./chat.mjs";
2
+ import { _default as _default$1 } from "./common.mjs";
3
+ import { _default as _default$2 } from "./editableMessage.mjs";
4
+ import { _default as _default$3 } from "./emojiPicker.mjs";
5
+ import { _default as _default$4 } from "./form.mjs";
6
+ import { _default as _default$5 } from "./hotkey.mjs";
7
+ import { _default as _default$6 } from "./messageModal.mjs";
8
+ import { _default as _default$7 } from "./sideNav.mjs";
9
+
10
+ //#region src/i18n/resources/en/index.d.ts
11
+ declare namespace index_d_exports {
12
+ export { _default as chat, _default$1 as common, _default$2 as editableMessage, _default$3 as emojiPicker, _default$4 as form, _default$5 as hotkey, _default$6 as messageModal, _default$7 as sideNav };
13
+ }
14
+ //#endregion
15
+ export { index_d_exports };
16
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,25 @@
1
+ import { __export } from "../../../_virtual/rolldown_runtime.mjs";
2
+ import emojiPicker_default from "./emojiPicker.mjs";
3
+ import form_default from "./form.mjs";
4
+ import hotkey_default from "./hotkey.mjs";
5
+ import chat_default from "./chat.mjs";
6
+ import messageModal_default from "./messageModal.mjs";
7
+ import editableMessage_default from "./editableMessage.mjs";
8
+ import common_default from "./common.mjs";
9
+ import sideNav_default from "./sideNav.mjs";
10
+
11
+ //#region src/i18n/resources/en/index.ts
12
+ var en_exports = /* @__PURE__ */ __export({
13
+ chat: () => chat_default,
14
+ common: () => common_default,
15
+ editableMessage: () => editableMessage_default,
16
+ emojiPicker: () => emojiPicker_default,
17
+ form: () => form_default,
18
+ hotkey: () => hotkey_default,
19
+ messageModal: () => messageModal_default,
20
+ sideNav: () => sideNav_default
21
+ });
22
+
23
+ //#endregion
24
+ export { en_exports };
25
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/i18n/resources/en/index.ts"],"sourcesContent":["export { default as chat } from './chat';\nexport { default as common } from './common';\nexport { default as editableMessage } from './editableMessage';\nexport { default as emojiPicker } from './emojiPicker';\nexport { default as form } from './form';\nexport { default as hotkey } from './hotkey';\nexport { default as messageModal } from './messageModal';\nexport { default as sideNav } from './sideNav';\n"],"mappings":""}
@@ -0,0 +1,9 @@
1
+ //#region src/i18n/resources/en/messageModal.d.ts
2
+ declare const _default: {
3
+ readonly 'messageModal.cancel': "Cancel";
4
+ readonly 'messageModal.confirm': "Confirm";
5
+ readonly 'messageModal.edit': "Edit";
6
+ };
7
+ //#endregion
8
+ export { _default };
9
+ //# sourceMappingURL=messageModal.d.mts.map
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/resources/en/messageModal.ts
2
+ var messageModal_default = {
3
+ "messageModal.cancel": "Cancel",
4
+ "messageModal.confirm": "Confirm",
5
+ "messageModal.edit": "Edit"
6
+ };
7
+
8
+ //#endregion
9
+ export { messageModal_default as default };
10
+ //# sourceMappingURL=messageModal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageModal.mjs","names":[],"sources":["../../../../src/i18n/resources/en/messageModal.ts"],"sourcesContent":["export default {\n 'messageModal.cancel': 'Cancel',\n 'messageModal.confirm': 'Confirm',\n 'messageModal.edit': 'Edit',\n} as const;\n"],"mappings":";AAAA,2BAAe;CACb,uBAAuB;CACvB,wBAAwB;CACxB,qBAAqB;CACtB"}
@@ -0,0 +1,21 @@
1
+ //#region src/i18n/resources/en/sideNav.d.ts
2
+ declare const _default: {
3
+ readonly 'sideNav.collapse': "Collapse sidebar";
4
+ readonly 'sideNav.demoActiveLabel': "Active";
5
+ readonly 'sideNav.demoFeatureAutoCollapseDesc': "Drag below threshold for smart collapse";
6
+ readonly 'sideNav.demoFeatureAutoCollapseTitle': "Auto-collapse";
7
+ readonly 'sideNav.demoFeaturePerformanceDesc': "No animation overhead for better performance";
8
+ readonly 'sideNav.demoFeaturePerformanceTitle': "Performance";
9
+ readonly 'sideNav.demoFeatureResizeDesc': "Drag to adjust panel width";
10
+ readonly 'sideNav.demoFeatureResizeTitle': "Flexible Resize";
11
+ readonly 'sideNav.demoFeatureSmartHandleDesc': "Hover to reveal toggle button";
12
+ readonly 'sideNav.demoFeatureSmartHandleTitle': "Smart Handle";
13
+ readonly 'sideNav.demoFeaturesTitle': "Features";
14
+ readonly 'sideNav.demoHint': "Try dragging the panel edge and using the toggle button ->";
15
+ readonly 'sideNav.demoSubtitle': "A workspace-style side panel with draggable resize";
16
+ readonly 'sideNav.demoTitle': "DraggableSideNav Demo";
17
+ readonly 'sideNav.expand': "Expand sidebar";
18
+ };
19
+ //#endregion
20
+ export { _default };
21
+ //# sourceMappingURL=sideNav.d.mts.map
@@ -0,0 +1,22 @@
1
+ //#region src/i18n/resources/en/sideNav.ts
2
+ var sideNav_default = {
3
+ "sideNav.collapse": "Collapse sidebar",
4
+ "sideNav.demoActiveLabel": "Active",
5
+ "sideNav.demoFeatureAutoCollapseDesc": "Drag below threshold for smart collapse",
6
+ "sideNav.demoFeatureAutoCollapseTitle": "Auto-collapse",
7
+ "sideNav.demoFeaturePerformanceDesc": "No animation overhead for better performance",
8
+ "sideNav.demoFeaturePerformanceTitle": "Performance",
9
+ "sideNav.demoFeatureResizeDesc": "Drag to adjust panel width",
10
+ "sideNav.demoFeatureResizeTitle": "Flexible Resize",
11
+ "sideNav.demoFeatureSmartHandleDesc": "Hover to reveal toggle button",
12
+ "sideNav.demoFeatureSmartHandleTitle": "Smart Handle",
13
+ "sideNav.demoFeaturesTitle": "Features",
14
+ "sideNav.demoHint": "Try dragging the panel edge and using the toggle button ->",
15
+ "sideNav.demoSubtitle": "A workspace-style side panel with draggable resize",
16
+ "sideNav.demoTitle": "DraggableSideNav Demo",
17
+ "sideNav.expand": "Expand sidebar"
18
+ };
19
+
20
+ //#endregion
21
+ export { sideNav_default as default };
22
+ //# sourceMappingURL=sideNav.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideNav.mjs","names":[],"sources":["../../../../src/i18n/resources/en/sideNav.ts"],"sourcesContent":["export default {\n 'sideNav.collapse': 'Collapse sidebar',\n 'sideNav.demoActiveLabel': 'Active',\n 'sideNav.demoFeatureAutoCollapseDesc': 'Drag below threshold for smart collapse',\n 'sideNav.demoFeatureAutoCollapseTitle': 'Auto-collapse',\n 'sideNav.demoFeaturePerformanceDesc': 'No animation overhead for better performance',\n 'sideNav.demoFeaturePerformanceTitle': 'Performance',\n 'sideNav.demoFeatureResizeDesc': 'Drag to adjust panel width',\n 'sideNav.demoFeatureResizeTitle': 'Flexible Resize',\n 'sideNav.demoFeatureSmartHandleDesc': 'Hover to reveal toggle button',\n 'sideNav.demoFeatureSmartHandleTitle': 'Smart Handle',\n 'sideNav.demoFeaturesTitle': 'Features',\n 'sideNav.demoHint': 'Try dragging the panel edge and using the toggle button ->',\n 'sideNav.demoSubtitle': 'A workspace-style side panel with draggable resize',\n 'sideNav.demoTitle': 'DraggableSideNav Demo',\n 'sideNav.expand': 'Expand sidebar',\n} as const;\n"],"mappings":";AAAA,sBAAe;CACb,oBAAoB;CACpB,2BAA2B;CAC3B,uCAAuC;CACvC,wCAAwC;CACxC,sCAAsC;CACtC,uCAAuC;CACvC,iCAAiC;CACjC,kCAAkC;CAClC,sCAAsC;CACtC,uCAAuC;CACvC,6BAA6B;CAC7B,oBAAoB;CACpB,wBAAwB;CACxB,qBAAqB;CACrB,kBAAkB;CACnB"}
@@ -0,0 +1,3 @@
1
+ import { index_d_exports } from "./en/index.mjs";
2
+ import { index_d_exports as index_d_exports$1 } from "./zhCn/index.mjs";
3
+ export { index_d_exports as en, index_d_exports$1 as zhCn };
@@ -0,0 +1,4 @@
1
+ import { en_exports } from "./en/index.mjs";
2
+ import { zhCn_exports } from "./zhCn/index.mjs";
3
+
4
+ export { en_exports as en, zhCn_exports as zhCn };
@@ -0,0 +1,11 @@
1
+ //#region src/i18n/resources/zhCn/chat.d.ts
2
+ declare const _default: {
3
+ readonly 'chat.avatar': "头像";
4
+ readonly 'chat.placeholder': "...";
5
+ readonly 'tokenTag.overload': "超额";
6
+ readonly 'tokenTag.remained': "剩余";
7
+ readonly 'tokenTag.used': "已用";
8
+ };
9
+ //#endregion
10
+ export { _default };
11
+ //# sourceMappingURL=chat.d.mts.map
@@ -0,0 +1,12 @@
1
+ //#region src/i18n/resources/zhCn/chat.ts
2
+ var chat_default = {
3
+ "chat.avatar": "头像",
4
+ "chat.placeholder": "...",
5
+ "tokenTag.overload": "超额",
6
+ "tokenTag.remained": "剩余",
7
+ "tokenTag.used": "已用"
8
+ };
9
+
10
+ //#endregion
11
+ export { chat_default as default };
12
+ //# sourceMappingURL=chat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.mjs","names":[],"sources":["../../../../src/i18n/resources/zhCn/chat.ts"],"sourcesContent":["export default {\n 'chat.avatar': '头像',\n 'chat.placeholder': '...',\n 'tokenTag.overload': '超额',\n 'tokenTag.remained': '剩余',\n 'tokenTag.used': '已用',\n} as const;\n"],"mappings":";AAAA,mBAAe;CACb,eAAe;CACf,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,iBAAiB;CAClB"}
@@ -0,0 +1,10 @@
1
+ //#region src/i18n/resources/zhCn/common.d.ts
2
+ declare const _default: {
3
+ readonly 'common.cancel': "取消";
4
+ readonly 'common.confirm': "确认";
5
+ readonly 'common.delete': "删除";
6
+ readonly 'common.edit': "编辑";
7
+ };
8
+ //#endregion
9
+ export { _default };
10
+ //# sourceMappingURL=common.d.mts.map