import { n as z, aE as j, af as F, ap as M, aw as A, q as w, s as N, ag as S, ah as I, al as s, au as l, ax as o, ai as t, O as U, aA as i, aM as d, aN as p, at as J, av as _, a_ as H, ak as q, aH as K, a$ as P, aq as x, aj as W, b0 as G, aO as Y, } from './index-9c042f98.js'; function Q() { const m = new Date(), c = m.getDate(), r = m.getMonth() + 1; return `${m.getFullYear()}-${r}-${c}`; } const X = { class: 'p-4 space-y-5 min-h-[200px]' }, Z = { class: 'space-y-6' }, ee = { class: 'flex items-center space-x-4' }, te = { class: 'flex-shrink-0 w-[100px]' }, se = { class: 'w-[200px]' }, ae = { class: 'flex items-center space-x-4' }, ne = { class: 'flex-shrink-0 w-[100px]' }, oe = { class: 'flex-1' }, le = { class: 'flex-shrink-0 w-[100px]' }, ie = { class: 'flex flex-wrap gap-4 items-center' }, ce = { class: 'flex items-center space-x-4' }, re = { class: 'flex-shrink-0 w-[100px]' }, ue = { class: 'flex flex-wrap gap-4 items-center' }, de = { class: 'flex items-center space-x-4' }, pe = { class: 'flex-shrink-0 w-[100px]' }, me = { class: 'flex flex-wrap gap-4 items-center' }, fe = { class: 'flex items-center space-x-4' }, ge = { class: 'flex-shrink-0 w-[100px]' }, ve = z({ __name: 'General', setup(m) { const c = j(), r = F(), { isMobile: f } = M(), u = A(), h = w(() => c.theme), y = w(() => r.userInfo), b = N(y.value.name ?? ''), $ = N(y.value.description ?? ''), B = w({ get() { return c.language; }, set(e) { c.setLanguage(e); }, }), O = [ { label: 'Auto', key: 'auto', icon: 'ri:contrast-line' }, { label: 'Light', key: 'light', icon: 'ri:sun-foggy-line' }, { label: 'Dark', key: 'dark', icon: 'ri:moon-foggy-line' }, ], R = [ { label: 'English', key: 'en-US', value: 'en-US' }, { label: 'Español', key: 'es-ES', value: 'es-ES' }, { label: '한국어', key: 'ko-KR', value: 'ko-KR' }, { label: 'Русский язык', key: 'ru-RU', value: 'ru-RU' }, { label: 'Tiếng Việt', key: 'vi-VN', value: 'vi-VN' }, { label: '简体中文', key: 'zh-CN', value: 'zh-CN' }, { label: '繁體中文', key: 'zh-TW', value: 'zh-TW' }, ]; function C(e) { r.updateUserInfo(e), u.success(x('common.success')); } function D() { r.resetUserInfo(), u.success(x('common.success')), window.location.reload(); } function E() { const e = Q(), n = localStorage.getItem('chatStorage') || '{}', a = JSON.stringify(JSON.parse(n), null, 2), g = new Blob([a], { type: 'application/json' }), k = URL.createObjectURL(g), v = document.createElement('a'); (v.href = k), (v.download = `chat-store_${e}.json`), document.body.appendChild(v), v.click(), document.body.removeChild(v); } function L(e) { const n = e.target; if (!n || !n.files) return; const a = n.files[0]; if (!a) return; const g = new FileReader(); (g.onload = () => { try { const k = JSON.parse(g.result); localStorage.setItem('chatStorage', JSON.stringify(k)), u.success(x('common.success')), location.reload(); } catch { u.error(x('common.invalidFileFormat')); } }), g.readAsText(a); } function V() { localStorage.removeItem('chatStorage'), location.reload(); } function T() { const e = document.getElementById('fileInput'); e && e.click(); } return (e, n) => ( S(), I('div', X, [ s('div', Z, [ s('div', ee, [ s('span', te, l(e.$t('setting.name')), 1), s('div', se, [ o(t(U), { value: b.value, 'onUpdate:value': n[0] || (n[0] = (a) => (b.value = a)), placeholder: '' }, null, 8, ['value']), ]), o( t(p), { size: 'tiny', text: '', type: 'primary', onClick: n[1] || (n[1] = (a) => C({ name: b.value })) }, { default: i(() => [d(l(e.$t('common.save')), 1)]), _: 1 } ), ]), s('div', ae, [ s('span', ne, l(e.$t('setting.description')), 1), s('div', oe, [ o(t(U), { value: $.value, 'onUpdate:value': n[2] || (n[2] = (a) => ($.value = a)), placeholder: '' }, null, 8, ['value']), ]), o( t(p), { size: 'tiny', text: '', type: 'primary', onClick: n[3] || (n[3] = (a) => C({ description: $.value })) }, { default: i(() => [d(l(e.$t('common.save')), 1)]), _: 1 } ), ]), s( 'div', { class: J(['flex items-center space-x-4', t(f) && 'items-start']) }, [ s('span', le, l(e.$t('setting.chatHistory')), 1), s('div', ie, [ o( t(p), { size: 'small', onClick: E }, { icon: i(() => [o(t(_), { icon: 'ri:download-2-fill' })]), default: i(() => [d(' ' + l(e.$t('common.export')), 1)]), _: 1 } ), s('input', { id: 'fileInput', type: 'file', style: { display: 'none' }, onChange: L }, null, 32), o( t(p), { size: 'small', onClick: T }, { icon: i(() => [o(t(_), { icon: 'ri:upload-2-fill' })]), default: i(() => [d(' ' + l(e.$t('common.import')), 1)]), _: 1 } ), o( t(H), { placement: 'bottom', onPositiveClick: V }, { trigger: i(() => [ o( t(p), { size: 'small' }, { icon: i(() => [o(t(_), { icon: 'ri:close-circle-line' })]), default: i(() => [d(' ' + l(e.$t('common.clear')), 1)]), _: 1, } ), ]), default: i(() => [d(' ' + l(e.$t('chat.clearHistoryConfirm')), 1)]), _: 1, } ), ]), ], 2 ), s('div', ce, [ s('span', re, l(e.$t('setting.theme')), 1), s('div', ue, [ (S(), I( q, null, K(O, (a) => o( t(p), { key: a.key, size: 'small', type: a.key === t(h) ? 'primary' : void 0, onClick: (g) => t(c).setTheme(a.key) }, { icon: i(() => [o(t(_), { icon: a.icon }, null, 8, ['icon'])]), _: 2 }, 1032, ['type', 'onClick'] ) ), 64 )), ]), ]), s('div', de, [ s('span', pe, l(e.$t('setting.language')), 1), s('div', me, [ o(t(P), { style: { width: '140px' }, value: t(B), options: R, onUpdateValue: n[4] || (n[4] = (a) => t(c).setLanguage(a)) }, null, 8, [ 'value', ]), ]), ]), s('div', fe, [ s('span', ge, l(e.$t('setting.resetUserInfo')), 1), o(t(p), { size: 'small', onClick: D }, { default: i(() => [d(l(e.$t('common.reset')), 1)]), _: 1 }), ]), ]), ]) ); }, }), ye = z({ __name: 'index', props: { visible: { type: Boolean } }, emits: ['update:visible'], setup(m, { emit: c }) { const r = m, f = w({ get() { return r.visible; }, set(u) { c('update:visible', u); }, }); return (u, h) => ( S(), W( t(Y), { show: t(f), 'onUpdate:show': h[0] || (h[0] = (y) => (G(f) ? (f.value = y) : null)), 'auto-focus': !1, preset: 'card', style: { width: '95%', 'max-width': '640px' }, }, { default: i(() => [s('div', null, [o(ve)])]), _: 1 }, 8, ['show'] ) ); }, }); export { ye as default };