mirror of
https://github.com/ChrispyBacon-dev/DockFlare.git
synced 2026-10-19 07:33:16 +00:00
npm audit and CVE scan
This commit is contained in:
parent
0338c77e65
commit
84edebeb10
111 changed files with 1143 additions and 13784 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -95,4 +95,9 @@ logs/
|
|||
DockFlare-Agent-prd/
|
||||
unstable-compose.yml
|
||||
unstable-local.yml
|
||||
/artifacts
|
||||
/artifacts
|
||||
|
||||
# Webmail TypeScript/vue-tsc emit output (build artifacts, not source)
|
||||
/webmail/src/**/*.js
|
||||
/webmail/src/**/*.js.map
|
||||
*.tsbuildinfo
|
||||
|
|
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
|||
### Fixed
|
||||
- **Internal email configuration authentication:** Internal mail bootstrap endpoints now fail closed when `INTERNAL_BOOTSTRAP_SECRET` is missing and require a matching `X-Bootstrap-Token` for every request. Docker Compose passes the same required secret to DockFlare and mail-manager, preventing unauthenticated private-network access to mail storage credentials, webhook and outbound-worker secrets, and VAPID key material. The website installation script now generates and preserves this shared secret automatically.
|
||||
- **Missing Access policies on fresh setups:** Fixed a regression from the system-policy work back in v3.0.x. On a fresh install the two built-in policies (`public-default-bypass` and `authenticated-default`) could fail to be created on Cloudflare because setup runs before the config is written, and the stale local-only reference then made DockFlare skip them on every later start - so label-created Access Apps came up with zero policies and every login was denied, with nothing useful in the logs. DockFlare now verifies both policies against Cloudflare on startup and creates or re-links them when they're missing. Also fixed a duplicate `public-default-bypass` being created each time the Access Policies page loaded, and a bad `dockflare.access.policy` value no longer silently strips an existing policy - it logs an error and leaves the app untouched. While in there, `cf_policy_id` and `cloudflare_policy_id` are now kept in sync. Thanks [@PauloJf](https://github.com/PauloJf) for the report and repro ([#399](https://github.com/ChrispyBacon-dev/DockFlare/issues/399)).
|
||||
- **Inbound email blocked when Webmail sits behind Cloudflare Access:** If your webmail hostname (e.g. `mail.example.com`) is protected by a Cloudflare Access application, the inbound email worker's webhook to `/api/v1/webhook/inbound` was being caught by the Access login redirect and never reached mail-manager. Outbound worked fine, but received mail just piled up in the R2 `temp_cache` with nothing in the logs, and the retry cron hit the same wall. DockFlare now creates a path-scoped `DockFlare Mail Webhook Bypass` Access application (bypass policy, exact path only) when you set up a domain, and on startup it detects existing installs where the webhook is behind Access and fixes them automatically. Only that one path is opened - the webhook is still authenticated by the per-domain HMAC signature, and your webmail UI stays protected. The auto-fix needs `Account > Access: Apps and Policies: Edit` on the API token (documented in the Email prerequisites).
|
||||
|
||||
|
||||
## [v3.1.5] - 2026-09-01
|
||||
|
|
|
|||
6
package-lock.json
generated
6
package-lock.json
generated
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "DockFlare",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:20-alpine AS builder
|
||||
FROM node:22-alpine AS builder
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
|
|
|
|||
2263
webmail/package-lock.json
generated
2263
webmail/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -9,18 +9,20 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@emoji-mart/data": "^1.2.1",
|
||||
"@tiptap/extension-color": "^2.27.2",
|
||||
"@tiptap/extension-font-family": "^2.27.2",
|
||||
"@tiptap/extension-highlight": "^2.27.2",
|
||||
"@tiptap/extension-image": "^2.6.0",
|
||||
"@tiptap/extension-link": "^2.6.0",
|
||||
"@tiptap/extension-placeholder": "^2.6.0",
|
||||
"@tiptap/extension-text-align": "^2.27.2",
|
||||
"@tiptap/extension-text-style": "^2.27.2",
|
||||
"@tiptap/extension-typography": "^2.6.0",
|
||||
"@tiptap/extension-underline": "^2.27.2",
|
||||
"@tiptap/starter-kit": "^2.6.0",
|
||||
"@tiptap/vue-3": "^2.6.0",
|
||||
"@floating-ui/dom": "^1.8.0",
|
||||
"@tiptap/core": "^3.31.3",
|
||||
"@tiptap/extension-color": "^3.31.3",
|
||||
"@tiptap/extension-font-family": "^3.31.3",
|
||||
"@tiptap/extension-highlight": "^3.31.3",
|
||||
"@tiptap/extension-link": "^3.31.3",
|
||||
"@tiptap/extension-placeholder": "^3.31.3",
|
||||
"@tiptap/extension-text-align": "^3.31.3",
|
||||
"@tiptap/extension-text-style": "^3.31.3",
|
||||
"@tiptap/extension-typography": "^3.31.3",
|
||||
"@tiptap/extension-underline": "^3.31.3",
|
||||
"@tiptap/pm": "^3.31.3",
|
||||
"@tiptap/starter-kit": "^3.31.3",
|
||||
"@tiptap/vue-3": "^3.31.3",
|
||||
"axios": "^1.20.0",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.0",
|
||||
|
|
@ -40,15 +42,18 @@
|
|||
"yaml": "2.8.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^5.1.0",
|
||||
"@vitejs/plugin-vue": "^6.0.9",
|
||||
"autoprefixer": "^10.4.0",
|
||||
"postcss": "^8.5.26",
|
||||
"tailwindcss": "^3.4.0",
|
||||
"typescript": "^5.5.0",
|
||||
"vite": "^5.4.0",
|
||||
"vite-plugin-pwa": "^0.21.0",
|
||||
"vue-tsc": "^2.1.0",
|
||||
"workbox-precaching": "^7.3.0",
|
||||
"workbox-routing": "^7.3.0"
|
||||
"vite": "^8.3.0",
|
||||
"vite-plugin-pwa": "^1.3.0",
|
||||
"vue-tsc": "^3.3.11",
|
||||
"workbox-precaching": "^7.4.1",
|
||||
"workbox-routing": "^7.4.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.19.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,81 +0,0 @@
|
|||
/// <reference types="../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { RouterView } from 'vue-router';
|
||||
import { useRegisterSW } from 'virtual:pwa-register/vue';
|
||||
const { needRefresh, updateServiceWorker } = useRegisterSW();
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div)({
|
||||
...{ class: "aurora-layer" },
|
||||
'aria-hidden': "true",
|
||||
});
|
||||
const __VLS_0 = {}.RouterView;
|
||||
/** @type {[typeof __VLS_components.RouterView, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({}));
|
||||
const __VLS_2 = __VLS_1({}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
const __VLS_4 = {}.Transition;
|
||||
/** @type {[typeof __VLS_components.Transition, typeof __VLS_components.Transition, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
name: "slide-up",
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
name: "slide-up",
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
__VLS_7.slots.default;
|
||||
if (__VLS_ctx.needRefresh) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "fixed bottom-4 right-4 z-50 flex items-center gap-3 rounded-lg border bg-card px-4 py-3 shadow-lg text-card-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-sm" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.needRefresh))
|
||||
return;
|
||||
__VLS_ctx.updateServiceWorker();
|
||||
} },
|
||||
...{ class: "text-sm font-medium underline underline-offset-2" },
|
||||
});
|
||||
}
|
||||
var __VLS_7;
|
||||
/** @type {__VLS_StyleScopedClasses['aurora-layer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bottom-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['right-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-card']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-card-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['underline']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['underline-offset-2']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
RouterView: RouterView,
|
||||
needRefresh: needRefresh,
|
||||
updateServiceWorker: updateServiceWorker,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=App.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"App.vue.js","sourceRoot":"","sources":["App.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
import apiClient from './client';
|
||||
export const authApi = {
|
||||
checkAuth: () => apiClient.get('/auth/me'),
|
||||
loginWithPassword: async (email, password) => {
|
||||
const response = await fetch('/email/auth/login', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ email, password }),
|
||||
});
|
||||
return response.json();
|
||||
},
|
||||
changePassword: async (currentPassword, newPassword) => {
|
||||
const token = localStorage.getItem('jwt_token');
|
||||
const response = await fetch('/email/auth/change-password', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${token}`,
|
||||
},
|
||||
body: JSON.stringify({ current_password: currentPassword, new_password: newPassword }),
|
||||
});
|
||||
return response.json();
|
||||
},
|
||||
};
|
||||
//# sourceMappingURL=auth.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,UAAU,CAAA;AAEhC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAE1C,iBAAiB,EAAE,KAAK,EAAE,KAAa,EAAE,QAAgB,EAAE,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAC1C,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,cAAc,EAAE,KAAK,EAAE,eAAuB,EAAE,WAAmB,EAAE,EAAE;QACrE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,6BAA6B,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,KAAK,EAAE;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SACvF,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;CACF,CAAA"}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
import axios from 'axios';
|
||||
import router from '../router';
|
||||
const apiClient = axios.create({
|
||||
baseURL: '/api/v1',
|
||||
timeout: 30000,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
apiClient.interceptors.request.use(config => {
|
||||
const token = localStorage.getItem('jwt_token');
|
||||
if (token) {
|
||||
config.headers.Authorization = `Bearer ${token}`;
|
||||
}
|
||||
if (config.data instanceof FormData) {
|
||||
delete config.headers['Content-Type'];
|
||||
}
|
||||
return config;
|
||||
});
|
||||
apiClient.interceptors.response.use(response => response, error => {
|
||||
if (error.response?.status === 401) {
|
||||
localStorage.removeItem('jwt_token');
|
||||
import('../stores/auth').then(({ useAuthStore }) => {
|
||||
const authStore = useAuthStore();
|
||||
authStore.token = '';
|
||||
});
|
||||
router.push('/login');
|
||||
}
|
||||
return Promise.reject(error);
|
||||
});
|
||||
export default apiClient;
|
||||
//# sourceMappingURL=client.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;KACnC;CACF,CAAC,CAAA;AAEF,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;IAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAA;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,YAAY,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,CAAA;AAEF,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACjC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EACpB,KAAK,CAAC,EAAE;IACN,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QACnC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YACjD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;YAChC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CACF,CAAA;AAED,eAAe,SAAS,CAAA"}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
import apiClient from './client';
|
||||
export const mailApi = {
|
||||
getMailboxes: () => apiClient.get('/mailboxes'),
|
||||
getFolders: (address) => apiClient.get(`/mailboxes/${address}/folders`),
|
||||
createFolder: (address, name, color) => apiClient.post(`/mailboxes/${address}/folders`, { name, color }),
|
||||
deleteFolder: (address, id) => apiClient.delete(`/mailboxes/${address}/folders/${id}`),
|
||||
emptyFolder: (address, id) => apiClient.delete(`/mailboxes/${address}/folders/${id}/empty`),
|
||||
renameFolder: (address, id, name, color) => apiClient.patch(`/mailboxes/${address}/folders/${id}`, { name, color }),
|
||||
getMessages: (address, params) => apiClient.get(`/mailboxes/${address}/messages`, { params }),
|
||||
getMessage: (address, id) => apiClient.get(`/mailboxes/${address}/messages/${id}`),
|
||||
updateMessage: (address, id, data) => apiClient.patch(`/mailboxes/${address}/messages/${id}`, data),
|
||||
deleteMessage: (address, id) => apiClient.delete(`/mailboxes/${address}/messages/${id}`),
|
||||
moveMessages: (address, data) => apiClient.post(`/mailboxes/${address}/messages/move`, data),
|
||||
markMessages: (address, data) => apiClient.post(`/mailboxes/${address}/messages/mark`, data),
|
||||
sendMessage: (address, data) => apiClient.post(`/mailboxes/${address}/send`, data),
|
||||
searchMessages: (address, params) => apiClient.get(`/mailboxes/${address}/search`, { params }),
|
||||
getMailboxStatus: () => apiClient.get('/mailboxes/status'),
|
||||
getMailboxPreferences: (address) => apiClient.get(`/mailboxes/${address}/preferences`),
|
||||
updateMailboxPreferences: (address, data) => apiClient.patch(`/mailboxes/${address}/preferences`, data),
|
||||
getAttachmentUrl: (id) => `/api/v1/attachments/${id}/download`,
|
||||
downloadAttachment: (id) => apiClient.get(`/attachments/${id}/download`, { responseType: 'blob' }).then(r => r.data),
|
||||
createDraft: (address, data) => apiClient.post(`/mailboxes/${address}/drafts`, data),
|
||||
updateDraft: (address, id, data) => apiClient.put(`/mailboxes/${address}/drafts/${id}`, data),
|
||||
getAutoResponder: (address) => apiClient.get(`/mailboxes/${address}/auto-responder`),
|
||||
setAutoResponder: (address, data) => apiClient.post(`/mailboxes/${address}/auto-responder`, data),
|
||||
deleteAutoResponder: (address) => apiClient.delete(`/mailboxes/${address}/auto-responder`),
|
||||
getAliases: (mailbox) => apiClient.get('/aliases', { params: { mailbox, active: 1 } }),
|
||||
getAllAliases: (mailbox) => apiClient.get('/aliases', { params: { mailbox } }),
|
||||
createAlias: (data) => apiClient.post('/aliases', data),
|
||||
updateAlias: (address, data) => apiClient.patch(`/aliases/${encodeURIComponent(address)}`, data),
|
||||
deleteAlias: (address) => apiClient.delete(`/aliases/${encodeURIComponent(address)}`),
|
||||
generateAlias: (mailbox, domain, style) => apiClient.post('/aliases/generate', { mailbox_address: mailbox, domain, style: style || 'word-word-num' }),
|
||||
};
|
||||
//# sourceMappingURL=mail.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"mail.js","sourceRoot":"","sources":["mail.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref } from 'vue';
|
||||
import { Paperclip, Download } from 'lucide-vue-next';
|
||||
import { mailApi } from '../../api/mail';
|
||||
import Button from '../ui/Button.vue';
|
||||
const __VLS_props = defineProps({
|
||||
attachments: { type: Array, default: () => [] },
|
||||
});
|
||||
const downloading = ref(null);
|
||||
const formatSize = (bytes) => {
|
||||
if (bytes >= 1_048_576)
|
||||
return `${(bytes / 1_048_576).toFixed(1)} MB`;
|
||||
if (bytes >= 1024)
|
||||
return `${Math.round(bytes / 1024)} KB`;
|
||||
return `${bytes} B`;
|
||||
};
|
||||
const download = async (att) => {
|
||||
downloading.value = att.id;
|
||||
try {
|
||||
const blob = await mailApi.downloadAttachment(att.id);
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = att.filename;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
catch (e) {
|
||||
console.error('Download failed', e);
|
||||
}
|
||||
finally {
|
||||
downloading.value = null;
|
||||
}
|
||||
};
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
if (__VLS_ctx.attachments && __VLS_ctx.attachments.length > 0) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-wrap gap-2 border-t p-4" },
|
||||
});
|
||||
for (const [att] of __VLS_getVForSourceType(__VLS_ctx.attachments)) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
key: (att.id),
|
||||
...{ class: "flex items-center gap-2 rounded-lg border bg-muted/40 px-3 py-2 text-sm" },
|
||||
});
|
||||
const __VLS_0 = {}.Paperclip;
|
||||
/** @type {[typeof __VLS_components.Paperclip, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
...{ class: "size-4 text-muted-foreground shrink-0" },
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
...{ class: "size-4 text-muted-foreground shrink-0" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "truncate max-w-[180px]" },
|
||||
});
|
||||
(att.filename);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-xs text-muted-foreground whitespace-nowrap" },
|
||||
});
|
||||
(__VLS_ctx.formatSize(att.size_bytes));
|
||||
/** @type {[typeof Button, typeof Button, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_4 = __VLS_asFunctionalComponent(Button, new Button({
|
||||
...{ 'onClick': {} },
|
||||
variant: "ghost",
|
||||
size: "sm",
|
||||
...{ class: "h-7 w-7 p-0" },
|
||||
disabled: (__VLS_ctx.downloading === att.id),
|
||||
}));
|
||||
const __VLS_5 = __VLS_4({
|
||||
...{ 'onClick': {} },
|
||||
variant: "ghost",
|
||||
size: "sm",
|
||||
...{ class: "h-7 w-7 p-0" },
|
||||
disabled: (__VLS_ctx.downloading === att.id),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_4));
|
||||
let __VLS_7;
|
||||
let __VLS_8;
|
||||
let __VLS_9;
|
||||
const __VLS_10 = {
|
||||
onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.attachments && __VLS_ctx.attachments.length > 0))
|
||||
return;
|
||||
__VLS_ctx.download(att);
|
||||
}
|
||||
};
|
||||
__VLS_6.slots.default;
|
||||
const __VLS_11 = {}.Download;
|
||||
/** @type {[typeof __VLS_components.Download, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_12 = __VLS_asFunctionalComponent(__VLS_11, new __VLS_11({
|
||||
...{ class: "size-4" },
|
||||
}));
|
||||
const __VLS_13 = __VLS_12({
|
||||
...{ class: "size-4" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_12));
|
||||
var __VLS_6;
|
||||
}
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-wrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-t']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted/40']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-w-[180px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['whitespace-nowrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-7']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-7']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
Paperclip: Paperclip,
|
||||
Download: Download,
|
||||
Button: Button,
|
||||
downloading: downloading,
|
||||
formatSize: formatSize,
|
||||
download: download,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
attachments: { type: Array, default: () => [] },
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
attachments: { type: Array, default: () => [] },
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=AttachmentBar.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -14,7 +14,7 @@ import Typography from '@tiptap/extension-typography'
|
|||
import Underline from '@tiptap/extension-underline'
|
||||
import TextAlign from '@tiptap/extension-text-align'
|
||||
import Color from '@tiptap/extension-color'
|
||||
import TextStyle from '@tiptap/extension-text-style'
|
||||
import { TextStyle } from '@tiptap/extension-text-style'
|
||||
import Highlight from '@tiptap/extension-highlight'
|
||||
import FontFamily from '@tiptap/extension-font-family'
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ const MAX_ATTACHMENT_BYTES = 10 * 1024 * 1024
|
|||
|
||||
const editor = useEditor({
|
||||
extensions: [
|
||||
StarterKit,
|
||||
StarterKit.configure({ link: false, underline: false }),
|
||||
LinkExtension.configure({ openOnClick: false }),
|
||||
Placeholder.configure({ placeholder: 'Write your message…' }),
|
||||
Typography,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -1,72 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useMailStore } from '../../stores/mail';
|
||||
const props = defineProps({
|
||||
modelValue: { type: String, default: '' }
|
||||
});
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
const store = useMailStore();
|
||||
const text = ref(props.modelValue);
|
||||
watch(() => props.modelValue, (val) => {
|
||||
text.value = val;
|
||||
store.composeBody = val;
|
||||
});
|
||||
const onInput = (e) => {
|
||||
const val = e.target.value;
|
||||
text.value = val;
|
||||
store.composeBody = val;
|
||||
emit('update:modelValue', val);
|
||||
};
|
||||
const getHTML = () => text.value;
|
||||
const __VLS_exposed = { getHTML };
|
||||
defineExpose(__VLS_exposed);
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-col border rounded-md overflow-hidden" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.textarea)({
|
||||
...{ onInput: (__VLS_ctx.onInput) },
|
||||
value: (__VLS_ctx.text),
|
||||
placeholder: "Write your message...",
|
||||
...{ class: "flex-1 p-4 text-sm resize-none focus:outline-none min-h-[160px]" },
|
||||
});
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['resize-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-h-[160px]']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
text: text,
|
||||
onInput: onInput,
|
||||
};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
...__VLS_exposed,
|
||||
};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=ComposeEditor.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"ComposeEditor.vue.js","sourceRoot":"","sources":["ComposeEditor.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,888 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed, ref } from 'vue';
|
||||
import { Inbox, FileText, Send, Trash2, AlertCircle, Archive, Folder, FolderOpen, FolderPlus, } from 'lucide-vue-next';
|
||||
import { TooltipRoot, TooltipTrigger, TooltipContent, TooltipPortal } from 'radix-vue';
|
||||
import { cn } from '../../lib/utils';
|
||||
import { useMailStore } from '../../stores/mail';
|
||||
import { mailApi } from '../../api/mail';
|
||||
const __VLS_props = defineProps({
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
});
|
||||
const store = useMailStore();
|
||||
const iconMap = {
|
||||
Inbox, Drafts: FileText, Sent: Send,
|
||||
Trash: Trash2, Spam: AlertCircle, Junk: AlertCircle,
|
||||
Archive,
|
||||
};
|
||||
const PALETTE = [
|
||||
'#ef4444', '#f97316', '#eab308', '#22c55e',
|
||||
'#3b82f6', '#8b5cf6', '#ec4899', '#14b8a6',
|
||||
];
|
||||
const getIcon = (name, active = false) => iconMap[name] || (active ? FolderOpen : Folder);
|
||||
const systemFolders = computed(() => store.folders.filter((f) => f.system_folder));
|
||||
const customFolders = computed(() => store.folders.filter((f) => !f.system_folder));
|
||||
const selectFolder = (name) => {
|
||||
store.currentFolder = name;
|
||||
store.currentMessage = null;
|
||||
store.viewMode = 'split';
|
||||
};
|
||||
// ── New folder creation ──────────────────────────────────────────────
|
||||
const showNewFolder = ref(false);
|
||||
const newFolderName = ref('');
|
||||
const newFolderColor = ref('');
|
||||
const creatingFolder = ref(false);
|
||||
const startNewFolder = () => {
|
||||
newFolderName.value = '';
|
||||
newFolderColor.value = '';
|
||||
showNewFolder.value = true;
|
||||
};
|
||||
const cancelNewFolder = () => {
|
||||
showNewFolder.value = false;
|
||||
};
|
||||
const confirmNewFolder = async () => {
|
||||
const name = newFolderName.value.trim();
|
||||
if (!name || !store.currentMailbox)
|
||||
return;
|
||||
creatingFolder.value = true;
|
||||
try {
|
||||
await mailApi.createFolder(store.currentMailbox, name, newFolderColor.value || undefined);
|
||||
const res = await mailApi.getFolders(store.currentMailbox);
|
||||
store.folders = res.data;
|
||||
showNewFolder.value = false;
|
||||
}
|
||||
catch {
|
||||
store.showToast('Failed to create folder');
|
||||
}
|
||||
finally {
|
||||
creatingFolder.value = false;
|
||||
}
|
||||
};
|
||||
// ── Folder delete ────────────────────────────────────────────────────
|
||||
const deleteFolder = async (f) => {
|
||||
if (!store.currentMailbox)
|
||||
return;
|
||||
if (!confirm(`Delete folder "${f.name}"? All messages inside will be deleted.`))
|
||||
return;
|
||||
try {
|
||||
await mailApi.deleteFolder(store.currentMailbox, f.id);
|
||||
const res = await mailApi.getFolders(store.currentMailbox);
|
||||
store.folders = res.data;
|
||||
if (store.currentFolder === f.name) {
|
||||
store.currentFolder = store.folders[0]?.name || '';
|
||||
}
|
||||
}
|
||||
catch {
|
||||
store.showToast('Failed to delete folder');
|
||||
}
|
||||
};
|
||||
// ── Folder rename / colour edit ──────────────────────────────────────
|
||||
const editingFolder = ref(null);
|
||||
const editName = ref('');
|
||||
const editColor = ref('');
|
||||
const startEdit = (f) => {
|
||||
editingFolder.value = f;
|
||||
editName.value = f.name;
|
||||
editColor.value = f.color || '';
|
||||
};
|
||||
const cancelEdit = () => {
|
||||
editingFolder.value = null;
|
||||
};
|
||||
const confirmEdit = async () => {
|
||||
if (!editingFolder.value || !store.currentMailbox)
|
||||
return;
|
||||
const name = editName.value.trim();
|
||||
if (!name)
|
||||
return;
|
||||
try {
|
||||
await mailApi.renameFolder(store.currentMailbox, editingFolder.value.id, name, editColor.value || undefined);
|
||||
const res = await mailApi.getFolders(store.currentMailbox);
|
||||
store.folders = res.data;
|
||||
if (store.currentFolder === editingFolder.value.name && name !== editingFolder.value.name) {
|
||||
store.currentFolder = name;
|
||||
}
|
||||
editingFolder.value = null;
|
||||
}
|
||||
catch {
|
||||
store.showToast('Failed to rename folder');
|
||||
}
|
||||
};
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
'data-collapsed': (__VLS_ctx.isCollapsed),
|
||||
...{ class: "group flex flex-1 flex-col justify-between py-2 overflow-y-auto" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.nav, __VLS_intrinsicElements.nav)({
|
||||
...{ class: "grid gap-1 px-2 group-[[data-collapsed=true]]:justify-center group-[[data-collapsed=true]]:px-2" },
|
||||
});
|
||||
if (!__VLS_ctx.isCollapsed && __VLS_ctx.systemFolders.length) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "px-3 pt-2 pb-1 text-[10px] font-semibold uppercase tracking-widest text-muted-foreground/60 select-none" },
|
||||
});
|
||||
}
|
||||
for (const [f] of __VLS_getVForSourceType(((__VLS_ctx.isCollapsed ? __VLS_ctx.store.folders : __VLS_ctx.systemFolders)))) {
|
||||
(f.name + '-sys');
|
||||
if (__VLS_ctx.isCollapsed) {
|
||||
const __VLS_0 = {}.TooltipRoot;
|
||||
/** @type {[typeof __VLS_components.TooltipRoot, typeof __VLS_components.TooltipRoot, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
delayDuration: (0),
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
delayDuration: (0),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
__VLS_3.slots.default;
|
||||
const __VLS_4 = {}.TooltipTrigger;
|
||||
/** @type {[typeof __VLS_components.TooltipTrigger, typeof __VLS_components.TooltipTrigger, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
asChild: true,
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
asChild: true,
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
__VLS_7.slots.default;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
__VLS_ctx.selectFolder(f.name);
|
||||
} },
|
||||
...{ class: (__VLS_ctx.cn('inline-flex h-9 w-9 items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground', __VLS_ctx.store.currentFolder === f.name
|
||||
? 'df-folder-active'
|
||||
: 'text-muted-foreground')) },
|
||||
});
|
||||
const __VLS_8 = ((__VLS_ctx.getIcon(f.name, __VLS_ctx.store.currentFolder === f.name)));
|
||||
// @ts-ignore
|
||||
const __VLS_9 = __VLS_asFunctionalComponent(__VLS_8, new __VLS_8({
|
||||
...{ class: "size-4" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}));
|
||||
const __VLS_10 = __VLS_9({
|
||||
...{ class: "size-4" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_9));
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "sr-only" },
|
||||
});
|
||||
(f.name);
|
||||
var __VLS_7;
|
||||
const __VLS_12 = {}.TooltipPortal;
|
||||
/** @type {[typeof __VLS_components.TooltipPortal, typeof __VLS_components.TooltipPortal, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_13 = __VLS_asFunctionalComponent(__VLS_12, new __VLS_12({}));
|
||||
const __VLS_14 = __VLS_13({}, ...__VLS_functionalComponentArgsRest(__VLS_13));
|
||||
__VLS_15.slots.default;
|
||||
const __VLS_16 = {}.TooltipContent;
|
||||
/** @type {[typeof __VLS_components.TooltipContent, typeof __VLS_components.TooltipContent, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_17 = __VLS_asFunctionalComponent(__VLS_16, new __VLS_16({
|
||||
side: "right",
|
||||
...{ class: "z-50 rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md flex items-center gap-4" },
|
||||
}));
|
||||
const __VLS_18 = __VLS_17({
|
||||
side: "right",
|
||||
...{ class: "z-50 rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md flex items-center gap-4" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_17));
|
||||
__VLS_19.slots.default;
|
||||
(f.name);
|
||||
if (f.total_count > 0) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "ml-auto text-muted-foreground flex gap-1" },
|
||||
});
|
||||
if (f.unread_count) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "font-bold" },
|
||||
});
|
||||
(f.unread_count);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({});
|
||||
(f.total_count);
|
||||
}
|
||||
var __VLS_19;
|
||||
var __VLS_15;
|
||||
var __VLS_3;
|
||||
}
|
||||
else if (__VLS_ctx.editingFolder?.id === f.id) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-md border bg-muted p-2 flex flex-col gap-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onKeyup: (__VLS_ctx.confirmEdit) },
|
||||
...{ onKeyup: (__VLS_ctx.cancelEdit) },
|
||||
...{ class: "w-full rounded border bg-background px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-ring" },
|
||||
autofocus: true,
|
||||
});
|
||||
(__VLS_ctx.editName);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 flex-wrap" },
|
||||
});
|
||||
for (const [c] of __VLS_getVForSourceType((__VLS_ctx.PALETTE))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
if (!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.editColor = __VLS_ctx.editColor === c ? '' : c;
|
||||
} },
|
||||
key: (c),
|
||||
...{ class: "h-5 w-5 rounded-full border-2 transition-transform hover:scale-110" },
|
||||
...{ style: (`background:${c}; border-color:${__VLS_ctx.editColor === c ? '#000' : 'transparent'}`) },
|
||||
});
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
if (!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.editColor = '';
|
||||
} },
|
||||
...{ class: "h-5 w-5 rounded-full border-2 text-xs flex items-center justify-center text-muted-foreground hover:bg-accent" },
|
||||
...{ style: (`border-color:${!__VLS_ctx.editColor ? '#888' : 'transparent'}`) },
|
||||
title: "No colour",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 justify-end" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.cancelEdit) },
|
||||
...{ class: "text-xs px-2 py-1 rounded hover:bg-accent text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.confirmEdit) },
|
||||
...{ class: "text-xs px-2 py-1 rounded bg-primary text-primary-foreground hover:bg-primary/90" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.cn('group/row relative flex items-center rounded-lg text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground', __VLS_ctx.store.currentFolder === f.name
|
||||
? 'df-folder-active'
|
||||
: 'transparent')) },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.selectFolder(f.name);
|
||||
} },
|
||||
...{ class: "flex flex-1 items-center gap-3 px-3 py-2 text-left min-w-0" },
|
||||
});
|
||||
const __VLS_20 = ((__VLS_ctx.getIcon(f.name, __VLS_ctx.store.currentFolder === f.name)));
|
||||
// @ts-ignore
|
||||
const __VLS_21 = __VLS_asFunctionalComponent(__VLS_20, new __VLS_20({
|
||||
...{ class: "size-4 flex-shrink-0" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}));
|
||||
const __VLS_22 = __VLS_21({
|
||||
...{ class: "size-4 flex-shrink-0" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_21));
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "truncate" },
|
||||
});
|
||||
(f.name);
|
||||
if (f.total_count > 0) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: (__VLS_ctx.cn('ml-auto text-xs flex-shrink-0 flex gap-1', __VLS_ctx.store.currentFolder === f.name ? 'opacity-90' : 'text-muted-foreground')) },
|
||||
});
|
||||
if (f.unread_count) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "rounded-full px-1.5 py-0.5 text-[10.5px] font-bold leading-none flex items-center" },
|
||||
...{ style: {} },
|
||||
});
|
||||
(f.unread_count);
|
||||
}
|
||||
if (!f.unread_count) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({});
|
||||
(f.total_count);
|
||||
}
|
||||
}
|
||||
if (!f.system_folder) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.cn('absolute right-1 flex gap-0.5 opacity-0 group-hover/row:opacity-100 [@media(hover:none)]:opacity-100 transition-opacity rounded px-0.5', __VLS_ctx.store.currentFolder === f.name ? 'bg-primary' : 'bg-accent')) },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
if (!(!f.system_folder))
|
||||
return;
|
||||
__VLS_ctx.startEdit(f);
|
||||
} },
|
||||
...{ class: "p-1 rounded hover:bg-accent/80" },
|
||||
title: "Rename / recolour",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.svg, __VLS_intrinsicElements.svg)({
|
||||
...{ class: "size-3" },
|
||||
viewBox: "0 0 24 24",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
'stroke-width': "2",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.path)({
|
||||
d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.path)({
|
||||
d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
if (!(!f.system_folder))
|
||||
return;
|
||||
__VLS_ctx.deleteFolder(f);
|
||||
} },
|
||||
...{ class: "p-1 rounded hover:text-destructive" },
|
||||
title: "Delete folder",
|
||||
});
|
||||
const __VLS_24 = {}.Trash2;
|
||||
/** @type {[typeof __VLS_components.Trash2, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_25 = __VLS_asFunctionalComponent(__VLS_24, new __VLS_24({
|
||||
...{ class: "size-3" },
|
||||
}));
|
||||
const __VLS_26 = __VLS_25({
|
||||
...{ class: "size-3" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_25));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length) {
|
||||
for (const [f] of __VLS_getVForSourceType((__VLS_ctx.customFolders))) {
|
||||
(f.name + '-custom');
|
||||
if (__VLS_ctx.editingFolder?.id === f.id) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-md border bg-muted p-2 flex flex-col gap-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onKeyup: (__VLS_ctx.confirmEdit) },
|
||||
...{ onKeyup: (__VLS_ctx.cancelEdit) },
|
||||
...{ class: "w-full rounded border bg-background px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-ring" },
|
||||
autofocus: true,
|
||||
});
|
||||
(__VLS_ctx.editName);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 flex-wrap" },
|
||||
});
|
||||
for (const [c] of __VLS_getVForSourceType((__VLS_ctx.PALETTE))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length))
|
||||
return;
|
||||
if (!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.editColor = __VLS_ctx.editColor === c ? '' : c;
|
||||
} },
|
||||
key: (c),
|
||||
...{ class: "h-5 w-5 rounded-full border-2 transition-transform hover:scale-110" },
|
||||
...{ style: (`background:${c}; border-color:${__VLS_ctx.editColor === c ? '#000' : 'transparent'}`) },
|
||||
});
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length))
|
||||
return;
|
||||
if (!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.editColor = '';
|
||||
} },
|
||||
...{ class: "h-5 w-5 rounded-full border-2 text-xs flex items-center justify-center text-muted-foreground hover:bg-accent" },
|
||||
...{ style: (`border-color:${!__VLS_ctx.editColor ? '#888' : 'transparent'}`) },
|
||||
title: "No colour",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 justify-end" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.cancelEdit) },
|
||||
...{ class: "text-xs px-2 py-1 rounded hover:bg-accent text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.confirmEdit) },
|
||||
...{ class: "text-xs px-2 py-1 rounded bg-primary text-primary-foreground hover:bg-primary/90" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.cn('group/row relative flex items-center rounded-lg text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground', __VLS_ctx.store.currentFolder === f.name ? 'df-folder-active' : 'transparent')) },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.selectFolder(f.name);
|
||||
} },
|
||||
...{ class: "flex flex-1 items-center gap-3 px-3 py-2 text-left min-w-0" },
|
||||
});
|
||||
const __VLS_28 = ((__VLS_ctx.getIcon(f.name, __VLS_ctx.store.currentFolder === f.name)));
|
||||
// @ts-ignore
|
||||
const __VLS_29 = __VLS_asFunctionalComponent(__VLS_28, new __VLS_28({
|
||||
...{ class: "size-4 flex-shrink-0" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}));
|
||||
const __VLS_30 = __VLS_29({
|
||||
...{ class: "size-4 flex-shrink-0" },
|
||||
...{ style: (f.color && __VLS_ctx.store.currentFolder !== f.name ? `color:${f.color}` : '') },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_29));
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "truncate" },
|
||||
});
|
||||
(f.name);
|
||||
if (f.total_count > 0) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: (__VLS_ctx.cn('ml-auto text-xs flex-shrink-0 flex gap-1', __VLS_ctx.store.currentFolder === f.name ? 'opacity-90' : 'text-muted-foreground')) },
|
||||
});
|
||||
if (f.unread_count) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "rounded-full px-1.5 py-0.5 text-[10.5px] font-bold leading-none flex items-center" },
|
||||
...{ style: {} },
|
||||
});
|
||||
(f.unread_count);
|
||||
}
|
||||
if (!f.unread_count) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({});
|
||||
(f.total_count);
|
||||
}
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.cn('absolute right-1 flex gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity rounded px-0.5', __VLS_ctx.store.currentFolder === f.name ? 'bg-primary' : 'bg-accent')) },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.startEdit(f);
|
||||
} },
|
||||
...{ class: "p-1 rounded hover:bg-accent/80" },
|
||||
title: "Rename / recolour",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.svg, __VLS_intrinsicElements.svg)({
|
||||
...{ class: "size-3" },
|
||||
viewBox: "0 0 24 24",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
'stroke-width': "2",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.path)({
|
||||
d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.path)({
|
||||
d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!__VLS_ctx.isCollapsed && __VLS_ctx.customFolders.length))
|
||||
return;
|
||||
if (!!(__VLS_ctx.editingFolder?.id === f.id))
|
||||
return;
|
||||
__VLS_ctx.deleteFolder(f);
|
||||
} },
|
||||
...{ class: "p-1 rounded hover:text-destructive" },
|
||||
title: "Delete folder",
|
||||
});
|
||||
const __VLS_32 = {}.Trash2;
|
||||
/** @type {[typeof __VLS_components.Trash2, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_33 = __VLS_asFunctionalComponent(__VLS_32, new __VLS_32({
|
||||
...{ class: "size-3" },
|
||||
}));
|
||||
const __VLS_34 = __VLS_33({
|
||||
...{ class: "size-3" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_33));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (__VLS_ctx.showNewFolder && !__VLS_ctx.isCollapsed) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-md border bg-muted p-2 flex flex-col gap-2 mt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onKeyup: (__VLS_ctx.confirmNewFolder) },
|
||||
...{ onKeyup: (__VLS_ctx.cancelNewFolder) },
|
||||
placeholder: "Folder name",
|
||||
...{ class: "w-full rounded border bg-background px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-ring" },
|
||||
autofocus: true,
|
||||
});
|
||||
(__VLS_ctx.newFolderName);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 flex-wrap" },
|
||||
});
|
||||
for (const [c] of __VLS_getVForSourceType((__VLS_ctx.PALETTE))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.showNewFolder && !__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
__VLS_ctx.newFolderColor = __VLS_ctx.newFolderColor === c ? '' : c;
|
||||
} },
|
||||
key: (c),
|
||||
...{ class: "h-5 w-5 rounded-full border-2 transition-transform hover:scale-110" },
|
||||
...{ style: (`background:${c}; border-color:${__VLS_ctx.newFolderColor === c ? '#000' : 'transparent'}`) },
|
||||
});
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.showNewFolder && !__VLS_ctx.isCollapsed))
|
||||
return;
|
||||
__VLS_ctx.newFolderColor = '';
|
||||
} },
|
||||
...{ class: "h-5 w-5 rounded-full border-2 text-xs flex items-center justify-center text-muted-foreground hover:bg-accent" },
|
||||
...{ style: (`border-color:${!__VLS_ctx.newFolderColor ? '#888' : 'transparent'}`) },
|
||||
title: "No colour",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1 justify-end" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.cancelNewFolder) },
|
||||
...{ class: "text-xs px-2 py-1 rounded hover:bg-accent text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.confirmNewFolder) },
|
||||
...{ class: "text-xs px-2 py-1 rounded bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50" },
|
||||
disabled: (__VLS_ctx.creatingFolder || !__VLS_ctx.newFolderName.trim()),
|
||||
});
|
||||
(__VLS_ctx.creatingFolder ? '…' : 'Create');
|
||||
}
|
||||
if (!__VLS_ctx.isCollapsed) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.startNewFolder) },
|
||||
...{ class: "flex items-center gap-2 rounded-md px-3 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors mt-1" },
|
||||
});
|
||||
const __VLS_36 = {}.FolderPlus;
|
||||
/** @type {[typeof __VLS_components.FolderPlus, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_37 = __VLS_asFunctionalComponent(__VLS_36, new __VLS_36({
|
||||
...{ class: "size-3" },
|
||||
}));
|
||||
const __VLS_38 = __VLS_37({
|
||||
...{ class: "size-3" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_37));
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['group']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-y-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['group-[[data-collapsed=true]]:justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['group-[[data-collapsed=true]]:px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pt-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground/60']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['select-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['sr-only']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-popover']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-popover-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ml-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-wrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:scale-110']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-end']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-left']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10.5px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['leading-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent/80']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-wrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:scale-110']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-end']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-left']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10.5px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['leading-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent/80']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-wrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:scale-110']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-end']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-accent-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
Trash2: Trash2,
|
||||
FolderPlus: FolderPlus,
|
||||
TooltipRoot: TooltipRoot,
|
||||
TooltipTrigger: TooltipTrigger,
|
||||
TooltipContent: TooltipContent,
|
||||
TooltipPortal: TooltipPortal,
|
||||
cn: cn,
|
||||
store: store,
|
||||
PALETTE: PALETTE,
|
||||
getIcon: getIcon,
|
||||
systemFolders: systemFolders,
|
||||
customFolders: customFolders,
|
||||
selectFolder: selectFolder,
|
||||
showNewFolder: showNewFolder,
|
||||
newFolderName: newFolderName,
|
||||
newFolderColor: newFolderColor,
|
||||
creatingFolder: creatingFolder,
|
||||
startNewFolder: startNewFolder,
|
||||
cancelNewFolder: cancelNewFolder,
|
||||
confirmNewFolder: confirmNewFolder,
|
||||
deleteFolder: deleteFolder,
|
||||
editingFolder: editingFolder,
|
||||
editName: editName,
|
||||
editColor: editColor,
|
||||
startEdit: startEdit,
|
||||
cancelEdit: cancelEdit,
|
||||
confirmEdit: confirmEdit,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=FolderNav.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -1,247 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed } from 'vue';
|
||||
import { Mail, Check } from 'lucide-vue-next';
|
||||
import { SelectRoot, SelectTrigger, SelectValue, SelectContent, SelectItem, SelectItemText, SelectItemIndicator, SelectPortal, SelectViewport, } from 'radix-vue';
|
||||
import { cn } from '../../lib/utils';
|
||||
import { useMailStore } from '../../stores/mail';
|
||||
const __VLS_props = defineProps({
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
});
|
||||
const store = useMailStore();
|
||||
const selected = computed({
|
||||
get: () => store.currentMailbox,
|
||||
set: (val) => { store.currentMailbox = val; },
|
||||
});
|
||||
const currentDisplay = computed(() => {
|
||||
const mb = store.mailboxes.find((m) => m.address === store.currentMailbox);
|
||||
return mb?.display_name || store.currentMailbox;
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex min-w-0" },
|
||||
});
|
||||
const __VLS_0 = {}.SelectRoot;
|
||||
/** @type {[typeof __VLS_components.SelectRoot, typeof __VLS_components.SelectRoot, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
modelValue: (__VLS_ctx.selected),
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
modelValue: (__VLS_ctx.selected),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
__VLS_3.slots.default;
|
||||
const __VLS_4 = {}.SelectTrigger;
|
||||
/** @type {[typeof __VLS_components.SelectTrigger, typeof __VLS_components.SelectTrigger, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
...{ class: (__VLS_ctx.cn('flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-2 [&>span]:truncate', __VLS_ctx.isCollapsed ? 'h-9 w-9 shrink-0 justify-center p-0 [&>span]:w-auto' : 'w-full')) },
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
...{ class: (__VLS_ctx.cn('flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-2 [&>span]:truncate', __VLS_ctx.isCollapsed ? 'h-9 w-9 shrink-0 justify-center p-0 [&>span]:w-auto' : 'w-full')) },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
__VLS_7.slots.default;
|
||||
const __VLS_8 = {}.SelectValue;
|
||||
/** @type {[typeof __VLS_components.SelectValue, typeof __VLS_components.SelectValue, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_9 = __VLS_asFunctionalComponent(__VLS_8, new __VLS_8({
|
||||
placeholder: (__VLS_ctx.isCollapsed ? '' : 'Select account'),
|
||||
}));
|
||||
const __VLS_10 = __VLS_9({
|
||||
placeholder: (__VLS_ctx.isCollapsed ? '' : 'Select account'),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_9));
|
||||
__VLS_11.slots.default;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2" },
|
||||
});
|
||||
const __VLS_12 = {}.Mail;
|
||||
/** @type {[typeof __VLS_components.Mail, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_13 = __VLS_asFunctionalComponent(__VLS_12, new __VLS_12({
|
||||
...{ class: "size-4 shrink-0" },
|
||||
}));
|
||||
const __VLS_14 = __VLS_13({
|
||||
...{ class: "size-4 shrink-0" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_13));
|
||||
if (!__VLS_ctx.isCollapsed) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "truncate" },
|
||||
});
|
||||
(__VLS_ctx.currentDisplay);
|
||||
}
|
||||
var __VLS_11;
|
||||
var __VLS_7;
|
||||
const __VLS_16 = {}.SelectPortal;
|
||||
/** @type {[typeof __VLS_components.SelectPortal, typeof __VLS_components.SelectPortal, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_17 = __VLS_asFunctionalComponent(__VLS_16, new __VLS_16({}));
|
||||
const __VLS_18 = __VLS_17({}, ...__VLS_functionalComponentArgsRest(__VLS_17));
|
||||
__VLS_19.slots.default;
|
||||
const __VLS_20 = {}.SelectContent;
|
||||
/** @type {[typeof __VLS_components.SelectContent, typeof __VLS_components.SelectContent, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_21 = __VLS_asFunctionalComponent(__VLS_20, new __VLS_20({
|
||||
...{ class: "z-50 min-w-[220px] rounded-md border bg-popover p-1 text-popover-foreground shadow-md" },
|
||||
position: "popper",
|
||||
sideOffset: (4),
|
||||
}));
|
||||
const __VLS_22 = __VLS_21({
|
||||
...{ class: "z-50 min-w-[220px] rounded-md border bg-popover p-1 text-popover-foreground shadow-md" },
|
||||
position: "popper",
|
||||
sideOffset: (4),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_21));
|
||||
__VLS_23.slots.default;
|
||||
const __VLS_24 = {}.SelectViewport;
|
||||
/** @type {[typeof __VLS_components.SelectViewport, typeof __VLS_components.SelectViewport, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_25 = __VLS_asFunctionalComponent(__VLS_24, new __VLS_24({}));
|
||||
const __VLS_26 = __VLS_25({}, ...__VLS_functionalComponentArgsRest(__VLS_25));
|
||||
__VLS_27.slots.default;
|
||||
for (const [mb] of __VLS_getVForSourceType((__VLS_ctx.store.mailboxes))) {
|
||||
const __VLS_28 = {}.SelectItem;
|
||||
/** @type {[typeof __VLS_components.SelectItem, typeof __VLS_components.SelectItem, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_29 = __VLS_asFunctionalComponent(__VLS_28, new __VLS_28({
|
||||
key: (mb.address),
|
||||
value: (mb.address),
|
||||
...{ class: "relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent focus:bg-accent" },
|
||||
}));
|
||||
const __VLS_30 = __VLS_29({
|
||||
key: (mb.address),
|
||||
value: (mb.address),
|
||||
...{ class: "relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent focus:bg-accent" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_29));
|
||||
__VLS_31.slots.default;
|
||||
const __VLS_32 = {}.SelectItemIndicator;
|
||||
/** @type {[typeof __VLS_components.SelectItemIndicator, typeof __VLS_components.SelectItemIndicator, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_33 = __VLS_asFunctionalComponent(__VLS_32, new __VLS_32({
|
||||
...{ class: "absolute left-2" },
|
||||
}));
|
||||
const __VLS_34 = __VLS_33({
|
||||
...{ class: "absolute left-2" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_33));
|
||||
__VLS_35.slots.default;
|
||||
const __VLS_36 = {}.Check;
|
||||
/** @type {[typeof __VLS_components.Check, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_37 = __VLS_asFunctionalComponent(__VLS_36, new __VLS_36({
|
||||
...{ class: "size-4" },
|
||||
}));
|
||||
const __VLS_38 = __VLS_37({
|
||||
...{ class: "size-4" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_37));
|
||||
var __VLS_35;
|
||||
const __VLS_40 = {}.SelectItemText;
|
||||
/** @type {[typeof __VLS_components.SelectItemText, typeof __VLS_components.SelectItemText, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_41 = __VLS_asFunctionalComponent(__VLS_40, new __VLS_40({
|
||||
...{ class: "pl-6" },
|
||||
}));
|
||||
const __VLS_42 = __VLS_41({
|
||||
...{ class: "pl-6" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_41));
|
||||
__VLS_43.slots.default;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2" },
|
||||
});
|
||||
const __VLS_44 = {}.Mail;
|
||||
/** @type {[typeof __VLS_components.Mail, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_45 = __VLS_asFunctionalComponent(__VLS_44, new __VLS_44({
|
||||
...{ class: "size-4 shrink-0 text-muted-foreground" },
|
||||
}));
|
||||
const __VLS_46 = __VLS_45({
|
||||
...{ class: "size-4 shrink-0 text-muted-foreground" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_45));
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
(mb.display_name || mb.address);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(mb.address);
|
||||
var __VLS_43;
|
||||
var __VLS_31;
|
||||
}
|
||||
var __VLS_27;
|
||||
var __VLS_23;
|
||||
var __VLS_19;
|
||||
var __VLS_3;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-[220px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-popover']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-popover-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['select-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['absolute']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['left-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pl-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
Mail: Mail,
|
||||
Check: Check,
|
||||
SelectRoot: SelectRoot,
|
||||
SelectTrigger: SelectTrigger,
|
||||
SelectValue: SelectValue,
|
||||
SelectContent: SelectContent,
|
||||
SelectItem: SelectItem,
|
||||
SelectItemText: SelectItemText,
|
||||
SelectItemIndicator: SelectItemIndicator,
|
||||
SelectPortal: SelectPortal,
|
||||
SelectViewport: SelectViewport,
|
||||
cn: cn,
|
||||
store: store,
|
||||
selected: selected,
|
||||
currentDisplay: currentDisplay,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
isCollapsed: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=MailboxSelector.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -1,293 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed } from 'vue';
|
||||
import { formatDistanceToNow } from 'date-fns';
|
||||
import { Paperclip, Star, Check } from 'lucide-vue-next';
|
||||
import { TooltipRoot, TooltipTrigger, TooltipContent, TooltipPortal } from 'radix-vue';
|
||||
import { cn } from '../../lib/utils';
|
||||
import Badge from '../ui/Badge.vue';
|
||||
import { useMailStore } from '../../stores/mail';
|
||||
const props = defineProps({
|
||||
message: { type: Object, required: true },
|
||||
selected: { type: Boolean, default: false },
|
||||
folderColor: { type: String, default: '' },
|
||||
bulkSelectMode: { type: Boolean, default: false },
|
||||
isChecked: { type: Boolean, default: false },
|
||||
});
|
||||
const initials = computed(() => {
|
||||
const name = props.message.from_name || props.message.from_address || '?';
|
||||
return name.split(' ').map((w) => w[0]).slice(0, 2).join('').toUpperCase();
|
||||
});
|
||||
const store = useMailStore();
|
||||
const timestamp = computed(() => props.message.received_at || props.message.sent_at);
|
||||
const relativeTime = computed(() => timestamp.value ? formatDistanceToNow(new Date(timestamp.value), { addSuffix: true }) : '');
|
||||
const exactTime = computed(() => store.formatDate(timestamp.value));
|
||||
const isSentOrDrafts = computed(() => {
|
||||
const name = store.currentFolderObj?.name?.toLowerCase() ?? '';
|
||||
return name === 'sent' || name === 'drafts';
|
||||
});
|
||||
const recipientLabel = computed(() => {
|
||||
if (!isSentOrDrafts.value)
|
||||
return null;
|
||||
let addrs = [];
|
||||
try {
|
||||
addrs = JSON.parse(props.message.to_addresses || '[]');
|
||||
}
|
||||
catch {
|
||||
addrs = [];
|
||||
}
|
||||
if (!addrs.length)
|
||||
return null;
|
||||
return 'To: ' + addrs.map((a) => {
|
||||
const m = a.match(/<([^>]+)>/);
|
||||
return m ? m[1] : a;
|
||||
}).join(', ');
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
/** @type {__VLS_StyleScopedClasses['df-msg-item']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['df-msg-item']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['df-msg-selected']} */ ;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ class: (__VLS_ctx.cn('df-msg-item flex items-start gap-3 rounded-xl p-3 text-left text-sm w-full', __VLS_ctx.selected && 'df-msg-selected')) },
|
||||
...{ style: (__VLS_ctx.folderColor ? `border-left: 3px solid ${__VLS_ctx.folderColor}; border-radius: 12px 0 0 12px;` : '') },
|
||||
});
|
||||
if (__VLS_ctx.bulkSelectMode) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex-shrink-0 h-5 w-5 rounded border-2 flex items-center justify-center mt-2 transition-all" },
|
||||
...{ class: (__VLS_ctx.isChecked ? 'bg-df-accent border-df-accent' : 'border-muted-foreground/50') },
|
||||
});
|
||||
if (__VLS_ctx.isChecked) {
|
||||
const __VLS_0 = {}.Check;
|
||||
/** @type {[typeof __VLS_components.Check, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
...{ class: "size-3 text-white" },
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
...{ class: "size-3 text-white" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
}
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex-shrink-0 h-9 w-9 rounded-full flex items-center justify-center text-[13px] font-semibold text-white select-none mt-0.5" },
|
||||
...{ style: {} },
|
||||
});
|
||||
(__VLS_ctx.initials);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-col gap-1 min-w-0 flex-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "font-semibold truncate flex-1" },
|
||||
});
|
||||
(__VLS_ctx.recipientLabel ?? (__VLS_ctx.message.from_name || __VLS_ctx.message.from_address));
|
||||
if (!__VLS_ctx.message.is_read) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span)({
|
||||
...{ class: "flex-shrink-0 h-2 w-2 rounded-full bg-df-accent" },
|
||||
});
|
||||
}
|
||||
if (__VLS_ctx.message.is_starred) {
|
||||
const __VLS_4 = {}.Star;
|
||||
/** @type {[typeof __VLS_components.Star, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
...{ class: "flex-shrink-0 size-3 fill-yellow-400 text-yellow-400" },
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
...{ class: "flex-shrink-0 size-3 fill-yellow-400 text-yellow-400" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
}
|
||||
if (__VLS_ctx.timestamp) {
|
||||
const __VLS_8 = {}.TooltipRoot;
|
||||
/** @type {[typeof __VLS_components.TooltipRoot, typeof __VLS_components.TooltipRoot, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_9 = __VLS_asFunctionalComponent(__VLS_8, new __VLS_8({
|
||||
delayDuration: (300),
|
||||
}));
|
||||
const __VLS_10 = __VLS_9({
|
||||
delayDuration: (300),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_9));
|
||||
__VLS_11.slots.default;
|
||||
const __VLS_12 = {}.TooltipTrigger;
|
||||
/** @type {[typeof __VLS_components.TooltipTrigger, typeof __VLS_components.TooltipTrigger, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_13 = __VLS_asFunctionalComponent(__VLS_12, new __VLS_12({
|
||||
asChild: true,
|
||||
}));
|
||||
const __VLS_14 = __VLS_13({
|
||||
asChild: true,
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_13));
|
||||
__VLS_15.slots.default;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.cn('flex-shrink-0 text-xs cursor-default', __VLS_ctx.selected ? 'text-foreground' : 'text-muted-foreground')) },
|
||||
});
|
||||
(__VLS_ctx.relativeTime);
|
||||
var __VLS_15;
|
||||
const __VLS_16 = {}.TooltipPortal;
|
||||
/** @type {[typeof __VLS_components.TooltipPortal, typeof __VLS_components.TooltipPortal, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_17 = __VLS_asFunctionalComponent(__VLS_16, new __VLS_16({}));
|
||||
const __VLS_18 = __VLS_17({}, ...__VLS_functionalComponentArgsRest(__VLS_17));
|
||||
__VLS_19.slots.default;
|
||||
const __VLS_20 = {}.TooltipContent;
|
||||
/** @type {[typeof __VLS_components.TooltipContent, typeof __VLS_components.TooltipContent, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_21 = __VLS_asFunctionalComponent(__VLS_20, new __VLS_20({
|
||||
...{ class: "z-50 rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md" },
|
||||
}));
|
||||
const __VLS_22 = __VLS_21({
|
||||
...{ class: "z-50 rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_21));
|
||||
__VLS_23.slots.default;
|
||||
(__VLS_ctx.exactTime);
|
||||
var __VLS_23;
|
||||
var __VLS_19;
|
||||
var __VLS_11;
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-xs font-medium truncate" },
|
||||
});
|
||||
(__VLS_ctx.message.subject);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "line-clamp-1 text-xs text-muted-foreground" },
|
||||
});
|
||||
(__VLS_ctx.message.text_body?.substring(0, 200) || 'No content');
|
||||
if (__VLS_ctx.message.has_attachments) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-1" },
|
||||
});
|
||||
/** @type {[typeof Badge, typeof Badge, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_24 = __VLS_asFunctionalComponent(Badge, new Badge({
|
||||
variant: "secondary",
|
||||
...{ class: "gap-1" },
|
||||
}));
|
||||
const __VLS_25 = __VLS_24({
|
||||
variant: "secondary",
|
||||
...{ class: "gap-1" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_24));
|
||||
__VLS_26.slots.default;
|
||||
const __VLS_27 = {}.Paperclip;
|
||||
/** @type {[typeof __VLS_components.Paperclip, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_28 = __VLS_asFunctionalComponent(__VLS_27, new __VLS_27({
|
||||
...{ class: "size-3" },
|
||||
}));
|
||||
const __VLS_29 = __VLS_28({
|
||||
...{ class: "size-3" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_28));
|
||||
var __VLS_26;
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-all']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-9']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-9']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[13px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['select-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-df-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['fill-yellow-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-yellow-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-popover']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-popover-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['line-clamp-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-3']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
Paperclip: Paperclip,
|
||||
Star: Star,
|
||||
Check: Check,
|
||||
TooltipRoot: TooltipRoot,
|
||||
TooltipTrigger: TooltipTrigger,
|
||||
TooltipContent: TooltipContent,
|
||||
TooltipPortal: TooltipPortal,
|
||||
cn: cn,
|
||||
Badge: Badge,
|
||||
initials: initials,
|
||||
timestamp: timestamp,
|
||||
relativeTime: relativeTime,
|
||||
exactTime: exactTime,
|
||||
recipientLabel: recipientLabel,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
message: { type: Object, required: true },
|
||||
selected: { type: Boolean, default: false },
|
||||
folderColor: { type: String, default: '' },
|
||||
bulkSelectMode: { type: Boolean, default: false },
|
||||
isChecked: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
message: { type: Object, required: true },
|
||||
selected: { type: Boolean, default: false },
|
||||
folderColor: { type: String, default: '' },
|
||||
bulkSelectMode: { type: Boolean, default: false },
|
||||
isChecked: { type: Boolean, default: false },
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=MessageListItem.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,131 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useSearch } from '../../composables/useSearch';
|
||||
import { useMailStore } from '../../stores/mail';
|
||||
const searchVal = ref('');
|
||||
const { search, results, loading } = useSearch();
|
||||
const store = useMailStore();
|
||||
let timeout;
|
||||
watch(searchVal, (val) => {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(() => {
|
||||
if (store.currentMailbox)
|
||||
search(store.currentMailbox, val);
|
||||
}, 300);
|
||||
});
|
||||
const selectResult = (msg) => {
|
||||
store.currentMessage = msg;
|
||||
searchVal.value = '';
|
||||
};
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "relative w-full px-4 py-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "search",
|
||||
placeholder: "Search...",
|
||||
...{ class: "w-full rounded-md border border-input bg-background px-3 py-2 text-base focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
...{ style: {} },
|
||||
});
|
||||
(__VLS_ctx.searchVal);
|
||||
if (__VLS_ctx.searchVal && __VLS_ctx.results.length > 0) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "absolute left-0 right-0 top-full z-10 mt-1 max-h-[300px] overflow-y-auto rounded-md border bg-background p-1 shadow-md" },
|
||||
});
|
||||
for (const [res] of __VLS_getVForSourceType((__VLS_ctx.results))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.searchVal && __VLS_ctx.results.length > 0))
|
||||
return;
|
||||
__VLS_ctx.selectResult(res);
|
||||
} },
|
||||
key: (res.id),
|
||||
...{ class: "cursor-pointer rounded-sm px-2 py-1 text-sm hover:bg-accent" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "font-semibold" },
|
||||
});
|
||||
(res.subject);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(res.from_address);
|
||||
}
|
||||
}
|
||||
else if (__VLS_ctx.searchVal && !__VLS_ctx.loading) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "absolute left-0 right-0 top-full z-10 mt-1 rounded-md border bg-background p-4 text-center text-sm text-muted-foreground shadow-md" },
|
||||
});
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-input']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['absolute']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['left-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['right-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['top-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-10']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-h-[300px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-y-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['absolute']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['left-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['right-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['top-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-10']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-md']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
searchVal: searchVal,
|
||||
results: results,
|
||||
loading: loading,
|
||||
selectResult: selectResult,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SearchBar.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"SearchBar.vue.js","sourceRoot":"","sources":["SearchBar.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { Bell, Palette, AtSign, Mail, Shield, Info, HelpCircle, User } from 'lucide-vue-next';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
const store = useMailStore();
|
||||
const categories = [
|
||||
{ key: 'profile', label: 'Profile', icon: User },
|
||||
{ key: 'notifications', label: 'Notifications', icon: Bell },
|
||||
{ key: 'appearance', label: 'Appearance', icon: Palette },
|
||||
{ key: 'aliases', label: 'Aliases', icon: AtSign },
|
||||
{ key: 'autoresponder', label: 'Auto-Responder', icon: Mail },
|
||||
{ key: 'security', label: 'Security', icon: Shield },
|
||||
{ key: 'about', label: 'About', icon: Info },
|
||||
{ key: 'help', label: 'Help', icon: HelpCircle },
|
||||
];
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.nav, __VLS_intrinsicElements.nav)({
|
||||
...{ class: "flex flex-col gap-0.5 p-3" },
|
||||
});
|
||||
for (const [cat] of __VLS_getVForSourceType((__VLS_ctx.categories))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
__VLS_ctx.store.settingsCategory = cat.key;
|
||||
} },
|
||||
key: (cat.key),
|
||||
...{ class: "flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors text-left" },
|
||||
...{ class: (__VLS_ctx.store.settingsCategory === cat.key
|
||||
? 'bg-df-accent/10 text-df-accent font-medium'
|
||||
: 'text-muted-foreground hover:bg-accent/60 hover:text-foreground') },
|
||||
});
|
||||
const __VLS_0 = ((cat.icon));
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
...{ class: "size-4 shrink-0" },
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
...{ class: "size-4 shrink-0" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
(cat.label);
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-left']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
store: store,
|
||||
categories: categories,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsNav.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"SettingsNav.vue.js","sourceRoot":"","sources":["SettingsNav.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed } from 'vue';
|
||||
import { X } from 'lucide-vue-next';
|
||||
const props = defineProps();
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
import SettingsNotifications from './sections/SettingsNotifications.vue';
|
||||
import SettingsAppearance from './sections/SettingsAppearance.vue';
|
||||
import SettingsAliases from './sections/SettingsAliases.vue';
|
||||
import SettingsAutoResponder from './sections/SettingsAutoResponder.vue';
|
||||
import SettingsSecurity from './sections/SettingsSecurity.vue';
|
||||
import SettingsAbout from './sections/SettingsAbout.vue';
|
||||
import SettingsHelp from './sections/SettingsHelp.vue';
|
||||
import SettingsProfile from './sections/SettingsProfile.vue';
|
||||
const store = useMailStore();
|
||||
const sectionMap = {
|
||||
profile: SettingsProfile,
|
||||
notifications: SettingsNotifications,
|
||||
appearance: SettingsAppearance,
|
||||
aliases: SettingsAliases,
|
||||
autoresponder: SettingsAutoResponder,
|
||||
security: SettingsSecurity,
|
||||
about: SettingsAbout,
|
||||
help: SettingsHelp,
|
||||
};
|
||||
const currentSection = computed(() => sectionMap[store.settingsCategory] ?? SettingsNotifications);
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-col h-full overflow-hidden" },
|
||||
});
|
||||
if (!props.hideHeader) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center justify-between px-6 py-4 border-b border-border flex-shrink-0" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-sm font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(!props.hideHeader))
|
||||
return;
|
||||
__VLS_ctx.store.isSettingsOpen = false;
|
||||
} },
|
||||
...{ class: "inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors" },
|
||||
});
|
||||
const __VLS_0 = {}.X;
|
||||
/** @type {[typeof __VLS_components.X, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
...{ class: "size-4" },
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
...{ class: "size-4" },
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex-1 overflow-y-auto px-6 py-5" },
|
||||
});
|
||||
const __VLS_4 = ((__VLS_ctx.currentSection));
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({}));
|
||||
const __VLS_6 = __VLS_5({}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-b']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-7']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-7']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['size-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-y-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-5']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
X: X,
|
||||
store: store,
|
||||
currentSection: currentSection,
|
||||
};
|
||||
},
|
||||
__typeProps: {},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
__typeProps: {},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsPanel.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"SettingsPanel.vue.js","sourceRoot":"","sources":["SettingsPanel.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref } from 'vue';
|
||||
const deferredPrompt = ref(null);
|
||||
const canInstall = ref(false);
|
||||
const installed = ref(false);
|
||||
window.addEventListener('beforeinstallprompt', (e) => {
|
||||
e.preventDefault();
|
||||
deferredPrompt.value = e;
|
||||
canInstall.value = true;
|
||||
});
|
||||
window.addEventListener('appinstalled', () => {
|
||||
installed.value = true;
|
||||
canInstall.value = false;
|
||||
});
|
||||
async function installApp() {
|
||||
if (!deferredPrompt.value)
|
||||
return;
|
||||
deferredPrompt.value.prompt();
|
||||
const result = await deferredPrompt.value.userChoice;
|
||||
if (result.outcome === 'accepted') {
|
||||
installed.value = true;
|
||||
canInstall.value = false;
|
||||
}
|
||||
deferredPrompt.value = null;
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.img)({
|
||||
src: "/logo.gif",
|
||||
alt: "DockFlare",
|
||||
...{ class: "h-10 w-auto select-none" },
|
||||
draggable: "false",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-col gap-1.5 pt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.a, __VLS_intrinsicElements.a)({
|
||||
href: "https://dockflare.app",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
...{ class: "inline-flex items-center gap-1.5 text-xs text-df-accent hover:underline" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.a, __VLS_intrinsicElements.a)({
|
||||
href: "https://github.com/ChrispyBacon-dev/DockFlare",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
...{ class: "inline-flex items-center gap-1.5 text-xs text-df-accent hover:underline" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
if (__VLS_ctx.installed) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-xs text-green-600 dark:text-green-400" },
|
||||
});
|
||||
}
|
||||
else if (__VLS_ctx.canInstall) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.installApp) },
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "font-medium" },
|
||||
});
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-10']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['select-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-df-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:underline']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-df-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:underline']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
canInstall: canInstall,
|
||||
installed: installed,
|
||||
installApp: installApp,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsAbout.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,604 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
import { mailApi } from '@/api/mail';
|
||||
const mailStore = useMailStore();
|
||||
const alAliases = ref([]);
|
||||
const alLoading = ref(false);
|
||||
const alError = ref('');
|
||||
const alSuccess = ref('');
|
||||
const alNewAddress = ref('');
|
||||
const alNewLabel = ref('');
|
||||
const alNewDescription = ref('');
|
||||
const alNewExpires = ref('');
|
||||
const alNeverExpire = ref(true);
|
||||
const alCreateLoading = ref(false);
|
||||
const alGenerating = ref(false);
|
||||
const confirmTarget = ref(null);
|
||||
const confirmLoading = ref(false);
|
||||
async function loadAliases(address) {
|
||||
alLoading.value = true;
|
||||
alError.value = '';
|
||||
try {
|
||||
const res = await mailApi.getAllAliases(address);
|
||||
alAliases.value = res.data.aliases || [];
|
||||
}
|
||||
catch {
|
||||
alError.value = 'Failed to load aliases.';
|
||||
}
|
||||
finally {
|
||||
alLoading.value = false;
|
||||
}
|
||||
}
|
||||
watch(() => mailStore.currentMailbox, (addr) => { if (addr)
|
||||
loadAliases(addr); }, { immediate: true });
|
||||
async function generateAlias() {
|
||||
if (!mailStore.currentMailbox)
|
||||
return;
|
||||
const domain = mailStore.currentMailbox.split('@')[1];
|
||||
if (!domain)
|
||||
return;
|
||||
alGenerating.value = true;
|
||||
try {
|
||||
const res = await mailApi.generateAlias(mailStore.currentMailbox, domain);
|
||||
alNewAddress.value = res.data.suggestion?.split('@')[0] || '';
|
||||
}
|
||||
catch { /* ignore */ }
|
||||
finally {
|
||||
alGenerating.value = false;
|
||||
}
|
||||
}
|
||||
async function createAlias() {
|
||||
if (!mailStore.currentMailbox || !alNewAddress.value)
|
||||
return;
|
||||
const domain = mailStore.currentMailbox.split('@')[1];
|
||||
alError.value = '';
|
||||
alSuccess.value = '';
|
||||
alCreateLoading.value = true;
|
||||
try {
|
||||
await mailApi.createAlias({
|
||||
address: `${alNewAddress.value}@${domain}`,
|
||||
mailbox_address: mailStore.currentMailbox,
|
||||
label: alNewLabel.value || undefined,
|
||||
description: alNewDescription.value || undefined,
|
||||
expires_at: alNeverExpire.value ? null : (alNewExpires.value || null),
|
||||
});
|
||||
alNewAddress.value = '';
|
||||
alNewLabel.value = '';
|
||||
alNewDescription.value = '';
|
||||
alNewExpires.value = '';
|
||||
alNeverExpire.value = true;
|
||||
alSuccess.value = 'Alias created.';
|
||||
await loadAliases(mailStore.currentMailbox);
|
||||
}
|
||||
catch (e) {
|
||||
alError.value = e?.response?.data?.error || 'Failed to create alias.';
|
||||
}
|
||||
finally {
|
||||
alCreateLoading.value = false;
|
||||
}
|
||||
}
|
||||
async function toggleAlias(alias) {
|
||||
try {
|
||||
await mailApi.updateAlias(alias.address, { is_active: !alias.is_active });
|
||||
alias.is_active = !alias.is_active;
|
||||
}
|
||||
catch { /* ignore */ }
|
||||
}
|
||||
function promptDelete(alias) {
|
||||
confirmTarget.value = alias;
|
||||
}
|
||||
async function confirmDelete() {
|
||||
if (!confirmTarget.value)
|
||||
return;
|
||||
const alias = confirmTarget.value;
|
||||
confirmLoading.value = true;
|
||||
try {
|
||||
await mailApi.deleteAlias(alias.address);
|
||||
alAliases.value = alAliases.value.filter(a => a.address !== alias.address);
|
||||
confirmTarget.value = null;
|
||||
}
|
||||
catch { /* ignore */ }
|
||||
finally {
|
||||
confirmLoading.value = false;
|
||||
}
|
||||
}
|
||||
function fmtDate(iso) {
|
||||
if (!iso)
|
||||
return '—';
|
||||
return new Date(iso).toLocaleDateString();
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
if (!__VLS_ctx.mailStore.currentMailbox) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (__VLS_ctx.alLoading) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (__VLS_ctx.alAliases.length) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border overflow-hidden" },
|
||||
});
|
||||
for (const [alias] of __VLS_getVForSourceType((__VLS_ctx.alAliases))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
key: (alias.address),
|
||||
...{ class: "flex items-center gap-3 px-4 py-3 bg-background text-sm border-b last:border-b-0" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex-1 min-w-0" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "font-mono text-xs truncate" },
|
||||
});
|
||||
(alias.address);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2 mt-0.5 flex-wrap" },
|
||||
});
|
||||
if (alias.label) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "inline-flex items-center rounded-full bg-muted px-2 py-0.5 text-xs text-muted-foreground" },
|
||||
});
|
||||
(alias.label);
|
||||
}
|
||||
if (alias.expires_at) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(__VLS_ctx.fmtDate(alias.expires_at));
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(alias.use_count);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(!__VLS_ctx.mailStore.currentMailbox))
|
||||
return;
|
||||
if (!!(__VLS_ctx.alLoading))
|
||||
return;
|
||||
if (!(__VLS_ctx.alAliases.length))
|
||||
return;
|
||||
__VLS_ctx.toggleAlias(alias);
|
||||
} },
|
||||
...{ class: "relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200" },
|
||||
...{ class: (alias.is_active ? 'bg-primary' : 'bg-muted') },
|
||||
role: "switch",
|
||||
'aria-checked': (alias.is_active),
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span)({
|
||||
...{ class: "pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow ring-0 transition-transform duration-200" },
|
||||
...{ class: (alias.is_active ? 'translate-x-4' : 'translate-x-0') },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(!__VLS_ctx.mailStore.currentMailbox))
|
||||
return;
|
||||
if (!!(__VLS_ctx.alLoading))
|
||||
return;
|
||||
if (!(__VLS_ctx.alAliases.length))
|
||||
return;
|
||||
__VLS_ctx.promptDelete(alias);
|
||||
} },
|
||||
...{ class: "text-muted-foreground hover:text-destructive transition-colors text-xs" },
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
value: (__VLS_ctx.alNewAddress),
|
||||
type: "text",
|
||||
placeholder: "local-part",
|
||||
...{ class: "flex-1 rounded-md border bg-background px-3 py-2 text-sm font-mono focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-sm text-muted-foreground shrink-0" },
|
||||
});
|
||||
(__VLS_ctx.mailStore.currentMailbox.split('@')[1]);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.generateAlias) },
|
||||
disabled: (__VLS_ctx.alGenerating),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-3 py-2 text-sm font-medium hover:bg-accent transition-colors disabled:opacity-50 shrink-0" },
|
||||
});
|
||||
(__VLS_ctx.alGenerating ? '…' : 'Generate');
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
value: (__VLS_ctx.alNewLabel),
|
||||
type: "text",
|
||||
placeholder: "Label (optional)",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
value: (__VLS_ctx.alNewDescription),
|
||||
type: "text",
|
||||
placeholder: "Description (optional)",
|
||||
maxlength: "200",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "flex items-center gap-2 text-sm cursor-pointer" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "checkbox",
|
||||
...{ class: "rounded border-border" },
|
||||
});
|
||||
(__VLS_ctx.alNeverExpire);
|
||||
if (!__VLS_ctx.alNeverExpire) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "date",
|
||||
...{ class: "rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.alNewExpires);
|
||||
}
|
||||
if (__VLS_ctx.alError) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-destructive" },
|
||||
});
|
||||
(__VLS_ctx.alError);
|
||||
}
|
||||
if (__VLS_ctx.alSuccess) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-green-600 dark:text-green-400" },
|
||||
});
|
||||
(__VLS_ctx.alSuccess);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.createAlias) },
|
||||
disabled: (__VLS_ctx.alCreateLoading || !__VLS_ctx.alNewAddress),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.alCreateLoading ? 'Creating…' : 'Create Alias');
|
||||
}
|
||||
}
|
||||
const __VLS_0 = {}.Teleport;
|
||||
/** @type {[typeof __VLS_components.Teleport, typeof __VLS_components.Teleport, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
to: "body",
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
to: "body",
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
__VLS_3.slots.default;
|
||||
const __VLS_4 = {}.Transition;
|
||||
/** @type {[typeof __VLS_components.Transition, typeof __VLS_components.Transition, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
name: "al-fade",
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
name: "al-fade",
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
__VLS_7.slots.default;
|
||||
if (__VLS_ctx.confirmTarget) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.confirmTarget))
|
||||
return;
|
||||
__VLS_ctx.confirmTarget = null;
|
||||
} },
|
||||
...{ class: "fixed inset-0 z-[60] flex items-center justify-center" },
|
||||
...{ style: {} },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "al-modal w-full max-w-sm mx-4 rounded-xl border p-5 space-y-4 shadow-xl" },
|
||||
...{ style: {} },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground font-mono break-all" },
|
||||
});
|
||||
(__VLS_ctx.confirmTarget.address);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-2 pt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.confirmDelete) },
|
||||
disabled: (__VLS_ctx.confirmLoading),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-destructive px-4 py-2 text-sm font-medium text-destructive-foreground hover:bg-destructive/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.confirmLoading ? 'Deleting…' : 'Delete');
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.confirmTarget))
|
||||
return;
|
||||
__VLS_ctx.confirmTarget = null;
|
||||
} },
|
||||
disabled: (__VLS_ctx.confirmLoading),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent transition-colors disabled:opacity-50" },
|
||||
});
|
||||
}
|
||||
var __VLS_7;
|
||||
var __VLS_3;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-b']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['last:border-b-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-mono']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['truncate']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-wrap']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-9']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-transparent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pointer-events-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-mono']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inset-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-[60]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['al-modal']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-w-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mx-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-mono']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['break-all']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-destructive/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
mailStore: mailStore,
|
||||
alAliases: alAliases,
|
||||
alLoading: alLoading,
|
||||
alError: alError,
|
||||
alSuccess: alSuccess,
|
||||
alNewAddress: alNewAddress,
|
||||
alNewLabel: alNewLabel,
|
||||
alNewDescription: alNewDescription,
|
||||
alNewExpires: alNewExpires,
|
||||
alNeverExpire: alNeverExpire,
|
||||
alCreateLoading: alCreateLoading,
|
||||
alGenerating: alGenerating,
|
||||
confirmTarget: confirmTarget,
|
||||
confirmLoading: confirmLoading,
|
||||
generateAlias: generateAlias,
|
||||
createAlias: createAlias,
|
||||
toggleAlias: toggleAlias,
|
||||
promptDelete: promptDelete,
|
||||
confirmDelete: confirmDelete,
|
||||
fmtDate: fmtDate,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsAliases.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,123 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
const mailStore = useMailStore();
|
||||
const DATE_FORMAT_OPTIONS = [
|
||||
{ key: 'us', label: 'US', example: 'Apr 24, 2026, 4:31:48 PM', description: '12-hour clock, month first' },
|
||||
{ key: 'eu', label: 'European', example: '24.04.2026, 16:31:48', description: '24-hour clock, day first (CH/DE/FR)' },
|
||||
{ key: 'iso', label: 'ISO 8601', example: '2026-04-24 16:31:48', description: 'Sortable international standard' },
|
||||
];
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground mt-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex flex-col gap-2" },
|
||||
});
|
||||
for (const [opt] of __VLS_getVForSourceType((__VLS_ctx.DATE_FORMAT_OPTIONS))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
key: (opt.key),
|
||||
...{ class: "flex items-center gap-4 cursor-pointer rounded-lg px-3 py-3 hover:bg-accent/50 transition-colors border border-transparent" },
|
||||
...{ class: (__VLS_ctx.mailStore.dateFormat === opt.key ? 'border-df-accent/40 bg-df-accent/5' : '') },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onChange: (...[$event]) => {
|
||||
__VLS_ctx.mailStore.setDateFormat(opt.key);
|
||||
} },
|
||||
type: "radio",
|
||||
name: "dateFormat",
|
||||
value: (opt.key),
|
||||
checked: (__VLS_ctx.mailStore.dateFormat === opt.key),
|
||||
...{ class: "accent-df-accent" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex-1 min-w-0" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
(opt.label);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(opt.description);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-xs text-muted-foreground font-mono shrink-0" },
|
||||
});
|
||||
(opt.example);
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent/50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-transparent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['accent-df-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['min-w-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-mono']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
mailStore: mailStore,
|
||||
DATE_FORMAT_OPTIONS: DATE_FORMAT_OPTIONS,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsAppearance.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"SettingsAppearance.vue.js","sourceRoot":"","sources":["SettingsAppearance.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,473 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
import { mailApi } from '@/api/mail';
|
||||
const mailStore = useMailStore();
|
||||
const arActive = ref(false);
|
||||
const arSubject = ref('');
|
||||
const arBody = ref('');
|
||||
const arStartDate = ref('');
|
||||
const arEndDate = ref('');
|
||||
const arInterval = ref(24);
|
||||
const arLoading = ref(false);
|
||||
const arSaveLoading = ref(false);
|
||||
const arDeleteLoading = ref(false);
|
||||
const arError = ref('');
|
||||
const arSuccess = ref('');
|
||||
const arExists = ref(false);
|
||||
async function loadAutoResponder(address) {
|
||||
arLoading.value = true;
|
||||
arError.value = '';
|
||||
arExists.value = false;
|
||||
try {
|
||||
const res = await mailApi.getAutoResponder(address);
|
||||
const d = res.data;
|
||||
arExists.value = true;
|
||||
arActive.value = d.is_active === 1 || d.is_active === true;
|
||||
arSubject.value = d.subject || '';
|
||||
arBody.value = d.message_body || '';
|
||||
arStartDate.value = d.start_date || '';
|
||||
arEndDate.value = d.end_date || '';
|
||||
arInterval.value = d.reply_interval_hours ?? 24;
|
||||
}
|
||||
catch (e) {
|
||||
if (e?.response?.status === 404) {
|
||||
arActive.value = false;
|
||||
arSubject.value = '';
|
||||
arBody.value = '';
|
||||
arStartDate.value = '';
|
||||
arEndDate.value = '';
|
||||
arInterval.value = 24;
|
||||
}
|
||||
else {
|
||||
arError.value = 'Failed to load auto-responder settings.';
|
||||
}
|
||||
}
|
||||
finally {
|
||||
arLoading.value = false;
|
||||
}
|
||||
}
|
||||
watch(() => mailStore.currentMailbox, (addr) => { if (addr)
|
||||
loadAutoResponder(addr); }, { immediate: true });
|
||||
async function saveAutoResponder() {
|
||||
if (!mailStore.currentMailbox)
|
||||
return;
|
||||
arError.value = '';
|
||||
arSuccess.value = '';
|
||||
if (!arBody.value.trim()) {
|
||||
arError.value = 'Message body is required.';
|
||||
return;
|
||||
}
|
||||
arSaveLoading.value = true;
|
||||
try {
|
||||
await mailApi.setAutoResponder(mailStore.currentMailbox, {
|
||||
is_active: arActive.value,
|
||||
subject: arSubject.value,
|
||||
message_body: arBody.value,
|
||||
start_date: arStartDate.value || null,
|
||||
end_date: arEndDate.value || null,
|
||||
reply_interval_hours: arInterval.value,
|
||||
});
|
||||
arExists.value = true;
|
||||
arSuccess.value = 'Auto-responder saved.';
|
||||
}
|
||||
catch {
|
||||
arError.value = 'Failed to save. Try again.';
|
||||
}
|
||||
finally {
|
||||
arSaveLoading.value = false;
|
||||
}
|
||||
}
|
||||
async function deleteAutoResponder() {
|
||||
if (!mailStore.currentMailbox || !arExists.value)
|
||||
return;
|
||||
arError.value = '';
|
||||
arSuccess.value = '';
|
||||
arDeleteLoading.value = true;
|
||||
try {
|
||||
await mailApi.deleteAutoResponder(mailStore.currentMailbox);
|
||||
arExists.value = false;
|
||||
arActive.value = false;
|
||||
arSubject.value = '';
|
||||
arBody.value = '';
|
||||
arStartDate.value = '';
|
||||
arEndDate.value = '';
|
||||
arInterval.value = 24;
|
||||
arSuccess.value = 'Auto-responder deleted.';
|
||||
}
|
||||
catch {
|
||||
arError.value = 'Failed to delete. Try again.';
|
||||
}
|
||||
finally {
|
||||
arDeleteLoading.value = false;
|
||||
}
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
if (!__VLS_ctx.mailStore.currentMailbox) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else if (__VLS_ctx.arLoading) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center justify-between" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground mt-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(!__VLS_ctx.mailStore.currentMailbox))
|
||||
return;
|
||||
if (!!(__VLS_ctx.arLoading))
|
||||
return;
|
||||
__VLS_ctx.arActive = !__VLS_ctx.arActive;
|
||||
} },
|
||||
...{ class: "relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200" },
|
||||
...{ class: (__VLS_ctx.arActive ? 'bg-primary' : 'bg-muted') },
|
||||
role: "switch",
|
||||
'aria-checked': (__VLS_ctx.arActive),
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span)({
|
||||
...{ class: "pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform duration-200" },
|
||||
...{ class: (__VLS_ctx.arActive ? 'translate-x-5' : 'translate-x-0') },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
value: (__VLS_ctx.arSubject),
|
||||
type: "text",
|
||||
placeholder: "e.g. Out of Office",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.textarea)({
|
||||
value: (__VLS_ctx.arBody),
|
||||
rows: "5",
|
||||
placeholder: "I'm currently away and will respond when I return.",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring resize-none" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "grid grid-cols-2 gap-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "date",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.arStartDate);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "date",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.arEndDate);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "number",
|
||||
min: "1",
|
||||
max: "720",
|
||||
...{ class: "w-28 rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.arInterval);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
if (__VLS_ctx.arError) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-destructive" },
|
||||
});
|
||||
(__VLS_ctx.arError);
|
||||
}
|
||||
if (__VLS_ctx.arSuccess) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-green-600 dark:text-green-400" },
|
||||
});
|
||||
(__VLS_ctx.arSuccess);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.saveAutoResponder) },
|
||||
disabled: (__VLS_ctx.arSaveLoading),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.arSaveLoading ? 'Saving…' : 'Save');
|
||||
if (__VLS_ctx.arExists) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.deleteAutoResponder) },
|
||||
disabled: (__VLS_ctx.arDeleteLoading),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-4 py-2 text-sm font-medium text-destructive hover:bg-accent transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.arDeleteLoading ? 'Deleting…' : 'Delete');
|
||||
}
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-11']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-transparent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pointer-events-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['resize-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid-cols-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-28']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
mailStore: mailStore,
|
||||
arActive: arActive,
|
||||
arSubject: arSubject,
|
||||
arBody: arBody,
|
||||
arStartDate: arStartDate,
|
||||
arEndDate: arEndDate,
|
||||
arInterval: arInterval,
|
||||
arLoading: arLoading,
|
||||
arSaveLoading: arSaveLoading,
|
||||
arDeleteLoading: arDeleteLoading,
|
||||
arError: arError,
|
||||
arSuccess: arSuccess,
|
||||
arExists: arExists,
|
||||
saveAutoResponder: saveAutoResponder,
|
||||
deleteAutoResponder: deleteAutoResponder,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsAutoResponder.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,102 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.a, __VLS_intrinsicElements.a)({
|
||||
href: "https://github.com/ChrispyBacon-dev/DockFlare",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent transition-colors" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.a, __VLS_intrinsicElements.a)({
|
||||
href: "https://github.com/ChrispyBacon-dev/DockFlare/issues",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-4 py-2 text-sm font-medium hover:bg-accent transition-colors" },
|
||||
});
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsHelp.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"SettingsHelp.vue.js","sourceRoot":"","sources":["SettingsHelp.vue"],"names":[],"mappings":"AAkCA,uFAAuF;AACvF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpF,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;CACxB,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,EACnF,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,EAAE,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAClF,GAAG,EAAE,KAAK,EAAE,yBAAyB,EAAE;CACtC,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,KAAK,EAAE,oCAAoC,EAAE;CACjD,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpF,GAAG,EAAE,KAAK,EAAE,iCAAiC,EAAE;CAC9C,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;CAClC,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,KAAK,EAAE,+BAA+B,EAAE;CAC5C,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,EAAE,+CAA+C;IACrD,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,KAAK,EAAE,2HAA2H,EAAE;CACxI,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpF,GAAG,EAAE,KAAK,EAAE,iCAAiC,EAAE;CAC9C,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;CAClC,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,EAAE,KAAK,EAAE,+BAA+B,EAAE;CAC5C,CAAC,CAAC;AACH,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,EAAE,sDAAsD;IAC5D,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,KAAK,EAAE,2HAA2H,EAAE;CACxI,CAAC,CAAC;AACH,oDAAoD,CAAA,CAAC;AACrD,oDAAoD,CAAA,CAAC;AACrD,wDAAwD,CAAA,CAAC;AACzD,kDAAkD,CAAA,CAAC;AACnD,gEAAgE,CAAA,CAAC;AACjE,+CAA+C,CAAA,CAAC;AAChD,qDAAqD,CAAA,CAAC;AACtD,iDAAiD,CAAA,CAAC;AAClD,8CAA8C,CAAA,CAAC;AAC/C,oDAAoD,CAAA,CAAC;AACrD,kDAAkD,CAAA,CAAC;AACnD,sDAAsD,CAAA,CAAC;AACvD,kDAAkD,CAAA,CAAC;AACnD,gEAAgE,CAAA,CAAC;AACjE,sDAAsD,CAAA,CAAC;AACvD,uDAAuD,CAAA,CAAC;AACxD,yDAAyD,CAAA,CAAC;AAC1D,qDAAqD,CAAA,CAAC;AACtD,iDAAiD,CAAA,CAAC;AAClD,+CAA+C,CAAA,CAAC;AAChD,+CAA+C,CAAA,CAAC;AAChD,kDAAkD,CAAA,CAAC;AACnD,sDAAsD,CAAA,CAAC;AACvD,0DAA0D,CAAA,CAAC;AAC3D,4DAA4D,CAAA,CAAC;AAC7D,qDAAqD,CAAA,CAAC;AACtD,iDAAiD,CAAA,CAAC;AAClD,8CAA8C,CAAA,CAAC;AAC/C,oDAAoD,CAAA,CAAC;AACrD,kDAAkD,CAAA,CAAC;AACnD,sDAAsD,CAAA,CAAC;AACvD,kDAAkD,CAAA,CAAC;AACnD,gEAAgE,CAAA,CAAC;AACjE,sDAAsD,CAAA,CAAC;AACvD,uDAAuD,CAAA,CAAC;AACxD,yDAAyD,CAAA,CAAC;AAC1D,qDAAqD,CAAA,CAAC;AACtD,iDAAiD,CAAA,CAAC;AAClD,+CAA+C,CAAA,CAAC;AAChD,+CAA+C,CAAA,CAAC;AAChD,kDAAkD,CAAA,CAAC;AACnD,sDAAsD,CAAA,CAAC;AACvD,0DAA0D,CAAA,CAAC;AAC3D,4DAA4D,CAAA,CAAC;AAO7D,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,278 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useNotificationsStore } from '@/stores/notifications';
|
||||
import { usePushSubscription } from '@/composables/usePushSubscription';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
import { mailApi } from '@/api/mail';
|
||||
const notificationsStore = useNotificationsStore();
|
||||
const push = usePushSubscription();
|
||||
const mailStore = useMailStore();
|
||||
const notificationPreview = ref(true);
|
||||
const previewLoading = ref(false);
|
||||
watch(() => mailStore.currentMailbox, async (address) => {
|
||||
if (!address)
|
||||
return;
|
||||
try {
|
||||
const res = await mailApi.getMailboxPreferences(address);
|
||||
notificationPreview.value = res.data.notification_preview;
|
||||
}
|
||||
catch { /* ignore */ }
|
||||
}, { immediate: true });
|
||||
async function togglePreview() {
|
||||
if (!mailStore.currentMailbox || previewLoading.value)
|
||||
return;
|
||||
previewLoading.value = true;
|
||||
const next = !notificationPreview.value;
|
||||
try {
|
||||
await mailApi.updateMailboxPreferences(mailStore.currentMailbox, { notification_preview: next });
|
||||
notificationPreview.value = next;
|
||||
}
|
||||
catch { /* ignore */ }
|
||||
finally {
|
||||
previewLoading.value = false;
|
||||
}
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
if (__VLS_ctx.notificationsStore.isDenied) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border border-destructive/40 bg-destructive/5 p-4 text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else if (!__VLS_ctx.notificationsStore.isGranted) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.notificationsStore.requestPermission) },
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium text-green-600 dark:text-green-400" },
|
||||
});
|
||||
if (__VLS_ctx.push.isSupported) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center justify-between" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground mt-0.5" },
|
||||
});
|
||||
if (!__VLS_ctx.push.isSubscribed.value) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.notificationsStore.isDenied))
|
||||
return;
|
||||
if (!!(!__VLS_ctx.notificationsStore.isGranted))
|
||||
return;
|
||||
if (!(__VLS_ctx.push.isSupported))
|
||||
return;
|
||||
if (!(!__VLS_ctx.push.isSubscribed.value))
|
||||
return;
|
||||
__VLS_ctx.push.subscribe();
|
||||
} },
|
||||
disabled: (__VLS_ctx.push.isLoading.value),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.push.isLoading.value ? 'Enabling…' : 'Enable');
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!!(__VLS_ctx.notificationsStore.isDenied))
|
||||
return;
|
||||
if (!!(!__VLS_ctx.notificationsStore.isGranted))
|
||||
return;
|
||||
if (!(__VLS_ctx.push.isSupported))
|
||||
return;
|
||||
if (!!(!__VLS_ctx.push.isSubscribed.value))
|
||||
return;
|
||||
__VLS_ctx.push.unsubscribe();
|
||||
} },
|
||||
disabled: (__VLS_ctx.push.isLoading.value),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium hover:bg-accent transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.push.isLoading.value ? 'Disabling…' : 'Disable');
|
||||
}
|
||||
if (__VLS_ctx.push.error.value) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-destructive mt-1" },
|
||||
});
|
||||
(__VLS_ctx.push.error.value);
|
||||
}
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
if (__VLS_ctx.mailStore.currentMailbox) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center justify-between" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground mt-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.togglePreview) },
|
||||
disabled: (__VLS_ctx.previewLoading),
|
||||
...{ class: "relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 disabled:opacity-50" },
|
||||
...{ class: (__VLS_ctx.notificationPreview ? 'bg-primary' : 'bg-muted') },
|
||||
role: "switch",
|
||||
'aria-checked': (__VLS_ctx.notificationPreview),
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span)({
|
||||
...{ class: "pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform duration-200" },
|
||||
...{ class: (__VLS_ctx.notificationPreview ? 'translate-x-5' : 'translate-x-0') },
|
||||
});
|
||||
}
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-destructive/40']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-destructive/5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-accent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-11']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-transparent']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pointer-events-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-transform']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
notificationsStore: notificationsStore,
|
||||
push: push,
|
||||
mailStore: mailStore,
|
||||
notificationPreview: notificationPreview,
|
||||
previewLoading: previewLoading,
|
||||
togglePreview: togglePreview,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsNotifications.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,202 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, watch } from 'vue';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
import { mailApi } from '@/api/mail';
|
||||
const store = useMailStore();
|
||||
const displayName = ref('');
|
||||
const loading = ref(false);
|
||||
const saving = ref(false);
|
||||
const error = ref('');
|
||||
const success = ref('');
|
||||
async function load(address) {
|
||||
loading.value = true;
|
||||
error.value = '';
|
||||
try {
|
||||
const res = await mailApi.getMailboxPreferences(address);
|
||||
displayName.value = res.data.display_name || '';
|
||||
}
|
||||
catch {
|
||||
error.value = 'Failed to load profile.';
|
||||
}
|
||||
finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
watch(() => store.currentMailbox, (addr) => { if (addr)
|
||||
load(addr); }, { immediate: true });
|
||||
async function save() {
|
||||
if (!store.currentMailbox)
|
||||
return;
|
||||
saving.value = true;
|
||||
error.value = '';
|
||||
success.value = '';
|
||||
try {
|
||||
await mailApi.updateMailboxPreferences(store.currentMailbox, { display_name: displayName.value });
|
||||
const mb = store.mailboxes.find(m => m.address === store.currentMailbox);
|
||||
if (mb)
|
||||
mb.display_name = displayName.value;
|
||||
success.value = 'Display name updated.';
|
||||
}
|
||||
catch {
|
||||
error.value = 'Failed to save.';
|
||||
}
|
||||
finally {
|
||||
saving.value = false;
|
||||
}
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
/** @type {__VLS_StyleScopedClasses['dark']} */ ;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
if (!__VLS_ctx.store.currentMailbox) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (__VLS_ctx.loading) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "text-sm text-muted-foreground" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-mono text-muted-foreground" },
|
||||
});
|
||||
(__VLS_ctx.store.currentMailbox);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
for: "display-name-input",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onKeydown: (__VLS_ctx.save) },
|
||||
id: "display-name-input",
|
||||
value: (__VLS_ctx.displayName),
|
||||
type: "text",
|
||||
placeholder: "Your Name",
|
||||
maxlength: "100",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-muted-foreground" },
|
||||
});
|
||||
(__VLS_ctx.displayName ? `${__VLS_ctx.displayName} <${__VLS_ctx.store.currentMailbox}>` : __VLS_ctx.store.currentMailbox);
|
||||
if (__VLS_ctx.error) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-destructive" },
|
||||
});
|
||||
(__VLS_ctx.error);
|
||||
}
|
||||
if (__VLS_ctx.success) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-green-600 dark:text-green-400" },
|
||||
});
|
||||
(__VLS_ctx.success);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.save) },
|
||||
disabled: (__VLS_ctx.saving),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.saving ? 'Saving…' : 'Save');
|
||||
}
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-mono']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
store: store,
|
||||
displayName: displayName,
|
||||
loading: loading,
|
||||
saving: saving,
|
||||
error: error,
|
||||
success: success,
|
||||
save: save,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsProfile.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,215 +0,0 @@
|
|||
/// <reference types="../../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref } from 'vue';
|
||||
import { authApi } from '@/api/auth';
|
||||
const pwCurrent = ref('');
|
||||
const pwNew = ref('');
|
||||
const pwConfirm = ref('');
|
||||
const pwLoading = ref(false);
|
||||
const pwError = ref('');
|
||||
const pwSuccess = ref('');
|
||||
async function changePassword() {
|
||||
pwError.value = '';
|
||||
pwSuccess.value = '';
|
||||
if (!pwNew.value || pwNew.value !== pwConfirm.value) {
|
||||
pwError.value = 'New passwords do not match.';
|
||||
return;
|
||||
}
|
||||
if (pwNew.value.length < 8) {
|
||||
pwError.value = 'Password must be at least 8 characters.';
|
||||
return;
|
||||
}
|
||||
pwLoading.value = true;
|
||||
try {
|
||||
const data = await authApi.changePassword(pwCurrent.value, pwNew.value);
|
||||
if (data.error) {
|
||||
pwError.value = data.error;
|
||||
}
|
||||
else {
|
||||
pwSuccess.value = 'Password changed successfully.';
|
||||
pwCurrent.value = '';
|
||||
pwNew.value = '';
|
||||
pwConfirm.value = '';
|
||||
}
|
||||
}
|
||||
catch {
|
||||
pwError.value = 'Request failed. Try again.';
|
||||
}
|
||||
finally {
|
||||
pwLoading.value = false;
|
||||
}
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-base font-semibold" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm text-muted-foreground mt-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "rounded-lg border p-4 space-y-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-sm font-medium" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "password",
|
||||
autocomplete: "current-password",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.pwCurrent);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "password",
|
||||
autocomplete: "new-password",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.pwNew);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-xs font-medium text-muted-foreground uppercase tracking-wide" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "password",
|
||||
autocomplete: "new-password",
|
||||
...{ class: "w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring" },
|
||||
});
|
||||
(__VLS_ctx.pwConfirm);
|
||||
if (__VLS_ctx.pwError) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-destructive" },
|
||||
});
|
||||
(__VLS_ctx.pwError);
|
||||
}
|
||||
if (__VLS_ctx.pwSuccess) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-xs text-green-600 dark:text-green-400" },
|
||||
});
|
||||
(__VLS_ctx.pwSuccess);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.changePassword) },
|
||||
disabled: (__VLS_ctx.pwLoading || !__VLS_ctx.pwCurrent || !__VLS_ctx.pwNew || !__VLS_ctx.pwConfirm),
|
||||
...{ class: "inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50" },
|
||||
});
|
||||
(__VLS_ctx.pwLoading ? 'Updating…' : 'Update Password');
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-base']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-wide']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:ring-ring']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-destructive']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green-600']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['dark:text-green-400']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-primary-foreground']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['disabled:opacity-50']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
pwCurrent: pwCurrent,
|
||||
pwNew: pwNew,
|
||||
pwConfirm: pwConfirm,
|
||||
pwLoading: pwLoading,
|
||||
pwError: pwError,
|
||||
pwSuccess: pwSuccess,
|
||||
changePassword: changePassword,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=SettingsSecurity.vue.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,59 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
const props = defineProps({
|
||||
src: { type: String, default: '' },
|
||||
initials: { type: String, default: '' },
|
||||
class: { type: String, default: '' }
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: (['relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full bg-muted', props.class]) },
|
||||
});
|
||||
if (__VLS_ctx.src) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.img)({
|
||||
src: (__VLS_ctx.src),
|
||||
...{ class: "aspect-square h-full w-full" },
|
||||
});
|
||||
}
|
||||
else {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "flex h-full w-full items-center justify-center rounded-full bg-muted text-muted-foreground" },
|
||||
});
|
||||
(__VLS_ctx.initials);
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['aspect-square']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-muted-foreground']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
src: { type: String, default: '' },
|
||||
initials: { type: String, default: '' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
src: { type: String, default: '' },
|
||||
initials: { type: String, default: '' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Avatar.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Avatar.vue.js","sourceRoot":"","sources":["Avatar.vue"],"names":[],"mappings":"AAaW,oFAAoF;AAE/F,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACvC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACrC,CAAC,CAAA;AACF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACtF,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,wEAAwE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;CACtG,CAAC,CAAC;AACH,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;IACpB,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACvD,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;QACpB,GAAG,EAAE,KAAK,EAAE,6BAA6B,EAAE;KAC1C,CAAC,CAAC;AACH,CAAC;KACI,CAAC;IACN,yBAAyB,CAAC,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACtF,GAAG,EAAE,KAAK,EAAE,4FAA4F,EAAE;KACzG,CAAC,CAAC;IACH,CAAE,SAAS,CAAC,QAAQ,CAAE,CAAC;AACvB,CAAC;AACD,wDAAwD,CAAA,CAAC;AACzD,iDAAiD,CAAA,CAAC;AAClD,iDAAiD,CAAA,CAAC;AAClD,+CAA+C,CAAA,CAAC;AAChD,iDAAiD,CAAA,CAAC;AAClD,iDAAiD,CAAA,CAAC;AAClD,uDAAuD,CAAA,CAAC;AACxD,yDAAyD,CAAA,CAAC;AAC1D,uDAAuD,CAAA,CAAC;AACxD,mDAAmD,CAAA,CAAC;AACpD,gEAAgE,CAAA,CAAC;AAOjE,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed } from 'vue';
|
||||
const props = defineProps({
|
||||
variant: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' }
|
||||
});
|
||||
const variants = {
|
||||
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
||||
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
||||
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
||||
outline: "text-foreground",
|
||||
};
|
||||
const computedClass = computed(() => {
|
||||
return `inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 ${variants[props.variant] || variants.default} ${props.class}`;
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: (__VLS_ctx.computedClass) },
|
||||
});
|
||||
var __VLS_0 = {};
|
||||
// @ts-ignore
|
||||
var __VLS_1 = __VLS_0;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
computedClass: computedClass,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
variant: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
variant: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Badge.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Badge.vue.js","sourceRoot":"","sources":["Badge.vue"],"names":[],"mappings":"AAwBW,oFAAoF;AAE/F,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAE9B,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;IAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,2EAA2E;IACpF,SAAS,EAAE,iFAAiF;IAC5F,WAAW,EAAE,uFAAuF;IACpG,OAAO,EAAE,iBAAiB;CAC3B,CAAA;AAED,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;IAClC,OAAO,0KAA0K,QAAQ,CAAC,KAAK,CAAC,OAAgC,CAAC,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;AACxQ,CAAC,CAAC,CAAA;AACF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpF,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;CACtC,CAAC,CAAC;AACH,IAAI,OAAO,GAAG,EACb,CAAC;AACF,aAAa;AACb,IAAI,OAAO,GAAG,OAAQ,CAAE;AAQxB,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,aAAa,EAAE,aAAqC;SACnD,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9D,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,eAAe,EAA0D,CAAC;AAC1E,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { computed } from 'vue';
|
||||
const props = defineProps({
|
||||
variant: { type: String, default: 'default' },
|
||||
size: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' },
|
||||
disabled: { type: Boolean, default: false },
|
||||
as: { type: String, default: 'button' }
|
||||
});
|
||||
const baseClass = "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50";
|
||||
const variants = {
|
||||
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
||||
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
||||
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
||||
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
||||
ghost: "hover:bg-accent hover:text-accent-foreground",
|
||||
link: "text-primary underline-offset-4 hover:underline",
|
||||
};
|
||||
const sizes = {
|
||||
default: "h-10 px-4 py-2",
|
||||
sm: "h-9 rounded-md px-3",
|
||||
lg: "h-11 rounded-md px-8",
|
||||
icon: "h-10 w-10",
|
||||
};
|
||||
const computedClass = computed(() => {
|
||||
return `${baseClass} ${variants[props.variant] || variants.default} ${sizes[props.size] || sizes.default} ${props.class}`;
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
const __VLS_0 = ((__VLS_ctx.as));
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
...{ class: (__VLS_ctx.computedClass) },
|
||||
disabled: (__VLS_ctx.as === 'button' ? __VLS_ctx.disabled : undefined),
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
...{ class: (__VLS_ctx.computedClass) },
|
||||
disabled: (__VLS_ctx.as === 'button' ? __VLS_ctx.disabled : undefined),
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
var __VLS_4 = {};
|
||||
__VLS_3.slots.default;
|
||||
var __VLS_5 = {};
|
||||
var __VLS_3;
|
||||
// @ts-ignore
|
||||
var __VLS_6 = __VLS_5;
|
||||
[__VLS_dollars.$attrs,];
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
computedClass: computedClass,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
variant: { type: String, default: 'default' },
|
||||
size: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' },
|
||||
disabled: { type: Boolean, default: false },
|
||||
as: { type: String, default: 'button' }
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
variant: { type: String, default: 'default' },
|
||||
size: { type: String, default: 'default' },
|
||||
class: { type: String, default: '' },
|
||||
disabled: { type: Boolean, default: false },
|
||||
as: { type: String, default: 'button' }
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Button.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Button.vue.js","sourceRoot":"","sources":["Button.vue"],"names":[],"mappings":"AAsCW,oFAAoF;AAE/F,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAE9B,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;IAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;IAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;CACxC,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,sQAAsQ,CAAA;AAExR,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,wDAAwD;IACjE,WAAW,EAAE,oEAAoE;IACjF,OAAO,EAAE,gFAAgF;IACzF,SAAS,EAAE,8DAA8D;IACzE,KAAK,EAAE,8CAA8C;IACrD,IAAI,EAAE,iDAAiD;CACxD,CAAA;AAED,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,gBAAgB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,WAAW;CAClB,CAAA;AAED,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;IAClC,OAAO,GAAG,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAgC,CAAC,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAA0B,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;AAC1K,CAAC,CAAC,CAAA;AACF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,aAAa;AACb,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC;IACjE,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;IACvC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;CACrE,CAAC,CAAC,CAAC;AACJ,MAAM,OAAO,GAAG,OAAO,CAAC;IACxB,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;IACvC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;CACrE,EAAE,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,IAAI,OAAO,GAAG,EAAmE,CAAC;AAClF,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC;AACvB,IAAI,OAAO,GAAG,EACb,CAAC;AACF,IAAI,OAA0E,CAAC;AAC/E,aAAa;AACb,IAAI,OAAO,GAAG,OAAQ,CAAE;AAIxB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAKxB,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,aAAa,EAAE,aAAqC;SACnD,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;KACxC;CACA,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9D,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;KACxC;CACA,CAAC,CAAC;AACH,eAAe,EAA0D,CAAC;AAC1E,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
const __VLS_props = defineProps({
|
||||
open: { type: Boolean, default: false }
|
||||
});
|
||||
const __VLS_emit = defineEmits(['update:open']);
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
if (__VLS_ctx.open) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.open))
|
||||
return;
|
||||
__VLS_ctx.$emit('update:open', false);
|
||||
} },
|
||||
...{ class: "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: () => { } },
|
||||
...{ class: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 sm:rounded-lg max-h-[90vh] overflow-y-auto" },
|
||||
});
|
||||
var __VLS_0 = {};
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inset-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background/80']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['backdrop-blur-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['data-[state=open]:animate-in']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['data-[state=closed]:animate-out']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['data-[state=closed]:fade-out-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['data-[state=open]:fade-in-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['left-[50%]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['top-[50%]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-w-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['translate-x-[-50%]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['translate-y-[-50%]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-background']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['sm:rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-h-[90vh]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-y-auto']} */ ;
|
||||
// @ts-ignore
|
||||
var __VLS_1 = __VLS_0;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
open: { type: Boolean, default: false }
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
open: { type: Boolean, default: false }
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Dialog.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Dialog.vue.js","sourceRoot":"","sources":["Dialog.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref } from 'vue';
|
||||
const props = defineProps({
|
||||
label: { type: String, default: 'Menu' }
|
||||
});
|
||||
const open = ref(false);
|
||||
const toggle = () => open.value = !open.value;
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "relative inline-block text-left" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (__VLS_ctx.toggle) },
|
||||
});
|
||||
var __VLS_0 = {};
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ class: "inline-flex w-full justify-center gap-x-1.5 rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50" },
|
||||
});
|
||||
(__VLS_ctx.label);
|
||||
if (__VLS_ctx.open) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "absolute right-0 z-10 mt-2 w-56 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none" },
|
||||
role: "menu",
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "py-1" },
|
||||
});
|
||||
var __VLS_2 = {
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.open))
|
||||
return;
|
||||
__VLS_ctx.open = false;
|
||||
} },
|
||||
};
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-left']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inline-flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-x-1.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-gray-900']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-inset']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-gray-300']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-gray-50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['absolute']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['right-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-10']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-56']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['origin-top-right']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-md']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ring-opacity-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
||||
// @ts-ignore
|
||||
var __VLS_1 = __VLS_0, __VLS_3 = __VLS_2;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
open: open,
|
||||
toggle: toggle,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
label: { type: String, default: 'Menu' }
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
label: { type: String, default: 'Menu' }
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=DropdownMenu.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"DropdownMenu.vue.js","sourceRoot":"","sources":["DropdownMenu.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
const props = defineProps({
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
type: { type: String, default: 'text' }
|
||||
});
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ onInput: (...[$event]) => {
|
||||
__VLS_ctx.emit('update:modelValue', $event.target.value);
|
||||
} },
|
||||
type: (__VLS_ctx.type),
|
||||
value: (__VLS_ctx.modelValue),
|
||||
...{ class: (['flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', props.class]) },
|
||||
});
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
emit: emit,
|
||||
};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
type: { type: String, default: 'text' }
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
type: { type: String, default: 'text' }
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Input.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Input.vue.js","sourceRoot":"","sources":["Input.vue"],"names":[],"mappings":"AAgBW,oFAAoF;AAE/F,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CACxC,CAAC,CAAA;AACF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAC/C,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzD,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAC9B,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAG,MAAM,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC,EAAC;IACF,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;IACtB,KAAK,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7B,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,8VAA8V,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;CAC5X,CAAC,CAAC;AAOH,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,IAAI,EAAE,IAAmB;SACxB,CAAC;IACF,CAAC;IACD,KAAK,EAAE,EAAuC;IAC9C,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;KACxC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE,EAAuC;IAC9C,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;KACxC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { inject } from 'vue';
|
||||
const group = inject('resizableGroup');
|
||||
const handleIdx = group ? group.registerHandle() : -1;
|
||||
function onPointerDown(e) {
|
||||
if (!group || handleIdx === -1)
|
||||
return;
|
||||
e.preventDefault();
|
||||
e.target.setPointerCapture(e.pointerId);
|
||||
group.startResize(handleIdx, e.clientX);
|
||||
}
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div)({
|
||||
...{ onPointerdown: (__VLS_ctx.onPointerDown) },
|
||||
...{ class: "w-1 bg-border cursor-col-resize hover:bg-primary/50 active:bg-primary/70 transition-colors hidden md:flex items-center justify-center flex-shrink-0 select-none" },
|
||||
});
|
||||
/** @type {__VLS_StyleScopedClasses['w-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['cursor-col-resize']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:bg-primary/50']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['active:bg-primary/70']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-shrink-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['select-none']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
onPointerDown: onPointerDown,
|
||||
};
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=ResizableHandle.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"ResizableHandle.vue.js","sourceRoot":"","sources":["ResizableHandle.vue"],"names":[],"mappings":"AAoBA,oFAAoF;AAEpF,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAE5B,MAAM,KAAK,GAAG,MAAM,CAAM,gBAAgB,CAAC,CAAA;AAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,SAAS,aAAa,CAAC,CAAe;IACpC,IAAI,CAAC,KAAK,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAM;IACtC,CAAC,CAAC,cAAc,EAAE,CACjB;IAAC,CAAC,CAAC,MAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACzD,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;AACzC,CAAC;AACD,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAC;IAC9C,GAAG,EAAE,KAAK,EAAE,iKAAiK,EAAE;CAC9K,CAAC,CAAC;AACH,8CAA8C,CAAA,CAAC;AAC/C,oDAAoD,CAAA,CAAC;AACrD,4DAA4D,CAAA,CAAC;AAC7D,8DAA8D,CAAA,CAAC;AAC/D,+DAA+D,CAAA,CAAC;AAChE,4DAA4D,CAAA,CAAC;AAC7D,iDAAiD,CAAA,CAAC;AAClD,kDAAkD,CAAA,CAAC;AACnD,uDAAuD,CAAA,CAAC;AACxD,yDAAyD,CAAA,CAAC;AAC1D,wDAAwD,CAAA,CAAC;AACzD,sDAAsD,CAAA,CAAC;AAOvD,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,aAAa,EAAE,aAAqC;SACnD,CAAC;IACF,CAAC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { inject, computed } from 'vue';
|
||||
const props = defineProps({
|
||||
defaultSize: { type: Number, default: 50 },
|
||||
minSize: { type: Number, default: 10 },
|
||||
class: { type: String, default: '' }
|
||||
});
|
||||
const group = inject('resizableGroup');
|
||||
const idx = group ? group.registerPanel(props.defaultSize) : -1;
|
||||
const sizeStyle = computed(() => {
|
||||
if (!group || idx === -1)
|
||||
return { flexBasis: `${props.defaultSize}%`, flexShrink: '0', flexGrow: '0' };
|
||||
return { flexBasis: `${group.sizes[idx]}%`, flexShrink: '0', flexGrow: '0' };
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ style: (__VLS_ctx.sizeStyle) },
|
||||
...{ class: (['overflow-auto min-w-0', props.class]) },
|
||||
});
|
||||
var __VLS_0 = {};
|
||||
// @ts-ignore
|
||||
var __VLS_1 = __VLS_0;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
sizeStyle: sizeStyle,
|
||||
};
|
||||
},
|
||||
props: {
|
||||
defaultSize: { type: Number, default: 50 },
|
||||
minSize: { type: Number, default: 10 },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
defaultSize: { type: Number, default: 50 },
|
||||
minSize: { type: Number, default: 10 },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=ResizablePanel.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"ResizablePanel.vue.js","sourceRoot":"","sources":["ResizablePanel.vue"],"names":[],"mappings":"AAuBA,oFAAoF;AAEpF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEtC,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACtC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,MAAM,CAAM,gBAAgB,CAAC,CAAA;AAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/D,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;IACvG,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;AAC9E,CAAC,CAAC,CAAA;AACF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpF,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;IACnC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAuB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;CACrD,CAAC,CAAC;AACH,IAAI,OAAO,GAAG,EACb,CAAC;AACF,aAAa;AACb,IAAI,OAAO,GAAG,OAAQ,CAAE;AAQxB,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,SAAS,EAAE,SAA6B;SACvC,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9D,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,eAAe,EAA0D,CAAC;AAC1E,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { ref, provide, reactive } from 'vue';
|
||||
const groupEl = ref(null);
|
||||
const sizes = reactive([]);
|
||||
const panelCount = ref(0);
|
||||
const handleCount = ref(0);
|
||||
function registerPanel(defaultSize) {
|
||||
const idx = panelCount.value++;
|
||||
sizes[idx] = defaultSize;
|
||||
return idx;
|
||||
}
|
||||
function registerHandle() {
|
||||
return handleCount.value++;
|
||||
}
|
||||
function startResize(handleIdx, startX) {
|
||||
const onMove = (e) => {
|
||||
if (!groupEl.value)
|
||||
return;
|
||||
const dx = e.clientX - startX;
|
||||
startX = e.clientX;
|
||||
const totalW = groupEl.value.offsetWidth;
|
||||
const deltaPercent = (dx / totalW) * 100;
|
||||
const leftIdx = handleIdx;
|
||||
const rightIdx = handleIdx + 1;
|
||||
const newLeft = sizes[leftIdx] + deltaPercent;
|
||||
const newRight = sizes[rightIdx] - deltaPercent;
|
||||
if (newLeft >= 10 && newRight >= 10) {
|
||||
sizes[leftIdx] = newLeft;
|
||||
sizes[rightIdx] = newRight;
|
||||
}
|
||||
};
|
||||
const onUp = () => {
|
||||
window.removeEventListener('pointermove', onMove);
|
||||
window.removeEventListener('pointerup', onUp);
|
||||
};
|
||||
window.addEventListener('pointermove', onMove);
|
||||
window.addEventListener('pointerup', onUp);
|
||||
}
|
||||
provide('resizableGroup', { sizes, registerPanel, registerHandle, startResize });
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
ref: "groupEl",
|
||||
...{ class: "flex h-full w-full overflow-hidden" },
|
||||
});
|
||||
/** @type {typeof __VLS_ctx.groupEl} */ ;
|
||||
var __VLS_0 = {};
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
||||
// @ts-ignore
|
||||
var __VLS_1 = __VLS_0;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
groupEl: groupEl,
|
||||
};
|
||||
},
|
||||
});
|
||||
const __VLS_component = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
export default {};
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=ResizablePanelGroup.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"ResizablePanelGroup.vue.js","sourceRoot":"","sources":["ResizablePanelGroup.vue"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
const props = defineProps({
|
||||
orientation: { type: String, default: 'horizontal' },
|
||||
class: { type: String, default: '' }
|
||||
});
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div)({
|
||||
...{ class: (['shrink-0 bg-border', __VLS_ctx.orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', props.class]) },
|
||||
});
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
orientation: { type: String, default: 'horizontal' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
orientation: { type: String, default: 'horizontal' },
|
||||
class: { type: String, default: '' }
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Separator.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Separator.vue.js","sourceRoot":"","sources":["Separator.vue"],"names":[],"mappings":"AASW,oFAAoF;AAE/F,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;IACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACrC,CAAC,CAAA;AACF,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,oBAAoB,EAAE,SAAS,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;CAChI,CAAC,CAAC;AAOH,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;QACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;QACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
/// <reference types="../../../node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts" />
|
||||
import { cn } from '../../lib/utils';
|
||||
const props = defineProps({
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
});
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.textarea)({
|
||||
...{ onInput: (...[$event]) => {
|
||||
__VLS_ctx.emit('update:modelValue', $event.target.value);
|
||||
} },
|
||||
value: (__VLS_ctx.modelValue),
|
||||
...{ class: (__VLS_ctx.cn('flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', props.class)) },
|
||||
});
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
cn: cn,
|
||||
emit: emit,
|
||||
};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
emits: {},
|
||||
props: {
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
class: { type: String, default: '' },
|
||||
},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
//# sourceMappingURL=Textarea.vue.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"Textarea.vue.js","sourceRoot":"","sources":["Textarea.vue"],"names":[],"mappings":"AAoBA,oFAAoF;AAEpF,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,KAAK,GAAG,WAAW,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACrC,CAAC,CAAA;AACF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAC/C,QAAQ,CAAA,CAAA,yCAAyC;AAIjD,MAAM,SAAS,GAAG,EAAqE,CAAC;AAExF,IAAI,gBAAiE,CAAC;AAEtE,IAAI,gBAAiE,CAAC;AACtE,yBAAyB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC5D,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAC9B,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAG,MAAM,CAAC,MAA8B,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC,EAAC;IACF,KAAK,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7B,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CACnB,sSAAsS,EACtS,KAAK,CAAC,KAAK,CACZ,CAAC,EAAE;CACP,CAAC,CAAC;AAOH,IAAI,aAK+D,CAAC;AACpE,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,KAAK;QACL,OAAO;YACP,EAAE,EAAE,EAAe;YACnB,IAAI,EAAE,IAAmB;SACxB,CAAC;IACF,CAAC;IACD,KAAK,EAAE,EAAuC;IAC9C,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,eAAe,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACrD,KAAK;QACL,OAAO,EACN,CAAC;IACF,CAAC;IACD,KAAK,EAAE,EAAuC;IAC9C,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;KACrC;CACA,CAAC,CAAC;AACH,CAAC,CAAA,kCAAkC"}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
import { computed } from 'vue';
|
||||
import { useAuthStore } from '../stores/auth';
|
||||
import { useRouter } from 'vue-router';
|
||||
export function useAuth() {
|
||||
const authStore = useAuthStore();
|
||||
const router = useRouter();
|
||||
const login = (token) => {
|
||||
authStore.setToken(token);
|
||||
router.push('/');
|
||||
};
|
||||
const logout = () => {
|
||||
authStore.logout();
|
||||
router.push('/login');
|
||||
};
|
||||
const user = computed(() => authStore.decodeToken());
|
||||
return {
|
||||
isAuthenticated: authStore.isAuthenticated,
|
||||
token: authStore.token,
|
||||
user,
|
||||
login,
|
||||
logout
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=useAuth.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,UAAU,OAAO;IACrB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE;QAC9B,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,SAAS,CAAC,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAEpD,OAAO;QACL,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI;QACJ,KAAK;QACL,MAAM;KACP,CAAA;AACH,CAAC"}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import { ref, onMounted, onUnmounted } from 'vue';
|
||||
const isMobile = ref(false);
|
||||
export function useBreakpoint() {
|
||||
const mq = window.matchMedia('(max-width: 767px)');
|
||||
const update = (e) => {
|
||||
isMobile.value = e.matches;
|
||||
};
|
||||
onMounted(() => {
|
||||
isMobile.value = mq.matches;
|
||||
mq.addEventListener('change', update);
|
||||
});
|
||||
onUnmounted(() => mq.removeEventListener('change', update));
|
||||
return { isMobile };
|
||||
}
|
||||
//# sourceMappingURL=useBreakpoint.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useBreakpoint.js","sourceRoot":"","sources":["useBreakpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAEjD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAElD,MAAM,MAAM,GAAG,CAAC,CAAuC,EAAE,EAAE;QACzD,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAA;IAC5B,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAA;QAC3B,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAE3D,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrB,CAAC"}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
import { ref } from 'vue';
|
||||
const deferredPrompt = ref(null);
|
||||
const canInstall = ref(false);
|
||||
window.addEventListener('beforeinstallprompt', (e) => {
|
||||
e.preventDefault();
|
||||
deferredPrompt.value = e;
|
||||
canInstall.value = true;
|
||||
});
|
||||
window.addEventListener('appinstalled', () => {
|
||||
deferredPrompt.value = null;
|
||||
canInstall.value = false;
|
||||
});
|
||||
export function useInstallPrompt() {
|
||||
const promptInstall = async () => {
|
||||
if (!deferredPrompt.value)
|
||||
return;
|
||||
await deferredPrompt.value.prompt();
|
||||
const { outcome } = await deferredPrompt.value.userChoice;
|
||||
if (outcome === 'accepted') {
|
||||
deferredPrompt.value = null;
|
||||
canInstall.value = false;
|
||||
}
|
||||
};
|
||||
return { canInstall, promptInstall };
|
||||
}
|
||||
//# sourceMappingURL=useInstallPrompt.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useInstallPrompt.js","sourceRoot":"","sources":["useInstallPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAOzB,MAAM,cAAc,GAAG,GAAG,CAAkC,IAAI,CAAC,CAAA;AACjE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AAE7B,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IACnD,CAAC,CAAC,cAAc,EAAE,CAAA;IAClB,cAAc,CAAC,KAAK,GAAG,CAA6B,CAAA;IACpD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;AACzB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;IAC3C,cAAc,CAAC,KAAK,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK;YAAE,OAAM;QACjC,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,UAAU,CAAA;QACzD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,cAAc,CAAC,KAAK,GAAG,IAAI,CAAA;YAC3B,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;AACtC,CAAC"}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
import { ref } from 'vue';
|
||||
import { mailApi } from '../api/mail';
|
||||
import { useMailStore } from '../stores/mail';
|
||||
import { useAuthStore } from '../stores/auth';
|
||||
export function useMail() {
|
||||
const store = useMailStore();
|
||||
const authStore = useAuthStore();
|
||||
const loading = ref(false);
|
||||
const error = ref('');
|
||||
const loadMailboxes = async () => {
|
||||
loading.value = true;
|
||||
try {
|
||||
const decoded = authStore.decodeToken();
|
||||
if (decoded?.role === 'user') {
|
||||
const addresses = decoded.mailboxes || [];
|
||||
store.mailboxes = addresses.map((addr) => ({ address: addr, display_name: '' }));
|
||||
const prefs = await Promise.allSettled(addresses.map(addr => mailApi.getMailboxPreferences(addr)));
|
||||
prefs.forEach((result, i) => {
|
||||
if (result.status === 'fulfilled') {
|
||||
store.mailboxes[i].display_name = result.value.data.display_name || '';
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
const res = await mailApi.getMailboxes();
|
||||
store.mailboxes = res.data;
|
||||
}
|
||||
if (store.mailboxes.length > 0 && !store.currentMailbox) {
|
||||
store.currentMailbox = store.mailboxes[0].address;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
error.value = e.message;
|
||||
}
|
||||
finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
return { store, loading, error, loadMailboxes };
|
||||
}
|
||||
//# sourceMappingURL=useMail.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useMail.js","sourceRoot":"","sources":["useMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,UAAU,OAAO;IACrB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IAErB,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;YACvC,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAa,OAAO,CAAC,SAAS,IAAI,EAAE,CAAA;gBACnD,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBACxF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CACpC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAC3D,CAAA;gBACD,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBAClC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAA;oBACxE,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAA;gBACxC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAA;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxD,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAA;QACzB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;AACjD,CAAC"}
|
||||
|
|
@ -1,126 +0,0 @@
|
|||
import { onUnmounted, ref, watch } from 'vue';
|
||||
import { mailApi } from '@/api/mail';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
function updateBadge(count) {
|
||||
if (!('setAppBadge' in navigator))
|
||||
return;
|
||||
if (count > 0) {
|
||||
navigator.setAppBadge(count).catch(() => { });
|
||||
}
|
||||
else {
|
||||
navigator.clearAppBadge().catch(() => { });
|
||||
}
|
||||
}
|
||||
async function getPushIntervalMs() {
|
||||
try {
|
||||
if ('serviceWorker' in navigator && 'PushManager' in window) {
|
||||
const reg = await navigator.serviceWorker.ready;
|
||||
const sub = await reg.pushManager.getSubscription();
|
||||
if (sub)
|
||||
return 300_000;
|
||||
}
|
||||
}
|
||||
catch { /* SW not available */ }
|
||||
return 30_000 + Math.random() * 20_000 - 10_000;
|
||||
}
|
||||
export function useMailPolling() {
|
||||
const mailStore = useMailStore();
|
||||
const lastSeen = ref({});
|
||||
const initialized = ref(false);
|
||||
let intervalId = null;
|
||||
const poll = async () => {
|
||||
if (mailStore.mailboxes.length === 0)
|
||||
return;
|
||||
try {
|
||||
const res = await mailApi.getMailboxStatus();
|
||||
const statuses = res.data;
|
||||
const totalUnread = statuses.reduce((sum, s) => sum + s.unread_count, 0);
|
||||
updateBadge(totalUnread);
|
||||
if (!initialized.value) {
|
||||
for (const s of statuses) {
|
||||
lastSeen.value[s.address] = s.latest_received_at;
|
||||
}
|
||||
initialized.value = true;
|
||||
return;
|
||||
}
|
||||
for (const s of statuses) {
|
||||
const prev = lastSeen.value[s.address];
|
||||
if (s.latest_received_at &&
|
||||
(prev === undefined || prev === null || s.latest_received_at > prev)) {
|
||||
lastSeen.value[s.address] = s.latest_received_at;
|
||||
if (s.address === mailStore.currentMailbox && mailStore.currentFolder) {
|
||||
try {
|
||||
const mRes = await mailApi.getMessages(s.address, {
|
||||
folder: mailStore.currentFolder,
|
||||
order: mailStore.sortOrder,
|
||||
page: 1,
|
||||
per_page: 50,
|
||||
});
|
||||
const payload = mRes.data;
|
||||
const items = Array.isArray(payload) ? payload : payload.items || [];
|
||||
mailStore.messages = items;
|
||||
mailStore.totalMessages = payload.total ?? items.length;
|
||||
mailStore.messagesPage = 1;
|
||||
mailStore.hasMoreMessages = items.length === 50;
|
||||
}
|
||||
catch { /* network error — skip */ }
|
||||
try {
|
||||
const fRes = await mailApi.getFolders(s.address);
|
||||
mailStore.folders = fRes.data;
|
||||
}
|
||||
catch { /* network error — skip */ }
|
||||
}
|
||||
if (Notification.permission === 'granted') {
|
||||
fireNotification(s.address, s.unread_count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch {
|
||||
// network error — skip
|
||||
}
|
||||
};
|
||||
const fireNotification = (address, unreadCount) => {
|
||||
const n = new Notification(address, {
|
||||
body: `${unreadCount} unread message${unreadCount !== 1 ? 's' : ''}`,
|
||||
icon: '/favicon/android-chrome-192x192.png',
|
||||
tag: address,
|
||||
data: { mailbox: address },
|
||||
});
|
||||
n.onclick = () => {
|
||||
window.focus();
|
||||
mailStore.currentMailbox = address;
|
||||
n.close();
|
||||
};
|
||||
};
|
||||
const startInterval = async () => {
|
||||
if (intervalId)
|
||||
clearInterval(intervalId);
|
||||
const ms = await getPushIntervalMs();
|
||||
intervalId = setInterval(poll, ms);
|
||||
};
|
||||
const onVisibilityChange = () => {
|
||||
if (document.visibilityState === 'hidden') {
|
||||
if (intervalId) {
|
||||
clearInterval(intervalId);
|
||||
intervalId = null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
poll();
|
||||
startInterval();
|
||||
}
|
||||
};
|
||||
document.addEventListener('visibilitychange', onVisibilityChange);
|
||||
watch(() => mailStore.mailboxes, (boxes) => {
|
||||
if (boxes.length > 0 && !initialized.value)
|
||||
poll();
|
||||
}, { immediate: true });
|
||||
startInterval();
|
||||
onUnmounted(() => {
|
||||
if (intervalId)
|
||||
clearInterval(intervalId);
|
||||
document.removeEventListener('visibilitychange', onVisibilityChange);
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=useMailPolling.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useMailPolling.js","sourceRoot":"","sources":["useMailPolling.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
import { ref } from 'vue';
|
||||
import apiClient from '@/api/client';
|
||||
import { useMailStore } from '@/stores/mail';
|
||||
const isSupported = typeof window !== 'undefined' && 'serviceWorker' in navigator && 'PushManager' in window;
|
||||
function urlBase64ToUint8Array(base64) {
|
||||
const padding = '='.repeat((4 - (base64.length % 4)) % 4);
|
||||
const raw = atob((base64 + padding).replace(/-/g, '+').replace(/_/g, '/'));
|
||||
const bytes = new Uint8Array(raw.length);
|
||||
for (let i = 0; i < raw.length; i++)
|
||||
bytes[i] = raw.charCodeAt(i);
|
||||
return bytes;
|
||||
}
|
||||
export function usePushSubscription() {
|
||||
const isSubscribed = ref(false);
|
||||
const isLoading = ref(false);
|
||||
const error = ref(null);
|
||||
const mailStore = useMailStore();
|
||||
const checkSubscription = async () => {
|
||||
if (!isSupported)
|
||||
return;
|
||||
const reg = await navigator.serviceWorker.ready;
|
||||
const sub = await reg.pushManager.getSubscription();
|
||||
isSubscribed.value = !!sub;
|
||||
};
|
||||
const subscribe = async () => {
|
||||
if (!isSupported)
|
||||
return;
|
||||
isLoading.value = true;
|
||||
error.value = null;
|
||||
try {
|
||||
const { data } = await apiClient.get('/notifications/vapid-key');
|
||||
const reg = await navigator.serviceWorker.ready;
|
||||
const sub = await reg.pushManager.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: urlBase64ToUint8Array(data.public_key),
|
||||
});
|
||||
const subJson = sub.toJSON();
|
||||
let addresses = mailStore.mailboxes.map((m) => m.address);
|
||||
if (addresses.length === 0) {
|
||||
const statusRes = await apiClient.get('/mailboxes/status');
|
||||
addresses = statusRes.data.map((s) => s.address);
|
||||
}
|
||||
if (addresses.length === 0) {
|
||||
error.value = 'No mailboxes found';
|
||||
return;
|
||||
}
|
||||
for (const address of addresses) {
|
||||
await apiClient.post('/notifications/subscribe', {
|
||||
endpoint: subJson.endpoint,
|
||||
keys: subJson.keys,
|
||||
mailbox_address: address,
|
||||
});
|
||||
}
|
||||
isSubscribed.value = true;
|
||||
}
|
||||
catch (err) {
|
||||
console.error('Push subscribe failed:', err);
|
||||
error.value = err?.message ?? 'Subscription failed';
|
||||
}
|
||||
finally {
|
||||
isLoading.value = false;
|
||||
}
|
||||
};
|
||||
const unsubscribe = async () => {
|
||||
if (!isSupported)
|
||||
return;
|
||||
isLoading.value = true;
|
||||
error.value = null;
|
||||
try {
|
||||
const reg = await navigator.serviceWorker.ready;
|
||||
const sub = await reg.pushManager.getSubscription();
|
||||
if (sub) {
|
||||
await apiClient.delete('/notifications/subscribe', {
|
||||
data: { endpoint: sub.endpoint },
|
||||
});
|
||||
await sub.unsubscribe();
|
||||
}
|
||||
isSubscribed.value = false;
|
||||
}
|
||||
catch (err) {
|
||||
console.error('Push unsubscribe failed:', err);
|
||||
error.value = err?.message ?? 'Unsubscribe failed';
|
||||
}
|
||||
finally {
|
||||
isLoading.value = false;
|
||||
}
|
||||
};
|
||||
checkSubscription();
|
||||
return { isSubscribed, isLoading, isSupported, error, subscribe, unsubscribe };
|
||||
}
|
||||
//# sourceMappingURL=usePushSubscription.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"usePushSubscription.js","sourceRoot":"","sources":["usePushSubscription.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import { ref } from 'vue';
|
||||
import { mailApi } from '../api/mail';
|
||||
export function useSearch() {
|
||||
const query = ref('');
|
||||
const results = ref([]);
|
||||
const loading = ref(false);
|
||||
const search = async (address, q) => {
|
||||
if (!q) {
|
||||
results.value = [];
|
||||
return;
|
||||
}
|
||||
loading.value = true;
|
||||
try {
|
||||
const res = await mailApi.searchMessages(address, { q });
|
||||
const payload = res.data;
|
||||
results.value = Array.isArray(payload) ? payload : payload.items || [];
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
return { query, results, loading, search };
|
||||
}
|
||||
//# sourceMappingURL=useSearch.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"useSearch.js","sourceRoot":"","sources":["useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IACrB,MAAM,OAAO,GAAG,GAAG,CAAQ,EAAE,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,MAAM,MAAM,GAAG,KAAK,EAAE,OAAe,EAAE,CAAS,EAAE,EAAE;QAClD,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;YAClB,OAAM;QACR,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;YACxB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5C,CAAC"}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
import { createApp } from 'vue';
|
||||
import { createPinia } from 'pinia';
|
||||
import router from './router';
|
||||
import App from './App.vue';
|
||||
import './assets/styles/main.css';
|
||||
// Apply dark mode before mount to avoid flash
|
||||
// Priority: explicit user preference → system preference
|
||||
const _storedTheme = localStorage.getItem('theme');
|
||||
const _prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
if (_storedTheme === 'dark' || (_storedTheme === null && _prefersDark)) {
|
||||
document.documentElement.classList.add('dark');
|
||||
}
|
||||
const app = createApp(App);
|
||||
app.use(createPinia());
|
||||
app.use(router);
|
||||
app.mount('#app');
|
||||
//# sourceMappingURL=main.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,GAAG,MAAM,WAAW,CAAA;AAC3B,OAAO,0BAA0B,CAAA;AAEjC,8CAA8C;AAC9C,yDAAyD;AACzD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAClD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAA;AAC9E,IAAI,YAAY,KAAK,MAAM,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC;IACvE,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;AACtB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACf,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA"}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
import { createRouter, createWebHistory } from 'vue-router';
|
||||
import { useAuthStore } from '../stores/auth';
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
name: 'mail',
|
||||
component: () => import('../views/MailView.vue'),
|
||||
meta: { requiresAuth: true }
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: () => import('../views/LoginView.vue')
|
||||
},
|
||||
{
|
||||
path: '/auth/callback',
|
||||
name: 'auth-callback',
|
||||
component: () => import('../views/LoginView.vue')
|
||||
},
|
||||
{
|
||||
path: '/settings',
|
||||
name: 'settings',
|
||||
component: () => import('../views/SettingsView.vue'),
|
||||
meta: { requiresAuth: true }
|
||||
}
|
||||
]
|
||||
});
|
||||
router.beforeEach((to, from, next) => {
|
||||
const authStore = useAuthStore();
|
||||
if (to.meta.requiresAuth && !authStore.isAuthenticated) {
|
||||
next('/login');
|
||||
}
|
||||
else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
export default router;
|
||||
//# sourceMappingURL=index.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,gBAAgB,EAAE;IAC3B,MAAM,EAAE;QACN;YACE,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;YAChD,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;SAC7B;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;SAClD;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;SAClD;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC;YACpD,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;SAC7B;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChB,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAA;IACR,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,MAAM,CAAA"}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
import { defineStore } from 'pinia';
|
||||
import { ref, computed } from 'vue';
|
||||
import { setIDBItem, removeIDBItem } from '@/lib/idb';
|
||||
export const useAuthStore = defineStore('auth', () => {
|
||||
const token = ref(localStorage.getItem('jwt_token') || '');
|
||||
const isAuthenticated = computed(() => {
|
||||
if (!token.value)
|
||||
return false;
|
||||
try {
|
||||
const payload = JSON.parse(atob(token.value.split('.')[1]));
|
||||
return payload.exp ? payload.exp > Math.floor(Date.now() / 1000) : true;
|
||||
}
|
||||
catch {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
const setToken = (newToken) => {
|
||||
token.value = newToken;
|
||||
localStorage.setItem('jwt_token', newToken);
|
||||
setIDBItem('jwt_token', newToken).catch(() => { });
|
||||
};
|
||||
const logout = async () => {
|
||||
if ('serviceWorker' in navigator) {
|
||||
try {
|
||||
const reg = await navigator.serviceWorker.ready;
|
||||
const sub = await reg.pushManager.getSubscription();
|
||||
if (sub) {
|
||||
await fetch('/api/v1/notifications/subscribe', {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${token.value}`,
|
||||
},
|
||||
body: JSON.stringify({ endpoint: sub.endpoint }),
|
||||
});
|
||||
await sub.unsubscribe();
|
||||
}
|
||||
}
|
||||
catch { /* ignore push cleanup errors */ }
|
||||
}
|
||||
token.value = '';
|
||||
localStorage.removeItem('jwt_token');
|
||||
removeIDBItem('jwt_token').catch(() => { });
|
||||
};
|
||||
const decodeToken = () => {
|
||||
if (!token.value)
|
||||
return null;
|
||||
try {
|
||||
const payload = token.value.split('.')[1];
|
||||
return JSON.parse(atob(payload));
|
||||
}
|
||||
catch {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
return { token, isAuthenticated, setToken, logout, decodeToken };
|
||||
});
|
||||
//# sourceMappingURL=auth.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
import { defineStore } from 'pinia';
|
||||
import { ref, shallowRef, computed } from 'vue';
|
||||
import { format as dateFnsFormat } from 'date-fns';
|
||||
const DATE_FORMATS = {
|
||||
us: 'PPpp',
|
||||
eu: 'dd.MM.yyyy, HH:mm:ss',
|
||||
iso: 'yyyy-MM-dd HH:mm:ss',
|
||||
};
|
||||
export const useMailStore = defineStore('mail', () => {
|
||||
const mailboxes = ref([]);
|
||||
const currentMailbox = ref('');
|
||||
const folders = ref([]);
|
||||
const currentFolder = ref('');
|
||||
const messages = shallowRef([]);
|
||||
const totalMessages = ref(0);
|
||||
const hasMoreMessages = ref(false);
|
||||
const messagesPage = ref(1);
|
||||
const isFetchingNextPage = ref(false);
|
||||
const currentMessage = ref(null);
|
||||
const messagesLoading = ref(false);
|
||||
const isComposeOpen = ref(false);
|
||||
const isComposeFullView = ref(false);
|
||||
const isSettingsOpen = ref(false);
|
||||
const composeDefaults = ref(null);
|
||||
const composeBody = ref('');
|
||||
const activeTab = ref('all');
|
||||
const isCollapsed = ref(false);
|
||||
const sortOrder = ref('desc');
|
||||
const _stored = localStorage.getItem('theme');
|
||||
const isDark = ref(_stored === 'dark' || (_stored === null && window.matchMedia('(prefers-color-scheme: dark)').matches));
|
||||
const dateFormat = ref(localStorage.getItem('dateFormat') || 'us');
|
||||
const settingsCategory = ref('notifications');
|
||||
function formatDate(ts) {
|
||||
if (!ts)
|
||||
return '';
|
||||
return dateFnsFormat(new Date(ts), DATE_FORMATS[dateFormat.value]);
|
||||
}
|
||||
function setDateFormat(key) {
|
||||
dateFormat.value = key;
|
||||
localStorage.setItem('dateFormat', key);
|
||||
}
|
||||
const viewMode = ref(localStorage.getItem('viewMode') || 'split');
|
||||
const toast = ref(null);
|
||||
let toastTimer = null;
|
||||
let _loadMore = null;
|
||||
function showToast(message, type = 'error') {
|
||||
if (toastTimer)
|
||||
clearTimeout(toastTimer);
|
||||
toast.value = { message, type };
|
||||
toastTimer = setTimeout(() => { toast.value = null; }, 4000);
|
||||
}
|
||||
function registerLoadMore(fn) {
|
||||
_loadMore = fn;
|
||||
}
|
||||
function loadMore() {
|
||||
if (_loadMore)
|
||||
_loadMore();
|
||||
}
|
||||
const unreadMessages = computed(() => messages.value.filter((m) => !m.is_read));
|
||||
const starredMessages = computed(() => messages.value.filter((m) => m.is_starred));
|
||||
const currentFolderObj = computed(() => folders.value.find((f) => f.name === currentFolder.value) || null);
|
||||
function toggleTheme() {
|
||||
isDark.value = !isDark.value;
|
||||
if (isDark.value) {
|
||||
document.documentElement.classList.add('dark');
|
||||
localStorage.setItem('theme', 'dark');
|
||||
}
|
||||
else {
|
||||
document.documentElement.classList.remove('dark');
|
||||
localStorage.setItem('theme', 'light');
|
||||
}
|
||||
}
|
||||
function toggleViewMode() {
|
||||
viewMode.value = viewMode.value === 'split' ? 'full' : 'split';
|
||||
localStorage.setItem('viewMode', viewMode.value);
|
||||
}
|
||||
return {
|
||||
mailboxes, currentMailbox,
|
||||
folders, currentFolder, currentFolderObj,
|
||||
messages, totalMessages, hasMoreMessages, messagesPage, isFetchingNextPage,
|
||||
currentMessage, messagesLoading,
|
||||
isComposeOpen, isComposeFullView, isSettingsOpen, composeDefaults, composeBody,
|
||||
activeTab, isCollapsed,
|
||||
sortOrder, isDark, toggleTheme,
|
||||
dateFormat, setDateFormat, formatDate,
|
||||
settingsCategory,
|
||||
viewMode, toggleViewMode,
|
||||
unreadMessages, starredMessages,
|
||||
toast, showToast,
|
||||
registerLoadMore, loadMore,
|
||||
};
|
||||
});
|
||||
//# sourceMappingURL=mail.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"mail.js","sourceRoot":"","sources":["mail.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import { defineStore } from 'pinia';
|
||||
import { ref, computed } from 'vue';
|
||||
export const useNotificationsStore = defineStore('notifications', () => {
|
||||
const permission = ref(typeof Notification !== 'undefined' ? Notification.permission : 'denied');
|
||||
const isGranted = computed(() => permission.value === 'granted');
|
||||
const isDenied = computed(() => permission.value === 'denied');
|
||||
async function requestPermission() {
|
||||
if (typeof Notification === 'undefined')
|
||||
return;
|
||||
const result = await Notification.requestPermission();
|
||||
permission.value = result;
|
||||
}
|
||||
return { permission, isGranted, isDenied, requestPermission };
|
||||
});
|
||||
//# sourceMappingURL=notifications.js.map
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue