@chat-lab/ui 0.1.0-beta.29 → 0.1.0-beta.31

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 (69) hide show
  1. package/dist/components/Chatkit/index.cjs +25 -24
  2. package/dist/components/Chatkit/index.cjs.map +1 -1
  3. package/dist/components/Chatkit/index.d.ts +2 -2
  4. package/dist/components/Chatkit/index.d.ts.map +1 -1
  5. package/dist/components/Chatkit/index.js +25 -24
  6. package/dist/components/Chatkit/index.js.map +1 -1
  7. package/dist/components/assistant-ui/markdown-text.cjs.map +1 -1
  8. package/dist/components/assistant-ui/markdown-text.d.ts.map +1 -1
  9. package/dist/components/assistant-ui/markdown-text.js.map +1 -1
  10. package/dist/components/assistant-ui/reasoning.cjs +3 -1
  11. package/dist/components/assistant-ui/reasoning.cjs.map +1 -1
  12. package/dist/components/assistant-ui/reasoning.d.ts.map +1 -1
  13. package/dist/components/assistant-ui/reasoning.js +3 -1
  14. package/dist/components/assistant-ui/reasoning.js.map +1 -1
  15. package/dist/components/assistant-ui/thread.cjs +23 -23
  16. package/dist/components/assistant-ui/thread.cjs.map +1 -1
  17. package/dist/components/assistant-ui/thread.d.ts +1 -1
  18. package/dist/components/assistant-ui/thread.d.ts.map +1 -1
  19. package/dist/components/assistant-ui/thread.js +23 -23
  20. package/dist/components/assistant-ui/thread.js.map +1 -1
  21. package/dist/components/assistant-ui/tooltip-icon-button.d.ts +1 -1
  22. package/dist/components/assistant-ui/tooltip-icon-button.d.ts.map +1 -1
  23. package/dist/components/ui/button.d.ts +1 -1
  24. package/dist/components/ui/toast.cjs +1 -1
  25. package/dist/components/ui/toast.cjs.map +1 -1
  26. package/dist/components/ui/toast.d.ts +7 -7
  27. package/dist/components/ui/toast.d.ts.map +1 -1
  28. package/dist/components/ui/toast.js +1 -1
  29. package/dist/components/ui/toast.js.map +1 -1
  30. package/dist/contexts/ChatkitContext.cjs +1 -0
  31. package/dist/contexts/ChatkitContext.cjs.map +1 -1
  32. package/dist/contexts/ChatkitContext.d.ts +2 -0
  33. package/dist/contexts/ChatkitContext.d.ts.map +1 -1
  34. package/dist/contexts/ChatkitContext.js +1 -0
  35. package/dist/contexts/ChatkitContext.js.map +1 -1
  36. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToPairs.cjs +21 -0
  37. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToPairs.cjs.map +1 -0
  38. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToPairs.js +19 -0
  39. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToPairs.js.map +1 -0
  40. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createToPairs.cjs +33 -0
  41. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createToPairs.cjs.map +1 -0
  42. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createToPairs.js +31 -0
  43. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createToPairs.js.map +1 -0
  44. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToPairs.cjs +21 -0
  45. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToPairs.cjs.map +1 -0
  46. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToPairs.js +19 -0
  47. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToPairs.js.map +1 -0
  48. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.cjs +35 -0
  49. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.cjs.map +1 -0
  50. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.js +33 -0
  51. package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.js.map +1 -0
  52. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/react.cjs +63 -0
  53. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/react.cjs.map +1 -0
  54. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/react.js +61 -0
  55. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/react.js.map +1 -0
  56. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/vanilla.cjs +227 -0
  57. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/vanilla.cjs.map +1 -0
  58. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/vanilla.js +223 -0
  59. package/dist/node_modules/.pnpm/valtio@2.1.8_patch_hash_boxi3qpsg2dztwe4vz7tsjpr3m_@types_react@17.0.2_react@17.0.2/node_modules/valtio/esm/vanilla.js.map +1 -0
  60. package/dist/packages/core/dist/index.cjs +11 -2
  61. package/dist/packages/core/dist/index.cjs.map +1 -1
  62. package/dist/packages/core/dist/index.js +11 -2
  63. package/dist/packages/core/dist/index.js.map +1 -1
  64. package/dist/utils/download.cjs +2 -1
  65. package/dist/utils/download.cjs.map +1 -1
  66. package/dist/utils/download.d.ts.map +1 -1
  67. package/dist/utils/download.js +2 -1
  68. package/dist/utils/download.js.map +1 -1
  69. package/package.json +8 -3
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var FileSaver_min = require('../node_modules/.pnpm/file-saver@2.0.5/node_modules/file-saver/dist/FileSaver.min.cjs');
4
+ var toPairs = require('../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.cjs');
4
5
 
