diff --git a/android/app/src/main/assets/public/blah/en-cat.json b/android/app/src/main/assets/public/blah/en-cat.json
index d3ffa2ed..0ba77833 100644
--- a/android/app/src/main/assets/public/blah/en-cat.json
+++ b/android/app/src/main/assets/public/blah/en-cat.json
@@ -325,5 +325,31 @@
"error.call.microphone": "microphone error :c",
"error.voice.reconnect.failed": "voice connection lost :c",
"error.voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version",
- "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY"
+ "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY",
+ "title.group.name": "clowder name",
+ "title.group.history.visible": "history visible to newcomers",
+ "desc.group.history.visible": "new clowder meowmbers will be able to see older meowsages (disables key purrotation)",
+ "history.visible": "enabled, meow",
+ "history.hidden": "disabled, meow",
+ "group.history.changed.by": "{0} changed history visibility to: {1}",
+ "group.name.changed.by": "{0} changed the clowder name to {1}",
+ "group.pfp.changed.by": "{0} changed the clowder picture",
+ "group.pfp.removed.by": "{0} removed the clowder picture",
+ "action.call.init": "starting call... :3",
+ "already.in.call": "ur already in a call meow",
+ "call.connect.failed": "failed to connect to the call :c",
+ "call.microphone": "microphone error :c",
+ "voice.reconnect.failed": "voice connection lost :c",
+ "voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version",
+ "kdf.salt.missing": "missing encryption salt :c try pawging in again",
+ "group-avatar.updated": "clowder picture updated successfully :3",
+ "error.unknown.error": "unknown error :o",
+ "federation.disabled": "federation is disabled :c",
+ "invalid.name": "invalid name meow",
+ "invalid.keys": "invalid nametags meow",
+ "history.hidden.keys.provided": "no nametags allowed when history is hissed away, meow",
+ "cannot.kick.self": "you can't scratch yourself",
+ "invalid.attachment": "invalid meowttachment :c",
+ "no.voice.servers": "no voice servers available :c",
+ "voice.not.configured": "voice server not configured :c missing VOICE_KEY"
}
diff --git a/android/app/src/main/assets/public/blah/en-us.json b/android/app/src/main/assets/public/blah/en-us.json
index fc6eaaf1..0690b68e 100644
--- a/android/app/src/main/assets/public/blah/en-us.json
+++ b/android/app/src/main/assets/public/blah/en-us.json
@@ -334,5 +334,22 @@
"error.call.microphone": "Microphone error",
"error.voice.reconnect.failed": "Voice connection lost",
"error.voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version",
- "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)"
+ "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)",
+ "action.call.init": "Initializing call...",
+ "already.in.call": "You are already in a call",
+ "call.connect.failed": "Failed to connect to the call",
+ "call.microphone": "Microphone error",
+ "voice.reconnect.failed": "Voice connection lost",
+ "voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version",
+ "kdf.salt.missing": "Encryption salt is missing. Please log in again.",
+ "group-avatar.updated": "Group icon updated successfully",
+ "error.unknown.error": "Unknown error",
+ "federation.disabled": "Federation is disabled",
+ "invalid.name": "Invalid name",
+ "invalid.keys": "Invalid keys",
+ "history.hidden.keys.provided": "Keys cannot be provided when group history is hidden",
+ "cannot.kick.self": "You cannot kick yourself",
+ "invalid.attachment": "Invalid attachment",
+ "no.voice.servers": "No voice servers available",
+ "voice.not.configured": "Voice server is not configured (missing VOICE_KEY)"
}
diff --git a/android/app/src/main/assets/public/blah/pl-pl.json b/android/app/src/main/assets/public/blah/pl-pl.json
index d8af39cc..f9176566 100644
--- a/android/app/src/main/assets/public/blah/pl-pl.json
+++ b/android/app/src/main/assets/public/blah/pl-pl.json
@@ -334,5 +334,22 @@
"error.call.microphone": "Błąd mikrofonu",
"error.voice.reconnect.failed": "Utracono połączenie głosowe",
"error.voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera",
- "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)"
+ "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)",
+ "action.call.init": "Nawiązywanie połączenia...",
+ "already.in.call": "Jesteś już w rozmowie",
+ "call.connect.failed": "Nie udało się połączyć z rozmową",
+ "call.microphone": "Błąd mikrofonu",
+ "voice.reconnect.failed": "Utracono połączenie głosowe",
+ "voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera",
+ "kdf.salt.missing": "Brak soli szyfrowania. Zaloguj się ponownie.",
+ "group-avatar.updated": "Ikona grupy została pomyślnie zaktualizowana",
+ "error.unknown.error": "Nieznany błąd",
+ "federation.disabled": "Federacja jest wyłączona",
+ "invalid.name": "Nieprawidłowa nazwa",
+ "invalid.keys": "Nieprawidłowe klucze",
+ "history.hidden.keys.provided": "Nie można podać kluczy, gdy historia grupy jest ukryta",
+ "cannot.kick.self": "Nie możesz wyrzucić samego siebie",
+ "invalid.attachment": "Nieprawidłowy załącznik",
+ "no.voice.servers": "Brak dostępnych serwerów głosowych",
+ "voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)"
}
diff --git a/android/app/src/main/assets/public/icons.js b/android/app/src/main/assets/public/icons.js
index e43b10bf..5f006339 100644
--- a/android/app/src/main/assets/public/icons.js
+++ b/android/app/src/main/assets/public/icons.js
@@ -1,5 +1,11 @@
// icons.js - Centralized SVG definitions
+//Subset czcionki Nunito (A-Z, 0-9, kropka, spacja) w base64.
+//SVG wczytany przez
nie ma dostępu do fontów strony (@font-face),
+//więc bez osadzenia czcionki inicjały na fallback awatarach renderują się
+//systemową czcionką zamiast Nunito.
+const AVATAR_FONT_B64 = "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";
+
const ICONS = {
_create: function(content, defaultProps, customProps = {}) {
let p = { ...defaultProps, ...customProps };
@@ -55,6 +61,6 @@ const ICONS = {
inbox: (props) => ICONS._material(``, props),
avatar: function(initials, color, size) {
- return ``;
+ return ``;
}
};
diff --git a/android/app/src/main/assets/public/style.css b/android/app/src/main/assets/public/style.css
index f4b1f83e..02cae905 100644
--- a/android/app/src/main/assets/public/style.css
+++ b/android/app/src/main/assets/public/style.css
@@ -1963,17 +1963,4 @@ input:checked + .toggle-slider:before {
.voice-call-btn {
padding: 0 0.75rem;
}
-
- #voice-users {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(min(5.5rem, 100%), 1fr));
- grid-auto-rows: minmax(6.25rem, 1fr);
- align-content: stretch;
- justify-items: stretch;
- }
- .voice-tile {
- width: auto !important;
- height: auto !important;
- min-width: 0;
- }
}
diff --git a/android/app/src/main/assets/public/voice.js b/android/app/src/main/assets/public/voice.js
index 09dd8f0f..3235b5ed 100644
--- a/android/app/src/main/assets/public/voice.js
+++ b/android/app/src/main/assets/public/voice.js
@@ -2212,7 +2212,6 @@ function relayoutVoiceTiles() {
}
const gap = 0.75 * rootFs;
- const maxSize = 18 * rootFs; // jedna osoba nie dostanie gigantycznego kafelka
const minSize = 4.5 * rootFs; // poniżej tego wolimy scrollować niż spłaszczać
//Największy kwadrat, przy którym n kafelków mieści się w dostępnej powierzchni:
@@ -2228,7 +2227,7 @@ function relayoutVoiceTiles() {
if (s > best) best = s;
}
- const size = Math.min(maxSize, Math.max(minSize, Math.floor(best)));
+ const size = Math.max(minSize, Math.floor(best));
const sig = `${n}:${size}`;
if (container.dataset.layoutSig === sig) return;
container.dataset.layoutSig = sig;
diff --git a/webroot/blah/en-cat.json b/webroot/blah/en-cat.json
index d3ffa2ed..0ba77833 100644
--- a/webroot/blah/en-cat.json
+++ b/webroot/blah/en-cat.json
@@ -325,5 +325,31 @@
"error.call.microphone": "microphone error :c",
"error.voice.reconnect.failed": "voice connection lost :c",
"error.voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version",
- "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY"
+ "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY",
+ "title.group.name": "clowder name",
+ "title.group.history.visible": "history visible to newcomers",
+ "desc.group.history.visible": "new clowder meowmbers will be able to see older meowsages (disables key purrotation)",
+ "history.visible": "enabled, meow",
+ "history.hidden": "disabled, meow",
+ "group.history.changed.by": "{0} changed history visibility to: {1}",
+ "group.name.changed.by": "{0} changed the clowder name to {1}",
+ "group.pfp.changed.by": "{0} changed the clowder picture",
+ "group.pfp.removed.by": "{0} removed the clowder picture",
+ "action.call.init": "starting call... :3",
+ "already.in.call": "ur already in a call meow",
+ "call.connect.failed": "failed to connect to the call :c",
+ "call.microphone": "microphone error :c",
+ "voice.reconnect.failed": "voice connection lost :c",
+ "voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version",
+ "kdf.salt.missing": "missing encryption salt :c try pawging in again",
+ "group-avatar.updated": "clowder picture updated successfully :3",
+ "error.unknown.error": "unknown error :o",
+ "federation.disabled": "federation is disabled :c",
+ "invalid.name": "invalid name meow",
+ "invalid.keys": "invalid nametags meow",
+ "history.hidden.keys.provided": "no nametags allowed when history is hissed away, meow",
+ "cannot.kick.self": "you can't scratch yourself",
+ "invalid.attachment": "invalid meowttachment :c",
+ "no.voice.servers": "no voice servers available :c",
+ "voice.not.configured": "voice server not configured :c missing VOICE_KEY"
}
diff --git a/webroot/blah/en-us.json b/webroot/blah/en-us.json
index fc6eaaf1..0690b68e 100644
--- a/webroot/blah/en-us.json
+++ b/webroot/blah/en-us.json
@@ -334,5 +334,22 @@
"error.call.microphone": "Microphone error",
"error.voice.reconnect.failed": "Voice connection lost",
"error.voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version",
- "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)"
+ "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)",
+ "action.call.init": "Initializing call...",
+ "already.in.call": "You are already in a call",
+ "call.connect.failed": "Failed to connect to the call",
+ "call.microphone": "Microphone error",
+ "voice.reconnect.failed": "Voice connection lost",
+ "voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version",
+ "kdf.salt.missing": "Encryption salt is missing. Please log in again.",
+ "group-avatar.updated": "Group icon updated successfully",
+ "error.unknown.error": "Unknown error",
+ "federation.disabled": "Federation is disabled",
+ "invalid.name": "Invalid name",
+ "invalid.keys": "Invalid keys",
+ "history.hidden.keys.provided": "Keys cannot be provided when group history is hidden",
+ "cannot.kick.self": "You cannot kick yourself",
+ "invalid.attachment": "Invalid attachment",
+ "no.voice.servers": "No voice servers available",
+ "voice.not.configured": "Voice server is not configured (missing VOICE_KEY)"
}
diff --git a/webroot/blah/pl-pl.json b/webroot/blah/pl-pl.json
index d8af39cc..f9176566 100644
--- a/webroot/blah/pl-pl.json
+++ b/webroot/blah/pl-pl.json
@@ -334,5 +334,22 @@
"error.call.microphone": "Błąd mikrofonu",
"error.voice.reconnect.failed": "Utracono połączenie głosowe",
"error.voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera",
- "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)"
+ "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)",
+ "action.call.init": "Nawiązywanie połączenia...",
+ "already.in.call": "Jesteś już w rozmowie",
+ "call.connect.failed": "Nie udało się połączyć z rozmową",
+ "call.microphone": "Błąd mikrofonu",
+ "voice.reconnect.failed": "Utracono połączenie głosowe",
+ "voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera",
+ "kdf.salt.missing": "Brak soli szyfrowania. Zaloguj się ponownie.",
+ "group-avatar.updated": "Ikona grupy została pomyślnie zaktualizowana",
+ "error.unknown.error": "Nieznany błąd",
+ "federation.disabled": "Federacja jest wyłączona",
+ "invalid.name": "Nieprawidłowa nazwa",
+ "invalid.keys": "Nieprawidłowe klucze",
+ "history.hidden.keys.provided": "Nie można podać kluczy, gdy historia grupy jest ukryta",
+ "cannot.kick.self": "Nie możesz wyrzucić samego siebie",
+ "invalid.attachment": "Nieprawidłowy załącznik",
+ "no.voice.servers": "Brak dostępnych serwerów głosowych",
+ "voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)"
}
diff --git a/webroot/icons.js b/webroot/icons.js
index e43b10bf..5f006339 100644
--- a/webroot/icons.js
+++ b/webroot/icons.js
@@ -1,5 +1,11 @@
// icons.js - Centralized SVG definitions
+//Subset czcionki Nunito (A-Z, 0-9, kropka, spacja) w base64.
+//SVG wczytany przez
nie ma dostępu do fontów strony (@font-face),
+//więc bez osadzenia czcionki inicjały na fallback awatarach renderują się
+//systemową czcionką zamiast Nunito.
+const AVATAR_FONT_B64 = "d09GMgABAAAAAAuEAA8AAAAAFeAAAAsrAAOaHQAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbIBwwBmA/U1RBVEgATBEICqAMmQcBNgIkA4EcC1AABCAFg2wHIBsKEaOiblFWZIq/OLCJTFfgT7TnToqww17mCUVr1EAo7VdCE7WmevjB8NvbNYqgIZYH9azRD98Lc+zakT3K4d9LUsApBE6dhZl/gpZFAg/P36vn3h9MOJsClraAqdda2hMkYPUKTZCChLrAox37/c84G//7o9KWtkwl2GnXLkKKDBFuV6F6pXGIbXZf5TjAdaoTM0BRlwbqovqjo37Qyw/K90pyu6QQV2jqrQpanzC1/49WcP3aq70NAEgkITNRMT7G5L39tAchuhDcDyG1rDKVcXFFdISulQjjayusroVOpciQBv39SKdCE6LZU8ZsiQACoA4gVqkE0+IeAFWYs0Rx82l5UIZA7fm/0ENBbjxwTX99tKfN5EAHtb4OWGaAmwsWH6sUALaSaYBUchCqYB426qQE/m+Pb4srpJLq8/98AoR/uIH+9CQfVIkvu70yGAD9rmBXMbjd1KeMf4IRCSIBAI/PSNAqsAuMBZppPbnAEBX1UyTuAkGS6iT9GSQPwUp85Iy7l+jDqf+/y7QcQN4QySUOlRx/IGOwHyj4g+I2mqZ8AMCBjdNIDBknS2MEOwgKeP7KJPrFBgbmh2N6YmVaSGxWZH5aREhkYGhESHZgXWxqfH5eUkpIUFphS6pvdW5YXFpQcPEmgph5ixA7EJ2otcf39JwJrhwJ6fp6o4azbWRjG3njOO8gfc+ciFpZJsavGuIjHdJsV5UcU4BO9v3m5hXFpNYMv1qznudMVzGXCsxLEjHWZKoFjUazbEfUteSWC1lyKKu5AXAL1tpPewZBRH9BjNqa1Ok8XHUmFAVFJNgoP7Miik55ykWdSy7xeXYw3adawgbz6SAqQciY2GUftT8TY1WfL5MG3NUuSeoS/riyY23NRTVTN/V85W+JaUNCHMufdlpzdA8G2oYFaL44uqnr7zfE5JEyF9KrG5eEE4h9aJT3urASm3GhC8BsJugZQE9posDkr7e1xdlMlpi08A0yCz+LWYvlEkhQV2X03Jwq0p5v4PGsiWvRv8AgiEZr9IU8dBT/2PRBCW+Kn5jUxOLcVHhgRU4M3TIFvJ2hhB/dGjk0rUjoC2IwcVt5eOv4qC5nG84qC9f81BJUDvrpcUXIAghjgWkvxBaI/DTxaDxzUGjko7JkztO6PGY3TYtcjy5XLqvMU0xbCWLsgGCWeFo7mXkuqksK9sEFbiIGGAUXgFxcwhc1mxaDIMZmroWM5ggxmfJfU65D066Oa2WTZqyZLaEX33/pQ4pPRzmxuVP/VJEE98CBDCoSEzsLsUq8PmdiyYxF4jT6malFOtP9GfmKllLgnecEv0t1frp2BmGIZfk9hUE12GffKTYMVrNrCaJ3ovzwZvQWp02sHi/yWGvIJ+J9ooBVw2zWlsYfOA9c3/PqBW5J3k7E6cVpaOipQTnH6vvHBCCoPd+yqmndEPOqQYRe6YJeDQ32diswJ27wLBU/x9v+olixTUkmufXd2P6OyfSEnJ6FtVf156ypWj2ZqrGeI/elWLUqjVWTsg/MYHeyO2VhHcMZwmT1FiRrakMHnlxqYElfNuX7CVKrSWn/zEzpgGoylXD7J72s+1vf2TG5LnzKZzvoPLt5jYs3KDN9MLdgtnEaXRJmMIZU0GNHjhk1DdWaIERgotq+hJEqqPq3wJeBcxApUY2iVaVGf/PmhfTf0RBI+HEBh8NZztSF9QxnqCurjyBV2xx69XV+8bv87eMz/WXWGkrWP2vMoMlD+KXogMCfF6iOB2KFboY6sJ3Hxt2EJk9wAsIEvCfbiONGNr4c71NPCfvcF7g8UF+CYfE4EvCsiEe6Pv7wNaiQPoqOw3ED+3G9oz2FOxiXe0leR0BrY/zuXiwByc8zyi6F5rf+NphH0hmnrHW0vgScCQvwOssvxGFGBRAKUHAMfD+sPy5EEU4/2CZQu00/fwiFeH8sHEuvIvD++XDwisX+y/y/2vJNrg6OQOCH98HFCPLq5ozBW8K9WAwNx/pjbREtv41NBi8xLgLHWJ+QlrKwluEMcWS1CBKKJrhTFtQy3KGO7Oic5qQySjowc2SvaQ0JtGFA5ojeMzy5+0Y2g7/d61lTXNSztv7oV6EBK9pts5tpU+dfz7YbjEzOi8bh/Dhdye8xFeUfn7f6iOdkz6u8QCPJKOclzMEdp/fO3dS3M1cH5varOlmxh5hqLwzA6nfaHQYjFX8B9p3AgvHFHsGAZ68X6Pe24+db/roMFynlPupndfBsLCsjKT4iiZJkB8i1VaGbVrQwb/Nv9HX6isRJQWuivZaTXTvsIjyPsXDCLJQo1w8UAVaAux6ivggkUDZKHMdNH7I4DdrQXRZuModV0sP3VRtcU1xVWH/yVTWD2Xk4ZmAPz9YM7KsDRSDozkeb8lzJLIHM7dAMbl9cw0dZ3MRatCk/HwQBmlNwp6UoyQvy88/lhF2aKBBAJLTgfGbQhWmdHrKVzXdbCkgMJRtOkJ6nOgoEYBh40TFrPo7kjysPfaI92NbDM8amp+O2lJpIlO+6obNbfRwdxnjDbklrb7nI4t43s4Az4Alss/evpcXOam1W1tgr9gZXsg+N/rNpd573tYheDmC5qpaqffMtwWMxHwgJbBOSVly9br45aDbmDVECA4XYs+/ODS3SBTU2a68+2za2SBdW2600Yx03dZp1FOOwjZ461TYOHPB9IOSjg6SuE3KP5b9jWo6PLDnesytboZvbA+VDlEDBmTgO7bLk8v57pVsWX2XW0NxUv6ST+r/5rR211ZFyU34cwahjfa0Sx54rDyTZWDBEQzCQiYq+kAUnBgz/qj/3FPrEC40BijiNTZtiwgQQEWA6ni5IESszKQzcVJ+aHXlviltO1leGyQ15sUKrPC6YXjiri7dLNMeslqWV88EDCPLxpiC8AO0y7d7r/NhsD26t58F+jICQwCxNuFP1+NLYaKYnGlDeFXL5Vb/zX/XjmEI/PkGHh5NcY6qbjjMFXVqJ7QptkCxMgDJYCIQhWIyP58xMjpzKk4qKKFJeXC4HnZhosipnVmdFjLbklRMULy9Mt5xm3lp3+Cd6R+gztLwB+dmdshK7M06iyZWKi/SktLRYQRs5VGQEzeNFGKkoDoeKijAyJlpyXmAFtj2pn64mvAw9sC8JHYtmQ1ZRljCtOhu4YmodV+HWEFFJpvinoa5uwRy9SmYv55jMZRy5XRUXav6/guXulM6zaBTuOm4K5XTpKdKlczJuHUm59Y5EwhCYHqWykxaLjVSpbBT4hdzqMP1yI/Nu5pY+dgPzvDMSx6HFOkpWUqQg15sfznALwzoCuBwyKjI9kiZnA/tk2b0443vxJiUnWe5EbTdZ3ua3AMDX+n/L8/gyJ+wNK/4CgNvN40cA7g2P50rn/ylVVDMCKIIBAAj4/ZWu4InYFcBiVHovjvHFMG+yyQOFuSs8nxFK7IAdXWOFn3ZBrSKuvOapJL6VwqpQcT7JyP+QMkxg874aeWdJ+csXOXlCQ6RzyBX2mUeLMWbnLOLfgX4lJgZPyIQoCAPvTL/wofCJsPwPwVENJXRS+JEEeys1rOAgoQJgD5gQgjr2Qhg0cRjC4eNCiIC5dyEKMA3VYEWYh10MAtQpCsg6bYZwrJE1VUofNFanLsN6NGvUpI/kw4s3P1IeD/XmDP06MOozcZOyGKEWuVRrRNEI9eHUKaVeVnRyxnLq4gpCeDZSowNqgs01PNTmYruMEerMzG3qNRTUAVKvdGbHlLOdF0A5ODUmBW2qs3P58hDAi49QlDJTiqejjOZwz0cDiUm1QL0XUvNyZsgpJu6WCgtD+Ci5U1CtLVFr5XjarloHjjq5/1fMAQA=";
+
const ICONS = {
_create: function(content, defaultProps, customProps = {}) {
let p = { ...defaultProps, ...customProps };
@@ -55,6 +61,6 @@ const ICONS = {
inbox: (props) => ICONS._material(``, props),
avatar: function(initials, color, size) {
- return ``;
+ return ``;
}
};
diff --git a/webroot/style.css b/webroot/style.css
index f4b1f83e..02cae905 100644
--- a/webroot/style.css
+++ b/webroot/style.css
@@ -1963,17 +1963,4 @@ input:checked + .toggle-slider:before {
.voice-call-btn {
padding: 0 0.75rem;
}
-
- #voice-users {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(min(5.5rem, 100%), 1fr));
- grid-auto-rows: minmax(6.25rem, 1fr);
- align-content: stretch;
- justify-items: stretch;
- }
- .voice-tile {
- width: auto !important;
- height: auto !important;
- min-width: 0;
- }
}
diff --git a/webroot/voice.js b/webroot/voice.js
index 09dd8f0f..3235b5ed 100644
--- a/webroot/voice.js
+++ b/webroot/voice.js
@@ -2212,7 +2212,6 @@ function relayoutVoiceTiles() {
}
const gap = 0.75 * rootFs;
- const maxSize = 18 * rootFs; // jedna osoba nie dostanie gigantycznego kafelka
const minSize = 4.5 * rootFs; // poniżej tego wolimy scrollować niż spłaszczać
//Największy kwadrat, przy którym n kafelków mieści się w dostępnej powierzchni:
@@ -2228,7 +2227,7 @@ function relayoutVoiceTiles() {
if (s > best) best = s;
}
- const size = Math.min(maxSize, Math.max(minSize, Math.floor(best)));
+ const size = Math.max(minSize, Math.floor(best));
const sig = `${n}:${size}`;
if (container.dataset.layoutSig === sig) return;
container.dataset.layoutSig = sig;