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 `${initials}`; + return `${initials}`; } }; 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 `${initials}`; + return `${initials}`; } }; 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;