move chat close button down on mobile

This commit is contained in:
marlon-erler
2026-09-22 22:54:07 +02:00
parent 24e75cefb4
commit 11e5ae65b3
6 changed files with 72 additions and 56 deletions
+64 -55
View File
@@ -1,5 +1,49 @@
(() => { (() => {
// ../bloatless-react/index.ts // node_modules/uuid/dist/stringify.js
var byteToHex = [];
for (let i = 0; i < 256; ++i) {
byteToHex.push((i + 256).toString(16).slice(1));
}
function unsafeStringify(arr, offset = 0) {
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
}
// node_modules/uuid/dist/rng.js
var rnds8 = new Uint8Array(16);
function rng() {
return crypto.getRandomValues(rnds8);
}
// node_modules/uuid/dist/v4.js
function v4(options, buf, offset) {
if (!buf && !options && crypto.randomUUID) {
return crypto.randomUUID();
}
return _v4(options, buf, offset);
}
function _v4(options, buf, offset) {
options = options || {};
const rnds = options.random ?? options.rng?.() ?? rng();
if (rnds.length < 16) {
throw new Error("Random bytes length must be >= 16");
}
rnds[6] = rnds[6] & 15 | 64;
rnds[8] = rnds[8] & 63 | 128;
if (buf) {
offset = offset || 0;
if (offset < 0 || offset + 16 > buf.length) {
throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
}
for (let i = 0; i < 16; ++i) {
buf[offset + i] = rnds[i];
}
return buf;
}
return unsafeStringify(rnds);
}
var v4_default = v4;
// src/react.ts
var State = class { var State = class {
// init // init
constructor(initialValue) { constructor(initialValue) {
@@ -149,6 +193,7 @@
switch (directiveValue) { switch (directiveValue) {
case "enter": { case "enter": {
element.addEventListener("keydown", (e) => { element.addEventListener("keydown", (e) => {
if (!(e instanceof KeyboardEvent)) return;
if (e.key != "Enter") return; if (e.key != "Enter") return;
value(e); value(e);
}); });
@@ -162,6 +207,7 @@
} }
case "keystroke": { case "keystroke": {
element.addEventListener("keydown", (e) => { element.addEventListener("keydown", (e) => {
if (!(e instanceof KeyboardEvent)) return;
if (e.metaKey == false && e.ctrlKey == false) return; if (e.metaKey == false && e.ctrlKey == false) return;
if (e.key != directiveValue) return; if (e.key != directiveValue) return;
value(e); value(e);
@@ -247,55 +293,6 @@
return element; return element;
} }
// node_modules/uuid/dist/esm-browser/stringify.js
var byteToHex = [];
for (i = 0; i < 256; ++i) {
byteToHex.push((i + 256).toString(16).slice(1));
}
var i;
function unsafeStringify(arr, offset = 0) {
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
}
// node_modules/uuid/dist/esm-browser/rng.js
var getRandomValues;
var rnds8 = new Uint8Array(16);
function rng() {
if (!getRandomValues) {
getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
if (!getRandomValues) {
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
}
}
return getRandomValues(rnds8);
}
// node_modules/uuid/dist/esm-browser/native.js
var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
var native_default = {
randomUUID
};
// node_modules/uuid/dist/esm-browser/v4.js
function v4(options, buf, offset) {
if (native_default.randomUUID && !buf && !options) {
return native_default.randomUUID();
}
options = options || {};
var rnds = options.random || (options.rng || rng)();
rnds[6] = rnds[6] & 15 | 64;
rnds[8] = rnds[8] & 63 | 128;
if (buf) {
offset = offset || 0;
for (var i = 0; i < 16; ++i) {
buf[offset + i] = rnds[i];
}
return buf;
}
return unsafeStringify(rnds);
}
var v4_default = v4;
// src/View/translations.ts // src/View/translations.ts
var englishTranslations = { var englishTranslations = {
updater: { updater: {
@@ -312,6 +309,7 @@
closeButton: "Close", closeButton: "Close",
deleteButton: "Delete", deleteButton: "Delete",
exitButton: "Exit", exitButton: "Exit",
fullscreenButton: "Fullscreen",
continueButton: "Continue", continueButton: "Continue",
confirmButton: "Confirm", confirmButton: "Confirm",
saveButton: "Save", saveButton: "Save",
@@ -509,7 +507,6 @@
taskStatusLabel: "Status", taskStatusLabel: "Status",
taskPriorityLabel: "Priority", taskPriorityLabel: "Priority",
taskDescriptionLabel: "Description", taskDescriptionLabel: "Description",
taskDescriptionExpandButton: "Fullscreen",
taskDateLabel: "Date", taskDateLabel: "Date",
taskTimeLabel: "Time", taskTimeLabel: "Time",
deleteTaskButton: "Delete task", deleteTaskButton: "Delete task",
@@ -546,10 +543,15 @@
general: { general: {
deleteItemButtonAudioLabel: "element l\xF6schen", deleteItemButtonAudioLabel: "element l\xF6schen",
searchButtonAudioLabel: "suchen", searchButtonAudioLabel: "suchen",
searchButtonClearAudioLabel: "suche zur\xFCcksetzen",
abortButton: "Abbrechen", abortButton: "Abbrechen",
applyButton: "Anwenden",
backButton: "Zur\xFCck",
cancelButton: "Abbrechen", cancelButton: "Abbrechen",
closeButton: "Schlie\xDFen", closeButton: "Schlie\xDFen",
backButton: "Zur\xFCck", deleteButton: "L\xF6schen",
exitButton: "Schlie\xDFen",
fullscreenButton: "Vollbild",
continueButton: "Weiter", continueButton: "Weiter",
confirmButton: "Best\xE4tigen", confirmButton: "Best\xE4tigen",
saveButton: "Speichern", saveButton: "Speichern",
@@ -557,6 +559,7 @@
reloadAppButton: "Neu laden", reloadAppButton: "Neu laden",
fileVersionLabel: "Version", fileVersionLabel: "Version",
searchLabel: "Suche", searchLabel: "Suche",
searchSuggestionsLabel: "Vorherige Suchen",
waitingLabel: "Warten...", waitingLabel: "Warten...",
restoreConnection: "Verbindung wiederherstellen", restoreConnection: "Verbindung wiederherstellen",
noPageSelected: "Keine Seite ausgew\xE4hlt" noPageSelected: "Keine Seite ausgew\xE4hlt"
@@ -762,10 +765,15 @@
general: { general: {
deleteItemButtonAudioLabel: "eliminar elemento", deleteItemButtonAudioLabel: "eliminar elemento",
searchButtonAudioLabel: "buscar", searchButtonAudioLabel: "buscar",
searchButtonClearAudioLabel: "borrar b\xFCsqueda",
abortButton: "Abortar", abortButton: "Abortar",
applyButton: "Guardar",
backButton: "Atr\xE1s",
cancelButton: "Cancelar", cancelButton: "Cancelar",
closeButton: "Cerrar", closeButton: "Cerrar",
backButton: "Atr\xE1s", deleteButton: "Borrar",
exitButton: "Salir",
fullscreenButton: "Pantalla completa",
continueButton: "Continuar", continueButton: "Continuar",
confirmButton: "Confirmar", confirmButton: "Confirmar",
saveButton: "Guardar", saveButton: "Guardar",
@@ -773,6 +781,7 @@
reloadAppButton: "Recargar app", reloadAppButton: "Recargar app",
fileVersionLabel: "Versi\xF3n", fileVersionLabel: "Versi\xF3n",
searchLabel: "Buscar", searchLabel: "Buscar",
searchSuggestionsLabel: "B\xFAsquedas anteriores",
waitingLabel: "Esperando...", waitingLabel: "Esperando...",
restoreConnection: "Conectar de nuevo", restoreConnection: "Conectar de nuevo",
noPageSelected: "No p\xE1gina seleccionada" noPageSelected: "No p\xE1gina seleccionada"
@@ -1840,7 +1849,7 @@
return DynamicSceneDay; return DynamicSceneDay;
} else if (hour < 17) { } else if (hour < 17) {
return DynamicSceneAfternoon; return DynamicSceneAfternoon;
} else if (hour < 21) { } else {
return DynamicSceneSunset; return DynamicSceneSunset;
} }
}; };
@@ -5455,7 +5464,7 @@
class: "width-50", class: "width-50",
"on:click": taskViewModel.openFullscreenDecription "on:click": taskViewModel.openFullscreenDecription
}, },
coreViewModel2.translations.chatPage.task.taskDescriptionExpandButton, coreViewModel2.translations.general.fullscreenButton,
/* @__PURE__ */ createElement("span", { class: "icon" }, "fullscreen") /* @__PURE__ */ createElement("span", { class: "icon" }, "fullscreen")
))), /* @__PURE__ */ createElement("hr", { class: "mobile-only" }), /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement( ))), /* @__PURE__ */ createElement("hr", { class: "mobile-only" }), /* @__PURE__ */ createElement("div", { class: "flex-column" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement(
"input", "input",
Binary file not shown.
Binary file not shown.
+6
View File
@@ -125,6 +125,12 @@ body[showing-chat] #chat-page-wrapper {
padding: var(--gap-between-tiles); padding: var(--gap-between-tiles);
} }
@media (pointer: coarse) and (max-width: 480px){
#chat-page > div > #ribbon #close-button {
order: 1;
}
}
#chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar { #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar {
justify-content: start; justify-content: start;
justify-content: space-between; justify-content: space-between;
+1
View File
@@ -74,6 +74,7 @@ export function ChatPage(
<div id="ribbon"> <div id="ribbon">
<button <button
class="ghost" class="ghost"
id="close-button"
aria-label={ aria-label={
coreViewModel.translations.chatPage coreViewModel.translations.chatPage
.closeChatAudioLabe .closeChatAudioLabe