diff --git a/src/lib/components/calendar/CreateCalendarModal.svelte b/src/lib/components/calendar/CreateCalendarModal.svelte new file mode 100644 index 0000000000..2b4dc540e2 --- /dev/null +++ b/src/lib/components/calendar/CreateCalendarModal.svelte @@ -0,0 +1,150 @@ + + + + + + + {$i18n.t('New Calendar')} + (show = false)} + > + + + + + + + + + {$i18n.t('Name')} + { + if (e.key === 'Enter') submitHandler(); + }} + /> + + + + + {$i18n.t('Color')} + + {#each PRESET_COLORS as c} + (color = c)} + aria-label={c} + /> + {/each} + + + + + + + + + + + (show = false)} + > + {$i18n.t('Cancel')} + + + {$i18n.t('Create')} + {#if loading} + + {/if} + + + + diff --git a/src/lib/components/layout/Navbar/Menu.svelte b/src/lib/components/layout/Navbar/Menu.svelte index f9ea09104e..70ae564de8 100644 --- a/src/lib/components/layout/Navbar/Menu.svelte +++ b/src/lib/components/layout/Navbar/Menu.svelte @@ -100,6 +100,11 @@ clonedElement.style.height = 'auto'; document.body.appendChild(clonedElement); + // Override content-visibility so html2canvas can capture all messages + clonedElement.querySelectorAll('.message-listitem').forEach((el) => { + el.style.contentVisibility = 'visible'; + }); + // Wait for DOM update/layout await new Promise((r) => setTimeout(r, 100)); diff --git a/src/lib/components/layout/Sidebar/ChatMenu.svelte b/src/lib/components/layout/Sidebar/ChatMenu.svelte index 8be9c6710a..156449b7b8 100644 --- a/src/lib/components/layout/Sidebar/ChatMenu.svelte +++ b/src/lib/components/layout/Sidebar/ChatMenu.svelte @@ -112,6 +112,11 @@ clonedElement.style.height = 'auto'; document.body.appendChild(clonedElement); + // Override content-visibility so html2canvas can capture all messages + clonedElement.querySelectorAll('.message-listitem').forEach((el) => { + el.style.contentVisibility = 'visible'; + }); + // Wait for DOM update/layout await new Promise((r) => setTimeout(r, 100));