5
6
  /**
6
7
  * 保存字符串内容到 Markdown 文件
@@ -93,7 +94,7 @@ const saveObjectToMarkdown = (data, filename = 'data-export', title = 'Data Expo
93
94
  return value.map((item, index) => `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`).join('\n');
94
95
  }
95
96
  if (typeof value === 'object') {
96
- return Object.entries(value)
97
+ return toPairs(value)
97
98
  .map(([key, val]) => `${indent}- **${key}**: ${formatValue(val, level + 1)}`).join('\n');
98
99
  }
99
100
  return String(value);
@@ -1 +1 @@
1
- {"version":3,"file":"download.cjs","sources":["../../src/utils/download.ts"],"sourcesContent":["import { saveAs } from \"file-saver\";\n\n/**\n * 保存字符串内容到 Markdown 文件\n * @param content - 要保存的字符串内容\n * @param filename - 文件名(不包含扩展名),默认为 'document'\n * @param addTimestamp - 是否在文件名后添加时间戳,默认为 true\n */\nexport const saveStringToMarkdown = (\n content: string,\n filename: string = 'document',\n addTimestamp: boolean = true\n): void => {\n try {\n // 确保内容不为空\n if (!content || content.trim() === '') {\n console.warn('内容为空,无法保存文件');\n return;\n }\n\n // 生成文件名\n let finalFilename = filename;\n \n // 添加时间戳\n if (addTimestamp) {\n const timestamp = new Date().toISOString()\n .replace(/[:.]/g, '-')\n .slice(0, 19); // YYYY-MM-DDTHH-MM-SS\n finalFilename = `${filename}_${timestamp}`;\n }\n \n // 确保文件名以 .md 结尾\n if (!finalFilename.endsWith('.md')) {\n finalFilename += '.md';\n }\n\n // 创建 Blob 对象\n const blob = new Blob([content], {\n type: 'text/markdown;charset=utf-8'\n });\n\n // 使用 file-saver 保存文件\n saveAs(blob, finalFilename);\n \n console.log(`文件已保存: ${finalFilename}`);\n } catch (error) {\n console.error('保存文件时出错:', error);\n throw new Error(`保存文件失败: ${error instanceof Error ? error.message : '未知错误'}`);\n }\n};\n\n/**\n * 保存多个字符串内容到单个 Markdown 文件\n * @param contents - 字符串内容数组\n * @param filename - 文件名(不包含扩展名)\n * @param separator - 内容之间的分隔符,默认为双换行\n */\nexport const saveMultipleStringsToMarkdown = (\n contents: string[],\n filename: string = 'combined-document',\n separator: string = '\\n\\n---\\n\\n'\n): void => {\n try {\n if (!contents || contents.length === 0) {\n console.warn('内容数组为空,无法保存文件');\n return;\n }\n\n // 过滤空内容并合并\n const validContents = contents.filter(content => content && content.trim() !== '');\n \n if (validContents.length === 0) {\n console.warn('所有内容都为空,无法保存文件');\n return;\n }\n\n const combinedContent = validContents.join(separator);\n saveStringToMarkdown(combinedContent, filename);\n } catch (error) {\n console.error('保存多个内容到文件时出错:', error);\n throw error;\n }\n};\n\n/**\n * 保存对象为格式化的 Markdown 文件\n * @param data - 要保存的数据对象\n * @param filename - 文件名\n * @param title - Markdown 文档标题\n */\nexport const saveObjectToMarkdown = (\n data: Record<string, any>,\n filename: string = 'data-export',\n title: string = 'Data Export'\n): void => {\n try {\n let markdownContent = `# ${title}\\n\\n`;\n markdownContent += `*导出时间: ${new Date().toLocaleString('zh-CN')}*\\n\\n`;\n \n // 递归处理对象\n const formatValue = (value: any, level: number = 0): string => {\n const indent = ' '.repeat(level);\n \n if (value === null || value === undefined) {\n return 'null';\n }\n \n if (typeof value === 'string') {\n return value;\n }\n \n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n \n if (Array.isArray(value)) {\n return value.map((item, index) => \n `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`\n ).join('\\n');\n }\n \n if (typeof value === 'object') {\n return Object.entries(value)\n .map(([key, val]) => \n `${indent}- **${key}**: ${formatValue(val, level + 1)}`\n ).join('\\n');\n }\n \n return String(value);\n };\n \n markdownContent += formatValue(data);\n \n saveStringToMarkdown(markdownContent, filename, false);\n } catch (error) {\n console.error('保存对象到 Markdown 文件时出错:', error);\n throw error;\n }\n};"],"names":["saveAs"],"mappings":"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"}
1
+ {"version":3,"file":"download.cjs","sources":["../../src/utils/download.ts"],"sourcesContent":["import { saveAs } from \"file-saver\";\nimport { entries } from \"lodash-es\";\n\n/**\n * 保存字符串内容到 Markdown 文件\n * @param content - 要保存的字符串内容\n * @param filename - 文件名(不包含扩展名),默认为 'document'\n * @param addTimestamp - 是否在文件名后添加时间戳,默认为 true\n */\nexport const saveStringToMarkdown = (\n content: string,\n filename: string = 'document',\n addTimestamp: boolean = true\n): void => {\n try {\n // 确保内容不为空\n if (!content || content.trim() === '') {\n console.warn('内容为空,无法保存文件');\n return;\n }\n\n // 生成文件名\n let finalFilename = filename;\n \n // 添加时间戳\n if (addTimestamp) {\n const timestamp = new Date().toISOString()\n .replace(/[:.]/g, '-')\n .slice(0, 19); // YYYY-MM-DDTHH-MM-SS\n finalFilename = `${filename}_${timestamp}`;\n }\n \n // 确保文件名以 .md 结尾\n if (!finalFilename.endsWith('.md')) {\n finalFilename += '.md';\n }\n\n // 创建 Blob 对象\n const blob = new Blob([content], {\n type: 'text/markdown;charset=utf-8'\n });\n\n // 使用 file-saver 保存文件\n saveAs(blob, finalFilename);\n \n console.log(`文件已保存: ${finalFilename}`);\n } catch (error) {\n console.error('保存文件时出错:', error);\n throw new Error(`保存文件失败: ${error instanceof Error ? error.message : '未知错误'}`);\n }\n};\n\n/**\n * 保存多个字符串内容到单个 Markdown 文件\n * @param contents - 字符串内容数组\n * @param filename - 文件名(不包含扩展名)\n * @param separator - 内容之间的分隔符,默认为双换行\n */\nexport const saveMultipleStringsToMarkdown = (\n contents: string[],\n filename: string = 'combined-document',\n separator: string = '\\n\\n---\\n\\n'\n): void => {\n try {\n if (!contents || contents.length === 0) {\n console.warn('内容数组为空,无法保存文件');\n return;\n }\n\n // 过滤空内容并合并\n const validContents = contents.filter(content => content && content.trim() !== '');\n \n if (validContents.length === 0) {\n console.warn('所有内容都为空,无法保存文件');\n return;\n }\n\n const combinedContent = validContents.join(separator);\n saveStringToMarkdown(combinedContent, filename);\n } catch (error) {\n console.error('保存多个内容到文件时出错:', error);\n throw error;\n }\n};\n\n/**\n * 保存对象为格式化的 Markdown 文件\n * @param data - 要保存的数据对象\n * @param filename - 文件名\n * @param title - Markdown 文档标题\n */\nexport const saveObjectToMarkdown = (\n data: Record<string, any>,\n filename: string = 'data-export',\n title: string = 'Data Export'\n): void => {\n try {\n let markdownContent = `# ${title}\\n\\n`;\n markdownContent += `*导出时间: ${new Date().toLocaleString('zh-CN')}*\\n\\n`;\n \n // 递归处理对象\n const formatValue = (value: any, level: number = 0): string => {\n const indent = ' '.repeat(level);\n \n if (value === null || value === undefined) {\n return 'null';\n }\n \n if (typeof value === 'string') {\n return value;\n }\n \n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n \n if (Array.isArray(value)) {\n return value.map((item, index) => \n `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`\n ).join('\\n');\n }\n \n if (typeof value === 'object') {\n return entries(value)\n .map(([key, val]) => \n `${indent}- **${key}**: ${formatValue(val, level + 1)}`\n ).join('\\n');\n }\n \n return String(value);\n };\n \n markdownContent += formatValue(data);\n \n saveStringToMarkdown(markdownContent, filename, false);\n } catch (error) {\n console.error('保存对象到 Markdown 文件时出错:', error);\n throw error;\n }\n};"],"names":["saveAs","entries"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/utils/download.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,WAAU,MAAmB,EAC7B,eAAc,OAAc,KAC3B,IAqCF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,MAAM,EAAE,EAClB,WAAU,MAA4B,EACtC,YAAW,MAAsB,KAChC,IAqBF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,WAAU,MAAsB,EAChC,QAAO,MAAsB,KAC5B,IA4CF,CAAC"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/utils/download.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,WAAU,MAAmB,EAC7B,eAAc,OAAc,KAC3B,IAqCF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,MAAM,EAAE,EAClB,WAAU,MAA4B,EACtC,YAAW,MAAsB,KAChC,IAqBF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,WAAU,MAAsB,EAChC,QAAO,MAAsB,KAC5B,IA4CF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { F as FileSaver_minExports } from '../node_modules/.pnpm/file-saver@2.0.5/node_modules/file-saver/dist/FileSaver.min.js';
2
+ import entries from '../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPairs.js';
2
3
 
3
4
  /**
4
5
  * 保存字符串内容到 Markdown 文件
@@ -91,7 +92,7 @@ const saveObjectToMarkdown = (data, filename = 'data-export', title = 'Data Expo
91
92
  return value.map((item, index) => `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`).join('\n');
92
93
  }
93
94
  if (typeof value === 'object') {
94
- return Object.entries(value)
95
+ return entries(value)
95
96
  .map(([key, val]) => `${indent}- **${key}**: ${formatValue(val, level + 1)}`).join('\n');
96
97
  }
97
98
  return String(value);
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sources":["../../src/utils/download.ts"],"sourcesContent":["import { saveAs } from \"file-saver\";\n\n/**\n * 保存字符串内容到 Markdown 文件\n * @param content - 要保存的字符串内容\n * @param filename - 文件名(不包含扩展名),默认为 'document'\n * @param addTimestamp - 是否在文件名后添加时间戳,默认为 true\n */\nexport const saveStringToMarkdown = (\n content: string,\n filename: string = 'document',\n addTimestamp: boolean = true\n): void => {\n try {\n // 确保内容不为空\n if (!content || content.trim() === '') {\n console.warn('内容为空,无法保存文件');\n return;\n }\n\n // 生成文件名\n let finalFilename = filename;\n \n // 添加时间戳\n if (addTimestamp) {\n const timestamp = new Date().toISOString()\n .replace(/[:.]/g, '-')\n .slice(0, 19); // YYYY-MM-DDTHH-MM-SS\n finalFilename = `${filename}_${timestamp}`;\n }\n \n // 确保文件名以 .md 结尾\n if (!finalFilename.endsWith('.md')) {\n finalFilename += '.md';\n }\n\n // 创建 Blob 对象\n const blob = new Blob([content], {\n type: 'text/markdown;charset=utf-8'\n });\n\n // 使用 file-saver 保存文件\n saveAs(blob, finalFilename);\n \n console.log(`文件已保存: ${finalFilename}`);\n } catch (error) {\n console.error('保存文件时出错:', error);\n throw new Error(`保存文件失败: ${error instanceof Error ? error.message : '未知错误'}`);\n }\n};\n\n/**\n * 保存多个字符串内容到单个 Markdown 文件\n * @param contents - 字符串内容数组\n * @param filename - 文件名(不包含扩展名)\n * @param separator - 内容之间的分隔符,默认为双换行\n */\nexport const saveMultipleStringsToMarkdown = (\n contents: string[],\n filename: string = 'combined-document',\n separator: string = '\\n\\n---\\n\\n'\n): void => {\n try {\n if (!contents || contents.length === 0) {\n console.warn('内容数组为空,无法保存文件');\n return;\n }\n\n // 过滤空内容并合并\n const validContents = contents.filter(content => content && content.trim() !== '');\n \n if (validContents.length === 0) {\n console.warn('所有内容都为空,无法保存文件');\n return;\n }\n\n const combinedContent = validContents.join(separator);\n saveStringToMarkdown(combinedContent, filename);\n } catch (error) {\n console.error('保存多个内容到文件时出错:', error);\n throw error;\n }\n};\n\n/**\n * 保存对象为格式化的 Markdown 文件\n * @param data - 要保存的数据对象\n * @param filename - 文件名\n * @param title - Markdown 文档标题\n */\nexport const saveObjectToMarkdown = (\n data: Record<string, any>,\n filename: string = 'data-export',\n title: string = 'Data Export'\n): void => {\n try {\n let markdownContent = `# ${title}\\n\\n`;\n markdownContent += `*导出时间: ${new Date().toLocaleString('zh-CN')}*\\n\\n`;\n \n // 递归处理对象\n const formatValue = (value: any, level: number = 0): string => {\n const indent = ' '.repeat(level);\n \n if (value === null || value === undefined) {\n return 'null';\n }\n \n if (typeof value === 'string') {\n return value;\n }\n \n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n \n if (Array.isArray(value)) {\n return value.map((item, index) => \n `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`\n ).join('\\n');\n }\n \n if (typeof value === 'object') {\n return Object.entries(value)\n .map(([key, val]) => \n `${indent}- **${key}**: ${formatValue(val, level + 1)}`\n ).join('\\n');\n }\n \n return String(value);\n };\n \n markdownContent += formatValue(data);\n \n saveStringToMarkdown(markdownContent, filename, false);\n } catch (error) {\n console.error('保存对象到 Markdown 文件时出错:', error);\n throw error;\n }\n};"],"names":["saveAs"],"mappings":"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"}
1
+ {"version":3,"file":"download.js","sources":["../../src/utils/download.ts"],"sourcesContent":["import { saveAs } from \"file-saver\";\nimport { entries } from \"lodash-es\";\n\n/**\n * 保存字符串内容到 Markdown 文件\n * @param content - 要保存的字符串内容\n * @param filename - 文件名(不包含扩展名),默认为 'document'\n * @param addTimestamp - 是否在文件名后添加时间戳,默认为 true\n */\nexport const saveStringToMarkdown = (\n content: string,\n filename: string = 'document',\n addTimestamp: boolean = true\n): void => {\n try {\n // 确保内容不为空\n if (!content || content.trim() === '') {\n console.warn('内容为空,无法保存文件');\n return;\n }\n\n // 生成文件名\n let finalFilename = filename;\n \n // 添加时间戳\n if (addTimestamp) {\n const timestamp = new Date().toISOString()\n .replace(/[:.]/g, '-')\n .slice(0, 19); // YYYY-MM-DDTHH-MM-SS\n finalFilename = `${filename}_${timestamp}`;\n }\n \n // 确保文件名以 .md 结尾\n if (!finalFilename.endsWith('.md')) {\n finalFilename += '.md';\n }\n\n // 创建 Blob 对象\n const blob = new Blob([content], {\n type: 'text/markdown;charset=utf-8'\n });\n\n // 使用 file-saver 保存文件\n saveAs(blob, finalFilename);\n \n console.log(`文件已保存: ${finalFilename}`);\n } catch (error) {\n console.error('保存文件时出错:', error);\n throw new Error(`保存文件失败: ${error instanceof Error ? error.message : '未知错误'}`);\n }\n};\n\n/**\n * 保存多个字符串内容到单个 Markdown 文件\n * @param contents - 字符串内容数组\n * @param filename - 文件名(不包含扩展名)\n * @param separator - 内容之间的分隔符,默认为双换行\n */\nexport const saveMultipleStringsToMarkdown = (\n contents: string[],\n filename: string = 'combined-document',\n separator: string = '\\n\\n---\\n\\n'\n): void => {\n try {\n if (!contents || contents.length === 0) {\n console.warn('内容数组为空,无法保存文件');\n return;\n }\n\n // 过滤空内容并合并\n const validContents = contents.filter(content => content && content.trim() !== '');\n \n if (validContents.length === 0) {\n console.warn('所有内容都为空,无法保存文件');\n return;\n }\n\n const combinedContent = validContents.join(separator);\n saveStringToMarkdown(combinedContent, filename);\n } catch (error) {\n console.error('保存多个内容到文件时出错:', error);\n throw error;\n }\n};\n\n/**\n * 保存对象为格式化的 Markdown 文件\n * @param data - 要保存的数据对象\n * @param filename - 文件名\n * @param title - Markdown 文档标题\n */\nexport const saveObjectToMarkdown = (\n data: Record<string, any>,\n filename: string = 'data-export',\n title: string = 'Data Export'\n): void => {\n try {\n let markdownContent = `# ${title}\\n\\n`;\n markdownContent += `*导出时间: ${new Date().toLocaleString('zh-CN')}*\\n\\n`;\n \n // 递归处理对象\n const formatValue = (value: any, level: number = 0): string => {\n const indent = ' '.repeat(level);\n \n if (value === null || value === undefined) {\n return 'null';\n }\n \n if (typeof value === 'string') {\n return value;\n }\n \n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n \n if (Array.isArray(value)) {\n return value.map((item, index) => \n `${indent}- **[${index}]**: ${formatValue(item, level + 1)}`\n ).join('\\n');\n }\n \n if (typeof value === 'object') {\n return entries(value)\n .map(([key, val]) => \n `${indent}- **${key}**: ${formatValue(val, level + 1)}`\n ).join('\\n');\n }\n \n return String(value);\n };\n \n markdownContent += formatValue(data);\n \n saveStringToMarkdown(markdownContent, filename, false);\n } catch (error) {\n console.error('保存对象到 Markdown 文件时出错:', error);\n throw error;\n }\n};"],"names":["saveAs"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chat-lab/ui",
3
- "version": "0.1.0-beta.29",
3
+ "version": "0.1.0-beta.31",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -50,6 +50,7 @@
50
50
  "lucide-react": "^0.552.0",
51
51
  "mitt": "^3.0.1",
52
52
  "motion": "^12.23.24",
53
+ "outdent": "^0.8.0",
53
54
  "patch-package": "^8.0.1",
54
55
  "postcss-import": "^16.1.1",
55
56
  "react-markdown": "^10.1.0",
@@ -67,7 +68,8 @@
67
68
  "unist-util-visit-parents": "^6.0.2",
68
69
  "use-sync-external-store": "^1.6.0",
69
70
  "uuid": "^13.0.0",
70
- "zustand": "^5.0.8"
71
+ "zustand": "^5.0.8",
72
+ "zx": "^8.8.5"
71
73
  },
72
74
  "devDependencies": {
73
75
  "@rollup/plugin-alias": "^5.0.0",
@@ -111,6 +113,9 @@
111
113
  "build": "rollup -c",
112
114
  "dev": "rollup -c -w",
113
115
  "test": "echo \"Error: no test specified\" && exit 1",
114
- "postinstall": "npx patch-package"
116
+ "postinstall": "npx patch-package",
117
+ "publish:beta": "zx ../../scripts/publish-beta-libs.mjs --beta --pkg @chat-lab/ui",
118
+ "publish:nightly": "zx ../../scripts/publish-beta-libs.mjs --nightly --pkg @chat-lab/ui",
119
+ "publish:dry": "zx ../../scripts/publish-beta-libs.mjs --dry --pkg @chat-lab/ui"
115
120
  }
116
121
  }