From a40bf5d24fb75b246b9e11908b24cdcedabcb3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Sun, 28 Jul 2024 13:44:17 +0200 Subject: [PATCH 01/58] Fix good_locale_code?/1 regex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- .../ecto_type/activity_pub/object_validators/language_code.ex | 2 +- .../activity_pub/object_validators/language_code_test.exs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/language_code.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/language_code.ex index 3135af1fa..4779deeb0 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/language_code.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/language_code.ex @@ -21,7 +21,7 @@ defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.LanguageCode do def load(data), do: {:ok, data} - def good_locale_code?(code) when is_binary(code), do: code =~ ~r<^[a-zA-Z0-9\-]+$> + def good_locale_code?(code) when is_binary(code), do: code =~ ~r<^[a-zA-Z0-9\-]+\z$> def good_locale_code?(_code), do: false end diff --git a/test/pleroma/ecto_type/activity_pub/object_validators/language_code_test.exs b/test/pleroma/ecto_type/activity_pub/object_validators/language_code_test.exs index 2261cc209..086bb3e97 100644 --- a/test/pleroma/ecto_type/activity_pub/object_validators/language_code_test.exs +++ b/test/pleroma/ecto_type/activity_pub/object_validators/language_code_test.exs @@ -20,6 +20,7 @@ defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.LanguageCodeTest do test "errors for invalid language code" do assert {:error, :invalid_language} = LanguageCode.cast("ru_RU") assert {:error, :invalid_language} = LanguageCode.cast(" ") + assert {:error, :invalid_language} = LanguageCode.cast("en-US\n") end test "errors for non-text" do From 52e9bec15655dd3ba75c133b85266a1ea65a8eef Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 28 Jun 2024 11:47:31 -0400 Subject: [PATCH 02/58] Remove WorkerHelper --- changelog.d/workerhelper.skip | 0 config/config.exs | 7 --- lib/mix/tasks/pleroma/database.ex | 10 ++-- lib/pleroma/emails/mailer.ex | 3 +- lib/pleroma/filter.ex | 11 +++-- lib/pleroma/instances/instance.ex | 3 +- lib/pleroma/mfa/token.ex | 13 +++-- lib/pleroma/object.ex | 3 +- lib/pleroma/search.ex | 6 ++- lib/pleroma/user.ex | 19 +++++--- lib/pleroma/user/import.ex | 30 +++++++----- lib/pleroma/web/activity_pub/activity_pub.ex | 18 ++++--- lib/pleroma/web/activity_pub/publisher.ex | 6 +-- lib/pleroma/web/activity_pub/side_effects.ex | 14 ++++-- lib/pleroma/web/common_api.ex | 6 +-- lib/pleroma/web/federator.ex | 27 +++++++---- lib/pleroma/web/o_auth/token.ex | 9 ++-- lib/pleroma/web/push.ex | 2 +- .../workers/attachments_cleanup_worker.ex | 6 +-- lib/pleroma/workers/background_worker.ex | 8 ++-- lib/pleroma/workers/backup_worker.ex | 4 +- .../workers/cron/digest_emails_worker.ex | 4 +- .../workers/cron/new_users_digest_worker.ex | 6 +-- lib/pleroma/workers/delete_worker.ex | 7 ++- lib/pleroma/workers/mailer_worker.ex | 6 +-- lib/pleroma/workers/mute_expire_worker.ex | 6 +-- lib/pleroma/workers/poll_worker.ex | 6 +-- lib/pleroma/workers/publisher_worker.ex | 22 ++++++--- lib/pleroma/workers/purge_expired_activity.ex | 11 ++--- lib/pleroma/workers/purge_expired_filter.ex | 2 +- lib/pleroma/workers/purge_expired_token.ex | 12 +---- lib/pleroma/workers/receiver_worker.ex | 6 +-- lib/pleroma/workers/remote_fetcher_worker.ex | 6 +-- lib/pleroma/workers/rich_media_worker.ex | 4 +- .../workers/scheduled_activity_worker.ex | 6 +-- lib/pleroma/workers/search_indexing_worker.ex | 6 +-- lib/pleroma/workers/user_refresh_worker.ex | 2 +- lib/pleroma/workers/web_pusher_worker.ex | 6 +-- lib/pleroma/workers/worker_helper.ex | 48 ------------------- test/mix/tasks/pleroma/database_test.exs | 10 ++-- .../workers/purge_expired_activity_test.exs | 30 +++++++----- 41 files changed, 200 insertions(+), 211 deletions(-) create mode 100644 changelog.d/workerhelper.skip delete mode 100644 lib/pleroma/workers/worker_helper.ex diff --git a/changelog.d/workerhelper.skip b/changelog.d/workerhelper.skip new file mode 100644 index 000000000..e69de29bb diff --git a/config/config.exs b/config/config.exs index 4780892f7..b835a7c80 100644 --- a/config/config.exs +++ b/config/config.exs @@ -600,13 +600,6 @@ config :pleroma, Oban, {"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker} ] -config :pleroma, :workers, - retries: [ - federator_incoming: 5, - federator_outgoing: 5, - search_indexing: 2 - ] - config :pleroma, Pleroma.Formatter, class: false, rel: "ugc", diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index b82d1f079..e52b5e0a7 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -295,10 +295,12 @@ defmodule Mix.Tasks.Pleroma.Database do |> DateTime.from_naive!("Etc/UTC") |> Timex.shift(days: days) - Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ - activity_id: activity.id, - expires_at: expires_at - }) + Pleroma.Workers.PurgeExpiredActivity.enqueue( + %{ + activity_id: activity.id + }, + scheduled_at: expires_at + ) end) end) |> Stream.run() diff --git a/lib/pleroma/emails/mailer.ex b/lib/pleroma/emails/mailer.ex index 101442130..2a80f8547 100644 --- a/lib/pleroma/emails/mailer.ex +++ b/lib/pleroma/emails/mailer.ex @@ -25,7 +25,8 @@ defmodule Pleroma.Emails.Mailer do |> :erlang.term_to_binary() |> Base.encode64() - MailerWorker.enqueue("email", %{"encoded_email" => encoded_email, "config" => config}) + MailerWorker.new(%{"op" => "email", "encoded_email" => encoded_email, "config" => config}) + |> Oban.insert() end @doc "callback to perform send email from queue" diff --git a/lib/pleroma/filter.ex b/lib/pleroma/filter.ex index e827d3cbc..77ed64d4f 100644 --- a/lib/pleroma/filter.ex +++ b/lib/pleroma/filter.ex @@ -133,10 +133,13 @@ defmodule Pleroma.Filter do defp maybe_add_expires_at(changeset, _), do: changeset defp maybe_add_expiration_job(%{expires_at: %NaiveDateTime{} = expires_at} = filter) do - Pleroma.Workers.PurgeExpiredFilter.enqueue(%{ - filter_id: filter.id, - expires_at: DateTime.from_naive!(expires_at, "Etc/UTC") - }) + Pleroma.Workers.PurgeExpiredFilter.new( + %{ + filter_id: filter.id + }, + scheduled_at: DateTime.from_naive!(expires_at, "Etc/UTC") + ) + |> Oban.insert() end defp maybe_add_expiration_job(_), do: {:ok, nil} diff --git a/lib/pleroma/instances/instance.ex b/lib/pleroma/instances/instance.ex index 288555146..33f1229d0 100644 --- a/lib/pleroma/instances/instance.ex +++ b/lib/pleroma/instances/instance.ex @@ -297,7 +297,8 @@ defmodule Pleroma.Instances.Instance do all of those users' activities and notifications. """ def delete_users_and_activities(host) when is_binary(host) do - DeleteWorker.enqueue("delete_instance", %{"host" => host}) + DeleteWorker.new(%{"op" => "delete_instance", "host" => host}) + |> Oban.insert() end def perform(:delete_instance, host) when is_binary(host) do diff --git a/lib/pleroma/mfa/token.ex b/lib/pleroma/mfa/token.ex index 57bc11ed5..b53e1c7d0 100644 --- a/lib/pleroma/mfa/token.ex +++ b/lib/pleroma/mfa/token.ex @@ -52,11 +52,14 @@ defmodule Pleroma.MFA.Token do @spec create(User.t(), Authorization.t() | nil) :: {:ok, t()} | {:error, Ecto.Changeset.t()} def create(user, authorization \\ nil) do with {:ok, token} <- do_create(user, authorization) do - Pleroma.Workers.PurgeExpiredToken.enqueue(%{ - token_id: token.id, - valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"), - mod: __MODULE__ - }) + Pleroma.Workers.PurgeExpiredToken.new( + %{ + token_id: token.id, + mod: __MODULE__ + }, + scheduled_at: DateTime.from_naive!(token.valid_until, "Etc/UTC") + ) + |> Oban.insert() {:ok, token} end diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index eb44b3855..748f18e6c 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -255,7 +255,8 @@ defmodule Pleroma.Object do @spec cleanup_attachments(boolean(), Object.t()) :: {:ok, Oban.Job.t() | nil} def cleanup_attachments(true, %Object{} = object) do - AttachmentsCleanupWorker.enqueue("cleanup_attachments", %{"object" => object}) + AttachmentsCleanupWorker.new(%{"op" => "cleanup_attachments", "object" => object}) + |> Oban.insert() end def cleanup_attachments(_, _), do: {:ok, nil} diff --git a/lib/pleroma/search.ex b/lib/pleroma/search.ex index b9d2a0188..30b3ba958 100644 --- a/lib/pleroma/search.ex +++ b/lib/pleroma/search.ex @@ -2,11 +2,13 @@ defmodule Pleroma.Search do alias Pleroma.Workers.SearchIndexingWorker def add_to_index(%Pleroma.Activity{id: activity_id}) do - SearchIndexingWorker.enqueue("add_to_index", %{"activity" => activity_id}) + SearchIndexingWorker.new(%{"op" => "add_to_index", "activity" => activity_id}) + |> Oban.insert() end def remove_from_index(%Pleroma.Object{id: object_id}) do - SearchIndexingWorker.enqueue("remove_from_index", %{"object" => object_id}) + SearchIndexingWorker.new(%{"op" => "remove_from_index", "object" => object_id}) + |> Oban.insert() end def search(query, options) do diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index e28d76a7c..0e9d70831 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -736,7 +736,8 @@ defmodule Pleroma.User do end def force_password_reset_async(user) do - BackgroundWorker.enqueue("force_password_reset", %{"user_id" => user.id}) + BackgroundWorker.new(%{"op" => "force_password_reset", "user_id" => user.id}) + |> Oban.insert() end @spec force_password_reset(User.t()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} @@ -1218,7 +1219,8 @@ defmodule Pleroma.User do def update_and_set_cache(changeset) do with {:ok, user} <- Repo.update(changeset, stale_error_field: :id) do if get_change(changeset, :raw_fields) do - BackgroundWorker.enqueue("verify_fields_links", %{"user_id" => user.id}) + BackgroundWorker.new(%{"op" => "verify_fields_links", "user_id" => user.id}) + |> Oban.insert() end set_cache(user) @@ -1589,11 +1591,11 @@ defmodule Pleroma.User do )) || {:ok, nil} do if duration > 0 do - Pleroma.Workers.MuteExpireWorker.enqueue( - "unmute_user", - %{"muter_id" => muter.id, "mutee_id" => mutee.id}, + Pleroma.Workers.MuteExpireWorker.new( + %{"op" => "unmute_user", "muter_id" => muter.id, "mutee_id" => mutee.id}, scheduled_at: expires_at ) + |> Oban.insert() end @cachex.del(:user_cache, "muted_users_ap_ids:#{muter.ap_id}") @@ -1836,7 +1838,8 @@ defmodule Pleroma.User do defp maybe_filter_on_ap_id(query, _ap_ids), do: query def set_activation_async(user, status \\ true) do - BackgroundWorker.enqueue("user_activation", %{"user_id" => user.id, "status" => status}) + BackgroundWorker.new(%{"op" => "user_activation", "user_id" => user.id, "status" => status}) + |> Oban.insert() end @spec set_activation([User.t()], boolean()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} @@ -1983,7 +1986,9 @@ defmodule Pleroma.User do def delete(%User{} = user) do # Purge the user immediately purge(user) - DeleteWorker.enqueue("delete_user", %{"user_id" => user.id}) + + DeleteWorker.new(%{"op" => "delete_user", "user_id" => user.id}) + |> Oban.insert() end # *Actually* delete the user from the DB diff --git a/lib/pleroma/user/import.ex b/lib/pleroma/user/import.ex index 53ffd1ab3..11905237c 100644 --- a/lib/pleroma/user/import.ex +++ b/lib/pleroma/user/import.ex @@ -63,23 +63,29 @@ defmodule Pleroma.User.Import do end def blocks_import(%User{} = blocker, [_ | _] = identifiers) do - BackgroundWorker.enqueue( - "blocks_import", - %{"user_id" => blocker.id, "identifiers" => identifiers} - ) + BackgroundWorker.new(%{ + "op" => "blocks_import", + "user_id" => blocker.id, + "identifiers" => identifiers + }) + |> Oban.insert() end def follow_import(%User{} = follower, [_ | _] = identifiers) do - BackgroundWorker.enqueue( - "follow_import", - %{"user_id" => follower.id, "identifiers" => identifiers} - ) + BackgroundWorker.new(%{ + "op" => "follow_import", + "user_id" => follower.id, + "identifiers" => identifiers + }) + |> Oban.insert() end def mutes_import(%User{} = user, [_ | _] = identifiers) do - BackgroundWorker.enqueue( - "mutes_import", - %{"user_id" => user.id, "identifiers" => identifiers} - ) + BackgroundWorker.new(%{ + "op" => "mutes_import", + "user_id" => user.id, + "identifiers" => identifiers + }) + |> Oban.insert() end end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index b30b0cabe..a2a94a0ff 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -222,10 +222,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do %{data: %{"expires_at" => %DateTime{} = expires_at}} = activity ) do with {:ok, _job} <- - Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ - activity_id: activity.id, - expires_at: expires_at - }) do + Pleroma.Workers.PurgeExpiredActivity.enqueue( + %{ + activity_id: activity.id + }, + scheduled_at: expires_at + ) do {:ok, activity} end end @@ -446,10 +448,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do _ <- notify_and_stream(activity) do maybe_federate(activity) - BackgroundWorker.enqueue("move_following", %{ + BackgroundWorker.new(%{ + "op" => "move_following", "origin_id" => origin.id, "target_id" => target.id }) + |> Oban.insert() {:ok, activity} else @@ -1797,10 +1801,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do # enqueue a task to fetch all pinned objects Enum.each(pins, fn {ap_id, _} -> if is_nil(Object.get_cached_by_ap_id(ap_id)) do - Pleroma.Workers.RemoteFetcherWorker.enqueue("fetch_remote", %{ + Pleroma.Workers.RemoteFetcherWorker.new(%{ + "op" => "fetch_remote", "id" => ap_id, "depth" => 1 }) + |> Oban.insert() end end) end diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex index e040753dc..f71652cb7 100644 --- a/lib/pleroma/web/activity_pub/publisher.ex +++ b/lib/pleroma/web/activity_pub/publisher.ex @@ -30,11 +30,11 @@ defmodule Pleroma.Web.ActivityPub.Publisher do """ @spec enqueue_one(map(), Keyword.t()) :: {:ok, %Oban.Job{}} def enqueue_one(%{} = params, worker_args \\ []) do - PublisherWorker.enqueue( - "publish_one", - %{"params" => params}, + PublisherWorker.new( + %{"op" => "publish_one", "params" => params}, worker_args ) + |> Oban.insert() end @doc """ diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index cc1c7a0af..d6d403671 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -223,10 +223,12 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do if Pleroma.Web.Federator.allowed_thread_distance?(reply_depth) and object.data["replies"] != nil do for reply_id <- object.data["replies"] do - Pleroma.Workers.RemoteFetcherWorker.enqueue("fetch_remote", %{ + Pleroma.Workers.RemoteFetcherWorker.new(%{ + "op" => "fetch_remote", "id" => reply_id, "depth" => reply_depth }) + |> Oban.insert() end end @@ -410,10 +412,12 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do {:ok, expires_at} = Pleroma.EctoType.ActivityPub.ObjectValidators.DateTime.cast(meta[:expires_at]) - Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ - activity_id: meta[:activity_id], - expires_at: expires_at - }) + Pleroma.Workers.PurgeExpiredActivity.enqueue( + %{ + activity_id: meta[:activity_id] + }, + scheduled_at: expires_at + ) end {:ok, object, meta} diff --git a/lib/pleroma/web/common_api.ex b/lib/pleroma/web/common_api.ex index b90b6a6d9..1ed905d6c 100644 --- a/lib/pleroma/web/common_api.ex +++ b/lib/pleroma/web/common_api.ex @@ -559,11 +559,11 @@ defmodule Pleroma.Web.CommonAPI do with {:ok, _} <- ThreadMute.add_mute(user.id, activity.data["context"]), _ <- Pleroma.Notification.mark_context_as_read(user, activity.data["context"]) do if expires_in > 0 do - Pleroma.Workers.MuteExpireWorker.enqueue( - "unmute_conversation", - %{"user_id" => user.id, "activity_id" => activity.id}, + Pleroma.Workers.MuteExpireWorker.new( + %{"op" => "unmute_conversation", "user_id" => user.id, "activity_id" => activity.id}, schedule_in: expires_in ) + |> Oban.insert() end {:ok, activity} diff --git a/lib/pleroma/web/federator.ex b/lib/pleroma/web/federator.ex index 3d3101d61..c740fc85f 100644 --- a/lib/pleroma/web/federator.ex +++ b/lib/pleroma/web/federator.ex @@ -35,22 +35,30 @@ defmodule Pleroma.Web.Federator do end # Client API - def incoming_ap_doc(%{params: _params, req_headers: _req_headers} = args) do - job_args = Enum.into(args, %{}, fn {k, v} -> {Atom.to_string(k), v} end) - - ReceiverWorker.enqueue( - "incoming_ap_doc", - Map.put(job_args, "timeout", :timer.seconds(20)), + def incoming_ap_doc(%{params: params, req_headers: req_headers}) do + ReceiverWorker.new( + %{ + "op" => "incoming_ap_doc", + "req_headers" => req_headers, + "params" => params, + "timeout" => :timer.seconds(20) + }, priority: 2 ) + |> Oban.insert() end def incoming_ap_doc(%{"type" => "Delete"} = params) do - ReceiverWorker.enqueue("incoming_ap_doc", %{"params" => params}, priority: 3, queue: :slow) + ReceiverWorker.new(%{"op" => "incoming_ap_doc", "params" => params}, + priority: 3, + queue: :slow + ) + |> Oban.insert() end def incoming_ap_doc(params) do - ReceiverWorker.enqueue("incoming_ap_doc", %{"params" => params}) + ReceiverWorker.new(%{"op" => "incoming_ap_doc", "params" => params}) + |> Oban.insert() end @impl true @@ -60,9 +68,10 @@ defmodule Pleroma.Web.Federator do @impl true def publish(%Pleroma.Activity{data: %{"type" => type}} = activity) do - PublisherWorker.enqueue("publish", %{"activity_id" => activity.id}, + PublisherWorker.new(%{"op" => "publish", "activity_id" => activity.id}, priority: publish_priority(type) ) + |> Oban.insert() end defp publish_priority("Delete"), do: 3 diff --git a/lib/pleroma/web/o_auth/token.ex b/lib/pleroma/web/o_auth/token.ex index 9b1198b42..d96425094 100644 --- a/lib/pleroma/web/o_auth/token.ex +++ b/lib/pleroma/web/o_auth/token.ex @@ -100,11 +100,10 @@ defmodule Pleroma.Web.OAuth.Token do def create(%App{} = app, %User{} = user, attrs \\ %{}) do with {:ok, token} <- do_create(app, user, attrs) do if Pleroma.Config.get([:oauth2, :clean_expired_tokens]) do - Pleroma.Workers.PurgeExpiredToken.enqueue(%{ - token_id: token.id, - valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"), - mod: __MODULE__ - }) + Pleroma.Workers.PurgeExpiredToken.new(%{token_id: token.id, mod: __MODULE__}, + scheduled_at: DateTime.from_naive!(token.valid_until, "Etc/UTC") + ) + |> Oban.insert() end {:ok, token} diff --git a/lib/pleroma/web/push.ex b/lib/pleroma/web/push.ex index d4693f63e..d783f776a 100644 --- a/lib/pleroma/web/push.ex +++ b/lib/pleroma/web/push.ex @@ -28,6 +28,6 @@ defmodule Pleroma.Web.Push do @spec send(Pleroma.Notification.t()) :: {:ok, Oban.Job.t()} | {:error, Oban.Job.changeset() | term()} def send(notification) do - WebPusherWorker.enqueue("web_push", %{"notification_id" => notification.id}) + WebPusherWorker.new(%{"op" => "web_push", "notification_id" => notification.id}) end end diff --git a/lib/pleroma/workers/attachments_cleanup_worker.ex b/lib/pleroma/workers/attachments_cleanup_worker.ex index 0b570b70b..e2f92b1fd 100644 --- a/lib/pleroma/workers/attachments_cleanup_worker.ex +++ b/lib/pleroma/workers/attachments_cleanup_worker.ex @@ -8,9 +8,9 @@ defmodule Pleroma.Workers.AttachmentsCleanupWorker do alias Pleroma.Object alias Pleroma.Repo - use Pleroma.Workers.WorkerHelper, queue: "slow" + use Oban.Worker, queue: :slow - @impl Oban.Worker + @impl true def perform(%Job{ args: %{ "op" => "cleanup_attachments", @@ -31,7 +31,7 @@ defmodule Pleroma.Workers.AttachmentsCleanupWorker do def perform(%Job{args: %{"op" => "cleanup_attachments", "object" => _object}}), do: {:ok, :skip} - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(900) defp do_clean({object_ids, attachment_urls}) do diff --git a/lib/pleroma/workers/background_worker.ex b/lib/pleroma/workers/background_worker.ex index 870aef3c6..60da2d5ca 100644 --- a/lib/pleroma/workers/background_worker.ex +++ b/lib/pleroma/workers/background_worker.ex @@ -5,9 +5,9 @@ defmodule Pleroma.Workers.BackgroundWorker do alias Pleroma.User - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "user_activation", "user_id" => user_id, "status" => status}}) do user = User.get_cached_by_id(user_id) @@ -39,6 +39,6 @@ defmodule Pleroma.Workers.BackgroundWorker do User.perform(:verify_fields_links, user) end - @impl Oban.Worker - def timeout(_job), do: :timer.seconds(15) + @impl true + def timeout(_job), do: :timer.seconds(900) end diff --git a/lib/pleroma/workers/backup_worker.ex b/lib/pleroma/workers/backup_worker.ex index d1b6fcdad..6466d8d73 100644 --- a/lib/pleroma/workers/backup_worker.ex +++ b/lib/pleroma/workers/backup_worker.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Workers.BackupWorker do alias Pleroma.Config.Getting, as: Config alias Pleroma.User.Backup - @impl Oban.Worker + @impl true def perform(%Job{ args: %{"op" => "process", "backup_id" => backup_id} }) do @@ -32,7 +32,7 @@ defmodule Pleroma.Workers.BackupWorker do end end - @impl Oban.Worker + @impl true def timeout(_job), do: Config.get([Backup, :timeout], :timer.minutes(30)) defp has_email?(user) do diff --git a/lib/pleroma/workers/cron/digest_emails_worker.ex b/lib/pleroma/workers/cron/digest_emails_worker.ex index 17e92d10b..b50b52a7b 100644 --- a/lib/pleroma/workers/cron/digest_emails_worker.ex +++ b/lib/pleroma/workers/cron/digest_emails_worker.ex @@ -18,7 +18,7 @@ defmodule Pleroma.Workers.Cron.DigestEmailsWorker do require Logger - @impl Oban.Worker + @impl true def perform(_job) do config = Config.get([:email_notifications, :digest]) @@ -59,6 +59,6 @@ defmodule Pleroma.Workers.Cron.DigestEmailsWorker do User.touch_last_digest_emailed_at(user) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/cron/new_users_digest_worker.ex b/lib/pleroma/workers/cron/new_users_digest_worker.ex index 1f57aad4a..787649983 100644 --- a/lib/pleroma/workers/cron/new_users_digest_worker.ex +++ b/lib/pleroma/workers/cron/new_users_digest_worker.ex @@ -9,9 +9,9 @@ defmodule Pleroma.Workers.Cron.NewUsersDigestWorker do import Ecto.Query - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background - @impl Oban.Worker + @impl true def perform(_job) do if Pleroma.Config.get([Pleroma.Emails.NewUsersDigestEmail, :enabled]) do today = NaiveDateTime.utc_now() |> Timex.beginning_of_day() @@ -61,6 +61,6 @@ defmodule Pleroma.Workers.Cron.NewUsersDigestWorker do :ok end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/delete_worker.ex b/lib/pleroma/workers/delete_worker.ex index 97003fb69..6a1c7bb38 100644 --- a/lib/pleroma/workers/delete_worker.ex +++ b/lib/pleroma/workers/delete_worker.ex @@ -6,10 +6,9 @@ defmodule Pleroma.Workers.DeleteWorker do alias Pleroma.Instances.Instance alias Pleroma.User - use Pleroma.Workers.WorkerHelper, queue: "slow" - - @impl Oban.Worker + use Oban.Worker, queue: :slow + @impl true def perform(%Job{args: %{"op" => "delete_user", "user_id" => user_id}}) do user = User.get_cached_by_id(user_id) User.perform(:delete, user) @@ -19,6 +18,6 @@ defmodule Pleroma.Workers.DeleteWorker do Instance.perform(:delete_instance, host) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(900) end diff --git a/lib/pleroma/workers/mailer_worker.ex b/lib/pleroma/workers/mailer_worker.ex index 652bf77e0..b0259b191 100644 --- a/lib/pleroma/workers/mailer_worker.ex +++ b/lib/pleroma/workers/mailer_worker.ex @@ -3,9 +3,9 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.MailerWorker do - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "email", "encoded_email" => encoded_email, "config" => config}}) do encoded_email |> Base.decode64!() @@ -13,6 +13,6 @@ defmodule Pleroma.Workers.MailerWorker do |> Pleroma.Emails.Mailer.deliver(config) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/mute_expire_worker.ex b/lib/pleroma/workers/mute_expire_worker.ex index a7ab5883a..8356a775d 100644 --- a/lib/pleroma/workers/mute_expire_worker.ex +++ b/lib/pleroma/workers/mute_expire_worker.ex @@ -3,9 +3,9 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.MuteExpireWorker do - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "unmute_user", "muter_id" => muter_id, "mutee_id" => mutee_id}}) do Pleroma.User.unmute(muter_id, mutee_id) :ok @@ -18,6 +18,6 @@ defmodule Pleroma.Workers.MuteExpireWorker do :ok end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/poll_worker.ex b/lib/pleroma/workers/poll_worker.ex index af8997e70..d263aa1b9 100644 --- a/lib/pleroma/workers/poll_worker.ex +++ b/lib/pleroma/workers/poll_worker.ex @@ -6,13 +6,13 @@ defmodule Pleroma.Workers.PollWorker do @moduledoc """ Generates notifications when a poll ends. """ - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background alias Pleroma.Activity alias Pleroma.Notification alias Pleroma.Object - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "poll_end", "activity_id" => activity_id}}) do with %Activity{} = activity <- find_poll_activity(activity_id), {:ok, notifications} <- Notification.create_poll_notifications(activity) do @@ -23,7 +23,7 @@ defmodule Pleroma.Workers.PollWorker do end end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) defp find_poll_activity(activity_id) do diff --git a/lib/pleroma/workers/publisher_worker.ex b/lib/pleroma/workers/publisher_worker.ex index 63fcf4ac2..7d9b022de 100644 --- a/lib/pleroma/workers/publisher_worker.ex +++ b/lib/pleroma/workers/publisher_worker.ex @@ -6,13 +6,9 @@ defmodule Pleroma.Workers.PublisherWorker do alias Pleroma.Activity alias Pleroma.Web.Federator - use Pleroma.Workers.WorkerHelper, queue: "federator_outgoing" + use Oban.Worker, queue: :federator_outgoing, max_attempts: 5 - def backoff(%Job{attempt: attempt}) when is_integer(attempt) do - Pleroma.Workers.WorkerHelper.sidekiq_backoff(attempt, 5) - end - - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "publish", "activity_id" => activity_id}}) do activity = Activity.get_by_id(activity_id) Federator.perform(:publish, activity) @@ -23,6 +19,18 @@ defmodule Pleroma.Workers.PublisherWorker do Federator.perform(:publish_one, params) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(10) + + @base_backoff 15 + @pow 5 + @impl true + def backoff(%Job{attempt: attempt}) when is_integer(attempt) do + backoff = + :math.pow(attempt, @pow) + + @base_backoff + + :rand.uniform(2 * @base_backoff) * attempt + + trunc(backoff) + end end diff --git a/lib/pleroma/workers/purge_expired_activity.ex b/lib/pleroma/workers/purge_expired_activity.ex index f48e34042..f05e75f46 100644 --- a/lib/pleroma/workers/purge_expired_activity.ex +++ b/lib/pleroma/workers/purge_expired_activity.ex @@ -13,16 +13,13 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do alias Pleroma.Activity - @spec enqueue(map()) :: + @spec enqueue(map(), list()) :: {:ok, Oban.Job.t()} | {:error, :expired_activities_disabled} | {:error, :expiration_too_close} - def enqueue(args) do + def enqueue(params, worker_args) do with true <- enabled?() do - {scheduled_at, args} = Map.pop(args, :expires_at) - - args - |> new(scheduled_at: scheduled_at) + new(params, worker_args) |> Oban.insert() end end @@ -35,7 +32,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do end end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) defp enabled? do diff --git a/lib/pleroma/workers/purge_expired_filter.ex b/lib/pleroma/workers/purge_expired_filter.ex index 1f6931e4c..0405f6684 100644 --- a/lib/pleroma/workers/purge_expired_filter.ex +++ b/lib/pleroma/workers/purge_expired_filter.ex @@ -31,7 +31,7 @@ defmodule Pleroma.Workers.PurgeExpiredFilter do |> Repo.delete() end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) @spec get_expiration(pos_integer()) :: Job.t() | nil diff --git a/lib/pleroma/workers/purge_expired_token.ex b/lib/pleroma/workers/purge_expired_token.ex index 1854bf561..ff962f21b 100644 --- a/lib/pleroma/workers/purge_expired_token.ex +++ b/lib/pleroma/workers/purge_expired_token.ex @@ -9,16 +9,6 @@ defmodule Pleroma.Workers.PurgeExpiredToken do use Oban.Worker, queue: :background, max_attempts: 1 - @spec enqueue(%{token_id: integer(), valid_until: DateTime.t(), mod: module()}) :: - {:ok, Oban.Job.t()} | {:error, Ecto.Changeset.t()} - def enqueue(args) do - {scheduled_at, args} = Map.pop(args, :valid_until) - - args - |> __MODULE__.new(scheduled_at: scheduled_at) - |> Oban.insert() - end - @impl true def perform(%Oban.Job{args: %{"token_id" => id, "mod" => module}}) do module @@ -27,6 +17,6 @@ defmodule Pleroma.Workers.PurgeExpiredToken do |> Pleroma.Repo.delete() end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex index fd5c13fca..d4db97b63 100644 --- a/lib/pleroma/workers/receiver_worker.ex +++ b/lib/pleroma/workers/receiver_worker.ex @@ -7,9 +7,9 @@ defmodule Pleroma.Workers.ReceiverWorker do alias Pleroma.User alias Pleroma.Web.Federator - use Pleroma.Workers.WorkerHelper, queue: "federator_incoming" + use Oban.Worker, queue: :federator_incoming, max_attempts: 5 - @impl Oban.Worker + @impl true def perform(%Job{ args: %{ @@ -51,7 +51,7 @@ defmodule Pleroma.Workers.ReceiverWorker do end end - @impl Oban.Worker + @impl true def timeout(%_{args: %{"timeout" => timeout}}), do: timeout def timeout(_job), do: :timer.seconds(5) diff --git a/lib/pleroma/workers/remote_fetcher_worker.ex b/lib/pleroma/workers/remote_fetcher_worker.ex index 60096e14b..e43765733 100644 --- a/lib/pleroma/workers/remote_fetcher_worker.ex +++ b/lib/pleroma/workers/remote_fetcher_worker.ex @@ -5,9 +5,9 @@ defmodule Pleroma.Workers.RemoteFetcherWorker do alias Pleroma.Object.Fetcher - use Pleroma.Workers.WorkerHelper, queue: "background" + use Oban.Worker, queue: :background - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "fetch_remote", "id" => id} = args}) do case Fetcher.fetch_object_from_id(id, depth: args["depth"]) do {:ok, _object} -> @@ -30,6 +30,6 @@ defmodule Pleroma.Workers.RemoteFetcherWorker do end end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(15) end diff --git a/lib/pleroma/workers/rich_media_worker.ex b/lib/pleroma/workers/rich_media_worker.ex index 2ebf42d4f..d5ba7b63e 100644 --- a/lib/pleroma/workers/rich_media_worker.ex +++ b/lib/pleroma/workers/rich_media_worker.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Workers.RichMediaWorker do use Oban.Worker, queue: :background, max_attempts: 3, unique: [period: 300] - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "expire", "url" => url} = _args}) do Card.delete(url) end @@ -33,7 +33,7 @@ defmodule Pleroma.Workers.RichMediaWorker do # a slow/infinite data stream and insert a negative cache entry for the URL # We pad it by 2 seconds to be certain a slow connection is detected and we # can inject a negative cache entry for the URL - @impl Oban.Worker + @impl true def timeout(_job) do Config.get!([:rich_media, :timeout]) + :timer.seconds(2) end diff --git a/lib/pleroma/workers/scheduled_activity_worker.ex b/lib/pleroma/workers/scheduled_activity_worker.ex index ab62686f4..da386e0c3 100644 --- a/lib/pleroma/workers/scheduled_activity_worker.ex +++ b/lib/pleroma/workers/scheduled_activity_worker.ex @@ -7,7 +7,7 @@ defmodule Pleroma.Workers.ScheduledActivityWorker do The worker to post scheduled activity. """ - use Pleroma.Workers.WorkerHelper, queue: "federator_outgoing" + use Oban.Worker, queue: :federator_outgoing, max_attempts: 5 alias Pleroma.Repo alias Pleroma.ScheduledActivity @@ -15,7 +15,7 @@ defmodule Pleroma.Workers.ScheduledActivityWorker do require Logger - @impl Oban.Worker + @impl true def perform(%Job{args: %{"activity_id" => activity_id}}) do with %ScheduledActivity{} = scheduled_activity <- find_scheduled_activity(activity_id), %User{} = user <- find_user(scheduled_activity.user_id) do @@ -37,7 +37,7 @@ defmodule Pleroma.Workers.ScheduledActivityWorker do end end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) defp find_scheduled_activity(id) do diff --git a/lib/pleroma/workers/search_indexing_worker.ex b/lib/pleroma/workers/search_indexing_worker.ex index 8969ae378..001f5254d 100644 --- a/lib/pleroma/workers/search_indexing_worker.ex +++ b/lib/pleroma/workers/search_indexing_worker.ex @@ -1,7 +1,7 @@ defmodule Pleroma.Workers.SearchIndexingWorker do - use Pleroma.Workers.WorkerHelper, queue: "search_indexing" + use Oban.Worker, queue: :search_indexing, max_attempts: 2 - @impl Oban.Worker + @impl true alias Pleroma.Config.Getting, as: Config @@ -21,6 +21,6 @@ defmodule Pleroma.Workers.SearchIndexingWorker do search_module.remove_from_index(object) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/user_refresh_worker.ex b/lib/pleroma/workers/user_refresh_worker.ex index fb90e9c9c..222a4a8f7 100644 --- a/lib/pleroma/workers/user_refresh_worker.ex +++ b/lib/pleroma/workers/user_refresh_worker.ex @@ -12,6 +12,6 @@ defmodule Pleroma.Workers.UserRefreshWorker do User.fetch_by_ap_id(ap_id) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(15) end diff --git a/lib/pleroma/workers/web_pusher_worker.ex b/lib/pleroma/workers/web_pusher_worker.ex index c549d3cd6..f4232d02a 100644 --- a/lib/pleroma/workers/web_pusher_worker.ex +++ b/lib/pleroma/workers/web_pusher_worker.ex @@ -7,9 +7,9 @@ defmodule Pleroma.Workers.WebPusherWorker do alias Pleroma.Repo alias Pleroma.Web.Push.Impl - use Pleroma.Workers.WorkerHelper, queue: "web_push" + use Oban.Worker, queue: :web_push - @impl Oban.Worker + @impl true def perform(%Job{args: %{"op" => "web_push", "notification_id" => notification_id}}) do notification = Notification @@ -20,6 +20,6 @@ defmodule Pleroma.Workers.WebPusherWorker do |> Enum.each(&Impl.deliver(&1)) end - @impl Oban.Worker + @impl true def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/worker_helper.ex b/lib/pleroma/workers/worker_helper.ex deleted file mode 100644 index 1d20cbd89..000000000 --- a/lib/pleroma/workers/worker_helper.ex +++ /dev/null @@ -1,48 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2022 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Workers.WorkerHelper do - alias Pleroma.Config - alias Pleroma.Workers.WorkerHelper - - def worker_args(queue) do - case Config.get([:workers, :retries, queue]) do - nil -> [] - max_attempts -> [max_attempts: max_attempts] - end - end - - def sidekiq_backoff(attempt, pow \\ 4, base_backoff \\ 15) do - backoff = - :math.pow(attempt, pow) + - base_backoff + - :rand.uniform(2 * base_backoff) * attempt - - trunc(backoff) - end - - defmacro __using__(opts) do - caller_module = __CALLER__.module - queue = Keyword.fetch!(opts, :queue) - - quote do - # Note: `max_attempts` is intended to be overridden in `new/2` call - use Oban.Worker, - queue: unquote(queue), - max_attempts: 1 - - alias Oban.Job - - def enqueue(op, params, worker_args \\ []) do - params = Map.merge(%{"op" => op}, params) - queue_atom = String.to_atom(unquote(queue)) - worker_args = worker_args ++ WorkerHelper.worker_args(queue_atom) - - unquote(caller_module) - |> apply(:new, [params, worker_args]) - |> Oban.insert() - end - end - end -end diff --git a/test/mix/tasks/pleroma/database_test.exs b/test/mix/tasks/pleroma/database_test.exs index a51a3bf3d..96a925528 100644 --- a/test/mix/tasks/pleroma/database_test.exs +++ b/test/mix/tasks/pleroma/database_test.exs @@ -623,10 +623,12 @@ defmodule Mix.Tasks.Pleroma.DatabaseTest do expires_at = DateTime.add(DateTime.utc_now(), 60 * 61) - Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ - activity_id: activity_id3, - expires_at: expires_at - }) + Pleroma.Workers.PurgeExpiredActivity.enqueue( + %{ + activity_id: activity_id3 + }, + scheduled_at: expires_at + ) Mix.Tasks.Pleroma.Database.run(["ensure_expiration"]) diff --git a/test/pleroma/workers/purge_expired_activity_test.exs b/test/pleroma/workers/purge_expired_activity_test.exs index 040ff6a51..ea563d3d3 100644 --- a/test/pleroma/workers/purge_expired_activity_test.exs +++ b/test/pleroma/workers/purge_expired_activity_test.exs @@ -14,10 +14,12 @@ defmodule Pleroma.Workers.PurgeExpiredActivityTest do activity = insert(:note_activity) assert {:ok, _} = - PurgeExpiredActivity.enqueue(%{ - activity_id: activity.id, - expires_at: DateTime.add(DateTime.utc_now(), 3601) - }) + PurgeExpiredActivity.enqueue( + %{ + activity_id: activity.id + }, + scheduled_at: DateTime.add(DateTime.utc_now(), 3601) + ) assert_enqueued( worker: Pleroma.Workers.PurgeExpiredActivity, @@ -34,10 +36,12 @@ defmodule Pleroma.Workers.PurgeExpiredActivityTest do activity = insert(:note_activity) assert {:ok, _} = - PurgeExpiredActivity.enqueue(%{ - activity_id: activity.id, - expires_at: DateTime.add(DateTime.utc_now(), 3601) - }) + PurgeExpiredActivity.enqueue( + %{ + activity_id: activity.id + }, + scheduled_at: DateTime.add(DateTime.utc_now(), 3601) + ) user = Pleroma.User.get_by_ap_id(activity.actor) Pleroma.Repo.delete(user) @@ -48,10 +52,12 @@ defmodule Pleroma.Workers.PurgeExpiredActivityTest do test "error if actiivity was not found" do assert {:ok, _} = - PurgeExpiredActivity.enqueue(%{ - activity_id: "some_id", - expires_at: DateTime.add(DateTime.utc_now(), 3601) - }) + PurgeExpiredActivity.enqueue( + %{ + activity_id: "some_id" + }, + scheduled_at: DateTime.add(DateTime.utc_now(), 3601) + ) assert {:cancel, :activity_not_found} = perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: "some_if"}) From 1d3a92be1101b04d1b69b8b3fd030d5d06f4dbea Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 28 Jun 2024 12:06:43 -0400 Subject: [PATCH 03/58] Remove :workers config from ConfigDB --- config/description.exs | 17 ----------------- ...240628160536_deprecate_config_db_workers.exs | 7 +++++++ 2 files changed, 7 insertions(+), 17 deletions(-) create mode 100644 priv/repo/migrations/20240628160536_deprecate_config_db_workers.exs diff --git a/config/description.exs b/config/description.exs index 2809e9130..15faecb38 100644 --- a/config/description.exs +++ b/config/description.exs @@ -2013,23 +2013,6 @@ config :pleroma, :config_description, [ } ] }, - %{ - group: :pleroma, - key: :workers, - type: :group, - description: "Includes custom worker options not interpretable directly by `Oban`", - children: [ - %{ - key: :retries, - type: {:keyword, :integer}, - description: "Max retry attempts for failed jobs, per `Oban` queue", - suggestions: [ - federator_incoming: 5, - federator_outgoing: 5 - ] - } - ] - }, %{ group: :pleroma, key: Pleroma.Web.Metadata, diff --git a/priv/repo/migrations/20240628160536_deprecate_config_db_workers.exs b/priv/repo/migrations/20240628160536_deprecate_config_db_workers.exs new file mode 100644 index 000000000..549dd22e9 --- /dev/null +++ b/priv/repo/migrations/20240628160536_deprecate_config_db_workers.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.DeprecateConfigDBWorkers do + use Ecto.Migration + + def change do + execute("DELETE FROM config WHERE config.group = ':workers'") + end +end From d56b889cf1f530364ecd10836f8bd11b67eccb47 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 28 Jun 2024 12:21:27 -0400 Subject: [PATCH 04/58] Update changelog --- changelog.d/workerhelper.change | 1 + changelog.d/workerhelper.skip | 0 2 files changed, 1 insertion(+) create mode 100644 changelog.d/workerhelper.change delete mode 100644 changelog.d/workerhelper.skip diff --git a/changelog.d/workerhelper.change b/changelog.d/workerhelper.change new file mode 100644 index 000000000..7a20c4af8 --- /dev/null +++ b/changelog.d/workerhelper.change @@ -0,0 +1 @@ +Worker configuration is no longer available. This only affects custom max_retries values for Oban queues. diff --git a/changelog.d/workerhelper.skip b/changelog.d/workerhelper.skip deleted file mode 100644 index e69de29bb..000000000 From 2e6ddc49910419590470902d9c36b84cf5a0b895 Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Thu, 1 Aug 2024 11:43:44 +0400 Subject: [PATCH 05/58] Prepare changelog --- CHANGELOG.md | 153 ++++++++++++++++++ changelog.d/2.6.0-mergeback.skip | 0 changelog.d/2.6.1-mergeback.skip | 0 changelog.d/3280-fix-emoji-ids.fix | 1 - changelog.d/3900.change | 1 - changelog.d/3904.security | 1 - changelog.d/3907.skip | 0 changelog.d/3987.fix | 1 - changelog.d/4167-strip-gps-info-in-png.fix | 1 - changelog.d/account-rendering-auth-check.fix | 1 - changelog.d/add-ipfs-upload.add | 1 - changelog.d/add-nsfw-mrf.add | 1 - changelog.d/add-outbox.fix | 1 - changelog.d/add-rbl-mrf.add | 1 - changelog.d/adminfe-logger.change | 1 - changelog.d/akkoma-prune-options.add | 1 - changelog.d/anonymous-exception-else.fix | 1 - changelog.d/anti-mentionspam-mrf.add | 1 - changelog.d/api-docs-2.skip | 0 changelog.d/api-docs.skip | 0 changelog.d/atom-leak.skip | 0 changelog.d/auth-fetch-exception.add | 1 - changelog.d/authorize-interaction.add | 1 - changelog.d/authorized-fetch-rejections.add | 1 - changelog.d/backups-follows.add | 1 - changelog.d/backups-refactor.change | 1 - changelog.d/bad_inbox_request.change | 1 - changelog.d/bandit.change | 1 - changelog.d/bandit_update_1.5.2.change | 1 - changelog.d/bare_uri_test.skip | 0 changelog.d/benchee.skip | 0 changelog.d/blurhash.change | 1 - changelog.d/bookmark-folders.add | 1 - changelog.d/bookmark-folders.skip | 0 changelog.d/bugfix-ccworks.fix | 1 - .../build-release-with-local-libvips.skip | 0 changelog.d/bump-elixir.change | 1 - changelog.d/card-endpoint.remove | 1 - changelog.d/card-image-description.add | 1 - changelog.d/chat-attachment-empty-array.fix | 1 - changelog.d/ci-cache.skip | 0 changelog.d/ci-elixir-1.16.skip | 0 changelog.d/ci-elixir-1.17.skip | 0 changelog.d/ci-erratic.skip | 0 changelog.d/ci-otp-update.skip | 0 changelog.d/cleanup.skip | 0 changelog.d/commonapi-reordering.skip | 0 changelog.d/config-stat-symlink.fix | 1 - changelog.d/content-length.fix | 1 - changelog.d/cowboy-stream-chunked.fix | 1 - changelog.d/debug-logs.skip | 0 changelog.d/deprecations.skip | 1 - changelog.d/deprecations2.skip | 0 changelog.d/deps-bump-2024-01-25.skip | 0 changelog.d/deps-bump-2024-06-07.skip | 2 - changelog.d/deps-poison-test-only.skip | 0 changelog.d/description-meilisearch-type.skip | 0 changelog.d/dialyzer.skip | 0 changelog.d/dialyzer2.skip | 0 changelog.d/dialyzer3.skip | 0 changelog.d/dialyzer4.skip | 0 changelog.d/dialyzer5.skip | 0 changelog.d/digest_emails.fix | 1 - changelog.d/disclose_client.fix | 1 - changelog.d/doc-fix.skip | 0 changelog.d/docs-max-elixir-erlang.change | 1 - changelog.d/docs-netbsd-update.change | 1 - changelog.d/elixir-1.15.fix | 1 - changelog.d/emoji-download-paginate.fix | 1 - changelog.d/emoji-use-v1.fix | 1 - changelog.d/exile-bsds.skip | 0 changelog.d/exile-freebsd.skip | 0 changelog.d/exile-macos.skip | 0 changelog.d/exile.skip | 0 changelog.d/familiar-followers.add | 1 - changelog.d/favicon.add | 1 - changelog.d/federation_status-access.change | 1 - changelog.d/federator-modules.remove | 1 - changelog.d/federator.skip | 0 .../federator_outgoing_increase.change | 1 - changelog.d/fep-2c59.add | 1 - changelog.d/ffmpeg-limiter.add | 1 - changelog.d/finch_redirects.fix | 1 - changelog.d/fix-bookmark-folder-tests.skip | 0 changelog.d/fix-dockerfile.skip | 0 .../fix-duplicate-inbox-deliveries.fix | 0 changelog.d/fix-migration.skip | 0 changelog.d/fix-mrfs.add | 1 - changelog.d/fix-otp-comparison.skip | 0 changelog.d/fix-tests.skip | 0 changelog.d/fix-webfinger-spoofing.security | 1 - changelog.d/force-mention-mrf.add | 1 - changelog.d/framegrabs.fix | 1 - changelog.d/frontend-management.add | 1 - .../generate-unset-user-keys-migration.skip | 0 changelog.d/group-actor.add | 1 - changelog.d/group-repeats.fix | 1 - changelog.d/gun-logs-debug.skip | 0 changelog.d/gun-logs.skip | 0 changelog.d/gun_pool.fix | 1 - changelog.d/gun_pool2.fix | 1 - changelog.d/gun_pool3.skip | 0 changelog.d/gun_pool4.fix | 1 - changelog.d/hackney-pool-timeouts.change | 1 - .../handle-non-validate-delete-errors.change | 1 - .../handle_object_fetch_failures.change | 1 - changelog.d/healthcheck-disabled-error.fix | 1 - changelog.d/ingestion-queue.skip | 0 changelog.d/instance-contact-account.add | 1 - changelog.d/instance-defdelegates.skip | 0 changelog.d/instance-rules.add | 1 - changelog.d/instance-v2.add | 1 - changelog.d/instance-v2.skip | 0 changelog.d/ipfs-dialyzer.skip | 1 - changelog.d/issue-3241.fix | 1 - changelog.d/last_status_at.change | 1 - changelog.d/ldap-error-logging.change | 1 - changelog.d/ldap.fix | 1 - changelog.d/link-verification.add | 1 - changelog.d/loading-order-test-fix.skip | 0 changelog.d/local-webfinger.fix | 1 - changelog.d/logger-metadata.add | 1 - changelog.d/mark-read.fix | 1 - changelog.d/mastodon_api_v2.add | 1 - changelog.d/mastodon_directory.fix | 1 - changelog.d/mediaproxy-http.fix | 1 - changelog.d/meilisearch.add | 1 - changelog.d/memleak.fix | 1 - changelog.d/mergeback-2.6.2.skip | 0 changelog.d/metadata-provider-empty-post.fix | 1 - changelog.d/migration-fix.skip | 1 - changelog.d/missing-fks.add | 1 - changelog.d/missing-mrfs.add | 1 - changelog.d/mix-indexer.add | 1 - changelog.d/mrf-nsfw-otp25.skip | 1 - changelog.d/mrf-regex-error.fix | 1 - changelog.d/mrf-steal-emoji-extname.fix | 1 - changelog.d/mrf_hashtags.fix | 1 - changelog.d/nil-content-map.fix | 1 - changelog.d/no-async-with-clear-config.skip | 0 changelog.d/notification-spex.skip | 0 changelog.d/notifications-index.fix | 1 - changelog.d/notifications.fix | 1 - changelog.d/oauth-nickname.skip | 1 - changelog.d/oban-cancel-badreq.change | 1 - changelog.d/oban-cancel-federation.add | 1 - changelog.d/oban-cancel-poll-result.change | 1 - changelog.d/oban-cancel-receiverworker.change | 1 - changelog.d/oban-cancel.change | 1 - changelog.d/oban-deprecated-discards.skip | 0 changelog.d/oban-fetcher-rejected.change | 1 - changelog.d/oban-live_dashboard.add | 1 - changelog.d/oban-queues.change | 1 - changelog.d/oban-rich-media-errors.fix | 1 - changelog.d/oban-timeouts.change | 1 - changelog.d/oban-timeouts.skip | 0 changelog.d/oban-transmogrifier.skip | 0 changelog.d/oban-user-refresh-unique.fix | 1 - changelog.d/opengraph-rich-media-proxy.add | 1 - changelog.d/optimistic-inbox-sigs.fix | 1 - changelog.d/optimistic-inbox.change | 1 - changelog.d/otp26.add | 1 - changelog.d/pinned-collection-fetch.security | 1 - changelog.d/pools.change | 1 - changelog.d/postgres-jit.change | 1 - changelog.d/prioritize-direct-recipients.add | 1 - changelog.d/prometheus-docs.change | 1 - changelog.d/promex.change | 1 - changelog.d/promexdocs.add | 1 - changelog.d/public-polls.add | 1 - changelog.d/publisher.change | 1 - changelog.d/publisher_discard.change | 1 - changelog.d/publisher_log.change | 1 - changelog.d/qdrant_search.add | 1 - changelog.d/qtfaststart.fix | 1 - changelog.d/quotes-count.skip | 0 changelog.d/reachability.change | 1 - changelog.d/realpath-over-readlink.fix | 1 - changelog.d/receiverworker-error-handling.fix | 1 - changelog.d/remote-fetcher-error.skip | 0 changelog.d/reply-to-deleted.change | 1 - changelog.d/rich-media-hardening.fix | 1 - changelog.d/rich_media.fix | 1 - changelog.d/rich_media_backfill.change | 1 - changelog.d/rich_media_config.skip | 0 changelog.d/rich_media_oban.skip | 0 changelog.d/rich_media_refactor.change | 1 - changelog.d/rich_media_stream_test.skip | 0 changelog.d/rich_media_tests.skip | 0 changelog.d/richmediattl.fix | 1 - changelog.d/scrobble-url.add | 1 - changelog.d/scrubbers-html4-GtS.add | 1 - changelog.d/search-healthcheck.add | 1 - changelog.d/show-reposter-replies.add | 1 - changelog.d/spex-error-log.skip | 0 changelog.d/status-notification-type.add | 1 - changelog.d/stream-end-poll.fix | 1 - changelog.d/support-honk-image-summaries.add | 1 - changelog.d/system-cflags.fix | 1 - changelog.d/tesla.deps | 1 - changelog.d/test-improvements.skip | 0 changelog.d/testsecrets.skip | 0 .../transient-validators-defaults.change | 1 - changelog.d/typo.skip | 0 changelog.d/user-refresh-rework.skip | 0 changelog.d/user-refresh.change | 1 - changelog.d/video-thumbs.fix | 1 - changelog.d/vips.change | 1 - changelog.d/web_push.fix | 1 - changelog.d/web_push_actor_regression.skip | 0 changelog.d/web_push_filtered.fix | 1 - changelog.d/webfinger-validation.fix | 1 - changelog.d/webpush-polls.change | 1 - changelog.d/websocket-refactor.change | 1 - 214 files changed, 153 insertions(+), 149 deletions(-) delete mode 100644 changelog.d/2.6.0-mergeback.skip delete mode 100644 changelog.d/2.6.1-mergeback.skip delete mode 100644 changelog.d/3280-fix-emoji-ids.fix delete mode 100644 changelog.d/3900.change delete mode 100644 changelog.d/3904.security delete mode 100644 changelog.d/3907.skip delete mode 100644 changelog.d/3987.fix delete mode 100644 changelog.d/4167-strip-gps-info-in-png.fix delete mode 100644 changelog.d/account-rendering-auth-check.fix delete mode 100644 changelog.d/add-ipfs-upload.add delete mode 100644 changelog.d/add-nsfw-mrf.add delete mode 100644 changelog.d/add-outbox.fix delete mode 100644 changelog.d/add-rbl-mrf.add delete mode 100644 changelog.d/adminfe-logger.change delete mode 100644 changelog.d/akkoma-prune-options.add delete mode 100644 changelog.d/anonymous-exception-else.fix delete mode 100644 changelog.d/anti-mentionspam-mrf.add delete mode 100644 changelog.d/api-docs-2.skip delete mode 100644 changelog.d/api-docs.skip delete mode 100644 changelog.d/atom-leak.skip delete mode 100644 changelog.d/auth-fetch-exception.add delete mode 100644 changelog.d/authorize-interaction.add delete mode 100644 changelog.d/authorized-fetch-rejections.add delete mode 100644 changelog.d/backups-follows.add delete mode 100644 changelog.d/backups-refactor.change delete mode 100644 changelog.d/bad_inbox_request.change delete mode 100644 changelog.d/bandit.change delete mode 100644 changelog.d/bandit_update_1.5.2.change delete mode 100644 changelog.d/bare_uri_test.skip delete mode 100644 changelog.d/benchee.skip delete mode 100644 changelog.d/blurhash.change delete mode 100644 changelog.d/bookmark-folders.add delete mode 100644 changelog.d/bookmark-folders.skip delete mode 100644 changelog.d/bugfix-ccworks.fix delete mode 100644 changelog.d/build-release-with-local-libvips.skip delete mode 100644 changelog.d/bump-elixir.change delete mode 100644 changelog.d/card-endpoint.remove delete mode 100644 changelog.d/card-image-description.add delete mode 100644 changelog.d/chat-attachment-empty-array.fix delete mode 100644 changelog.d/ci-cache.skip delete mode 100644 changelog.d/ci-elixir-1.16.skip delete mode 100644 changelog.d/ci-elixir-1.17.skip delete mode 100644 changelog.d/ci-erratic.skip delete mode 100644 changelog.d/ci-otp-update.skip delete mode 100644 changelog.d/cleanup.skip delete mode 100644 changelog.d/commonapi-reordering.skip delete mode 100644 changelog.d/config-stat-symlink.fix delete mode 100644 changelog.d/content-length.fix delete mode 100644 changelog.d/cowboy-stream-chunked.fix delete mode 100644 changelog.d/debug-logs.skip delete mode 100644 changelog.d/deprecations.skip delete mode 100644 changelog.d/deprecations2.skip delete mode 100644 changelog.d/deps-bump-2024-01-25.skip delete mode 100644 changelog.d/deps-bump-2024-06-07.skip delete mode 100644 changelog.d/deps-poison-test-only.skip delete mode 100644 changelog.d/description-meilisearch-type.skip delete mode 100644 changelog.d/dialyzer.skip delete mode 100644 changelog.d/dialyzer2.skip delete mode 100644 changelog.d/dialyzer3.skip delete mode 100644 changelog.d/dialyzer4.skip delete mode 100644 changelog.d/dialyzer5.skip delete mode 100644 changelog.d/digest_emails.fix delete mode 100644 changelog.d/disclose_client.fix delete mode 100644 changelog.d/doc-fix.skip delete mode 100644 changelog.d/docs-max-elixir-erlang.change delete mode 100644 changelog.d/docs-netbsd-update.change delete mode 100644 changelog.d/elixir-1.15.fix delete mode 100644 changelog.d/emoji-download-paginate.fix delete mode 100644 changelog.d/emoji-use-v1.fix delete mode 100644 changelog.d/exile-bsds.skip delete mode 100644 changelog.d/exile-freebsd.skip delete mode 100644 changelog.d/exile-macos.skip delete mode 100644 changelog.d/exile.skip delete mode 100644 changelog.d/familiar-followers.add delete mode 100644 changelog.d/favicon.add delete mode 100644 changelog.d/federation_status-access.change delete mode 100644 changelog.d/federator-modules.remove delete mode 100644 changelog.d/federator.skip delete mode 100644 changelog.d/federator_outgoing_increase.change delete mode 100644 changelog.d/fep-2c59.add delete mode 100644 changelog.d/ffmpeg-limiter.add delete mode 100644 changelog.d/finch_redirects.fix delete mode 100644 changelog.d/fix-bookmark-folder-tests.skip delete mode 100644 changelog.d/fix-dockerfile.skip delete mode 100644 changelog.d/fix-duplicate-inbox-deliveries.fix delete mode 100644 changelog.d/fix-migration.skip delete mode 100644 changelog.d/fix-mrfs.add delete mode 100644 changelog.d/fix-otp-comparison.skip delete mode 100644 changelog.d/fix-tests.skip delete mode 100644 changelog.d/fix-webfinger-spoofing.security delete mode 100644 changelog.d/force-mention-mrf.add delete mode 100644 changelog.d/framegrabs.fix delete mode 100644 changelog.d/frontend-management.add delete mode 100644 changelog.d/generate-unset-user-keys-migration.skip delete mode 100644 changelog.d/group-actor.add delete mode 100644 changelog.d/group-repeats.fix delete mode 100644 changelog.d/gun-logs-debug.skip delete mode 100644 changelog.d/gun-logs.skip delete mode 100644 changelog.d/gun_pool.fix delete mode 100644 changelog.d/gun_pool2.fix delete mode 100644 changelog.d/gun_pool3.skip delete mode 100644 changelog.d/gun_pool4.fix delete mode 100644 changelog.d/hackney-pool-timeouts.change delete mode 100644 changelog.d/handle-non-validate-delete-errors.change delete mode 100644 changelog.d/handle_object_fetch_failures.change delete mode 100644 changelog.d/healthcheck-disabled-error.fix delete mode 100644 changelog.d/ingestion-queue.skip delete mode 100644 changelog.d/instance-contact-account.add delete mode 100644 changelog.d/instance-defdelegates.skip delete mode 100644 changelog.d/instance-rules.add delete mode 100644 changelog.d/instance-v2.add delete mode 100644 changelog.d/instance-v2.skip delete mode 100644 changelog.d/ipfs-dialyzer.skip delete mode 100644 changelog.d/issue-3241.fix delete mode 100644 changelog.d/last_status_at.change delete mode 100644 changelog.d/ldap-error-logging.change delete mode 100644 changelog.d/ldap.fix delete mode 100644 changelog.d/link-verification.add delete mode 100644 changelog.d/loading-order-test-fix.skip delete mode 100644 changelog.d/local-webfinger.fix delete mode 100644 changelog.d/logger-metadata.add delete mode 100644 changelog.d/mark-read.fix delete mode 100644 changelog.d/mastodon_api_v2.add delete mode 100644 changelog.d/mastodon_directory.fix delete mode 100644 changelog.d/mediaproxy-http.fix delete mode 100644 changelog.d/meilisearch.add delete mode 100644 changelog.d/memleak.fix delete mode 100644 changelog.d/mergeback-2.6.2.skip delete mode 100644 changelog.d/metadata-provider-empty-post.fix delete mode 100644 changelog.d/migration-fix.skip delete mode 100644 changelog.d/missing-fks.add delete mode 100644 changelog.d/missing-mrfs.add delete mode 100644 changelog.d/mix-indexer.add delete mode 100644 changelog.d/mrf-nsfw-otp25.skip delete mode 100644 changelog.d/mrf-regex-error.fix delete mode 100644 changelog.d/mrf-steal-emoji-extname.fix delete mode 100644 changelog.d/mrf_hashtags.fix delete mode 100644 changelog.d/nil-content-map.fix delete mode 100644 changelog.d/no-async-with-clear-config.skip delete mode 100644 changelog.d/notification-spex.skip delete mode 100644 changelog.d/notifications-index.fix delete mode 100644 changelog.d/notifications.fix delete mode 100644 changelog.d/oauth-nickname.skip delete mode 100644 changelog.d/oban-cancel-badreq.change delete mode 100644 changelog.d/oban-cancel-federation.add delete mode 100644 changelog.d/oban-cancel-poll-result.change delete mode 100644 changelog.d/oban-cancel-receiverworker.change delete mode 100644 changelog.d/oban-cancel.change delete mode 100644 changelog.d/oban-deprecated-discards.skip delete mode 100644 changelog.d/oban-fetcher-rejected.change delete mode 100644 changelog.d/oban-live_dashboard.add delete mode 100644 changelog.d/oban-queues.change delete mode 100644 changelog.d/oban-rich-media-errors.fix delete mode 100644 changelog.d/oban-timeouts.change delete mode 100644 changelog.d/oban-timeouts.skip delete mode 100644 changelog.d/oban-transmogrifier.skip delete mode 100644 changelog.d/oban-user-refresh-unique.fix delete mode 100644 changelog.d/opengraph-rich-media-proxy.add delete mode 100644 changelog.d/optimistic-inbox-sigs.fix delete mode 100644 changelog.d/optimistic-inbox.change delete mode 100644 changelog.d/otp26.add delete mode 100644 changelog.d/pinned-collection-fetch.security delete mode 100644 changelog.d/pools.change delete mode 100644 changelog.d/postgres-jit.change delete mode 100644 changelog.d/prioritize-direct-recipients.add delete mode 100644 changelog.d/prometheus-docs.change delete mode 100644 changelog.d/promex.change delete mode 100644 changelog.d/promexdocs.add delete mode 100644 changelog.d/public-polls.add delete mode 100644 changelog.d/publisher.change delete mode 100644 changelog.d/publisher_discard.change delete mode 100644 changelog.d/publisher_log.change delete mode 100644 changelog.d/qdrant_search.add delete mode 100644 changelog.d/qtfaststart.fix delete mode 100644 changelog.d/quotes-count.skip delete mode 100644 changelog.d/reachability.change delete mode 100644 changelog.d/realpath-over-readlink.fix delete mode 100644 changelog.d/receiverworker-error-handling.fix delete mode 100644 changelog.d/remote-fetcher-error.skip delete mode 100644 changelog.d/reply-to-deleted.change delete mode 100644 changelog.d/rich-media-hardening.fix delete mode 100644 changelog.d/rich_media.fix delete mode 100644 changelog.d/rich_media_backfill.change delete mode 100644 changelog.d/rich_media_config.skip delete mode 100644 changelog.d/rich_media_oban.skip delete mode 100644 changelog.d/rich_media_refactor.change delete mode 100644 changelog.d/rich_media_stream_test.skip delete mode 100644 changelog.d/rich_media_tests.skip delete mode 100644 changelog.d/richmediattl.fix delete mode 100644 changelog.d/scrobble-url.add delete mode 100644 changelog.d/scrubbers-html4-GtS.add delete mode 100644 changelog.d/search-healthcheck.add delete mode 100644 changelog.d/show-reposter-replies.add delete mode 100644 changelog.d/spex-error-log.skip delete mode 100644 changelog.d/status-notification-type.add delete mode 100644 changelog.d/stream-end-poll.fix delete mode 100644 changelog.d/support-honk-image-summaries.add delete mode 100644 changelog.d/system-cflags.fix delete mode 100644 changelog.d/tesla.deps delete mode 100644 changelog.d/test-improvements.skip delete mode 100644 changelog.d/testsecrets.skip delete mode 100644 changelog.d/transient-validators-defaults.change delete mode 100644 changelog.d/typo.skip delete mode 100644 changelog.d/user-refresh-rework.skip delete mode 100644 changelog.d/user-refresh.change delete mode 100644 changelog.d/video-thumbs.fix delete mode 100644 changelog.d/vips.change delete mode 100644 changelog.d/web_push.fix delete mode 100644 changelog.d/web_push_actor_regression.skip delete mode 100644 changelog.d/web_push_filtered.fix delete mode 100644 changelog.d/webfinger-validation.fix delete mode 100644 changelog.d/webpush-polls.change delete mode 100644 changelog.d/websocket-refactor.change diff --git a/CHANGELOG.md b/CHANGELOG.md index 063d51d4c..61bb2ab54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,159 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## 2.7.0 + +### Security +- HTTP Security: By default, don't allow unsafe-eval. The setting needs to be changed to allow Flash emulation. +- Fix webfinger spoofing. +- Use proper workers for fetching pins instead of an ad-hoc task, fixing a potential fetch loop + +### Changed +- Update to Phoenix 1.7 +- Elixir Logger configuration is now longer permitted through AdminFE and ConfigDB +- Refactor the user backups code and improve test coverage +- Invalid activities delivered to the inbox will be rejected with a 400 Bad Request +- Support Bandit as an alternative to Cowboy for the HTTP server. +- Update Bandit to 1.5.2 +- Replace eblurhash with rinpatch_blurhash. This also removes a dependency on ImageMagick. +- Elixir 1.13 is the minimum required version. +- Document maximum supported version of Erlang & Elixir +- Update and extend NetBSD installation docs +- Make `/api/v1/pleroma/federation_status` publicly available +- Increase outgoing federation parallelism +- Change Hackney connection pool timeouts to align with the values Gun uses +- Transmogrifier: handle non-validate errors on incoming Delete activities +- Remote object fetch failures will prevent the object fetch job from retrying if the object request returns 401, 403, 404, 410, or exceeds the maximum thread depth. +- - Change AccountView `last_status_at` from a datetime to a date (as done in Mastodon 3.1.0) +- Improve error logging when LDAP authentication fails. +- Publisher jobs will not retry if the error received is a 400 +- PollWorker jobs will not retry if the activity no longer exists. +- Improved detecting unrecoverable errors for incoming federation jobs +- Changed some jobs to return :cancel on unrecoverable errors that should not be retried +- Discard Remote Fetcher jobs which errored due to an MRF rejection. +- Oban queues have refactored to simplify the queue design +- Ensure all Oban jobs have timeouts defined +- Optimistic Inbox reduces the processing overhead of incoming activities without instantly verifiable signatures. +- HTTP connection pool adjustments +- Disable jit by default for PostgreSQL +- Update the documentation for configuring Prometheus metrics. +- Change the prometheus library to PromEx. +- Publisher jobs now store the the activity id instead of inserting duplicate JSON data in the Oban queue for each delivery. +- Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410 +- Publisher errors will now emit logs indicating the inbox that was not available for delivery. +- Reduce the reachability timestamp update to a single upsert query +- A 422 error is returned when attempting to reply to a deleted status +- Rich Media backfilling is now an Oban job +- Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated. +- Set default values on validators for transient objects (attachment, poll options) +- User profile refreshes are now asynchronous +- Change mediaproxy previews to use vips to generate thumbnails instead of ImageMagick +- Render nice web push notifications for polls +- Refactor the Mastodon /api/v1/streaming websocket handler to use Phoenix.Socket.Transport + +### Added +- Uploader: Add support for uploading attachments using IPFS +- Add NSFW-detecting MRF +- Add DNSRBL MRF +- Add options to the mix prune_objects task +- Add Anti-mention Spam MRF backported from Rebased +- HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions configuration +- Support /authorize-interaction route used by Mastodon +- Add an option to reject certain domains when authorized fetch is enabled. +- Include following/followers in backups +- Allow to group bookmarks in folders +- Include image description in status media cards +- Implement `/api/v1/accounts/familiar_followers` +- Add support for configuring favicon, embed favicon and PWA manifest in server-generated meta +- Implement FEP-2c59, add "webfinger" to user actor +- Framegrabs with ffmpeg will execute with a 5 second timeout and cache the URLs of failures with a TTL of 15 minutes to prevent excessive retries. +- Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB. +- Add ForceMention MRF +- [docs] add frontends management documentation +- Implement group actors +- Add contact account to InstanceView +- Add instance rules +- Implement /api/v2/instance route +- Verify profile link ownership with rel="me" +- Logger metadata is now attached to some logs to help with troubleshooting and analysis +- Add new parameters to /api/v2/instance: configuration[accounts][max_pinned_statuses] and configuration[statuses][characters_reserved_per_url] +- Add meilisearch, make search engines pluggable +- Add missing indexes on foreign key relationships +- Startup detection for configured MRF modules that are missing or incorrectly defined +- Permit passing --chunk and --step values to the Pleroma.Search.Indexer Mix task +- Deleting, Unfavoriting, Unrepeating, or Unreacting will cancel undelivered publishing jobs for the original activity. +- Oban jobs can now be viewed in the Live Dashboard +- Add media proxy to opengraph rich media cards +- Support for Erlang OTP 26 +- Prioritize mentioned recipients (i.e., those that are not just followers) when federating. +- PromEx documentation +- Expose nonAnonymous field from Smithereen polls +- Add Qdrant/OpenAI embedding search +- Adds the capability to add a URL to a scrobble (optional field) +- scrubbers/default: Add more formatting elements from HTML4 / GoToSocial (acronym, bdo, big, cite, dfn, ins, kbd, q, samp, s, tt, var, wbr) +- Monitoring of search backend health to control the processing of jobs in the search indexing Oban queue +- Display reposted replies with exclude_replies: true +- Add "status" notification type +- Support honk-style attachment summaries as alt-text. + +### Fixed +- Fix Emoji object IDs not always being valid +- Remove checking ImageMagick's commands for Pleroma.Upload.Filter.AnalyzeMetadata +- Ensure that StripLocation actually removes everything resembling GPS data from PNGs +- Fix authentication check on account rendering when bio is defined +- ap userview: add outbox field. +- Fix #strip_report_status_data +- Fix federation with Convergence AP Bridge +- ChatMessage: Tolerate attachment field set to an empty array +- Config: Check the permissions of the linked file instead of the symlink +- MediaProxy was setting the content-length header which is not permitted by RFC9112§6.2 when we are chunking the reply as it conflicts with the existence of the transfer-encoding header. +- Restore Cowboy's ability to stream MediaProxy responses without Chunked encoding. +- Fix the processing of email digest jobs. +- Client application data was always missing from the status +- Elixir 1.15 compatibility +- When downloading remote emojis packs, account for pagination +- Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this +- Following HTTP Redirects when the HTTP Adapter is Finch +- Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg +- Deactivated groups would still try to repeat a post. +- Fix logic error in Gun connection pooling which prevented retries even when the worker was launched with retry = true +- Connection pool errors when publishing an activity is a soft-error that will be retried shortly. +- Gun Connection Pool was not retrying to acquire a connection if the pool was full and stale connections were reclaimed +- TwitterAPI: Return proper error when healthcheck is disabled +- Handle cases when users.inbox is nil. +- Fix LDAP support +- Use correct domain for fqn and InstanceView +- The query for marking notifications as read has been simplified +- Mastodon API /api/v1/directory: Fix listing directory contents when not authenticated +- Ensure MediaProxy HTTP requests obey all the defined connection settings +- Fix a memory leak caused by Websocket connections that would not enter a state where a full garbage collection run could be triggered. +- Fix OpenGraph and Twitter metadata providers when parsing objects with no content or summary fields. +- MRF: Log sensible error for subdomains_regex +- MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one +- Federated timeline removal of hashtags via MRF HashtagPolicy +- Support objects with a null contentMap (firefish) +- Fix notifications query which was not using the index properly +- Notifications: improve performance by filtering on users table instead of activities table +- Prevent Rich Media backfill jobs from retrying in cases where it is likely they will fail again. +- Oban Jobs for refreshing users were not respecting the uniqueness setting +- Fix Optimistic Inbox for failed signatures +- MediaProxy Preview failures prevented when encountering certain video files +- pleroma_ctl: Use realpath(1) instead of readlink(1) +- ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …} +- Harden Rich Media parsing against very slow or malicious URLs +- Rich Media Preview cache eviction when the activity is updated. +- Parsing of RichMedia TTLs for Amazon URLs when query parameters are nil +- End of poll notifications were not streamed over websockets or web push +- Fix eblurhash and elixir-captcha not using system cflags +- Video thumbnails were not being generated due to a negative cache lookup logic error +- Fix web push notifications not successfully delivering +- Web Push notifications are no longer generated for muted/blocked threads and users. +- Fix validate_webfinger when running a different domain for Webfinger + +### Removed +- Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213 +- Removed support for multiple federator modules as we only support ActivityPub + ## 2.6.2 ### Security diff --git a/changelog.d/2.6.0-mergeback.skip b/changelog.d/2.6.0-mergeback.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/2.6.1-mergeback.skip b/changelog.d/2.6.1-mergeback.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/3280-fix-emoji-ids.fix b/changelog.d/3280-fix-emoji-ids.fix deleted file mode 100644 index 1bce5b653..000000000 --- a/changelog.d/3280-fix-emoji-ids.fix +++ /dev/null @@ -1 +0,0 @@ -Fix Emoji object IDs not always being valid diff --git a/changelog.d/3900.change b/changelog.d/3900.change deleted file mode 100644 index fe0cc2fbf..000000000 --- a/changelog.d/3900.change +++ /dev/null @@ -1 +0,0 @@ -Update to Phoenix 1.7 diff --git a/changelog.d/3904.security b/changelog.d/3904.security deleted file mode 100644 index 04836d4e8..000000000 --- a/changelog.d/3904.security +++ /dev/null @@ -1 +0,0 @@ -HTTP Security: By default, don't allow unsafe-eval. The setting needs to be changed to allow Flash emulation. diff --git a/changelog.d/3907.skip b/changelog.d/3907.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/3987.fix b/changelog.d/3987.fix deleted file mode 100644 index 5d578cc09..000000000 --- a/changelog.d/3987.fix +++ /dev/null @@ -1 +0,0 @@ -Remove checking ImageMagick's commands for Pleroma.Upload.Filter.AnalyzeMetadata diff --git a/changelog.d/4167-strip-gps-info-in-png.fix b/changelog.d/4167-strip-gps-info-in-png.fix deleted file mode 100644 index e8d5c2908..000000000 --- a/changelog.d/4167-strip-gps-info-in-png.fix +++ /dev/null @@ -1 +0,0 @@ -Ensure that StripLocation actually removes everything resembling GPS data from PNGs diff --git a/changelog.d/account-rendering-auth-check.fix b/changelog.d/account-rendering-auth-check.fix deleted file mode 100644 index 12f68e454..000000000 --- a/changelog.d/account-rendering-auth-check.fix +++ /dev/null @@ -1 +0,0 @@ -Fix authentication check on account rendering when bio is defined diff --git a/changelog.d/add-ipfs-upload.add b/changelog.d/add-ipfs-upload.add deleted file mode 100644 index 0cd1f2858..000000000 --- a/changelog.d/add-ipfs-upload.add +++ /dev/null @@ -1 +0,0 @@ -Uploader: Add support for uploading attachments using IPFS diff --git a/changelog.d/add-nsfw-mrf.add b/changelog.d/add-nsfw-mrf.add deleted file mode 100644 index ce62c7ed0..000000000 --- a/changelog.d/add-nsfw-mrf.add +++ /dev/null @@ -1 +0,0 @@ -Add NSFW-detecting MRF diff --git a/changelog.d/add-outbox.fix b/changelog.d/add-outbox.fix deleted file mode 100644 index f3de5338d..000000000 --- a/changelog.d/add-outbox.fix +++ /dev/null @@ -1 +0,0 @@ -ap userview: add outbox field. diff --git a/changelog.d/add-rbl-mrf.add b/changelog.d/add-rbl-mrf.add deleted file mode 100644 index 363270fb9..000000000 --- a/changelog.d/add-rbl-mrf.add +++ /dev/null @@ -1 +0,0 @@ -Add DNSRBL MRF diff --git a/changelog.d/adminfe-logger.change b/changelog.d/adminfe-logger.change deleted file mode 100644 index e1a5fc454..000000000 --- a/changelog.d/adminfe-logger.change +++ /dev/null @@ -1 +0,0 @@ -Elixir Logger configuration is now longer permitted through AdminFE and ConfigDB diff --git a/changelog.d/akkoma-prune-options.add b/changelog.d/akkoma-prune-options.add deleted file mode 100644 index 6bc5e7f92..000000000 --- a/changelog.d/akkoma-prune-options.add +++ /dev/null @@ -1 +0,0 @@ -Add options to the mix prune_objects task diff --git a/changelog.d/anonymous-exception-else.fix b/changelog.d/anonymous-exception-else.fix deleted file mode 100644 index 38d5d1be5..000000000 --- a/changelog.d/anonymous-exception-else.fix +++ /dev/null @@ -1 +0,0 @@ -Fix #strip_report_status_data diff --git a/changelog.d/anti-mentionspam-mrf.add b/changelog.d/anti-mentionspam-mrf.add deleted file mode 100644 index 9466f85f4..000000000 --- a/changelog.d/anti-mentionspam-mrf.add +++ /dev/null @@ -1 +0,0 @@ -Add Anti-mention Spam MRF backported from Rebased diff --git a/changelog.d/api-docs-2.skip b/changelog.d/api-docs-2.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/api-docs.skip b/changelog.d/api-docs.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/atom-leak.skip b/changelog.d/atom-leak.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/auth-fetch-exception.add b/changelog.d/auth-fetch-exception.add deleted file mode 100644 index 98efb903e..000000000 --- a/changelog.d/auth-fetch-exception.add +++ /dev/null @@ -1 +0,0 @@ -HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions configuration \ No newline at end of file diff --git a/changelog.d/authorize-interaction.add b/changelog.d/authorize-interaction.add deleted file mode 100644 index 8692209e1..000000000 --- a/changelog.d/authorize-interaction.add +++ /dev/null @@ -1 +0,0 @@ -Support /authorize-interaction route used by Mastodon \ No newline at end of file diff --git a/changelog.d/authorized-fetch-rejections.add b/changelog.d/authorized-fetch-rejections.add deleted file mode 100644 index 66e15a979..000000000 --- a/changelog.d/authorized-fetch-rejections.add +++ /dev/null @@ -1 +0,0 @@ -Add an option to reject certain domains when authorized fetch is enabled. diff --git a/changelog.d/backups-follows.add b/changelog.d/backups-follows.add deleted file mode 100644 index a55c436f6..000000000 --- a/changelog.d/backups-follows.add +++ /dev/null @@ -1 +0,0 @@ -Include following/followers in backups \ No newline at end of file diff --git a/changelog.d/backups-refactor.change b/changelog.d/backups-refactor.change deleted file mode 100644 index 47fc74138..000000000 --- a/changelog.d/backups-refactor.change +++ /dev/null @@ -1 +0,0 @@ -Refactor the user backups code and improve test coverage diff --git a/changelog.d/bad_inbox_request.change b/changelog.d/bad_inbox_request.change deleted file mode 100644 index b81f60638..000000000 --- a/changelog.d/bad_inbox_request.change +++ /dev/null @@ -1 +0,0 @@ -Invalid activities delivered to the inbox will be rejected with a 400 Bad Request diff --git a/changelog.d/bandit.change b/changelog.d/bandit.change deleted file mode 100644 index 7a1104314..000000000 --- a/changelog.d/bandit.change +++ /dev/null @@ -1 +0,0 @@ -Support Bandit as an alternative to Cowboy for the HTTP server. diff --git a/changelog.d/bandit_update_1.5.2.change b/changelog.d/bandit_update_1.5.2.change deleted file mode 100644 index c4aae1636..000000000 --- a/changelog.d/bandit_update_1.5.2.change +++ /dev/null @@ -1 +0,0 @@ -Update Bandit to 1.5.2 diff --git a/changelog.d/bare_uri_test.skip b/changelog.d/bare_uri_test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/benchee.skip b/changelog.d/benchee.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/blurhash.change b/changelog.d/blurhash.change deleted file mode 100644 index 4276eb164..000000000 --- a/changelog.d/blurhash.change +++ /dev/null @@ -1 +0,0 @@ -Replace eblurhash with rinpatch_blurhash. This also removes a dependency on ImageMagick. diff --git a/changelog.d/bookmark-folders.add b/changelog.d/bookmark-folders.add deleted file mode 100644 index d9b03cecc..000000000 --- a/changelog.d/bookmark-folders.add +++ /dev/null @@ -1 +0,0 @@ -Allow to group bookmarks in folders \ No newline at end of file diff --git a/changelog.d/bookmark-folders.skip b/changelog.d/bookmark-folders.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/bugfix-ccworks.fix b/changelog.d/bugfix-ccworks.fix deleted file mode 100644 index 658e27b86..000000000 --- a/changelog.d/bugfix-ccworks.fix +++ /dev/null @@ -1 +0,0 @@ -Fix federation with Convergence AP Bridge \ No newline at end of file diff --git a/changelog.d/build-release-with-local-libvips.skip b/changelog.d/build-release-with-local-libvips.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/bump-elixir.change b/changelog.d/bump-elixir.change deleted file mode 100644 index afb25d4e7..000000000 --- a/changelog.d/bump-elixir.change +++ /dev/null @@ -1 +0,0 @@ -Elixir 1.13 is the minimum required version. diff --git a/changelog.d/card-endpoint.remove b/changelog.d/card-endpoint.remove deleted file mode 100644 index e09a24cf7..000000000 --- a/changelog.d/card-endpoint.remove +++ /dev/null @@ -1 +0,0 @@ -Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213 diff --git a/changelog.d/card-image-description.add b/changelog.d/card-image-description.add deleted file mode 100644 index bf423ebb8..000000000 --- a/changelog.d/card-image-description.add +++ /dev/null @@ -1 +0,0 @@ -Include image description in status media cards \ No newline at end of file diff --git a/changelog.d/chat-attachment-empty-array.fix b/changelog.d/chat-attachment-empty-array.fix deleted file mode 100644 index 7d98c9dd2..000000000 --- a/changelog.d/chat-attachment-empty-array.fix +++ /dev/null @@ -1 +0,0 @@ -ChatMessage: Tolerate attachment field set to an empty array diff --git a/changelog.d/ci-cache.skip b/changelog.d/ci-cache.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/ci-elixir-1.16.skip b/changelog.d/ci-elixir-1.16.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/ci-elixir-1.17.skip b/changelog.d/ci-elixir-1.17.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/ci-erratic.skip b/changelog.d/ci-erratic.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/ci-otp-update.skip b/changelog.d/ci-otp-update.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/cleanup.skip b/changelog.d/cleanup.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/commonapi-reordering.skip b/changelog.d/commonapi-reordering.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/config-stat-symlink.fix b/changelog.d/config-stat-symlink.fix deleted file mode 100644 index c8b98225d..000000000 --- a/changelog.d/config-stat-symlink.fix +++ /dev/null @@ -1 +0,0 @@ -- Config: Check the permissions of the linked file instead of the symlink diff --git a/changelog.d/content-length.fix b/changelog.d/content-length.fix deleted file mode 100644 index dee906a9d..000000000 --- a/changelog.d/content-length.fix +++ /dev/null @@ -1 +0,0 @@ -MediaProxy was setting the content-length header which is not permitted by RFC9112§6.2 when we are chunking the reply as it conflicts with the existence of the transfer-encoding header. diff --git a/changelog.d/cowboy-stream-chunked.fix b/changelog.d/cowboy-stream-chunked.fix deleted file mode 100644 index 07211bf18..000000000 --- a/changelog.d/cowboy-stream-chunked.fix +++ /dev/null @@ -1 +0,0 @@ -Restore Cowboy's ability to stream MediaProxy responses without Chunked encoding. diff --git a/changelog.d/debug-logs.skip b/changelog.d/debug-logs.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/deprecations.skip b/changelog.d/deprecations.skip deleted file mode 100644 index 8b1378917..000000000 --- a/changelog.d/deprecations.skip +++ /dev/null @@ -1 +0,0 @@ - diff --git a/changelog.d/deprecations2.skip b/changelog.d/deprecations2.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/deps-bump-2024-01-25.skip b/changelog.d/deps-bump-2024-01-25.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/deps-bump-2024-06-07.skip b/changelog.d/deps-bump-2024-06-07.skip deleted file mode 100644 index 4f377a4d7..000000000 --- a/changelog.d/deps-bump-2024-06-07.skip +++ /dev/null @@ -1,2 +0,0 @@ -Update dependencies held back due to old Elixir version - diff --git a/changelog.d/deps-poison-test-only.skip b/changelog.d/deps-poison-test-only.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/description-meilisearch-type.skip b/changelog.d/description-meilisearch-type.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/dialyzer.skip b/changelog.d/dialyzer.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/dialyzer2.skip b/changelog.d/dialyzer2.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/dialyzer3.skip b/changelog.d/dialyzer3.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/dialyzer4.skip b/changelog.d/dialyzer4.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/dialyzer5.skip b/changelog.d/dialyzer5.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/digest_emails.fix b/changelog.d/digest_emails.fix deleted file mode 100644 index 335a24464..000000000 --- a/changelog.d/digest_emails.fix +++ /dev/null @@ -1 +0,0 @@ -Fix the processing of email digest jobs. diff --git a/changelog.d/disclose_client.fix b/changelog.d/disclose_client.fix deleted file mode 100644 index 938abc930..000000000 --- a/changelog.d/disclose_client.fix +++ /dev/null @@ -1 +0,0 @@ -Client application data was always missing from the status diff --git a/changelog.d/doc-fix.skip b/changelog.d/doc-fix.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/docs-max-elixir-erlang.change b/changelog.d/docs-max-elixir-erlang.change deleted file mode 100644 index a58b7fc17..000000000 --- a/changelog.d/docs-max-elixir-erlang.change +++ /dev/null @@ -1 +0,0 @@ -- Document maximum supported version of Erlang & Elixir diff --git a/changelog.d/docs-netbsd-update.change b/changelog.d/docs-netbsd-update.change deleted file mode 100644 index 29599e8f2..000000000 --- a/changelog.d/docs-netbsd-update.change +++ /dev/null @@ -1 +0,0 @@ -Update and extend NetBSD installation docs diff --git a/changelog.d/elixir-1.15.fix b/changelog.d/elixir-1.15.fix deleted file mode 100644 index d446aaabc..000000000 --- a/changelog.d/elixir-1.15.fix +++ /dev/null @@ -1 +0,0 @@ -Elixir 1.15 compatibility diff --git a/changelog.d/emoji-download-paginate.fix b/changelog.d/emoji-download-paginate.fix deleted file mode 100644 index e31a63380..000000000 --- a/changelog.d/emoji-download-paginate.fix +++ /dev/null @@ -1 +0,0 @@ -When downloading remote emojis packs, account for pagination \ No newline at end of file diff --git a/changelog.d/emoji-use-v1.fix b/changelog.d/emoji-use-v1.fix deleted file mode 100644 index ccc96b377..000000000 --- a/changelog.d/emoji-use-v1.fix +++ /dev/null @@ -1 +0,0 @@ -Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this \ No newline at end of file diff --git a/changelog.d/exile-bsds.skip b/changelog.d/exile-bsds.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/exile-freebsd.skip b/changelog.d/exile-freebsd.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/exile-macos.skip b/changelog.d/exile-macos.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/exile.skip b/changelog.d/exile.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/familiar-followers.add b/changelog.d/familiar-followers.add deleted file mode 100644 index 6e7ec9d25..000000000 --- a/changelog.d/familiar-followers.add +++ /dev/null @@ -1 +0,0 @@ -Implement `/api/v1/accounts/familiar_followers` \ No newline at end of file diff --git a/changelog.d/favicon.add b/changelog.d/favicon.add deleted file mode 100644 index cf12395e7..000000000 --- a/changelog.d/favicon.add +++ /dev/null @@ -1 +0,0 @@ -Add support for configuring favicon, embed favicon and PWA manifest in server-generated meta diff --git a/changelog.d/federation_status-access.change b/changelog.d/federation_status-access.change deleted file mode 100644 index 952254476..000000000 --- a/changelog.d/federation_status-access.change +++ /dev/null @@ -1 +0,0 @@ -- Make `/api/v1/pleroma/federation_status` publicly available diff --git a/changelog.d/federator-modules.remove b/changelog.d/federator-modules.remove deleted file mode 100644 index 6ff71d107..000000000 --- a/changelog.d/federator-modules.remove +++ /dev/null @@ -1 +0,0 @@ -Removed support for multiple federator modules as we only support ActivityPub diff --git a/changelog.d/federator.skip b/changelog.d/federator.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/federator_outgoing_increase.change b/changelog.d/federator_outgoing_increase.change deleted file mode 100644 index 7e68a79bc..000000000 --- a/changelog.d/federator_outgoing_increase.change +++ /dev/null @@ -1 +0,0 @@ -Increase outgoing federation parallelism diff --git a/changelog.d/fep-2c59.add b/changelog.d/fep-2c59.add deleted file mode 100644 index 03e33cbd8..000000000 --- a/changelog.d/fep-2c59.add +++ /dev/null @@ -1 +0,0 @@ -Implement FEP-2c59, add "webfinger" to user actor \ No newline at end of file diff --git a/changelog.d/ffmpeg-limiter.add b/changelog.d/ffmpeg-limiter.add deleted file mode 100644 index e4a5ef196..000000000 --- a/changelog.d/ffmpeg-limiter.add +++ /dev/null @@ -1 +0,0 @@ -Framegrabs with ffmpeg will execute with a 5 second timeout and cache the URLs of failures with a TTL of 15 minutes to prevent excessive retries. diff --git a/changelog.d/finch_redirects.fix b/changelog.d/finch_redirects.fix deleted file mode 100644 index c25beaba4..000000000 --- a/changelog.d/finch_redirects.fix +++ /dev/null @@ -1 +0,0 @@ -Following HTTP Redirects when the HTTP Adapter is Finch diff --git a/changelog.d/fix-bookmark-folder-tests.skip b/changelog.d/fix-bookmark-folder-tests.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-dockerfile.skip b/changelog.d/fix-dockerfile.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-duplicate-inbox-deliveries.fix b/changelog.d/fix-duplicate-inbox-deliveries.fix deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-migration.skip b/changelog.d/fix-migration.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-mrfs.add b/changelog.d/fix-mrfs.add deleted file mode 100644 index 2a0fb0768..000000000 --- a/changelog.d/fix-mrfs.add +++ /dev/null @@ -1 +0,0 @@ -Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB. diff --git a/changelog.d/fix-otp-comparison.skip b/changelog.d/fix-otp-comparison.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-tests.skip b/changelog.d/fix-tests.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/fix-webfinger-spoofing.security b/changelog.d/fix-webfinger-spoofing.security deleted file mode 100644 index 7b3c9490a..000000000 --- a/changelog.d/fix-webfinger-spoofing.security +++ /dev/null @@ -1 +0,0 @@ -Fix webfinger spoofing. diff --git a/changelog.d/force-mention-mrf.add b/changelog.d/force-mention-mrf.add deleted file mode 100644 index 46ac14244..000000000 --- a/changelog.d/force-mention-mrf.add +++ /dev/null @@ -1 +0,0 @@ -Add ForceMention MRF \ No newline at end of file diff --git a/changelog.d/framegrabs.fix b/changelog.d/framegrabs.fix deleted file mode 100644 index dc0466f1b..000000000 --- a/changelog.d/framegrabs.fix +++ /dev/null @@ -1 +0,0 @@ -Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg diff --git a/changelog.d/frontend-management.add b/changelog.d/frontend-management.add deleted file mode 100644 index b85cddd96..000000000 --- a/changelog.d/frontend-management.add +++ /dev/null @@ -1 +0,0 @@ -[docs] add frontends management documentation diff --git a/changelog.d/generate-unset-user-keys-migration.skip b/changelog.d/generate-unset-user-keys-migration.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/group-actor.add b/changelog.d/group-actor.add deleted file mode 100644 index 2f614b3d8..000000000 --- a/changelog.d/group-actor.add +++ /dev/null @@ -1 +0,0 @@ -Implement group actors diff --git a/changelog.d/group-repeats.fix b/changelog.d/group-repeats.fix deleted file mode 100644 index d465122dd..000000000 --- a/changelog.d/group-repeats.fix +++ /dev/null @@ -1 +0,0 @@ -Deactivated groups would still try to repeat a post. diff --git a/changelog.d/gun-logs-debug.skip b/changelog.d/gun-logs-debug.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/gun-logs.skip b/changelog.d/gun-logs.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/gun_pool.fix b/changelog.d/gun_pool.fix deleted file mode 100644 index 94ec9103d..000000000 --- a/changelog.d/gun_pool.fix +++ /dev/null @@ -1 +0,0 @@ -Fix logic error in Gun connection pooling which prevented retries even when the worker was launched with retry = true diff --git a/changelog.d/gun_pool2.fix b/changelog.d/gun_pool2.fix deleted file mode 100644 index a1f98b49c..000000000 --- a/changelog.d/gun_pool2.fix +++ /dev/null @@ -1 +0,0 @@ -Connection pool errors when publishing an activity is a soft-error that will be retried shortly. diff --git a/changelog.d/gun_pool3.skip b/changelog.d/gun_pool3.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/gun_pool4.fix b/changelog.d/gun_pool4.fix deleted file mode 100644 index f68c1c970..000000000 --- a/changelog.d/gun_pool4.fix +++ /dev/null @@ -1 +0,0 @@ -Gun Connection Pool was not retrying to acquire a connection if the pool was full and stale connections were reclaimed diff --git a/changelog.d/hackney-pool-timeouts.change b/changelog.d/hackney-pool-timeouts.change deleted file mode 100644 index d763fe602..000000000 --- a/changelog.d/hackney-pool-timeouts.change +++ /dev/null @@ -1 +0,0 @@ -Change Hackney connection pool timeouts to align with the values Gun uses diff --git a/changelog.d/handle-non-validate-delete-errors.change b/changelog.d/handle-non-validate-delete-errors.change deleted file mode 100644 index 94adb0e98..000000000 --- a/changelog.d/handle-non-validate-delete-errors.change +++ /dev/null @@ -1 +0,0 @@ -Transmogrifier: handle non-validate errors on incoming Delete activities diff --git a/changelog.d/handle_object_fetch_failures.change b/changelog.d/handle_object_fetch_failures.change deleted file mode 100644 index ae44e6f4b..000000000 --- a/changelog.d/handle_object_fetch_failures.change +++ /dev/null @@ -1 +0,0 @@ -Remote object fetch failures will prevent the object fetch job from retrying if the object request returns 401, 403, 404, 410, or exceeds the maximum thread depth. diff --git a/changelog.d/healthcheck-disabled-error.fix b/changelog.d/healthcheck-disabled-error.fix deleted file mode 100644 index 984384a52..000000000 --- a/changelog.d/healthcheck-disabled-error.fix +++ /dev/null @@ -1 +0,0 @@ -TwitterAPI: Return proper error when healthcheck is disabled diff --git a/changelog.d/ingestion-queue.skip b/changelog.d/ingestion-queue.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/instance-contact-account.add b/changelog.d/instance-contact-account.add deleted file mode 100644 index e119446d2..000000000 --- a/changelog.d/instance-contact-account.add +++ /dev/null @@ -1 +0,0 @@ -Add contact account to InstanceView \ No newline at end of file diff --git a/changelog.d/instance-defdelegates.skip b/changelog.d/instance-defdelegates.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/instance-rules.add b/changelog.d/instance-rules.add deleted file mode 100644 index 42f3cbfa1..000000000 --- a/changelog.d/instance-rules.add +++ /dev/null @@ -1 +0,0 @@ -Add instance rules \ No newline at end of file diff --git a/changelog.d/instance-v2.add b/changelog.d/instance-v2.add deleted file mode 100644 index 4dd7ce8c0..000000000 --- a/changelog.d/instance-v2.add +++ /dev/null @@ -1 +0,0 @@ -Implement /api/v2/instance route \ No newline at end of file diff --git a/changelog.d/instance-v2.skip b/changelog.d/instance-v2.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/ipfs-dialyzer.skip b/changelog.d/ipfs-dialyzer.skip deleted file mode 100644 index b3e74cd19..000000000 --- a/changelog.d/ipfs-dialyzer.skip +++ /dev/null @@ -1 +0,0 @@ -no comment diff --git a/changelog.d/issue-3241.fix b/changelog.d/issue-3241.fix deleted file mode 100644 index d46db9805..000000000 --- a/changelog.d/issue-3241.fix +++ /dev/null @@ -1 +0,0 @@ -Handle cases when users.inbox is nil. diff --git a/changelog.d/last_status_at.change b/changelog.d/last_status_at.change deleted file mode 100644 index 5417aff30..000000000 --- a/changelog.d/last_status_at.change +++ /dev/null @@ -1 +0,0 @@ -- Change AccountView `last_status_at` from a datetime to a date (as done in Mastodon 3.1.0) \ No newline at end of file diff --git a/changelog.d/ldap-error-logging.change b/changelog.d/ldap-error-logging.change deleted file mode 100644 index 56f0e7fc3..000000000 --- a/changelog.d/ldap-error-logging.change +++ /dev/null @@ -1 +0,0 @@ -Improve error logging when LDAP authentication fails. diff --git a/changelog.d/ldap.fix b/changelog.d/ldap.fix deleted file mode 100644 index 9ca697287..000000000 --- a/changelog.d/ldap.fix +++ /dev/null @@ -1 +0,0 @@ -Fix LDAP support diff --git a/changelog.d/link-verification.add b/changelog.d/link-verification.add deleted file mode 100644 index d8b11ebbc..000000000 --- a/changelog.d/link-verification.add +++ /dev/null @@ -1 +0,0 @@ -Verify profile link ownership with rel="me" \ No newline at end of file diff --git a/changelog.d/loading-order-test-fix.skip b/changelog.d/loading-order-test-fix.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/local-webfinger.fix b/changelog.d/local-webfinger.fix deleted file mode 100644 index d99056efd..000000000 --- a/changelog.d/local-webfinger.fix +++ /dev/null @@ -1 +0,0 @@ -Use correct domain for fqn and InstanceView \ No newline at end of file diff --git a/changelog.d/logger-metadata.add b/changelog.d/logger-metadata.add deleted file mode 100644 index 6c627a972..000000000 --- a/changelog.d/logger-metadata.add +++ /dev/null @@ -1 +0,0 @@ -Logger metadata is now attached to some logs to help with troubleshooting and analysis diff --git a/changelog.d/mark-read.fix b/changelog.d/mark-read.fix deleted file mode 100644 index 346eb19e2..000000000 --- a/changelog.d/mark-read.fix +++ /dev/null @@ -1 +0,0 @@ -The query for marking notifications as read has been simplified diff --git a/changelog.d/mastodon_api_v2.add b/changelog.d/mastodon_api_v2.add deleted file mode 100644 index d53aa35c4..000000000 --- a/changelog.d/mastodon_api_v2.add +++ /dev/null @@ -1 +0,0 @@ -Add new parameters to /api/v2/instance: configuration[accounts][max_pinned_statuses] and configuration[statuses][characters_reserved_per_url] diff --git a/changelog.d/mastodon_directory.fix b/changelog.d/mastodon_directory.fix deleted file mode 100644 index 937c8f864..000000000 --- a/changelog.d/mastodon_directory.fix +++ /dev/null @@ -1 +0,0 @@ -Mastodon API /api/v1/directory: Fix listing directory contents when not authenticated diff --git a/changelog.d/mediaproxy-http.fix b/changelog.d/mediaproxy-http.fix deleted file mode 100644 index 4ff6430e0..000000000 --- a/changelog.d/mediaproxy-http.fix +++ /dev/null @@ -1 +0,0 @@ -Ensure MediaProxy HTTP requests obey all the defined connection settings diff --git a/changelog.d/meilisearch.add b/changelog.d/meilisearch.add deleted file mode 100644 index 4856eea2e..000000000 --- a/changelog.d/meilisearch.add +++ /dev/null @@ -1 +0,0 @@ -Add meilisearch, make search engines pluggable diff --git a/changelog.d/memleak.fix b/changelog.d/memleak.fix deleted file mode 100644 index 2465921c0..000000000 --- a/changelog.d/memleak.fix +++ /dev/null @@ -1 +0,0 @@ -Fix a memory leak caused by Websocket connections that would not enter a state where a full garbage collection run could be triggered. diff --git a/changelog.d/mergeback-2.6.2.skip b/changelog.d/mergeback-2.6.2.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/metadata-provider-empty-post.fix b/changelog.d/metadata-provider-empty-post.fix deleted file mode 100644 index 8d6341c6c..000000000 --- a/changelog.d/metadata-provider-empty-post.fix +++ /dev/null @@ -1 +0,0 @@ -Fix OpenGraph and Twitter metadata providers when parsing objects with no content or summary fields. diff --git a/changelog.d/migration-fix.skip b/changelog.d/migration-fix.skip deleted file mode 100644 index 8b1378917..000000000 --- a/changelog.d/migration-fix.skip +++ /dev/null @@ -1 +0,0 @@ - diff --git a/changelog.d/missing-fks.add b/changelog.d/missing-fks.add deleted file mode 100644 index cf74de03b..000000000 --- a/changelog.d/missing-fks.add +++ /dev/null @@ -1 +0,0 @@ -Add missing indexes on foreign key relationships diff --git a/changelog.d/missing-mrfs.add b/changelog.d/missing-mrfs.add deleted file mode 100644 index 6a17f9e1a..000000000 --- a/changelog.d/missing-mrfs.add +++ /dev/null @@ -1 +0,0 @@ -Startup detection for configured MRF modules that are missing or incorrectly defined diff --git a/changelog.d/mix-indexer.add b/changelog.d/mix-indexer.add deleted file mode 100644 index 6effb959b..000000000 --- a/changelog.d/mix-indexer.add +++ /dev/null @@ -1 +0,0 @@ -Permit passing --chunk and --step values to the Pleroma.Search.Indexer Mix task diff --git a/changelog.d/mrf-nsfw-otp25.skip b/changelog.d/mrf-nsfw-otp25.skip deleted file mode 100644 index e804f19a0..000000000 --- a/changelog.d/mrf-nsfw-otp25.skip +++ /dev/null @@ -1 +0,0 @@ -noop diff --git a/changelog.d/mrf-regex-error.fix b/changelog.d/mrf-regex-error.fix deleted file mode 100644 index 2c43bc04a..000000000 --- a/changelog.d/mrf-regex-error.fix +++ /dev/null @@ -1 +0,0 @@ -MRF: Log sensible error for subdomains_regex diff --git a/changelog.d/mrf-steal-emoji-extname.fix b/changelog.d/mrf-steal-emoji-extname.fix deleted file mode 100644 index 197aa9b9e..000000000 --- a/changelog.d/mrf-steal-emoji-extname.fix +++ /dev/null @@ -1 +0,0 @@ -MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one diff --git a/changelog.d/mrf_hashtags.fix b/changelog.d/mrf_hashtags.fix deleted file mode 100644 index c44c2376b..000000000 --- a/changelog.d/mrf_hashtags.fix +++ /dev/null @@ -1 +0,0 @@ -Federated timeline removal of hashtags via MRF HashtagPolicy diff --git a/changelog.d/nil-content-map.fix b/changelog.d/nil-content-map.fix deleted file mode 100644 index d4943bf74..000000000 --- a/changelog.d/nil-content-map.fix +++ /dev/null @@ -1 +0,0 @@ -Support objects with a null contentMap (firefish) diff --git a/changelog.d/no-async-with-clear-config.skip b/changelog.d/no-async-with-clear-config.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/notification-spex.skip b/changelog.d/notification-spex.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/notifications-index.fix b/changelog.d/notifications-index.fix deleted file mode 100644 index 4617cbec0..000000000 --- a/changelog.d/notifications-index.fix +++ /dev/null @@ -1 +0,0 @@ -Fix notifications query which was not using the index properly diff --git a/changelog.d/notifications.fix b/changelog.d/notifications.fix deleted file mode 100644 index a2d2eaea9..000000000 --- a/changelog.d/notifications.fix +++ /dev/null @@ -1 +0,0 @@ -Notifications: improve performance by filtering on users table instead of activities table \ No newline at end of file diff --git a/changelog.d/oauth-nickname.skip b/changelog.d/oauth-nickname.skip deleted file mode 100644 index 02f16e06c..000000000 --- a/changelog.d/oauth-nickname.skip +++ /dev/null @@ -1 +0,0 @@ -Use User.full_nickname/1 in oauth html template \ No newline at end of file diff --git a/changelog.d/oban-cancel-badreq.change b/changelog.d/oban-cancel-badreq.change deleted file mode 100644 index c7951735c..000000000 --- a/changelog.d/oban-cancel-badreq.change +++ /dev/null @@ -1 +0,0 @@ -Publisher jobs will not retry if the error received is a 400 diff --git a/changelog.d/oban-cancel-federation.add b/changelog.d/oban-cancel-federation.add deleted file mode 100644 index 148193680..000000000 --- a/changelog.d/oban-cancel-federation.add +++ /dev/null @@ -1 +0,0 @@ -Deleting, Unfavoriting, Unrepeating, or Unreacting will cancel undelivered publishing jobs for the original activity. diff --git a/changelog.d/oban-cancel-poll-result.change b/changelog.d/oban-cancel-poll-result.change deleted file mode 100644 index b51c460a7..000000000 --- a/changelog.d/oban-cancel-poll-result.change +++ /dev/null @@ -1 +0,0 @@ -PollWorker jobs will not retry if the activity no longer exists. diff --git a/changelog.d/oban-cancel-receiverworker.change b/changelog.d/oban-cancel-receiverworker.change deleted file mode 100644 index 70ad22d60..000000000 --- a/changelog.d/oban-cancel-receiverworker.change +++ /dev/null @@ -1 +0,0 @@ -Improved detecting unrecoverable errors for incoming federation jobs diff --git a/changelog.d/oban-cancel.change b/changelog.d/oban-cancel.change deleted file mode 100644 index e4512d3bb..000000000 --- a/changelog.d/oban-cancel.change +++ /dev/null @@ -1 +0,0 @@ -Changed some jobs to return :cancel on unrecoverable errors that should not be retried diff --git a/changelog.d/oban-deprecated-discards.skip b/changelog.d/oban-deprecated-discards.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/oban-fetcher-rejected.change b/changelog.d/oban-fetcher-rejected.change deleted file mode 100644 index 65f5c992d..000000000 --- a/changelog.d/oban-fetcher-rejected.change +++ /dev/null @@ -1 +0,0 @@ -Discard Remote Fetcher jobs which errored due to an MRF rejection. diff --git a/changelog.d/oban-live_dashboard.add b/changelog.d/oban-live_dashboard.add deleted file mode 100644 index b5b3e4f41..000000000 --- a/changelog.d/oban-live_dashboard.add +++ /dev/null @@ -1 +0,0 @@ -Oban jobs can now be viewed in the Live Dashboard diff --git a/changelog.d/oban-queues.change b/changelog.d/oban-queues.change deleted file mode 100644 index 16df6409a..000000000 --- a/changelog.d/oban-queues.change +++ /dev/null @@ -1 +0,0 @@ -Oban queues have refactored to simplify the queue design diff --git a/changelog.d/oban-rich-media-errors.fix b/changelog.d/oban-rich-media-errors.fix deleted file mode 100644 index b904108db..000000000 --- a/changelog.d/oban-rich-media-errors.fix +++ /dev/null @@ -1 +0,0 @@ -Prevent Rich Media backfill jobs from retrying in cases where it is likely they will fail again. diff --git a/changelog.d/oban-timeouts.change b/changelog.d/oban-timeouts.change deleted file mode 100644 index 33d017c5c..000000000 --- a/changelog.d/oban-timeouts.change +++ /dev/null @@ -1 +0,0 @@ -Ensure all Oban jobs have timeouts defined diff --git a/changelog.d/oban-timeouts.skip b/changelog.d/oban-timeouts.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/oban-transmogrifier.skip b/changelog.d/oban-transmogrifier.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/oban-user-refresh-unique.fix b/changelog.d/oban-user-refresh-unique.fix deleted file mode 100644 index 5e112c87f..000000000 --- a/changelog.d/oban-user-refresh-unique.fix +++ /dev/null @@ -1 +0,0 @@ -Oban Jobs for refreshing users were not respecting the uniqueness setting diff --git a/changelog.d/opengraph-rich-media-proxy.add b/changelog.d/opengraph-rich-media-proxy.add deleted file mode 100644 index 2b2fc657d..000000000 --- a/changelog.d/opengraph-rich-media-proxy.add +++ /dev/null @@ -1 +0,0 @@ -Add media proxy to opengraph rich media cards diff --git a/changelog.d/optimistic-inbox-sigs.fix b/changelog.d/optimistic-inbox-sigs.fix deleted file mode 100644 index 53ffe6b5b..000000000 --- a/changelog.d/optimistic-inbox-sigs.fix +++ /dev/null @@ -1 +0,0 @@ -Fix Optimistic Inbox for failed signatures diff --git a/changelog.d/optimistic-inbox.change b/changelog.d/optimistic-inbox.change deleted file mode 100644 index 2cf1ce92c..000000000 --- a/changelog.d/optimistic-inbox.change +++ /dev/null @@ -1 +0,0 @@ -Optimistic Inbox reduces the processing overhead of incoming activities without instantly verifiable signatures. diff --git a/changelog.d/otp26.add b/changelog.d/otp26.add deleted file mode 100644 index b019afdf3..000000000 --- a/changelog.d/otp26.add +++ /dev/null @@ -1 +0,0 @@ -Support for Erlang OTP 26 diff --git a/changelog.d/pinned-collection-fetch.security b/changelog.d/pinned-collection-fetch.security deleted file mode 100644 index 4e8746924..000000000 --- a/changelog.d/pinned-collection-fetch.security +++ /dev/null @@ -1 +0,0 @@ -Use proper workers for fetching pins instead of an ad-hoc task, fixing a potential fetch loop diff --git a/changelog.d/pools.change b/changelog.d/pools.change deleted file mode 100644 index 3c689195a..000000000 --- a/changelog.d/pools.change +++ /dev/null @@ -1 +0,0 @@ -HTTP connection pool adjustments diff --git a/changelog.d/postgres-jit.change b/changelog.d/postgres-jit.change deleted file mode 100644 index 38225b06b..000000000 --- a/changelog.d/postgres-jit.change +++ /dev/null @@ -1 +0,0 @@ -Disable jit by default for PostgreSQL diff --git a/changelog.d/prioritize-direct-recipients.add b/changelog.d/prioritize-direct-recipients.add deleted file mode 100644 index 4efc94c68..000000000 --- a/changelog.d/prioritize-direct-recipients.add +++ /dev/null @@ -1 +0,0 @@ -- Prioritize mentioned recipients (i.e., those that are not just followers) when federating. diff --git a/changelog.d/prometheus-docs.change b/changelog.d/prometheus-docs.change deleted file mode 100644 index a9bd1e2e9..000000000 --- a/changelog.d/prometheus-docs.change +++ /dev/null @@ -1 +0,0 @@ -Update the documentation for configuring Prometheus metrics. diff --git a/changelog.d/promex.change b/changelog.d/promex.change deleted file mode 100644 index 6c1571c54..000000000 --- a/changelog.d/promex.change +++ /dev/null @@ -1 +0,0 @@ -Change the prometheus library to PromEx. diff --git a/changelog.d/promexdocs.add b/changelog.d/promexdocs.add deleted file mode 100644 index dda972994..000000000 --- a/changelog.d/promexdocs.add +++ /dev/null @@ -1 +0,0 @@ -PromEx documentation diff --git a/changelog.d/public-polls.add b/changelog.d/public-polls.add deleted file mode 100644 index 0dae0c38e..000000000 --- a/changelog.d/public-polls.add +++ /dev/null @@ -1 +0,0 @@ -Expose nonAnonymous field from Smithereen polls \ No newline at end of file diff --git a/changelog.d/publisher.change b/changelog.d/publisher.change deleted file mode 100644 index 0d26d7b00..000000000 --- a/changelog.d/publisher.change +++ /dev/null @@ -1 +0,0 @@ -Publisher jobs now store the the activity id instead of inserting duplicate JSON data in the Oban queue for each delivery. diff --git a/changelog.d/publisher_discard.change b/changelog.d/publisher_discard.change deleted file mode 100644 index 85e530d8d..000000000 --- a/changelog.d/publisher_discard.change +++ /dev/null @@ -1 +0,0 @@ -Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410 diff --git a/changelog.d/publisher_log.change b/changelog.d/publisher_log.change deleted file mode 100644 index 3f85f5a1e..000000000 --- a/changelog.d/publisher_log.change +++ /dev/null @@ -1 +0,0 @@ -Publisher errors will now emit logs indicating the inbox that was not available for delivery. diff --git a/changelog.d/qdrant_search.add b/changelog.d/qdrant_search.add deleted file mode 100644 index 9801131d1..000000000 --- a/changelog.d/qdrant_search.add +++ /dev/null @@ -1 +0,0 @@ -Add Qdrant/OpenAI embedding search diff --git a/changelog.d/qtfaststart.fix b/changelog.d/qtfaststart.fix deleted file mode 100644 index 66d2569f2..000000000 --- a/changelog.d/qtfaststart.fix +++ /dev/null @@ -1 +0,0 @@ -MediaProxy Preview failures prevented when encountering certain video files diff --git a/changelog.d/quotes-count.skip b/changelog.d/quotes-count.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/reachability.change b/changelog.d/reachability.change deleted file mode 100644 index 06f63272b..000000000 --- a/changelog.d/reachability.change +++ /dev/null @@ -1 +0,0 @@ -Reduce the reachability timestamp update to a single upsert query diff --git a/changelog.d/realpath-over-readlink.fix b/changelog.d/realpath-over-readlink.fix deleted file mode 100644 index 479561b95..000000000 --- a/changelog.d/realpath-over-readlink.fix +++ /dev/null @@ -1 +0,0 @@ -pleroma_ctl: Use realpath(1) instead of readlink(1) diff --git a/changelog.d/receiverworker-error-handling.fix b/changelog.d/receiverworker-error-handling.fix deleted file mode 100644 index f017a2bba..000000000 --- a/changelog.d/receiverworker-error-handling.fix +++ /dev/null @@ -1 +0,0 @@ -ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …} \ No newline at end of file diff --git a/changelog.d/remote-fetcher-error.skip b/changelog.d/remote-fetcher-error.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/reply-to-deleted.change b/changelog.d/reply-to-deleted.change deleted file mode 100644 index 8b952ee7a..000000000 --- a/changelog.d/reply-to-deleted.change +++ /dev/null @@ -1 +0,0 @@ -A 422 error is returned when attempting to reply to a deleted status diff --git a/changelog.d/rich-media-hardening.fix b/changelog.d/rich-media-hardening.fix deleted file mode 100644 index ff3dc81f3..000000000 --- a/changelog.d/rich-media-hardening.fix +++ /dev/null @@ -1 +0,0 @@ -Harden Rich Media parsing against very slow or malicious URLs diff --git a/changelog.d/rich_media.fix b/changelog.d/rich_media.fix deleted file mode 100644 index 08f119550..000000000 --- a/changelog.d/rich_media.fix +++ /dev/null @@ -1 +0,0 @@ -Rich Media Preview cache eviction when the activity is updated. diff --git a/changelog.d/rich_media_backfill.change b/changelog.d/rich_media_backfill.change deleted file mode 100644 index d746ac8ce..000000000 --- a/changelog.d/rich_media_backfill.change +++ /dev/null @@ -1 +0,0 @@ -Rich Media backfilling is now an Oban job diff --git a/changelog.d/rich_media_config.skip b/changelog.d/rich_media_config.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/rich_media_oban.skip b/changelog.d/rich_media_oban.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/rich_media_refactor.change b/changelog.d/rich_media_refactor.change deleted file mode 100644 index c0d4e3b0a..000000000 --- a/changelog.d/rich_media_refactor.change +++ /dev/null @@ -1 +0,0 @@ -Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated. diff --git a/changelog.d/rich_media_stream_test.skip b/changelog.d/rich_media_stream_test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/rich_media_tests.skip b/changelog.d/rich_media_tests.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/richmediattl.fix b/changelog.d/richmediattl.fix deleted file mode 100644 index 98de63015..000000000 --- a/changelog.d/richmediattl.fix +++ /dev/null @@ -1 +0,0 @@ -Parsing of RichMedia TTLs for Amazon URLs when query parameters are nil diff --git a/changelog.d/scrobble-url.add b/changelog.d/scrobble-url.add deleted file mode 100644 index 24bdeed89..000000000 --- a/changelog.d/scrobble-url.add +++ /dev/null @@ -1 +0,0 @@ -Adds the capability to add a URL to a scrobble (optional field) diff --git a/changelog.d/scrubbers-html4-GtS.add b/changelog.d/scrubbers-html4-GtS.add deleted file mode 100644 index 7f99dbb25..000000000 --- a/changelog.d/scrubbers-html4-GtS.add +++ /dev/null @@ -1 +0,0 @@ -- scrubbers/default: Add more formatting elements from HTML4 / GoToSocial (acronym, bdo, big, cite, dfn, ins, kbd, q, samp, s, tt, var, wbr) diff --git a/changelog.d/search-healthcheck.add b/changelog.d/search-healthcheck.add deleted file mode 100644 index 4974925e7..000000000 --- a/changelog.d/search-healthcheck.add +++ /dev/null @@ -1 +0,0 @@ -Monitoring of search backend health to control the processing of jobs in the search indexing Oban queue diff --git a/changelog.d/show-reposter-replies.add b/changelog.d/show-reposter-replies.add deleted file mode 100644 index 3b852ec3b..000000000 --- a/changelog.d/show-reposter-replies.add +++ /dev/null @@ -1 +0,0 @@ -Display reposted replies with exclude_replies: true \ No newline at end of file diff --git a/changelog.d/spex-error-log.skip b/changelog.d/spex-error-log.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/status-notification-type.add b/changelog.d/status-notification-type.add deleted file mode 100644 index a6e94fa87..000000000 --- a/changelog.d/status-notification-type.add +++ /dev/null @@ -1 +0,0 @@ -Add "status" notification type \ No newline at end of file diff --git a/changelog.d/stream-end-poll.fix b/changelog.d/stream-end-poll.fix deleted file mode 100644 index db513efdc..000000000 --- a/changelog.d/stream-end-poll.fix +++ /dev/null @@ -1 +0,0 @@ -End of poll notifications were not streamed over websockets or web push diff --git a/changelog.d/support-honk-image-summaries.add b/changelog.d/support-honk-image-summaries.add deleted file mode 100644 index 052c03f95..000000000 --- a/changelog.d/support-honk-image-summaries.add +++ /dev/null @@ -1 +0,0 @@ -Support honk-style attachment summaries as alt-text. diff --git a/changelog.d/system-cflags.fix b/changelog.d/system-cflags.fix deleted file mode 100644 index 84de5ad57..000000000 --- a/changelog.d/system-cflags.fix +++ /dev/null @@ -1 +0,0 @@ -- Fix eblurhash and elixir-captcha not using system cflags diff --git a/changelog.d/tesla.deps b/changelog.d/tesla.deps deleted file mode 100644 index 799bbc670..000000000 --- a/changelog.d/tesla.deps +++ /dev/null @@ -1 +0,0 @@ -Update Tesla HTTP client middleware to 1.8.0 diff --git a/changelog.d/test-improvements.skip b/changelog.d/test-improvements.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/testsecrets.skip b/changelog.d/testsecrets.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/transient-validators-defaults.change b/changelog.d/transient-validators-defaults.change deleted file mode 100644 index 225cf4d0c..000000000 --- a/changelog.d/transient-validators-defaults.change +++ /dev/null @@ -1 +0,0 @@ -Set default values on validators for transient objects (attachment, poll options) diff --git a/changelog.d/typo.skip b/changelog.d/typo.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/user-refresh-rework.skip b/changelog.d/user-refresh-rework.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/user-refresh.change b/changelog.d/user-refresh.change deleted file mode 100644 index b91169a9e..000000000 --- a/changelog.d/user-refresh.change +++ /dev/null @@ -1 +0,0 @@ -User profile refreshes are now asynchronous diff --git a/changelog.d/video-thumbs.fix b/changelog.d/video-thumbs.fix deleted file mode 100644 index 03e862f3d..000000000 --- a/changelog.d/video-thumbs.fix +++ /dev/null @@ -1 +0,0 @@ -Video thumbnails were not being generated due to a negative cache lookup logic error diff --git a/changelog.d/vips.change b/changelog.d/vips.change deleted file mode 100644 index ee18cd34b..000000000 --- a/changelog.d/vips.change +++ /dev/null @@ -1 +0,0 @@ -Change mediaproxy previews to use vips to generate thumbnails instead of ImageMagick diff --git a/changelog.d/web_push.fix b/changelog.d/web_push.fix deleted file mode 100644 index cf933e2d4..000000000 --- a/changelog.d/web_push.fix +++ /dev/null @@ -1 +0,0 @@ -Fix web push notifications not successfully delivering diff --git a/changelog.d/web_push_actor_regression.skip b/changelog.d/web_push_actor_regression.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/changelog.d/web_push_filtered.fix b/changelog.d/web_push_filtered.fix deleted file mode 100644 index b9159362a..000000000 --- a/changelog.d/web_push_filtered.fix +++ /dev/null @@ -1 +0,0 @@ -Web Push notifications are no longer generated for muted/blocked threads and users. diff --git a/changelog.d/webfinger-validation.fix b/changelog.d/webfinger-validation.fix deleted file mode 100644 index e64312666..000000000 --- a/changelog.d/webfinger-validation.fix +++ /dev/null @@ -1 +0,0 @@ -Fix validate_webfinger when running a different domain for Webfinger \ No newline at end of file diff --git a/changelog.d/webpush-polls.change b/changelog.d/webpush-polls.change deleted file mode 100644 index 5607d6bfc..000000000 --- a/changelog.d/webpush-polls.change +++ /dev/null @@ -1 +0,0 @@ -Render nice web push notifications for polls diff --git a/changelog.d/websocket-refactor.change b/changelog.d/websocket-refactor.change deleted file mode 100644 index 3c447832b..000000000 --- a/changelog.d/websocket-refactor.change +++ /dev/null @@ -1 +0,0 @@ -Refactor the Mastodon /api/v1/streaming websocket handler to use Phoenix.Socket.Transport From 574bc1fa5f9fd804d57311d25f36566b9e527322 Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Thu, 1 Aug 2024 11:49:36 +0400 Subject: [PATCH 06/58] Frontend: Update to 2.7.0 --- priv/static/index.html | 2 +- .../static/css/159.1d523a00378ebd68c5b3.css.map | 1 - ...378ebd68c5b3.css => 1597.a250eca8cf87418c7b3e.css} | 4 ++-- .../static/css/1597.a250eca8cf87418c7b3e.css.map | 1 + priv/static/static/css/5250.b9104f3df4166526b081.css | 2 ++ .../static/css/5250.b9104f3df4166526b081.css.map | 1 + priv/static/static/css/5292.035030cbb2311a7ddada.css | 11 +++++++++++ .../static/css/5292.035030cbb2311a7ddada.css.map | 1 + priv/static/static/css/6464.169260b661120cc50815.css | 2 -- .../static/css/6464.169260b661120cc50815.css.map | 1 - priv/static/static/css/6464.7845ee2ccc5e22628b2a.css | 2 ++ .../static/css/6464.7845ee2ccc5e22628b2a.css.map | 1 + priv/static/static/css/7586.0d43f70bc6240422f179.css | 2 -- .../static/css/7586.0d43f70bc6240422f179.css.map | 1 - priv/static/static/css/7594.a8030565c3ef463dc1de.css | 2 ++ .../static/css/7594.a8030565c3ef463dc1de.css.map | 1 + priv/static/static/css/7962.76663e78ad5ea0bb0b90.css | 11 ----------- .../static/css/7962.76663e78ad5ea0bb0b90.css.map | 1 - priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css | 2 -- .../static/css/8859.d26a3b0841a7beb8fd4a.css.map | 1 - priv/static/static/css/app.75b043cffb8e922bc29e.css | 2 ++ .../static/css/app.75b043cffb8e922bc29e.css.map | 1 + priv/static/static/css/app.a7f63ee9107a77599942.css | 2 -- .../static/css/app.a7f63ee9107a77599942.css.map | 1 - priv/static/static/js/159.903e90c9de8ef6c67077.js | 2 -- priv/static/static/js/159.903e90c9de8ef6c67077.js.map | 1 - priv/static/static/js/1597.134341dec11e42dd5fae.js | 2 ++ .../static/static/js/1597.134341dec11e42dd5fae.js.map | 1 + priv/static/static/js/3733.7060d1e6bca813125a0c.js | 3 --- .../static/static/js/3733.7060d1e6bca813125a0c.js.map | 1 - priv/static/static/js/48.b5ecdbc517423af07ca4.js | 3 --- priv/static/static/js/48.b5ecdbc517423af07ca4.js.map | 1 - priv/static/static/js/48.f58874c23a9bf1c1f591.js | 3 +++ ...NSE.txt => 48.f58874c23a9bf1c1f591.js.LICENSE.txt} | 0 priv/static/static/js/48.f58874c23a9bf1c1f591.js.map | 1 + priv/static/static/js/5250.f0d4cfa412bbf8163d11.js | 2 ++ .../static/static/js/5250.f0d4cfa412bbf8163d11.js.map | 1 + priv/static/static/js/5292.125b85a896c810481068.js | 2 ++ .../static/static/js/5292.125b85a896c810481068.js.map | 1 + ...a1c948cde554e9.js => 6464.6f764a6d660917d88ca5.js} | 2 +- ...e554e9.js.map => 6464.6f764a6d660917d88ca5.js.map} | 2 +- priv/static/static/js/6561.24d12b4e33b21319845b.js | 3 +++ ...E.txt => 6561.24d12b4e33b21319845b.js.LICENSE.txt} | 8 ++++++++ .../static/static/js/6561.24d12b4e33b21319845b.js.map | 1 + priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js | 2 -- .../static/static/js/7586.628f729b9c8b2e6f4e1f.js.map | 1 - priv/static/static/js/7594.f0ffca037eec090815d9.js | 2 ++ .../static/static/js/7594.f0ffca037eec090815d9.js.map | 1 + priv/static/static/js/7962.e25d40b042f8ee7389c3.js | 2 -- .../static/static/js/7962.e25d40b042f8ee7389c3.js.map | 1 - priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js | 2 -- .../static/static/js/8859.c76b0a0c3a4b5acbef11.js.map | 1 - priv/static/static/js/9060.24271e167e0471a1a732.js | 2 -- .../static/static/js/9060.24271e167e0471a1a732.js.map | 1 - priv/static/static/js/9060.606ed1efce1ce3be713d.js | 2 ++ .../static/static/js/9060.606ed1efce1ce3be713d.js.map | 1 + priv/static/static/js/app.3fbb12e9679dc0e0aa33.js | 2 ++ priv/static/static/js/app.3fbb12e9679dc0e0aa33.js.map | 1 + priv/static/static/js/app.d42ab31e1d50a3265a82.js | 2 -- priv/static/static/js/app.d42ab31e1d50a3265a82.js.map | 1 - ...a6a2cce6246.js => af-json.260623f695510b34c146.js} | 0 ...7c18233fec3.js => am-json.fd30fc79a9ef9f40bcb3.js} | 0 ...49f2954d49b.js => ar-json.66fec1d991d30cf191ac.js} | 0 ...867070f0.js => ar_SA-json.89b9143ae611e2581b5b.js} | 0 ...1cecd195738.js => as-json.bd49b949563ed3872ea7.js} | 0 ...539c19a9b9.js => ast-json.b04ae8a41f30fcc498c6.js} | 0 ...d9c4d1f834c.js => az-json.fc8b49efe1bec779ad7c.js} | 0 ...873a4100c69.js => be-json.390af96d7085a650d098.js} | 0 ...2a7bf87e1db.js => bg-json.aada1abf5a5718a2785a.js} | 0 ...f36ad06c58d.js => bn-json.71061bf9106a3f1d06d9.js} | 0 ...8965ed10bae.js => br-json.623b25e4acdba3caea90.js} | 0 ...c7976cf083c.js => bs-json.895d6c19c442497a4542.js} | 0 ...b10b242c6a5.js => ca-json.4bf349a90cbee89b8a8f.js} | 0 ...e2b02291cb.js => ccp-json.915ed087d80fc6754272.js} | 0 ...8aa77ee395.js => ceb-json.d7c07bee01a6e04f3214.js} | 0 ...74167dec10.js => chr-json.037a46de1cb0ffa99c15.js} | 0 ...15aa76051a.js => ckb-json.3e534416e3850186a747.js} | 0 ...0dc9fe6b3dc.js => cs-json.606d434132759db14a54.js} | 0 ...5ad56530ead.js => cy-json.897b7ce472b1a390f392.js} | 0 ...f71edafc543.js => da-json.af3ed87176f973878b6e.js} | 0 ...191af1665e1.js => de-json.9592fc46ee6e2cc15606.js} | 0 ...8d616ec0.js => de_CH-json.c830189b2ad10099beec.js} | 0 ...b4e3da0bd1.js => doi-json.810d16be9637c3bc4d2d.js} | 0 ...8d62264466.js => dsb-json.b3e9991da8c100724645.js} | 0 ...a16d56c2314.js => el-json.4a78f601c28981142d91.js} | 0 ...49c3952084d.js => en-json.9049ee8252bf9c50468e.js} | 0 ...f59aa9f.js => en_001-json.6f674d7be8545f5249dd.js} | 0 ...273a34b1.js => en_AU-json.88f983885c5e77a522d2.js} | 0 ...8a5a4bb4.js => en_CA-json.481fa7a1009de1e09a52.js} | 0 ...facc81d1.js => en_GB-json.e12ddcfa4a9a2f213472.js} | 0 ...21928fca.js => en_IN-json.386a43a597b524565c01.js} | 0 ...367a9d7fb30.js => es-json.06f0b6d03919f378089e.js} | 0 ...6ed83bb.js => es_419-json.8424b58fe0295a7972dc.js} | 0 ...db1aeb33.js => es_MX-json.5e1160d486fdb5ee36e0.js} | 0 ...651d079a.js => es_US-json.c23781e2ed7aa713e880.js} | 0 ...a55ecb061cd.js => et-json.bc2b2889a512210a1537.js} | 0 ...fcc141549a5.js => eu-json.c01381c77dfb84017633.js} | 0 ...c8594ccf4fa.js => fa-json.a2458e1e0433704fc9d6.js} | 0 ...0faaba4abcc.js => fi-json.5f54dd17041a9e6fb818.js} | 0 ...8d1b889b69.js => fil-json.d057e86d94a109d9b786.js} | 0 ...9b3a8be4597.js => fo-json.5bc39548b737b814c5c3.js} | 0 ...a6622fe1c67.js => fr-json.26194bdddfdeb986269a.js} | 0 ...68707292.js => fr_CA-json.4e6a9b14341091c6742a.js} | 0 ...a8c445aea23.js => ga-json.2d53f85b5672fc5b9cd6.js} | 0 ...25be774ad81.js => gd-json.7b4f0937d99eaea7c15c.js} | 0 ...ae72224c994.js => gl-json.77123597a2fd634def06.js} | 0 ...cf260376905.js => gu-json.529b678e05ac5e6666f2.js} | 0 ...8925c10f970.js => ha-json.e2936eb1824633263448.js} | 0 ...fdd6ba57.js => ha_NE-json.5bb1461702b6b9a25a2a.js} | 0 ...2182b0955a2.js => he-json.b89324913e67b0cbef3a.js} | 0 ...c2169def97e.js => hi-json.caa9039c69fc619bb4d2.js} | 0 ...1f1908.js => hi_Latn-json.59c70483862a83131f1e.js} | 0 ...f18a60e513c.js => hr-json.7078f54504f4019e7019.js} | 0 ...4171bc6fc3.js => hsb-json.5752a21beca678ca22de.js} | 0 ...deda872b416.js => hu-json.0d93fa9c70bd2987942a.js} | 0 ...abfeba8457f.js => hy-json.7392cd8d62c85a8f3d55.js} | 0 ...f41779e2beb.js => ia-json.7abda2d4e5bb1ab9bb01.js} | 0 ...753b0b69330.js => id-json.be3d0b67868addd4d2ca.js} | 0 ...582463ba73c.js => ig-json.fec00094453b1024af11.js} | 0 ...215b034533d.js => is-json.f4f8eed224a9921d9d08.js} | 0 ...d3391f7f61a.js => it-json.da1cebce6afd4bb1ad5d.js} | 0 ...0c106355b0e.js => ja-json.98c56a5553477fcf8510.js} | 0 ...f22b46b6214.js => jv-json.9a579697582dd4da8515.js} | 0 ...d90a37003f3.js => ka-json.7ceb88c700f929fd1ba3.js} | 0 ...4ddc2b51dd.js => kab-json.a11ac7782cf683ba1fc4.js} | 0 ...bdfe99786ad.js => kk-json.e48b37a24122d49c3b21.js} | 0 ...4bdecd09faf.js => kl-json.92776bda19293c36a513.js} | 0 ...0faa64b4c53.js => km-json.49435b294880e56b2ad5.js} | 0 ...cb00991ba1e.js => kn-json.0fb5386110af3ba2c4ee.js} | 0 ...48f48ce87c8.js => ko-json.f819232d4ea91159bbb0.js} | 0 ...3bfb846233.js => kok-json.79368ff8ed458bbadc8a.js} | 0 ...8d7372ee209.js => ku-json.09d4b290940a5743f28b.js} | 0 ...c819eda9472.js => ky-json.a4d7bf8aa6b9fc268ee4.js} | 0 ...a653618ea9b.js => lb-json.ae00586748ab7e78fbcf.js} | 0 ...65a355b8157.js => lo-json.1e5d90a5f496ece86600.js} | 0 ...edc60127df6.js => lt-json.b30554764cd9dcab0ffb.js} | 0 ...d59fa0aa2e2.js => lv-json.9fe5ebef8867a98f5dcc.js} | 0 ...8f4d34f9c8.js => mai-json.b3eb2867f3dae2f0ca2e.js} | 0 ...ecd8987f80a.js => mi-json.5bf7d83b03a43d6b222e.js} | 0 ...570419cc426.js => mk-json.a58099730061ede27597.js} | 0 ...240faff1b48.js => ml-json.4029b72c11321ff49f04.js} | 0 ...68d0432640f.js => mn-json.1d71d86a284b090f309c.js} | 0 ...ce34e3683d.js => mni-json.b51930b659a2fbe92aee.js} | 0 ...abf8a52161d.js => mr-json.10d386d227d8eccd9f8c.js} | 0 ...aabc37015dd.js => ms-json.17cbe626b4520009e9b9.js} | 0 ...14adf90c500.js => mt-json.5bada7e5d0f89eec6a5f.js} | 0 ...813d15bba7e.js => my-json.e9c9074bcb0b7cf27297.js} | 0 ...096a101b8e8.js => ne-json.ace1f809ee53a942bf38.js} | 0 ...fa5e22cb585.js => nl-json.b500e4e202a9368e2834.js} | 0 ...205681cf48c.js => nn-json.d3b3cddc42dd89280d68.js} | 0 ...cc3c14ada58.js => no-json.3c3a1928a4ec2842457e.js} | 0 ...92dcc95efac.js => or-json.062e7bc0ce036e0869c2.js} | 0 ...2a108270669.js => pa-json.f1d90d460b83ede42498.js} | 0 ...6dd8a7.js => pa_Arab-json.7ecc921ea6ae7d5ad431.js} | 0 ...4b5b33289d.js => pcm-json.d34521c9683e5616db34.js} | 0 ...4dc6c169516.js => pl-json.6c4f3b09781d790d0db6.js} | 0 ...81bcad11e64.js => ps-json.88d6d49775d8f9c663c4.js} | 0 ...4291bdb2ae7.js => pt-json.e0210e062a8027ffb0f3.js} | 0 ...91b0e6b3.js => pt_PT-json.dbd8d4cf53226f886114.js} | 0 ...71076dbad9f.js => qu-json.c2d7991f40a4a3d8d5e7.js} | 0 ...386fd05a75c.js => rm-json.c77502e4c10101eb9113.js} | 0 ...78c94d1e813.js => ro-json.dccd74b28dd5784742c2.js} | 0 ...460837ccacc.js => ru-json.1f28233c5ea82e8b2e99.js} | 0 ...74676191131.js => rw-json.c0b7cbff0696430bc3f5.js} | 0 ...08c7469ccb4.js => sa-json.332142b117058f869a60.js} | 0 ...aaca8e021c.js => sat-json.e66e1ab5f51865665b62.js} | 0 ...2e104c43e4c.js => sc-json.8f7695808eb625453ecb.js} | 0 ...c3cf185f79d.js => sd-json.d7cc494d80b3e019846f.js} | 0 ...03623c10dbf.js => si-json.3660e3b9815e1b9589e6.js} | 0 ...a82655d0314.js => sk-json.3db034c6717655dfbbf6.js} | 0 ...a34fce6f1d0.js => sl-json.e64d6e5b433ff40babd2.js} | 0 ...37c8924c075.js => so-json.12a2621ada8dc497ef38.js} | 0 ...a6138aa089c.js => sq-json.a10b52fc261fdb767e0e.js} | 0 ...a708df0c6a8.js => sr-json.286656f6511ecef0620b.js} | 0 ...9f2.js => sr_Cyrl_BA-json.f2de1698d736be7cb7d3.js} | 0 ...fb8d70.js => sr_Latn-json.6d0e78c53a6c996f7148.js} | 0 ...754.js => sr_Latn_BA-json.9efe70d4f87053f148b5.js} | 0 ...020cbecea7d.js => su-json.b51522cc59d038be0544.js} | 0 ...a3a77519876.js => sv-json.8ac515e0f8396ddf6c08.js} | 0 ...b9cbcc0e126.js => sw-json.72684aa7dac892cb8cb9.js} | 0 ...158563d5.js => sw_KE-json.34b7da43677fa56e5e0d.js} | 0 ...07449d4a91b.js => ta-json.38b47dd7353471daf452.js} | 0 ...2cdf626244e.js => te-json.5f3edfe74048b3f9d552.js} | 0 ...4477d7d8e96.js => tg-json.4f1783c6c1da758319c0.js} | 2 +- ...23bb9d2587c.js => th-json.ba0ab95ab02ce2c939c6.js} | 0 ...bb960be805b.js => ti-json.4408ab975172165278bd.js} | 0 ...829921704ad.js => tk-json.5673e32b5abc49b2a251.js} | 0 ...1caaf592c94.js => to-json.360ff9ef00f0d1c7a57b.js} | 0 ...5006cf5b6cf.js => tr-json.713bfd260289f3323612.js} | 0 ...a9983ec8ef7.js => tt-json.249cbfc14263d519b9a9.js} | 0 ...e9ff02b0a8a.js => ug-json.51de5e5ba7bcb8576f82.js} | 0 ...f232638fc4d.js => uk-json.6a62f1a822def6f9226a.js} | 0 ...444c883a18f.js => ur-json.f9e844b4284c09a9fc7c.js} | 0 ...d4587324a20.js => uz-json.6f226c69bc9e3cdb2943.js} | 0 ...dd7f8c8bc67.js => vi-json.cb916206d909e482a501.js} | 0 ...cda0dd77e9a.js => wo-json.a2bdd903832fd3246da2.js} | 0 ...d3113dfc7f2.js => xh-json.5e356aaeaee395d041df.js} | 0 ...c360dd86f2e.js => yo-json.b92bb230b66b7d16a9b5.js} | 0 ...da92bad8.js => yo_BJ-json.67334e68952e79504647.js} | 0 ...df19bdfb4c.js => yue-json.a9b68824327da9c02318.js} | 0 ...d8207.js => yue_Hans-json.d0b0f7e7004b95cf59f7.js} | 0 ...d5c1aff6c85.js => zh-json.d4e08be048463f199b6d.js} | 0 ...3828a9.js => zh_Hant-json.fd2741548c8119e002d3.js} | 0 ...612.js => zh_Hant_HK-json.3eeb1788264aaa9730cb.js} | 0 ...90583fd0f6d.js => zu-json.0c4786052604b3d521bc.js} | 0 ...b64f59431137d.js => emoji.56150ad938e521d9ef81.js} | 0 ...47303aa65fe.js => ar-json.bb22e819fa0ea9299fa4.js} | 2 +- ...5fe.js.map => ar-json.bb22e819fa0ea9299fa4.js.map} | 2 +- ...1efa3c0627f.js => ca-json.f245d3f221094411dfcd.js} | 2 +- ...27f.js.map => ca-json.f245d3f221094411dfcd.js.map} | 2 +- .../static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js | 2 -- .../js/i18n/cs-json.5eedbe9f7084c349fbe8.js.map | 1 - .../static/js/i18n/cs-json.8cb69392de1a430e9c3f.js | 2 ++ .../js/i18n/cs-json.8cb69392de1a430e9c3f.js.map | 1 + ...c92f87ff37a.js => de-json.74b1f546c884d17b819a.js} | 2 +- ...37a.js.map => de-json.74b1f546c884d17b819a.js.map} | 2 +- .../static/js/i18n/eo-json.1d790624b6ea3832617a.js | 2 ++ .../js/i18n/eo-json.1d790624b6ea3832617a.js.map | 1 + .../static/js/i18n/eo-json.6c62eef99e850912498b.js | 2 -- .../js/i18n/eo-json.6c62eef99e850912498b.js.map | 1 - ...65e1f67d8a2.js => es-json.16c8ca99bc2dee099ca0.js} | 2 +- ...8a2.js.map => es-json.16c8ca99bc2dee099ca0.js.map} | 2 +- ...bb83a8aee75.js => et-json.e6066512bb8a65a06f89.js} | 2 +- ...e75.js.map => et-json.e6066512bb8a65a06f89.js.map} | 2 +- ...427995fc314.js => eu-json.e519f9e06eed5ad3cf41.js} | 2 +- ...314.js.map => eu-json.e519f9e06eed5ad3cf41.js.map} | 2 +- ...5a9431e2adb.js => fa-json.95757c7acb6dff777d7d.js} | 2 +- ...adb.js.map => fa-json.95757c7acb6dff777d7d.js.map} | 2 +- ...12d80493ab1.js => fi-json.dcde7d5d3f4927b6667e.js} | 2 +- ...ab1.js.map => fi-json.dcde7d5d3f4927b6667e.js.map} | 2 +- .../static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js | 2 -- .../js/i18n/fr-json.36ef21ccb1203d3e65ae.js.map | 1 - .../static/js/i18n/fr-json.7a64af58316da6ca86f0.js | 2 ++ .../js/i18n/fr-json.7a64af58316da6ca86f0.js.map | 1 + ...977a16f1d7e.js => ga-json.72cfdbaab827e141e497.js} | 2 +- ...d7e.js.map => ga-json.72cfdbaab827e141e497.js.map} | 2 +- ...4034de06e6f.js => he-json.25ae71e0ad9cdd21d447.js} | 2 +- ...e6f.js.map => he-json.25ae71e0ad9cdd21d447.js.map} | 2 +- ...7a7a8505ed8.js => hu-json.cc3c026f0ff445ebb4b6.js} | 2 +- ...ed8.js.map => hu-json.cc3c026f0ff445ebb4b6.js.map} | 2 +- ...155f88128b9.js => id-json.b00a413b6132632523e5.js} | 2 +- ...8b9.js.map => id-json.b00a413b6132632523e5.js.map} | 2 +- ...8376af17141.js => it-json.1b71f7623efed055d62b.js} | 2 +- ...141.js.map => it-json.1b71f7623efed055d62b.js.map} | 2 +- .../js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js | 2 -- .../js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map | 1 - .../js/i18n/ja_easy-json.b5f269a0a935c640f3b5.js | 2 ++ .../js/i18n/ja_easy-json.b5f269a0a935c640f3b5.js.map | 1 + .../js/i18n/ja_pedantic-json.7c472bf001679929edea.js | 2 ++ .../i18n/ja_pedantic-json.7c472bf001679929edea.js.map | 1 + .../js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js | 2 -- .../i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js.map | 1 - .../static/js/i18n/ko-json.51d23959bb9bae4f0ecf.js | 2 ++ .../js/i18n/ko-json.51d23959bb9bae4f0ecf.js.map | 1 + .../static/js/i18n/ko-json.9029d09084bb22d8b705.js | 2 -- .../js/i18n/ko-json.9029d09084bb22d8b705.js.map | 1 - .../js/i18n/nan-TW-json.7f2789d8a461e86d1734.js | 2 -- .../js/i18n/nan-TW-json.7f2789d8a461e86d1734.js.map | 1 - .../js/i18n/nan-TW-json.80c0071ebf383eea3b8f.js | 2 ++ .../js/i18n/nan-TW-json.80c0071ebf383eea3b8f.js.map | 1 + ...47d576ad4aa.js => nb-json.2dd01f0c6cca8f008ffd.js} | 2 +- ...4aa.js.map => nb-json.2dd01f0c6cca8f008ffd.js.map} | 2 +- ...0c29434b613.js => nl-json.2fe76cb30e2fced8d88a.js} | 2 +- ...613.js.map => nl-json.2fe76cb30e2fced8d88a.js.map} | 2 +- ...e3213acc33c.js => oc-json.7ebe52b8d626dbf54a5f.js} | 2 +- ...33c.js.map => oc-json.7ebe52b8d626dbf54a5f.js.map} | 2 +- ...2381b05579b.js => pl-json.d319c737d904c64d8eba.js} | 2 +- ...79b.js.map => pl-json.d319c737d904c64d8eba.js.map} | 2 +- .../static/js/i18n/pt-json.3fc5593e030268bcd291.js | 2 -- .../js/i18n/pt-json.3fc5593e030268bcd291.js.map | 1 - .../static/js/i18n/pt-json.d6ce04e3e4e5a0e908bf.js | 2 ++ .../js/i18n/pt-json.d6ce04e3e4e5a0e908bf.js.map | 1 + ...1c1413059ae.js => ro-json.3c4274351d849d5010b8.js} | 2 +- ...9ae.js.map => ro-json.3c4274351d849d5010b8.js.map} | 2 +- ...e9f0c642438.js => ru-json.1aaf6c712db167fede4d.js} | 2 +- ...438.js.map => ru-json.1aaf6c712db167fede4d.js.map} | 2 +- ...f94e6f55145.js => sk-json.47d5a2f34c7fdf53d2af.js} | 2 +- ...145.js.map => sk-json.47d5a2f34c7fdf53d2af.js.map} | 2 +- ...1b2f824064f.js => te-json.cb97beb999533eaae9ae.js} | 2 +- ...64f.js.map => te-json.cb97beb999533eaae9ae.js.map} | 2 +- .../static/js/i18n/uk-json.003908af9b15becdd382.js | 2 -- .../js/i18n/uk-json.003908af9b15becdd382.js.map | 1 - .../static/js/i18n/uk-json.b16cc51984a2c6585d41.js | 2 ++ .../js/i18n/uk-json.b16cc51984a2c6585d41.js.map | 1 + ...be6e857bbf3.js => vi-json.07aaea2428bb6b5a5fab.js} | 2 +- ...bf3.js.map => vi-json.07aaea2428bb6b5a5fab.js.map} | 2 +- .../static/js/i18n/zh-json.5b36950c3b87c209730d.js | 2 ++ .../js/i18n/zh-json.5b36950c3b87c209730d.js.map | 1 + .../static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js | 2 -- .../js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map | 1 - ...0d6396.js => zh_Hant-json.6b45d2e6967b35e56b44.js} | 2 +- ...s.map => zh_Hant-json.6b45d2e6967b35e56b44.js.map} | 2 +- .../static/ruffle/core.ruffle.61b3dd915983ae8a8b16.js | 2 +- .../static/ruffle/core.ruffle.848d766d6fc336164c2f.js | 2 +- priv/static/sw-pleroma.js | 4 ++-- priv/static/sw-pleroma.js.LICENSE.txt | 2 ++ priv/static/sw-pleroma.js.map | 2 +- 297 files changed, 148 insertions(+), 138 deletions(-) delete mode 100644 priv/static/static/css/159.1d523a00378ebd68c5b3.css.map rename priv/static/static/css/{159.1d523a00378ebd68c5b3.css => 1597.a250eca8cf87418c7b3e.css} (84%) create mode 100644 priv/static/static/css/1597.a250eca8cf87418c7b3e.css.map create mode 100644 priv/static/static/css/5250.b9104f3df4166526b081.css create mode 100644 priv/static/static/css/5250.b9104f3df4166526b081.css.map create mode 100644 priv/static/static/css/5292.035030cbb2311a7ddada.css create mode 100644 priv/static/static/css/5292.035030cbb2311a7ddada.css.map delete mode 100644 priv/static/static/css/6464.169260b661120cc50815.css delete mode 100644 priv/static/static/css/6464.169260b661120cc50815.css.map create mode 100644 priv/static/static/css/6464.7845ee2ccc5e22628b2a.css create mode 100644 priv/static/static/css/6464.7845ee2ccc5e22628b2a.css.map delete mode 100644 priv/static/static/css/7586.0d43f70bc6240422f179.css delete mode 100644 priv/static/static/css/7586.0d43f70bc6240422f179.css.map create mode 100644 priv/static/static/css/7594.a8030565c3ef463dc1de.css create mode 100644 priv/static/static/css/7594.a8030565c3ef463dc1de.css.map delete mode 100644 priv/static/static/css/7962.76663e78ad5ea0bb0b90.css delete mode 100644 priv/static/static/css/7962.76663e78ad5ea0bb0b90.css.map delete mode 100644 priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css delete mode 100644 priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map create mode 100644 priv/static/static/css/app.75b043cffb8e922bc29e.css create mode 100644 priv/static/static/css/app.75b043cffb8e922bc29e.css.map delete mode 100644 priv/static/static/css/app.a7f63ee9107a77599942.css delete mode 100644 priv/static/static/css/app.a7f63ee9107a77599942.css.map delete mode 100644 priv/static/static/js/159.903e90c9de8ef6c67077.js delete mode 100644 priv/static/static/js/159.903e90c9de8ef6c67077.js.map create mode 100644 priv/static/static/js/1597.134341dec11e42dd5fae.js create mode 100644 priv/static/static/js/1597.134341dec11e42dd5fae.js.map delete mode 100644 priv/static/static/js/3733.7060d1e6bca813125a0c.js delete mode 100644 priv/static/static/js/3733.7060d1e6bca813125a0c.js.map delete mode 100644 priv/static/static/js/48.b5ecdbc517423af07ca4.js delete mode 100644 priv/static/static/js/48.b5ecdbc517423af07ca4.js.map create mode 100644 priv/static/static/js/48.f58874c23a9bf1c1f591.js rename priv/static/static/js/{48.b5ecdbc517423af07ca4.js.LICENSE.txt => 48.f58874c23a9bf1c1f591.js.LICENSE.txt} (100%) create mode 100644 priv/static/static/js/48.f58874c23a9bf1c1f591.js.map create mode 100644 priv/static/static/js/5250.f0d4cfa412bbf8163d11.js create mode 100644 priv/static/static/js/5250.f0d4cfa412bbf8163d11.js.map create mode 100644 priv/static/static/js/5292.125b85a896c810481068.js create mode 100644 priv/static/static/js/5292.125b85a896c810481068.js.map rename priv/static/static/js/{6464.eb9c90a1c948cde554e9.js => 6464.6f764a6d660917d88ca5.js} (98%) rename priv/static/static/js/{6464.eb9c90a1c948cde554e9.js.map => 6464.6f764a6d660917d88ca5.js.map} (86%) create mode 100644 priv/static/static/js/6561.24d12b4e33b21319845b.js rename priv/static/static/js/{3733.7060d1e6bca813125a0c.js.LICENSE.txt => 6561.24d12b4e33b21319845b.js.LICENSE.txt} (84%) create mode 100644 priv/static/static/js/6561.24d12b4e33b21319845b.js.map delete mode 100644 priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js delete mode 100644 priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js.map create mode 100644 priv/static/static/js/7594.f0ffca037eec090815d9.js create mode 100644 priv/static/static/js/7594.f0ffca037eec090815d9.js.map delete mode 100644 priv/static/static/js/7962.e25d40b042f8ee7389c3.js delete mode 100644 priv/static/static/js/7962.e25d40b042f8ee7389c3.js.map delete mode 100644 priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js delete mode 100644 priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js.map delete mode 100644 priv/static/static/js/9060.24271e167e0471a1a732.js delete mode 100644 priv/static/static/js/9060.24271e167e0471a1a732.js.map create mode 100644 priv/static/static/js/9060.606ed1efce1ce3be713d.js create mode 100644 priv/static/static/js/9060.606ed1efce1ce3be713d.js.map create mode 100644 priv/static/static/js/app.3fbb12e9679dc0e0aa33.js create mode 100644 priv/static/static/js/app.3fbb12e9679dc0e0aa33.js.map delete mode 100644 priv/static/static/js/app.d42ab31e1d50a3265a82.js delete mode 100644 priv/static/static/js/app.d42ab31e1d50a3265a82.js.map rename priv/static/static/js/emoji-annotations/{af-json.96c988285a6a2cce6246.js => af-json.260623f695510b34c146.js} (100%) rename priv/static/static/js/emoji-annotations/{am-json.94388548f7c18233fec3.js => am-json.fd30fc79a9ef9f40bcb3.js} (100%) rename priv/static/static/js/emoji-annotations/{ar-json.5527466d349f2954d49b.js => ar-json.66fec1d991d30cf191ac.js} (100%) rename priv/static/static/js/emoji-annotations/{ar_SA-json.4a6f4402931a867070f0.js => ar_SA-json.89b9143ae611e2581b5b.js} (100%) rename priv/static/static/js/emoji-annotations/{as-json.34cf67edc1cecd195738.js => as-json.bd49b949563ed3872ea7.js} (100%) rename priv/static/static/js/emoji-annotations/{ast-json.7e4da8cb7e539c19a9b9.js => ast-json.b04ae8a41f30fcc498c6.js} (100%) rename priv/static/static/js/emoji-annotations/{az-json.9a32f2941d9c4d1f834c.js => az-json.fc8b49efe1bec779ad7c.js} (100%) rename priv/static/static/js/emoji-annotations/{be-json.f92f80669873a4100c69.js => be-json.390af96d7085a650d098.js} (100%) rename priv/static/static/js/emoji-annotations/{bg-json.7c69c52572a7bf87e1db.js => bg-json.aada1abf5a5718a2785a.js} (100%) rename priv/static/static/js/emoji-annotations/{bn-json.657aac057f36ad06c58d.js => bn-json.71061bf9106a3f1d06d9.js} (100%) rename priv/static/static/js/emoji-annotations/{br-json.c7175423d8965ed10bae.js => br-json.623b25e4acdba3caea90.js} (100%) rename priv/static/static/js/emoji-annotations/{bs-json.48ef42da1c7976cf083c.js => bs-json.895d6c19c442497a4542.js} (100%) rename priv/static/static/js/emoji-annotations/{ca-json.ce029e860b10b242c6a5.js => ca-json.4bf349a90cbee89b8a8f.js} (100%) rename priv/static/static/js/emoji-annotations/{ccp-json.02836537ffe2b02291cb.js => ccp-json.915ed087d80fc6754272.js} (100%) rename priv/static/static/js/emoji-annotations/{ceb-json.9db0336f168aa77ee395.js => ceb-json.d7c07bee01a6e04f3214.js} (100%) rename priv/static/static/js/emoji-annotations/{chr-json.e7e542ab5a74167dec10.js => chr-json.037a46de1cb0ffa99c15.js} (100%) rename priv/static/static/js/emoji-annotations/{ckb-json.13dc83db1e15aa76051a.js => ckb-json.3e534416e3850186a747.js} (100%) rename priv/static/static/js/emoji-annotations/{cs-json.48d8bba230dc9fe6b3dc.js => cs-json.606d434132759db14a54.js} (100%) rename priv/static/static/js/emoji-annotations/{cy-json.e09dd13da5ad56530ead.js => cy-json.897b7ce472b1a390f392.js} (100%) rename priv/static/static/js/emoji-annotations/{da-json.8d074e27df71edafc543.js => da-json.af3ed87176f973878b6e.js} (100%) rename priv/static/static/js/emoji-annotations/{de-json.e1443c01a191af1665e1.js => de-json.9592fc46ee6e2cc15606.js} (100%) rename priv/static/static/js/emoji-annotations/{de_CH-json.b4a5891ea2f38d616ec0.js => de_CH-json.c830189b2ad10099beec.js} (100%) rename priv/static/static/js/emoji-annotations/{doi-json.7841c3f3ceb4e3da0bd1.js => doi-json.810d16be9637c3bc4d2d.js} (100%) rename priv/static/static/js/emoji-annotations/{dsb-json.7635686ffd8d62264466.js => dsb-json.b3e9991da8c100724645.js} (100%) rename priv/static/static/js/emoji-annotations/{el-json.b36610f2ea16d56c2314.js => el-json.4a78f601c28981142d91.js} (100%) rename priv/static/static/js/emoji-annotations/{en-json.6c3947f7c49c3952084d.js => en-json.9049ee8252bf9c50468e.js} (100%) rename priv/static/static/js/emoji-annotations/{en_001-json.72d8c47269350f59aa9f.js => en_001-json.6f674d7be8545f5249dd.js} (100%) rename priv/static/static/js/emoji-annotations/{en_AU-json.33aac9bbd887273a34b1.js => en_AU-json.88f983885c5e77a522d2.js} (100%) rename priv/static/static/js/emoji-annotations/{en_CA-json.5de965778a6b8a5a4bb4.js => en_CA-json.481fa7a1009de1e09a52.js} (100%) rename priv/static/static/js/emoji-annotations/{en_GB-json.bd687f904492facc81d1.js => en_GB-json.e12ddcfa4a9a2f213472.js} (100%) rename priv/static/static/js/emoji-annotations/{en_IN-json.002faa48c09121928fca.js => en_IN-json.386a43a597b524565c01.js} (100%) rename priv/static/static/js/emoji-annotations/{es-json.f593b0dc2367a9d7fb30.js => es-json.06f0b6d03919f378089e.js} (100%) rename priv/static/static/js/emoji-annotations/{es_419-json.d81991295392b6ed83bb.js => es_419-json.8424b58fe0295a7972dc.js} (100%) rename priv/static/static/js/emoji-annotations/{es_MX-json.ee359d4b611fdb1aeb33.js => es_MX-json.5e1160d486fdb5ee36e0.js} (100%) rename priv/static/static/js/emoji-annotations/{es_US-json.280bdb036dfd651d079a.js => es_US-json.c23781e2ed7aa713e880.js} (100%) rename priv/static/static/js/emoji-annotations/{et-json.c42e3f186a55ecb061cd.js => et-json.bc2b2889a512210a1537.js} (100%) rename priv/static/static/js/emoji-annotations/{eu-json.931b429f5fcc141549a5.js => eu-json.c01381c77dfb84017633.js} (100%) rename priv/static/static/js/emoji-annotations/{fa-json.819c7f263c8594ccf4fa.js => fa-json.a2458e1e0433704fc9d6.js} (100%) rename priv/static/static/js/emoji-annotations/{fi-json.0f254bb4b0faaba4abcc.js => fi-json.5f54dd17041a9e6fb818.js} (100%) rename priv/static/static/js/emoji-annotations/{fil-json.4fca833f178d1b889b69.js => fil-json.d057e86d94a109d9b786.js} (100%) rename priv/static/static/js/emoji-annotations/{fo-json.9b060e8009b3a8be4597.js => fo-json.5bc39548b737b814c5c3.js} (100%) rename priv/static/static/js/emoji-annotations/{fr-json.da49ed0d1a6622fe1c67.js => fr-json.26194bdddfdeb986269a.js} (100%) rename priv/static/static/js/emoji-annotations/{fr_CA-json.59ed6b59e2ca68707292.js => fr_CA-json.4e6a9b14341091c6742a.js} (100%) rename priv/static/static/js/emoji-annotations/{ga-json.cb3f9e613a8c445aea23.js => ga-json.2d53f85b5672fc5b9cd6.js} (100%) rename priv/static/static/js/emoji-annotations/{gd-json.e3d0aea3725be774ad81.js => gd-json.7b4f0937d99eaea7c15c.js} (100%) rename priv/static/static/js/emoji-annotations/{gl-json.ce89036f0ae72224c994.js => gl-json.77123597a2fd634def06.js} (100%) rename priv/static/static/js/emoji-annotations/{gu-json.8a899f364cf260376905.js => gu-json.529b678e05ac5e6666f2.js} (100%) rename priv/static/static/js/emoji-annotations/{ha-json.2a08912b38925c10f970.js => ha-json.e2936eb1824633263448.js} (100%) rename priv/static/static/js/emoji-annotations/{ha_NE-json.e4855d92aaccfdd6ba57.js => ha_NE-json.5bb1461702b6b9a25a2a.js} (100%) rename priv/static/static/js/emoji-annotations/{he-json.a3d7631f32182b0955a2.js => he-json.b89324913e67b0cbef3a.js} (100%) rename priv/static/static/js/emoji-annotations/{hi-json.04bc5f73dc2169def97e.js => hi-json.caa9039c69fc619bb4d2.js} (100%) rename priv/static/static/js/emoji-annotations/{hi_Latn-json.3cb73c456f31261f1908.js => hi_Latn-json.59c70483862a83131f1e.js} (100%) rename priv/static/static/js/emoji-annotations/{hr-json.fe847ade1f18a60e513c.js => hr-json.7078f54504f4019e7019.js} (100%) rename priv/static/static/js/emoji-annotations/{hsb-json.438721731b4171bc6fc3.js => hsb-json.5752a21beca678ca22de.js} (100%) rename priv/static/static/js/emoji-annotations/{hu-json.1faf52040deda872b416.js => hu-json.0d93fa9c70bd2987942a.js} (100%) rename priv/static/static/js/emoji-annotations/{hy-json.2d819f7faabfeba8457f.js => hy-json.7392cd8d62c85a8f3d55.js} (100%) rename priv/static/static/js/emoji-annotations/{ia-json.8e8365e2bf41779e2beb.js => ia-json.7abda2d4e5bb1ab9bb01.js} (100%) rename priv/static/static/js/emoji-annotations/{id-json.55f83c46d753b0b69330.js => id-json.be3d0b67868addd4d2ca.js} (100%) rename priv/static/static/js/emoji-annotations/{ig-json.f19fa5fe3582463ba73c.js => ig-json.fec00094453b1024af11.js} (100%) rename priv/static/static/js/emoji-annotations/{is-json.62e220c65215b034533d.js => is-json.f4f8eed224a9921d9d08.js} (100%) rename priv/static/static/js/emoji-annotations/{it-json.9c1758f4fd3391f7f61a.js => it-json.da1cebce6afd4bb1ad5d.js} (100%) rename priv/static/static/js/emoji-annotations/{ja-json.0bd51f8c40c106355b0e.js => ja-json.98c56a5553477fcf8510.js} (100%) rename priv/static/static/js/emoji-annotations/{jv-json.1c8d5ffcff22b46b6214.js => jv-json.9a579697582dd4da8515.js} (100%) rename priv/static/static/js/emoji-annotations/{ka-json.567e7b051d90a37003f3.js => ka-json.7ceb88c700f929fd1ba3.js} (100%) rename priv/static/static/js/emoji-annotations/{kab-json.1a2de4774f4ddc2b51dd.js => kab-json.a11ac7782cf683ba1fc4.js} (100%) rename priv/static/static/js/emoji-annotations/{kk-json.a20b59d47bdfe99786ad.js => kk-json.e48b37a24122d49c3b21.js} (100%) rename priv/static/static/js/emoji-annotations/{kl-json.87ab8661b4bdecd09faf.js => kl-json.92776bda19293c36a513.js} (100%) rename priv/static/static/js/emoji-annotations/{km-json.9bc922b2e0faa64b4c53.js => km-json.49435b294880e56b2ad5.js} (100%) rename priv/static/static/js/emoji-annotations/{kn-json.efdac8ac0cb00991ba1e.js => kn-json.0fb5386110af3ba2c4ee.js} (100%) rename priv/static/static/js/emoji-annotations/{ko-json.d175900fe48f48ce87c8.js => ko-json.f819232d4ea91159bbb0.js} (100%) rename priv/static/static/js/emoji-annotations/{kok-json.116e4f72db3bfb846233.js => kok-json.79368ff8ed458bbadc8a.js} (100%) rename priv/static/static/js/emoji-annotations/{ku-json.2173ed87f8d7372ee209.js => ku-json.09d4b290940a5743f28b.js} (100%) rename priv/static/static/js/emoji-annotations/{ky-json.310bda579c819eda9472.js => ky-json.a4d7bf8aa6b9fc268ee4.js} (100%) rename priv/static/static/js/emoji-annotations/{lb-json.499c526f3a653618ea9b.js => lb-json.ae00586748ab7e78fbcf.js} (100%) rename priv/static/static/js/emoji-annotations/{lo-json.ecb06d61465a355b8157.js => lo-json.1e5d90a5f496ece86600.js} (100%) rename priv/static/static/js/emoji-annotations/{lt-json.ced4d5e70edc60127df6.js => lt-json.b30554764cd9dcab0ffb.js} (100%) rename priv/static/static/js/emoji-annotations/{lv-json.5600c2eb6d59fa0aa2e2.js => lv-json.9fe5ebef8867a98f5dcc.js} (100%) rename priv/static/static/js/emoji-annotations/{mai-json.302386b3358f4d34f9c8.js => mai-json.b3eb2867f3dae2f0ca2e.js} (100%) rename priv/static/static/js/emoji-annotations/{mi-json.9efe6f146ecd8987f80a.js => mi-json.5bf7d83b03a43d6b222e.js} (100%) rename priv/static/static/js/emoji-annotations/{mk-json.a254cabb8570419cc426.js => mk-json.a58099730061ede27597.js} (100%) rename priv/static/static/js/emoji-annotations/{ml-json.3f2902a84240faff1b48.js => ml-json.4029b72c11321ff49f04.js} (100%) rename priv/static/static/js/emoji-annotations/{mn-json.764169f1168d0432640f.js => mn-json.1d71d86a284b090f309c.js} (100%) rename priv/static/static/js/emoji-annotations/{mni-json.7db7f76ab1ce34e3683d.js => mni-json.b51930b659a2fbe92aee.js} (100%) rename priv/static/static/js/emoji-annotations/{mr-json.cb0a87d9aabf8a52161d.js => mr-json.10d386d227d8eccd9f8c.js} (100%) rename priv/static/static/js/emoji-annotations/{ms-json.272ee4735aabc37015dd.js => ms-json.17cbe626b4520009e9b9.js} (100%) rename priv/static/static/js/emoji-annotations/{mt-json.3ddf7dbc114adf90c500.js => mt-json.5bada7e5d0f89eec6a5f.js} (100%) rename priv/static/static/js/emoji-annotations/{my-json.8e7dd1485813d15bba7e.js => my-json.e9c9074bcb0b7cf27297.js} (100%) rename priv/static/static/js/emoji-annotations/{ne-json.a0118dca2096a101b8e8.js => ne-json.ace1f809ee53a942bf38.js} (100%) rename priv/static/static/js/emoji-annotations/{nl-json.52f4b93b8fa5e22cb585.js => nl-json.b500e4e202a9368e2834.js} (100%) rename priv/static/static/js/emoji-annotations/{nn-json.7293cd5d7205681cf48c.js => nn-json.d3b3cddc42dd89280d68.js} (100%) rename priv/static/static/js/emoji-annotations/{no-json.22bdbbc77cc3c14ada58.js => no-json.3c3a1928a4ec2842457e.js} (100%) rename priv/static/static/js/emoji-annotations/{or-json.b007c2f6f92dcc95efac.js => or-json.062e7bc0ce036e0869c2.js} (100%) rename priv/static/static/js/emoji-annotations/{pa-json.7d60d69762a108270669.js => pa-json.f1d90d460b83ede42498.js} (100%) rename priv/static/static/js/emoji-annotations/{pa_Arab-json.5ae021308b1c5f6dd8a7.js => pa_Arab-json.7ecc921ea6ae7d5ad431.js} (100%) rename priv/static/static/js/emoji-annotations/{pcm-json.eac3a5ad0b4b5b33289d.js => pcm-json.d34521c9683e5616db34.js} (100%) rename priv/static/static/js/emoji-annotations/{pl-json.e9e8f1ed84dc6c169516.js => pl-json.6c4f3b09781d790d0db6.js} (100%) rename priv/static/static/js/emoji-annotations/{ps-json.a0d9eea5b81bcad11e64.js => ps-json.88d6d49775d8f9c663c4.js} (100%) rename priv/static/static/js/emoji-annotations/{pt-json.2b2512ee44291bdb2ae7.js => pt-json.e0210e062a8027ffb0f3.js} (100%) rename priv/static/static/js/emoji-annotations/{pt_PT-json.c381b13e323f91b0e6b3.js => pt_PT-json.dbd8d4cf53226f886114.js} (100%) rename priv/static/static/js/emoji-annotations/{qu-json.55f4df57e71076dbad9f.js => qu-json.c2d7991f40a4a3d8d5e7.js} (100%) rename priv/static/static/js/emoji-annotations/{rm-json.985d4934f386fd05a75c.js => rm-json.c77502e4c10101eb9113.js} (100%) rename priv/static/static/js/emoji-annotations/{ro-json.cb62f86ce78c94d1e813.js => ro-json.dccd74b28dd5784742c2.js} (100%) rename priv/static/static/js/emoji-annotations/{ru-json.a81d0df34460837ccacc.js => ru-json.1f28233c5ea82e8b2e99.js} (100%) rename priv/static/static/js/emoji-annotations/{rw-json.031838c5374676191131.js => rw-json.c0b7cbff0696430bc3f5.js} (100%) rename priv/static/static/js/emoji-annotations/{sa-json.21b06234a08c7469ccb4.js => sa-json.332142b117058f869a60.js} (100%) rename priv/static/static/js/emoji-annotations/{sat-json.71e92700b2aaca8e021c.js => sat-json.e66e1ab5f51865665b62.js} (100%) rename priv/static/static/js/emoji-annotations/{sc-json.c84c9c47d2e104c43e4c.js => sc-json.8f7695808eb625453ecb.js} (100%) rename priv/static/static/js/emoji-annotations/{sd-json.8f2a6a06dc3cf185f79d.js => sd-json.d7cc494d80b3e019846f.js} (100%) rename priv/static/static/js/emoji-annotations/{si-json.841b356da03623c10dbf.js => si-json.3660e3b9815e1b9589e6.js} (100%) rename priv/static/static/js/emoji-annotations/{sk-json.5d96bdb4da82655d0314.js => sk-json.3db034c6717655dfbbf6.js} (100%) rename priv/static/static/js/emoji-annotations/{sl-json.a40c5548da34fce6f1d0.js => sl-json.e64d6e5b433ff40babd2.js} (100%) rename priv/static/static/js/emoji-annotations/{so-json.f75abd16637c8924c075.js => so-json.12a2621ada8dc497ef38.js} (100%) rename priv/static/static/js/emoji-annotations/{sq-json.bcf154ed8a6138aa089c.js => sq-json.a10b52fc261fdb767e0e.js} (100%) rename priv/static/static/js/emoji-annotations/{sr-json.e29a20e59a708df0c6a8.js => sr-json.286656f6511ecef0620b.js} (100%) rename priv/static/static/js/emoji-annotations/{sr_Cyrl_BA-json.83c7c64b9696ae2339f2.js => sr_Cyrl_BA-json.f2de1698d736be7cb7d3.js} (100%) rename priv/static/static/js/emoji-annotations/{sr_Latn-json.ff27d1f455bf2afb8d70.js => sr_Latn-json.6d0e78c53a6c996f7148.js} (100%) rename priv/static/static/js/emoji-annotations/{sr_Latn_BA-json.72933405032b81344754.js => sr_Latn_BA-json.9efe70d4f87053f148b5.js} (100%) rename priv/static/static/js/emoji-annotations/{su-json.daff15251020cbecea7d.js => su-json.b51522cc59d038be0544.js} (100%) rename priv/static/static/js/emoji-annotations/{sv-json.8b0374cbca3a77519876.js => sv-json.8ac515e0f8396ddf6c08.js} (100%) rename priv/static/static/js/emoji-annotations/{sw-json.d5f350641b9cbcc0e126.js => sw-json.72684aa7dac892cb8cb9.js} (100%) rename priv/static/static/js/emoji-annotations/{sw_KE-json.f3563cbeac1c158563d5.js => sw_KE-json.34b7da43677fa56e5e0d.js} (100%) rename priv/static/static/js/emoji-annotations/{ta-json.675cc6c7607449d4a91b.js => ta-json.38b47dd7353471daf452.js} (100%) rename priv/static/static/js/emoji-annotations/{te-json.8a69a10f62cdf626244e.js => te-json.5f3edfe74048b3f9d552.js} (100%) rename priv/static/static/js/emoji-annotations/{tg-json.9647f559a4477d7d8e96.js => tg-json.4f1783c6c1da758319c0.js} (99%) rename priv/static/static/js/emoji-annotations/{th-json.34709bae223bb9d2587c.js => th-json.ba0ab95ab02ce2c939c6.js} (100%) rename priv/static/static/js/emoji-annotations/{ti-json.5b173bd33bb960be805b.js => ti-json.4408ab975172165278bd.js} (100%) rename priv/static/static/js/emoji-annotations/{tk-json.23a9a6229829921704ad.js => tk-json.5673e32b5abc49b2a251.js} (100%) rename priv/static/static/js/emoji-annotations/{to-json.50ac37d101caaf592c94.js => to-json.360ff9ef00f0d1c7a57b.js} (100%) rename priv/static/static/js/emoji-annotations/{tr-json.6462e8cfd5006cf5b6cf.js => tr-json.713bfd260289f3323612.js} (100%) rename priv/static/static/js/emoji-annotations/{tt-json.4c089389ba9983ec8ef7.js => tt-json.249cbfc14263d519b9a9.js} (100%) rename priv/static/static/js/emoji-annotations/{ug-json.bf768bd32e9ff02b0a8a.js => ug-json.51de5e5ba7bcb8576f82.js} (100%) rename priv/static/static/js/emoji-annotations/{uk-json.af110c8eef232638fc4d.js => uk-json.6a62f1a822def6f9226a.js} (100%) rename priv/static/static/js/emoji-annotations/{ur-json.983c02109444c883a18f.js => ur-json.f9e844b4284c09a9fc7c.js} (100%) rename priv/static/static/js/emoji-annotations/{uz-json.ac43f4c54d4587324a20.js => uz-json.6f226c69bc9e3cdb2943.js} (100%) rename priv/static/static/js/emoji-annotations/{vi-json.f6a364b2add7f8c8bc67.js => vi-json.cb916206d909e482a501.js} (100%) rename priv/static/static/js/emoji-annotations/{wo-json.e0d689e22cda0dd77e9a.js => wo-json.a2bdd903832fd3246da2.js} (100%) rename priv/static/static/js/emoji-annotations/{xh-json.21e88c05ad3113dfc7f2.js => xh-json.5e356aaeaee395d041df.js} (100%) rename priv/static/static/js/emoji-annotations/{yo-json.ea1150d6bc360dd86f2e.js => yo-json.b92bb230b66b7d16a9b5.js} (100%) rename priv/static/static/js/emoji-annotations/{yo_BJ-json.650318c25fe4da92bad8.js => yo_BJ-json.67334e68952e79504647.js} (100%) rename priv/static/static/js/emoji-annotations/{yue-json.15102c0ddfdf19bdfb4c.js => yue-json.a9b68824327da9c02318.js} (100%) rename priv/static/static/js/emoji-annotations/{yue_Hans-json.cc60bb10d32fab3d8207.js => yue_Hans-json.d0b0f7e7004b95cf59f7.js} (100%) rename priv/static/static/js/emoji-annotations/{zh-json.e42a28127d5c1aff6c85.js => zh-json.d4e08be048463f199b6d.js} (100%) rename priv/static/static/js/emoji-annotations/{zh_Hant-json.9cbb765c181d443828a9.js => zh_Hant-json.fd2741548c8119e002d3.js} (100%) rename priv/static/static/js/emoji-annotations/{zh_Hant_HK-json.7eee03c705347a21c612.js => zh_Hant_HK-json.3eeb1788264aaa9730cb.js} (100%) rename priv/static/static/js/emoji-annotations/{zu-json.e0cb7cd3890583fd0f6d.js => zu-json.0c4786052604b3d521bc.js} (100%) rename priv/static/static/js/{emoji.33eab91b64f59431137d.js => emoji.56150ad938e521d9ef81.js} (100%) rename priv/static/static/js/i18n/{ar-json.4916f840147303aa65fe.js => ar-json.bb22e819fa0ea9299fa4.js} (99%) rename priv/static/static/js/i18n/{ar-json.4916f840147303aa65fe.js.map => ar-json.bb22e819fa0ea9299fa4.js.map} (99%) rename priv/static/static/js/i18n/{ca-json.1eb24bc001efa3c0627f.js => ca-json.f245d3f221094411dfcd.js} (99%) rename priv/static/static/js/i18n/{ca-json.1eb24bc001efa3c0627f.js.map => ca-json.f245d3f221094411dfcd.js.map} (99%) delete mode 100644 priv/static/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js delete mode 100644 priv/static/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js.map create mode 100644 priv/static/static/js/i18n/cs-json.8cb69392de1a430e9c3f.js create mode 100644 priv/static/static/js/i18n/cs-json.8cb69392de1a430e9c3f.js.map rename priv/static/static/js/i18n/{de-json.bfa48615ac92f87ff37a.js => de-json.74b1f546c884d17b819a.js} (99%) rename priv/static/static/js/i18n/{de-json.bfa48615ac92f87ff37a.js.map => de-json.74b1f546c884d17b819a.js.map} (99%) create mode 100644 priv/static/static/js/i18n/eo-json.1d790624b6ea3832617a.js create mode 100644 priv/static/static/js/i18n/eo-json.1d790624b6ea3832617a.js.map delete mode 100644 priv/static/static/js/i18n/eo-json.6c62eef99e850912498b.js delete mode 100644 priv/static/static/js/i18n/eo-json.6c62eef99e850912498b.js.map rename priv/static/static/js/i18n/{es-json.4a302899a65e1f67d8a2.js => es-json.16c8ca99bc2dee099ca0.js} (99%) rename priv/static/static/js/i18n/{es-json.4a302899a65e1f67d8a2.js.map => es-json.16c8ca99bc2dee099ca0.js.map} (99%) rename priv/static/static/js/i18n/{et-json.580b101d6bb83a8aee75.js => et-json.e6066512bb8a65a06f89.js} (99%) rename priv/static/static/js/i18n/{et-json.580b101d6bb83a8aee75.js.map => et-json.e6066512bb8a65a06f89.js.map} (99%) rename priv/static/static/js/i18n/{eu-json.d2eab39b0427995fc314.js => eu-json.e519f9e06eed5ad3cf41.js} (99%) rename priv/static/static/js/i18n/{eu-json.d2eab39b0427995fc314.js.map => eu-json.e519f9e06eed5ad3cf41.js.map} (99%) rename priv/static/static/js/i18n/{fa-json.a19100f6a5a9431e2adb.js => fa-json.95757c7acb6dff777d7d.js} (99%) rename priv/static/static/js/i18n/{fa-json.a19100f6a5a9431e2adb.js.map => fa-json.95757c7acb6dff777d7d.js.map} (99%) rename priv/static/static/js/i18n/{fi-json.d1934c18f12d80493ab1.js => fi-json.dcde7d5d3f4927b6667e.js} (99%) rename priv/static/static/js/i18n/{fi-json.d1934c18f12d80493ab1.js.map => fi-json.dcde7d5d3f4927b6667e.js.map} (99%) delete mode 100644 priv/static/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js delete mode 100644 priv/static/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js.map create mode 100644 priv/static/static/js/i18n/fr-json.7a64af58316da6ca86f0.js create mode 100644 priv/static/static/js/i18n/fr-json.7a64af58316da6ca86f0.js.map rename priv/static/static/js/i18n/{ga-json.3f1981817977a16f1d7e.js => ga-json.72cfdbaab827e141e497.js} (99%) rename priv/static/static/js/i18n/{ga-json.3f1981817977a16f1d7e.js.map => ga-json.72cfdbaab827e141e497.js.map} (99%) rename priv/static/static/js/i18n/{he-json.03c5d271a4034de06e6f.js => he-json.25ae71e0ad9cdd21d447.js} (99%) rename priv/static/static/js/i18n/{he-json.03c5d271a4034de06e6f.js.map => he-json.25ae71e0ad9cdd21d447.js.map} (99%) rename priv/static/static/js/i18n/{hu-json.0487899ca7a7a8505ed8.js => hu-json.cc3c026f0ff445ebb4b6.js} (98%) rename priv/static/static/js/i18n/{hu-json.0487899ca7a7a8505ed8.js.map => hu-json.cc3c026f0ff445ebb4b6.js.map} (98%) rename priv/static/static/js/i18n/{id-json.e5c9ee768155f88128b9.js => id-json.b00a413b6132632523e5.js} (99%) rename priv/static/static/js/i18n/{id-json.e5c9ee768155f88128b9.js.map => id-json.b00a413b6132632523e5.js.map} (99%) rename priv/static/static/js/i18n/{it-json.99a21d5c98376af17141.js => it-json.1b71f7623efed055d62b.js} (99%) rename priv/static/static/js/i18n/{it-json.99a21d5c98376af17141.js.map => it-json.1b71f7623efed055d62b.js.map} (99%) delete mode 100644 priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js delete mode 100644 priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map create mode 100644 priv/static/static/js/i18n/ja_easy-json.b5f269a0a935c640f3b5.js create mode 100644 priv/static/static/js/i18n/ja_easy-json.b5f269a0a935c640f3b5.js.map create mode 100644 priv/static/static/js/i18n/ja_pedantic-json.7c472bf001679929edea.js create mode 100644 priv/static/static/js/i18n/ja_pedantic-json.7c472bf001679929edea.js.map delete mode 100644 priv/static/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js delete mode 100644 priv/static/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js.map create mode 100644 priv/static/static/js/i18n/ko-json.51d23959bb9bae4f0ecf.js create mode 100644 priv/static/static/js/i18n/ko-json.51d23959bb9bae4f0ecf.js.map delete mode 100644 priv/static/static/js/i18n/ko-json.9029d09084bb22d8b705.js delete mode 100644 priv/static/static/js/i18n/ko-json.9029d09084bb22d8b705.js.map delete mode 100644 priv/static/static/js/i18n/nan-TW-json.7f2789d8a461e86d1734.js delete mode 100644 priv/static/static/js/i18n/nan-TW-json.7f2789d8a461e86d1734.js.map create mode 100644 priv/static/static/js/i18n/nan-TW-json.80c0071ebf383eea3b8f.js create mode 100644 priv/static/static/js/i18n/nan-TW-json.80c0071ebf383eea3b8f.js.map rename priv/static/static/js/i18n/{nb-json.a54af3b1f47d576ad4aa.js => nb-json.2dd01f0c6cca8f008ffd.js} (99%) rename priv/static/static/js/i18n/{nb-json.a54af3b1f47d576ad4aa.js.map => nb-json.2dd01f0c6cca8f008ffd.js.map} (99%) rename priv/static/static/js/i18n/{nl-json.3fb9758b10c29434b613.js => nl-json.2fe76cb30e2fced8d88a.js} (99%) rename priv/static/static/js/i18n/{nl-json.3fb9758b10c29434b613.js.map => nl-json.2fe76cb30e2fced8d88a.js.map} (99%) rename priv/static/static/js/i18n/{oc-json.4f52bf1b6e3213acc33c.js => oc-json.7ebe52b8d626dbf54a5f.js} (99%) rename priv/static/static/js/i18n/{oc-json.4f52bf1b6e3213acc33c.js.map => oc-json.7ebe52b8d626dbf54a5f.js.map} (99%) rename priv/static/static/js/i18n/{pl-json.c963247822381b05579b.js => pl-json.d319c737d904c64d8eba.js} (99%) rename priv/static/static/js/i18n/{pl-json.c963247822381b05579b.js.map => pl-json.d319c737d904c64d8eba.js.map} (99%) delete mode 100644 priv/static/static/js/i18n/pt-json.3fc5593e030268bcd291.js delete mode 100644 priv/static/static/js/i18n/pt-json.3fc5593e030268bcd291.js.map create mode 100644 priv/static/static/js/i18n/pt-json.d6ce04e3e4e5a0e908bf.js create mode 100644 priv/static/static/js/i18n/pt-json.d6ce04e3e4e5a0e908bf.js.map rename priv/static/static/js/i18n/{ro-json.3fd9977ed1c1413059ae.js => ro-json.3c4274351d849d5010b8.js} (98%) rename priv/static/static/js/i18n/{ro-json.3fd9977ed1c1413059ae.js.map => ro-json.3c4274351d849d5010b8.js.map} (98%) rename priv/static/static/js/i18n/{ru-json.b913eb7f7e9f0c642438.js => ru-json.1aaf6c712db167fede4d.js} (99%) rename priv/static/static/js/i18n/{ru-json.b913eb7f7e9f0c642438.js.map => ru-json.1aaf6c712db167fede4d.js.map} (99%) rename priv/static/static/js/i18n/{sk-json.d8d0eba80f94e6f55145.js => sk-json.47d5a2f34c7fdf53d2af.js} (99%) rename priv/static/static/js/i18n/{sk-json.d8d0eba80f94e6f55145.js.map => sk-json.47d5a2f34c7fdf53d2af.js.map} (99%) rename priv/static/static/js/i18n/{te-json.ce6db28261b2f824064f.js => te-json.cb97beb999533eaae9ae.js} (99%) rename priv/static/static/js/i18n/{te-json.ce6db28261b2f824064f.js.map => te-json.cb97beb999533eaae9ae.js.map} (99%) delete mode 100644 priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js delete mode 100644 priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js.map create mode 100644 priv/static/static/js/i18n/uk-json.b16cc51984a2c6585d41.js create mode 100644 priv/static/static/js/i18n/uk-json.b16cc51984a2c6585d41.js.map rename priv/static/static/js/i18n/{vi-json.703c1e731be6e857bbf3.js => vi-json.07aaea2428bb6b5a5fab.js} (99%) rename priv/static/static/js/i18n/{vi-json.703c1e731be6e857bbf3.js.map => vi-json.07aaea2428bb6b5a5fab.js.map} (99%) create mode 100644 priv/static/static/js/i18n/zh-json.5b36950c3b87c209730d.js create mode 100644 priv/static/static/js/i18n/zh-json.5b36950c3b87c209730d.js.map delete mode 100644 priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js delete mode 100644 priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map rename priv/static/static/js/i18n/{zh_Hant-json.f7e1d0f4b873c60d6396.js => zh_Hant-json.6b45d2e6967b35e56b44.js} (99%) rename priv/static/static/js/i18n/{zh_Hant-json.f7e1d0f4b873c60d6396.js.map => zh_Hant-json.6b45d2e6967b35e56b44.js.map} (99%) diff --git a/priv/static/index.html b/priv/static/index.html index 760a70fbe..eabc3ccf7 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map b/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map deleted file mode 100644 index cb7151a69..000000000 --- a/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/159.1d523a00378ebd68c5b3.css","mappings":"AAGA,gBACE,WAEA,0BACE,iBAEA,kDACE,aACA,eACA,cAEA,2DACE,aACA,cAGA,YAFA,WACA,UACA,CAEA,+DACE,YAEA,qEACE","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue"],"sourcesContent":["\n@import \"../../variables\";\n\n.sticker-picker {\n width: 100%;\n\n .contents {\n min-height: 250px;\n\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n\n img {\n height: 100%;\n\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/159.1d523a00378ebd68c5b3.css b/priv/static/static/css/1597.a250eca8cf87418c7b3e.css similarity index 84% rename from priv/static/static/css/159.1d523a00378ebd68c5b3.css rename to priv/static/static/css/1597.a250eca8cf87418c7b3e.css index 146838cff..e3b3fb414 100644 --- a/priv/static/static/css/159.1d523a00378ebd68c5b3.css +++ b/priv/static/static/css/1597.a250eca8cf87418c7b3e.css @@ -1,2 +1,2 @@ -.sticker-picker{width:100%}.sticker-picker .contents{min-height:250px}.sticker-picker .contents .sticker-picker-content{display:flex;flex-wrap:wrap;padding:0 4px}.sticker-picker .contents .sticker-picker-content .sticker{display:flex;flex:1 1 auto;height:56px;margin:4px;width:56px}.sticker-picker .contents .sticker-picker-content .sticker img{height:100%}.sticker-picker .contents .sticker-picker-content .sticker img:hover{filter:drop-shadow(0 0 5px var(--accent,#d8a070))} -/*# sourceMappingURL=159.1d523a00378ebd68c5b3.css.map*/ \ No newline at end of file +.sticker-picker{width:100%}.sticker-picker .contents{min-height:250px}.sticker-picker .contents .sticker-picker-content{display:flex;flex-wrap:wrap;padding:0 4px}.sticker-picker .contents .sticker-picker-content .sticker{display:flex;flex:1 1 auto;height:56px;margin:4px;width:56px}.sticker-picker .contents .sticker-picker-content .sticker img{height:100%}.sticker-picker .contents .sticker-picker-content .sticker img:hover{filter:drop-shadow(0 0 5px var(--accent))} +/*# sourceMappingURL=1597.a250eca8cf87418c7b3e.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/1597.a250eca8cf87418c7b3e.css.map b/priv/static/static/css/1597.a250eca8cf87418c7b3e.css.map new file mode 100644 index 000000000..697b3f4a4 --- /dev/null +++ b/priv/static/static/css/1597.a250eca8cf87418c7b3e.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/1597.a250eca8cf87418c7b3e.css","mappings":"AACA,gBACE,WAEA,0BACE,iBAEA,kDACE,aACA,eACA,cAEA,2DACE,aACA,cAGA,YAFA,WACA,UACA,CAEA,+DACE,YAEA,qEACE","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue"],"sourcesContent":["\n.sticker-picker {\n width: 100%;\n\n .contents {\n min-height: 250px;\n\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n\n img {\n height: 100%;\n\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent));\n }\n }\n }\n }\n }\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/5250.b9104f3df4166526b081.css b/priv/static/static/css/5250.b9104f3df4166526b081.css new file mode 100644 index 000000000..e15ceebd6 --- /dev/null +++ b/priv/static/static/css/5250.b9104f3df4166526b081.css @@ -0,0 +1,2 @@ +.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.AttachmentSetting .attachment{display:block;height:15em;margin-bottom:.5em;width:100%}.AttachmentSetting .attachment-input{display:flex;flex-direction:column;margin-left:1em;width:20em}.AttachmentSetting.-compact .attachment-input{align-items:flex-end;flex-direction:row}.AttachmentSetting.-compact .attachment{align-self:center;display:block;flex:0;height:4em;margin-bottom:0;min-width:4em;order:0}.AttachmentSetting.-compact .control-field{margin-left:.5em;min-width:12em;order:1}.AttachmentSetting.-compact .control-upload{min-width:12em;order:2;padding:0 .5em}.AttachmentSetting .controls{margin-bottom:.5em}.AttachmentSetting .controls button,.AttachmentSetting .controls input{width:100%}.frontends-tab .cards-list{padding:0}.frontends-tab .relative{position:relative}.frontends-tab .overlay{background:var(--bg);bottom:0;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:2}.frontends-tab dd{word-wrap:nowrap;max-width:10em;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.emoji-tab-edit-popover{padding-bottom:.5em;padding-left:.5em;padding-right:.5em}.emoji-tab-edit-popover .emoji{height:32px;width:32px}.emoji-tab .btn-group .btn:not(:first-child){margin-left:.5em}.emoji-tab .pack-info-wrapper{margin-top:1em}.emoji-tab .emoji-info-input{width:100%}.emoji-tab .emoji-data-input{margin-left:.5em;margin-right:.5em;width:40%}.emoji-tab .emoji{height:32px;width:32px}.emoji-tab .emoji-unsaved{box-shadow:0 3px 5px var(--cBlue)}.emoji-tab .emoji-list{display:flex;flex-wrap:wrap;gap:1em 1em}.emoji-tab-popover-button:not(:first-child){margin-left:.5em}.emoji-tab-popover-input{margin-bottom:.5em}.emoji-tab-popover-input label{display:block;margin-bottom:.5em}.emoji-tab-popover-input input{width:20em}.emoji-tab-popover-input .emoji-tab-popover-file{padding-top:3px}.emoji-tab-popover-input .warning{color:var(--cOrange)}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--border);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed)} +/*# sourceMappingURL=5250.b9104f3df4166526b081.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/5250.b9104f3df4166526b081.css.map b/priv/static/static/css/5250.b9104f3df4166526b081.css.map new file mode 100644 index 000000000..b6acca608 --- /dev/null +++ b/priv/static/static/css/5250.b9104f3df4166526b081.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/5250.b9104f3df4166526b081.css","mappings":"AACA,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,yBACE,qBACA,kBAGF,wBACE,gBACA,eACA,kBCRF,cACE,qBACA,kBAEA,8BACE,iBAIJ,eACE,gBACA,eACA,kBCXA,+BACE,cAEA,YACA,mBAFA,UAEA,CAGF,qCAEE,aACA,sBAFA,gBAGA,WAIA,8CAEE,qBADA,kBACA,CAGF,wCAME,kBAHA,cAFA,OAIA,WAEA,eAAc,CAHd,cAFA,OAKA,CAGF,2CAGE,iBADA,eADA,OAEA,CAGF,4CAEE,eADA,QAEA,eAIJ,6BACE,mBAEA,uEAEE,WCjDJ,2BACE,UAGF,yBACE,kBAGF,wBAEE,qBAKA,SACA,OAHA,WAJA,kBAQA,OAAM,CAHN,MAFA,SAKA,CAGF,kBAEE,iBAGA,eADA,kBAHA,uBAEA,kBAEA,CCzBF,wBAGE,oBAFA,kBACA,kBACA,CAEA,+BAEE,YADA,UACA,CCPJ,6CACE,iBAGF,8BACE,eAGF,6BACE,WAGF,6BAEE,iBACA,kBAFA,SAEA,CAGF,kBAEE,YADA,UACA,CAGF,0BACE,kCAGF,uBACE,aACA,eACA,YAIJ,4CACE,iBAGF,yBACE,mBAEA,+BACE,cACA,mBAGF,+BACE,WAGF,iDACE,gBAGF,kCACE,qBCxDJ,uBACE,YAEA,qCACE,sCACA,qBACA,qBAEA,oFAEE,cACA,mBAEA,0GACE,gBAIJ,sDACE,aAEA,mEACE,SACA,kBAIJ,gDACE,mBAEA,kBADA,gBACA,CAGF,8CAGE,aADA,eADA,UAEA,CAGF,wGAEE","sources":["webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/emoji_editing_popover.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/emoji_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.scss"],"sourcesContent":["\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n &.-compact {\n .attachment-input {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .attachment {\n flex: 0;\n order: 0;\n display: block;\n min-width: 4em;\n height: 4em;\n align-self: center;\n margin-bottom: 0;\n }\n\n .control-field {\n order: 1;\n min-width: 12em;\n margin-left: 0.5em;\n }\n\n .control-upload {\n order: 2;\n min-width: 12em;\n padding: 0 0.5em;\n }\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n",".frontends-tab {\n .cards-list {\n padding: 0;\n }\n\n .relative {\n position: relative;\n }\n\n .overlay {\n position: absolute;\n background: var(--bg);\n // fix buttons showing through\n z-index: 2;\n opacity: 0.9;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n dd {\n text-overflow: ellipsis;\n word-wrap: nowrap;\n white-space: nowrap;\n overflow-x: hidden;\n max-width: 10em;\n }\n}\n","\n .emoji-tab-edit-popover {\n padding-left: 0.5em;\n padding-right: 0.5em;\n padding-bottom: 0.5em;\n\n .emoji {\n width: 32px;\n height: 32px;\n }\n }\n",".emoji-tab {\n .btn-group .btn:not(:first-child) {\n margin-left: 0.5em;\n }\n\n .pack-info-wrapper {\n margin-top: 1em;\n }\n\n .emoji-info-input {\n width: 100%;\n }\n\n .emoji-data-input {\n width: 40%;\n margin-left: 0.5em;\n margin-right: 0.5em;\n }\n\n .emoji {\n width: 32px;\n height: 32px;\n }\n\n .emoji-unsaved {\n box-shadow: 0 3px 5px var(--cBlue);\n }\n\n .emoji-list {\n display: flex;\n flex-wrap: wrap;\n gap: 1em 1em;\n }\n}\n\n.emoji-tab-popover-button:not(:first-child) {\n margin-left: 0.5em;\n}\n\n.emoji-tab-popover-input {\n margin-bottom: 0.5em;\n\n label {\n display: block;\n margin-bottom: 0.5em;\n }\n\n input {\n width: 20em;\n }\n\n .emoji-tab-popover-file {\n padding-top: 3px;\n }\n\n .warning {\n color: var(--cOrange);\n }\n}\n",".settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--border);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed);\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/5292.035030cbb2311a7ddada.css b/priv/static/static/css/5292.035030cbb2311a7ddada.css new file mode 100644 index 000000000..c50997d65 --- /dev/null +++ b/priv/static/static/css/5292.035030cbb2311a7ddada.css @@ -0,0 +1,11 @@ +.importer-uploading{font-size:1.5em;margin:.25em}.exporter-processing{margin:.25em}.autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{background-color:var(--bg);border-color:var(--border);border-radius:var(--roundness);border-style:solid;border-top-left-radius:0;border-top-right-radius:0;border-width:1px;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--shadow);left:0;max-height:400px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1}.block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}.mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}.domain-mute-card{align-items:center;display:flex;flex:1 0;justify-content:space-between;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}.autosuggest-results .domain-mute-card{padding-left:1em}.selectable-list{--__line-height:1.5em;--__horizontal-gap:0.75em;--__vertical-gap:0.5em}.selectable-list-item-inner{align-items:center;display:flex}.selectable-list-item-inner>*{min-width:0}.selectable-list-header{align-items:center;border-bottom:1px solid;border-bottom-color:var(--border);display:flex;padding:var(--__vertical-gap) var(--__horizontal-gap)}.selectable-list-header-actions{flex:1}.selectable-list-checkbox-wrapper{flex:none;padding-right:var(--__horizontal-gap)}.with-subscription-loading{padding:10px;text-align:center}.with-subscription-loading .error{font-size:1rem}.mutes-and-blocks-tab{height:100%}.mutes-and-blocks-tab .usersearch-wrapper{padding:1em}.mutes-and-blocks-tab .bulk-actions{min-height:2em;padding:0 1em;text-align:right}.mutes-and-blocks-tab .bulk-action-button{width:10em}.mutes-and-blocks-tab .domain-mute-form{display:flex;flex-direction:column;padding:1em}.mutes-and-blocks-tab .domain-mute-button{align-self:flex-end;margin-top:1em;width:10em}.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.UnitSetting .number-input{max-width:6.5em;text-align:right}.UnitSetting .unit-input,.UnitSetting .unit-input select{min-width:4em;width:auto}.mfa-backup-codes .warning{color:var(--cOrange)}.mfa-backup-codes .backup-codes{font-family:var(--monoFont)}.mfa-settings .method-item,.mfa-settings .mfa-heading{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:space-between}.mfa-settings .warning{color:var(--cOrange)}.mfa-settings .setup-otp{display:flex;flex-wrap:wrap;justify-content:center}.mfa-settings .setup-otp .qr-code{flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{margin-top:5px;width:15em} +/*! + * Cropper.js v1.5.13 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2022-11-20T05:30:43.444Z + */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}.profile-tab .bio{margin:0}.profile-tab .visibility-tray{padding-top:5px}.profile-tab input[type=file]{height:auto;padding:5px}.profile-tab .banner-background-preview{max-width:100%;position:relative;width:300px}.profile-tab .banner-background-preview img{width:100%}.profile-tab .uploading{font-size:1.5em;margin:.25em}.profile-tab .name-changer{width:100%}.profile-tab .current-avatar-container{height:150px;position:relative;width:150px}.profile-tab .current-avatar{border-radius:var(--roundness);display:block;height:100%;width:100%}.profile-tab .reset-button{background-color:rgba(0,0,0,.6);border-radius:var(--roundness);cursor:pointer;font-size:1.5em;height:1.5em;line-height:1.5em;opacity:.7;position:absolute;right:.2em;text-align:center;top:.2em;width:1.5em}.profile-tab .reset-button:hover{opacity:1}.profile-tab .reset-button svg{color:#fff}.profile-tab .oauth-tokens{width:100%}.profile-tab .oauth-tokens th{text-align:left}.profile-tab .oauth-tokens .actions{text-align:right}.profile-tab-usersearch-wrapper{padding:1em}.profile-tab-bulk-actions{min-height:2em;padding:0 1em;text-align:right}.profile-tab-bulk-actions button{width:10em}.profile-tab-domain-mute-form{display:flex;flex-direction:column;padding:1em}.profile-tab-domain-mute-form button{align-self:flex-end;margin-top:1em;width:10em}.profile-tab .setting-subitem{margin-left:1.75em}.profile-tab .profile-fields{display:flex}.profile-tab .profile-fields>.emoji-input{flex:1 1 auto;margin:0 .2em .5em;min-width:0}.profile-tab .profile-fields .delete-field{align-self:center;margin:0 .2em .5em;padding:0 .5em;width:20px}.profile-tab .birthday-input{display:block;margin-bottom:1em}.font-control .custom-font{max-width:20em;min-width:20em}.invalid-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.theme-preview-container{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50% 50%;background-size:cover;border-bottom:1px dashed;border-top:1px dashed;border-color:var(--border);margin:1em 0;padding:1em;position:relative}.theme-preview-container .theme-preview-content{padding:20px}.theme-preview-container .dummy .post{display:flex;font-family:var(--postFont)}.theme-preview-container .dummy .post .content{flex:1}.theme-preview-container .dummy .post .content h4{margin-bottom:.25em}.theme-preview-container .dummy .post .content .icons{display:flex;margin-top:.5em}.theme-preview-container .dummy .post .content .icons i{margin-right:1em}.theme-preview-container .dummy .after-post{align-items:center;display:flex;margin-top:1em}.theme-preview-container .dummy .avatar,.theme-preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;margin-right:1em;text-align:center}.theme-preview-container .dummy .avatar-alt{flex:0 auto;font-size:12px;line-height:20px;margin-left:28px;min-height:20px;min-width:20px}.theme-preview-container .dummy .avatar{flex:0 auto;font-size:14px;height:48px;line-height:48px;width:48px}.theme-preview-container .dummy .actions{align-items:baseline;display:flex}.theme-preview-container .dummy .actions .checkbox{flex:1;margin-right:1em}.theme-preview-container .dummy .separator{border-bottom:1px solid;border-color:var(--border);margin:1em}.theme-preview-container .dummy .btn{min-width:3em}.theme-preview-container .underlay-preview{bottom:0;left:10px;position:absolute;right:10px;top:0}.appearance-tab .theme-notice{margin:1em;padding:.5em}.appearance-tab .column-settings{display:flex;flex-wrap:wrap;justify-content:space-evenly}.appearance-tab .column-settings .size-label{display:block;margin-bottom:.5em;margin-top:.5em}.appearance-tab .theme-list{border:1px solid var(--border);border-radius:var(--roundness);display:flex;flex-wrap:wrap;height:25em;list-style:none;margin:-.5em 0;overflow-x:hidden;overflow-y:auto;padding:0;scrollbar-gutter:stable}.appearance-tab .theme-list .theme-preview{align-items:center;display:flex;flex-direction:column;font-size:1rem;margin:.5em;width:19rem}.appearance-tab .theme-list .theme-preview.placeholder{opacity:.2}.appearance-tab .theme-list .theme-preview .theme-preview-container{zoom:.5;border:none;border-radius:var(--roundness);pointer-events:none;text-align:left}.color-input{display:inline-flex}.color-input-field.input{align-items:stretch;display:inline-flex;flex:0 0 0;max-width:9em;padding:.2em 8px}.color-input-field.input input{background:none;border:none;color:var(--text);margin:0;padding:0}.color-input-field.input input.textColor{flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .nativeColor{cursor:pointer;flex:0 0 auto}.color-input-field.input .nativeColor input{-webkit-appearance:none;-moz-appearance:none;appearance:none;max-height:0;max-width:0;min-width:0;opacity:0!important}.color-input-field.input .computedIndicator,.color-input-field.input .invalidIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input .validIndicator{align-self:stretch;border-radius:var(--roundness);flex:0 0 2em;margin:0 .5em;min-height:1.5em;min-width:2em}.color-input-field.input .invalidIndicator{background:transparent;border:2px solid var(--cRed);box-sizing:border-box}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{background-color:#000;content:"";display:block;height:50%;position:absolute;width:50%}.color-input-field.input .transparentIndicator:after{border-top-left-radius:var(--roundness);left:0;top:0}.color-input-field.input .transparentIndicator:before{border-bottom-right-radius:var(--roundness);bottom:0;right:0}.color-input .label{flex:1 1 auto}.shadow-control{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{display:flex;flex:0;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{min-width:2em;width:5em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:flex;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{height:2em;margin:0;width:15em}.shadow-control .shadow-preview-container .y-shift-control{align-items:flex-end;flex-direction:column}.shadow-control .shadow-preview-container .y-shift-control .wrap{height:15em;width:2em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform:rotate(90deg);transform-origin:1em 1em}.shadow-control .shadow-preview-container .preview-window{align-items:center;background-color:#999;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:var(--roundness);display:flex;flex:1;justify-content:center}.shadow-control .shadow-preview-container .preview-window .preview-block{border-radius:var(--roundness);height:33%;width:33%}.shadow-control .shadow-tweak{flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{align-items:stretch}.shadow-control .shadow-tweak .id-control .shadow-switcher{flex:1}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .shadow-switcher{margin-right:5px;min-width:1px}.shadow-control .shadow-tweak .id-control .btn{margin:0 .1em;padding:0 .4em}.contrast-ratio{display:flex;justify-content:flex-end;margin-bottom:5px;margin-top:-4px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;margin-left:.5em;text-align:center}.theme-tab{padding-bottom:2em}.theme-tab .deprecation-warning{margin:2em;padding:.5em}.theme-tab .preset-switcher{margin-right:1em}.theme-tab .btn{margin-left:.25em;margin-right:.25em}.theme-tab .btn-group .btn{margin:0}.theme-tab .style-control{align-items:baseline;display:flex;margin-bottom:5px}.theme-tab .style-control .label{flex:1}.theme-tab .style-control .opt{margin:.5em}.theme-tab .style-control .color-input{flex:0 0 0}.theme-tab .style-control input,.theme-tab .style-control select{flex:0;margin:0;min-width:3em}.theme-tab .style-control input[type=number],.theme-tab .style-control select[type=number]{min-width:5em}.theme-tab .style-control input[type=range],.theme-tab .style-control select[type=range]{align-self:flex-start;flex:1;min-width:3em}.theme-tab .style-control.disabled input,.theme-tab .style-control.disabled select{opacity:.5}.theme-tab .reset-container{flex-wrap:wrap}.theme-tab .apply-container,.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .radius-container,.theme-tab .reset-container{display:flex}.theme-tab .fonts-container,.theme-tab .radius-container{flex-direction:column}.theme-tab .color-container{flex-wrap:wrap;justify-content:space-between}.theme-tab .color-container>h4{width:99%}.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .presets-container,.theme-tab .radius-container,.theme-tab .shadow-container{margin:1em 1em 0}.theme-tab .tab-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:1em;min-height:30px;width:100%}.theme-tab .tab-header p{flex:1;margin:0 .5em 0 0}.theme-tab .tab-header-buttons{display:flex;flex-direction:column}.theme-tab .tab-header-buttons .btn{flex:0 auto;margin-bottom:.5em;min-width:1px;padding:0 1em}.theme-tab .shadow-selector .override{flex:1;margin-left:.5em}.theme-tab .shadow-selector .select-container{margin-bottom:-3px;margin-top:-4px}.theme-tab .save-load,.theme-tab .save-load-options{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:center}.theme-tab .save-load .import-export,.theme-tab .save-load .presets,.theme-tab .save-load-options .import-export,.theme-tab .save-load-options .presets{margin-bottom:.5em}.theme-tab .save-load .import-export,.theme-tab .save-load-options .import-export{display:flex}.theme-tab .save-load .override,.theme-tab .save-load-options .override{margin-left:.5em}.theme-tab .save-load-options{flex-wrap:wrap;justify-content:center;margin-top:.5em}.theme-tab .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.theme-tab .radius-item{flex-basis:auto}.theme-tab .color-item,.theme-tab .radius-item{display:flex;flex:1 1 0;flex-direction:column;margin:5px 6px 0 0;min-width:20em}.theme-tab .color-item.wide,.theme-tab .radius-item.wide{min-width:60%}.theme-tab .color-item:not(.wide):nth-child(odd),.theme-tab .radius-item:not(.wide):nth-child(odd){margin-right:7px}.theme-tab .color-item .color,.theme-tab .color-item .opacity,.theme-tab .radius-item .color,.theme-tab .radius-item .opacity{align-items:baseline;display:flex}.theme-tab .theme-color-cl,.theme-tab .theme-radius-rn{align-self:stretch;background:transparent;border:0;box-shadow:none;color:var(--textFaint)}.theme-tab .theme-color-cl,.theme-tab .theme-color-in,.theme-tab .theme-radius-in{margin-left:4px}.theme-tab .theme-radius-in{flex:1;max-width:7em;min-width:1em}.theme-tab .theme-radius-lb{max-width:50em}.theme-tab .theme-warning{align-items:baseline;display:flex;margin-bottom:.5em}.theme-tab .theme-warning .buttons .btn{margin-bottom:.5em}.extra-content .apply-container{display:flex;flex-direction:row;flex-grow:1;justify-content:space-around}.extra-content .apply-container .btn{flex-grow:1;max-width:10em;min-height:2em;min-width:0;padding:0}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--border);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed)} +/*# sourceMappingURL=5292.035030cbb2311a7ddada.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/5292.035030cbb2311a7ddada.css.map b/priv/static/static/css/5292.035030cbb2311a7ddada.css.map new file mode 100644 index 000000000..d3fca3d12 --- /dev/null +++ b/priv/static/static/css/5292.035030cbb2311a7ddada.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/5292.035030cbb2311a7ddada.css","mappings":"AAEE,oBACE,gBACA,aCFF,qBACE,aCFJ,aACE,kBAEA,mBACE,cACA,WAGF,qBAME,2BAGA,2BACA,+BAHA,mBAIA,yBACA,0BAJA,iBAKA,sCACA,yBAZA,OAGA,iBAUA,gBAdA,kBAGA,QADA,SAaA,UCxBJ,8BACE,gBACA,iBAEA,qCACE,WCLJ,6BACE,gBACA,iBAEA,oCACE,WCLJ,kBAIE,mBAFA,aADA,SAEA,8BAEA,wBAEA,yBACE,iBACA,gBACA,uBAGF,yBACE,WAGF,uCACE,iBClBJ,iBACE,qBAAsB,CACtB,yBAA0B,CAC1B,sBAAuB,CAEvB,4BAEE,mBADA,YACA,CAEA,8BACE,YAIJ,wBAEE,mBAGA,0DAJA,aAEA,qDAEA,CAEA,gCACE,OAIJ,kCAEE,UADA,qCACA,CC5BF,2BACE,aACA,kBAEA,kCACE,eCNN,sBACE,YAEA,0CACE,YAGF,oCAGE,eADA,cADA,gBAEA,CAGF,0CACE,WAGF,wCAEE,aACA,sBAFA,WAEA,CAGF,0CACE,oBACA,eACA,WCzBJ,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,yBACE,qBACA,kBAGF,wBACE,gBACA,eACA,kBCRF,cACE,qBACA,kBAEA,8BACE,iBAIJ,eACE,gBACA,eACA,kBCXA,2BACE,gBACA,iBAGF,yDAEE,cACA,WCRF,2BACE,qBAGF,gCACE,4BCLF,sDAKE,qBAHA,aACA,eACA,6BACA,CAGF,uBACE,qBAGF,yBACE,aAEA,eADA,sBACA,CAEA,kCACE,OACA,mBAEF,wCACA,+CAGE,qDAEE,eADA,UACA;AC7BR;;;;;;;;EAQE,CAEF,mBACE,aAAc,CACd,WAAY,CACZ,aAAc,CACd,iBAAkB,CAEd,iBAAkB,CACtB,wBAAyB,CACtB,qBAAsB,CAEjB,gBACV,CAEA,uBAEY,0BAA2B,CACnC,aAAc,CACd,WAAY,CACZ,sBAAuB,CACvB,yBAA2B,CAC3B,wBAA0B,CAC1B,sBAAwB,CACxB,qBAAuB,CACvB,UACF,CAEF,qFAKE,QAAS,CACT,MAAO,CACP,iBAAkB,CAClB,OAAQ,CACR,KACF,CAEA,kCAEE,eACF,CAEA,kBACE,qBAAsB,CACtB,SACF,CAEA,eACE,qBAAsB,CACtB,UACF,CAEA,kBACE,aAAc,CACd,WAAY,CACZ,sBAAuB,CACvB,kCAAsC,CACtC,eAAgB,CAChB,UACF,CAEA,gBACE,oBAAqB,CACrB,aAAc,CACd,UAAY,CACZ,iBACF,CAEA,yBACI,uBAAwB,CACxB,oBAAqB,CACrB,gBAAsB,CACtB,MAAO,CACP,aAAmB,CACnB,UACF,CAEF,yBACI,qBAAsB,CACtB,sBAAuB,CACvB,WAAY,CACZ,cAAoB,CACpB,KAAM,CACN,eACF,CAEF,gBACE,aAAc,CACd,QAAS,CACT,QAAS,CACT,WAAa,CACb,iBAAkB,CAClB,OAAQ,CACR,OACF,CAEA,6CAEI,qBAAsB,CACtB,WAAY,CACZ,aAAc,CACd,iBACF,CAEF,uBACI,UAAW,CACX,SAAU,CACV,KAAM,CACN,SACF,CAEF,sBACI,UAAW,CACX,MAAO,CACP,QAAS,CACT,SACF,CAEF,2CAGE,aAAc,CACd,WAAY,CACZ,UAAY,CACZ,iBAAkB,CAClB,UACF,CAEA,cACE,qBAAsB,CACtB,MAAO,CACP,KACF,CAEA,cACE,qBACF,CAEA,qBACI,gBAAiB,CACjB,UAAW,CACX,KAAM,CACN,SACF,CAEF,qBACI,gBAAiB,CACjB,UAAW,CACX,MAAO,CACP,QACF,CAEF,qBACI,gBAAiB,CACjB,SAAU,CACV,KAAM,CACN,SACF,CAEF,qBACI,WAAY,CACZ,gBAAiB,CACjB,UAAW,CACX,MACF,CAEF,eACE,qBAAsB,CACtB,UAAW,CACX,WAAa,CACb,SACF,CAEA,uBACI,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,OACF,CAEF,uBACI,gBAAiB,CACjB,QAAS,CACT,gBAAiB,CACjB,QACF,CAEF,uBACI,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAChB,OACF,CAEF,uBACI,WAAY,CACZ,eAAgB,CAChB,QAAS,CACT,gBACF,CAEF,wBACI,kBAAmB,CACnB,UAAW,CACX,QACF,CAEF,wBACI,kBAAmB,CACnB,SAAU,CACV,QACF,CAEF,wBACI,WA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","sources":["webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.scss","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/unit_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.css","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.scss","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/appearance_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.scss","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_user_content.scss"],"sourcesContent":["\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n","\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n","\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: var(--bg);\n border-style: solid;\n border-width: 1px;\n border-color: var(--border);\n border-radius: var(--roundness);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--shadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n","\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n","\n.selectable-list {\n --__line-height: 1.5em;\n --__horizontal-gap: 0.75em;\n --__vertical-gap: 0.5em;\n\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: var(--__vertical-gap) var(--__horizontal-gap);\n border-bottom: 1px solid;\n border-bottom-color: var(--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding-right: var(--__horizontal-gap);\n flex: none;\n }\n}\n",".with-subscription {\n &-loading {\n padding: 10px;\n text-align: center;\n\n .error {\n font-size: 1rem;\n }\n }\n}\n",".mutes-and-blocks-tab {\n height: 100%;\n\n .usersearch-wrapper {\n padding: 1em;\n }\n\n .bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n }\n\n .bulk-action-button {\n width: 10em;\n }\n\n .domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n }\n\n .domain-mute-button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n}\n","\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.UnitSetting {\n .number-input {\n max-width: 6.5em;\n text-align: right;\n }\n\n .unit-input,\n .unit-input select {\n min-width: 4em;\n width: auto;\n }\n}\n\n","\n.mfa-backup-codes {\n .warning {\n color: var(--cOrange);\n }\n\n .backup-codes {\n font-family: var(--monoFont);\n }\n}\n","\n.mfa-settings {\n .mfa-heading,\n .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: var(--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0; }\n\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n }\n }\n}\n","/*!\n * Cropper.js v1.5.13\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2022-11-20T05:30:43.444Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n }\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 75%);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n }\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n }\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n .cropper-center::after {\n background-color: #eee;\n content: \" \";\n display: block;\n position: absolute;\n }\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n }\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n }\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n }\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n }\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n }\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n }\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n }\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n }\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n }\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n }\n\n@media (min-width: 768px) {\n\n.cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n }\n\n@media (min-width: 992px) {\n\n.cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n }\n\n@media (min-width: 1200px) {\n\n.cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n }\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: \" \";\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n }\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC\");\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n","\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n",".profile-tab {\n .bio {\n margin: 0;\n }\n\n .visibility-tray {\n padding-top: 5px;\n }\n\n input[type=\"file\"] {\n padding: 5px;\n height: auto;\n }\n\n .banner-background-preview {\n max-width: 100%;\n width: 300px;\n position: relative;\n\n img {\n width: 100%;\n }\n }\n\n .uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n\n .name-changer {\n width: 100%;\n }\n\n .current-avatar-container {\n position: relative;\n width: 150px;\n height: 150px;\n }\n\n .current-avatar {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: var(--roundness);\n }\n\n .reset-button {\n position: absolute;\n top: 0.2em;\n right: 0.2em;\n border-radius: var(--roundness);\n background-color: rgb(0 0 0 / 60%);\n opacity: 0.7;\n width: 1.5em;\n height: 1.5em;\n text-align: center;\n line-height: 1.5em;\n font-size: 1.5em;\n cursor: pointer;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n color: white;\n }\n }\n\n .oauth-tokens {\n width: 100%;\n\n th {\n text-align: left;\n }\n\n .actions {\n text-align: right;\n }\n }\n\n &-usersearch-wrapper {\n padding: 1em;\n }\n\n &-bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n\n button {\n width: 10em;\n }\n }\n\n &-domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n\n button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n }\n\n .setting-subitem {\n margin-left: 1.75em;\n }\n\n .profile-fields {\n display: flex;\n\n & > .emoji-input {\n flex: 1 1 auto;\n margin: 0 0.2em 0.5em;\n min-width: 0;\n }\n\n .delete-field {\n width: 20px;\n align-self: center;\n margin: 0 0.2em 0.5em;\n padding: 0 0.5em;\n }\n }\n\n .birthday-input {\n display: block;\n margin-bottom: 1em;\n }\n}\n","\n.font-control {\n .custom-font {\n min-width: 20em;\n max-width: 20em;\n }\n}\n\n.invalid-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.theme-preview-container {\n position: relative;\n border-top: 1px dashed;\n border-bottom: 1px dashed;\n border-color: var(--border);\n margin: 1em 0;\n padding: 1em;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-size: cover;\n background-position: 50% 50%;\n\n .theme-preview-content {\n padding: 20px;\n }\n\n .dummy {\n .post {\n font-family: var(--postFont);\n display: flex;\n\n .content {\n flex: 1;\n\n h4 {\n margin-bottom: 0.25em;\n }\n\n .icons {\n margin-top: 0.5em;\n display: flex;\n\n i {\n margin-right: 1em;\n }\n }\n }\n }\n\n .after-post {\n margin-top: 1em;\n display: flex;\n align-items: center;\n }\n\n .avatar,\n .avatar-alt {\n background:\n linear-gradient(\n 135deg,\n #b8e1fc 0%,\n #a9d2f3 10%,\n #90bae4 25%,\n #90bcea 37%,\n #90bff0 50%,\n #6ba8e5 51%,\n #a2daf5 83%,\n #bdf3fd 100%\n );\n color: black;\n font-family: sans-serif;\n text-align: center;\n margin-right: 1em;\n }\n\n .avatar-alt {\n flex: 0 auto;\n margin-left: 28px;\n font-size: 12px;\n min-width: 20px;\n min-height: 20px;\n line-height: 20px;\n }\n\n .avatar {\n flex: 0 auto;\n width: 48px;\n height: 48px;\n font-size: 14px;\n line-height: 48px;\n }\n\n .actions {\n display: flex;\n align-items: baseline;\n\n .checkbox {\n margin-right: 1em;\n flex: 1;\n }\n }\n\n .separator {\n margin: 1em;\n border-bottom: 1px solid;\n border-color: var(--border);\n }\n\n .btn {\n min-width: 3em;\n }\n }\n\n .underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n }\n}\n ","\n.appearance-tab {\n .theme-notice {\n padding: 0.5em;\n margin: 1em;\n }\n\n .column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n }\n\n .column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n }\n\n .theme-list {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n margin: -0.5em 0;\n height: 25em;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-gutter: stable;\n border-radius: var(--roundness);\n border: 1px solid var(--border);\n padding: 0;\n\n .theme-preview {\n font-size: 1rem; // fix for firefox\n width: 19rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.5em;\n\n &.placeholder {\n opacity: 0.2;\n }\n\n .theme-preview-container {\n pointer-events: none;\n zoom: 0.5;\n border: none;\n border-radius: var(--roundness);\n text-align: left;\n }\n }\n }\n}\n",".color-input {\n display: inline-flex;\n\n &-field.input {\n display: inline-flex;\n flex: 0 0 0;\n max-width: 9em;\n align-items: stretch;\n padding: 0.2em 8px;\n\n input {\n color: var(--text);\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n\n &.textColor {\n flex: 1 0 3em;\n min-width: 3em;\n padding: 0;\n }\n }\n\n .nativeColor {\n cursor: pointer;\n flex: 0 0 auto;\n\n input {\n appearance: none;\n max-width: 0;\n min-width: 0;\n max-height: 0;\n /* stylelint-disable-next-line declaration-no-important */\n opacity: 0 !important;\n }\n }\n\n .computedIndicator,\n .validIndicator,\n .invalidIndicator,\n .transparentIndicator {\n flex: 0 0 2em;\n margin: 0 0.5em;\n min-width: 2em;\n align-self: stretch;\n min-height: 1.5em;\n border-radius: var(--roundness);\n }\n\n .invalidIndicator {\n background: transparent;\n box-sizing: border-box;\n border: 2px solid var(--cRed);\n }\n\n .transparentIndicator {\n // forgot to install counter-strike source, ooops\n background-color: #f0f;\n position: relative;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n background-color: #000;\n position: absolute;\n height: 50%;\n width: 50%;\n }\n\n &::after {\n top: 0;\n left: 0;\n border-top-left-radius: var(--roundness);\n }\n\n &::before {\n bottom: 0;\n right: 0;\n border-bottom-right-radius: var(--roundness);\n }\n }\n }\n\n .label {\n flex: 1 1 auto;\n }\n}\n","\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n input[type=\"number\"] {\n width: 5em;\n min-width: 2em;\n }\n\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=\"disabled\"] * {\n opacity: 0.5;\n }\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=\"range\"] {\n margin: 0;\n width: 15em;\n height: 2em;\n }\n\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n\n .wrap {\n width: 2em;\n height: 15em;\n }\n\n input[type=\"range\"] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n\n .preview-window {\n flex: 1;\n background-color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666 25%, transparent 25%),\n linear-gradient(-45deg, #666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666 75%),\n linear-gradient(-45deg, transparent 75%, #666 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0;\n border-radius: var(--roundness);\n\n .preview-block {\n width: 33%;\n height: 33%;\n border-radius: var(--roundness);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher,\n .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 0.4em;\n margin: 0 0.1em;\n }\n }\n }\n}\n","\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n",".theme-tab {\n .deprecation-warning {\n padding: 0.5em;\n margin: 2em;\n }\n\n padding-bottom: 2em;\n\n .preset-switcher {\n margin-right: 1em;\n }\n\n .btn {\n margin-left: 0.25em;\n margin-right: 0.25em;\n }\n\n .btn-group .btn {\n margin: 0;\n }\n\n .style-control {\n display: flex;\n align-items: baseline;\n margin-bottom: 5px;\n\n .label {\n flex: 1;\n }\n\n .opt {\n margin: 0.5em;\n }\n\n .color-input {\n flex: 0 0 0;\n }\n\n input,\n select {\n min-width: 3em;\n margin: 0;\n flex: 0;\n\n &[type=\"number\"] {\n min-width: 5em;\n }\n\n &[type=\"range\"] {\n flex: 1;\n min-width: 3em;\n align-self: flex-start;\n }\n }\n\n &.disabled {\n input,\n select {\n opacity: 0.5;\n }\n }\n }\n\n .reset-container {\n flex-wrap: wrap;\n }\n\n .fonts-container,\n .reset-container,\n .apply-container,\n .radius-container,\n .color-container, {\n display: flex;\n }\n\n .fonts-container,\n .radius-container {\n flex-direction: column;\n }\n\n .color-container {\n > h4 {\n width: 99%;\n }\n\n flex-wrap: wrap;\n justify-content: space-between;\n }\n\n .fonts-container,\n .color-container,\n .shadow-container,\n .radius-container,\n .presets-container {\n margin: 1em 1em 0;\n }\n\n .tab-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n min-height: 30px;\n margin-bottom: 1em;\n\n p {\n flex: 1;\n margin: 0;\n margin-right: 0.5em;\n }\n }\n\n .tab-header-buttons {\n display: flex;\n flex-direction: column;\n\n .btn {\n min-width: 1px;\n flex: 0 auto;\n padding: 0 1em;\n margin-bottom: 0.5em;\n }\n }\n\n .shadow-selector {\n .override {\n flex: 1;\n margin-left: 0.5em;\n }\n\n .select-container {\n margin-top: -4px;\n margin-bottom: -3px;\n }\n }\n\n .save-load,\n .save-load-options {\n display: flex;\n justify-content: center;\n align-items: baseline;\n flex-wrap: wrap;\n\n .presets,\n .import-export {\n margin-bottom: 0.5em;\n }\n\n .import-export {\n display: flex;\n }\n\n .override {\n margin-left: 0.5em;\n }\n }\n\n .save-load-options {\n flex-wrap: wrap;\n margin-top: 0.5em;\n justify-content: center;\n\n .keep-option {\n margin: 0 0.5em 0.5em;\n min-width: 25%;\n }\n }\n\n .radius-item {\n flex-basis: auto;\n }\n\n .radius-item,\n .color-item {\n min-width: 20em;\n margin: 5px 6px 0 0;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n\n &.wide {\n min-width: 60%;\n }\n\n &:not(.wide):nth-child(2n+1) {\n margin-right: 7px;\n }\n\n .color,\n .opacity {\n display: flex;\n align-items: baseline;\n }\n }\n\n .theme-radius-rn,\n .theme-color-cl {\n border: 0;\n box-shadow: none;\n background: transparent;\n color: var(--textFaint);\n align-self: stretch;\n }\n\n .theme-color-cl,\n .theme-radius-in,\n .theme-color-in {\n margin-left: 4px;\n }\n\n .theme-radius-in {\n min-width: 1em;\n max-width: 7em;\n flex: 1;\n }\n\n .theme-radius-lb {\n max-width: 50em;\n }\n\n .theme-warning {\n display: flex;\n align-items: baseline;\n margin-bottom: 0.5em;\n\n .buttons {\n .btn {\n margin-bottom: 0.5em;\n }\n }\n }\n}\n\n.extra-content {\n .apply-container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n flex-grow: 1;\n\n /* stylelint-disable-next-line no-descending-specificity */\n .btn {\n flex-grow: 1;\n min-height: 2em;\n min-width: 0;\n max-width: 10em;\n padding: 0;\n }\n }\n}\n",".settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--border);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed);\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/6464.169260b661120cc50815.css b/priv/static/static/css/6464.169260b661120cc50815.css deleted file mode 100644 index 240087a1d..000000000 --- a/priv/static/static/css/6464.169260b661120cc50815.css +++ /dev/null @@ -1,2 +0,0 @@ -.UpdateNotification{overflow:hidden}.UpdateNotificationModal{--__top-fringe:15em;--__bottom-fringe:80em;--__right-fringe:8em;font-size:15px;position:relative;transition:transform;transition-duration:.5s;transition-timing-function:ease-in-out}.UpdateNotificationModal .text{max-width:40em;padding-left:1em}@media (max-width:800px){.UpdateNotificationModal{width:100vw}}@media (max-height:600px){.UpdateNotificationModal{display:none}}.UpdateNotificationModal .content{margin-bottom:calc(var(--__bottom-fringe)*-1);margin-right:calc(var(--__right-fringe)*-1);margin-top:calc(var(--__top-fringe)*-1);overflow:hidden}.UpdateNotificationModal .content.-noImage .text{padding-right:var(--__right-fringe)}.UpdateNotificationModal .panel-body{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px}.UpdateNotificationModal .panel-footer{border-width:0;grid-template-columns:auto;position:relative;z-index:22}.UpdateNotificationModal .pleroma-tan{filter:drop-shadow(5px 5px 10px rgba(0,0,0,.5));float:right;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;pointer-events:none;position:relative;shape-margin:.5em;transition:position,left,right,top,bottom,max-width,max-height;transition-duration:.5s;transition-timing-function:ease-in-out;width:25em;z-index:20}.UpdateNotificationModal .spacer-top{min-height:var(--__top-fringe)}.UpdateNotificationModal .spacer-bottom{min-height:var(--__bottom-fringe)}.UpdateNotificationModal .extra-info-group{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);max-height:70vh;transition:max-height,padding,height;transition-duration:.7s;transition-timing-function:ease-in}.UpdateNotificationModal .art-credit{text-align:right}.UpdateNotificationModal.-peek{transform:translateY(calc(50vh - 50%))}.UpdateNotificationModal.-peek .pleroma-tan{float:right;shape-image-threshold:70%;z-index:10}.UpdateNotificationModal.-peek .extra-info-group{max-height:0} -/*# sourceMappingURL=6464.169260b661120cc50815.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/6464.169260b661120cc50815.css.map b/priv/static/static/css/6464.169260b661120cc50815.css.map deleted file mode 100644 index 048efb2b9..000000000 --- a/priv/static/static/css/6464.169260b661120cc50815.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/6464.169260b661120cc50815.css","mappings":"AAEA,oBACE,gBAGF,yBACE,mBAAoB,CACpB,sBAAuB,CACvB,oBAAqB,CAErB,eACA,kBACA,qBAEA,wBADA,sCACA,CAEA,+BACE,eACA,iBAGF,yBAhBF,yBAqBI,aAGF,0BAxBF,yBAyBI,cAGF,kCAGE,8CACA,4CAFA,wCADA,eAGA,CAGE,iDACE,oCAKN,qCAGE,gCADA,mBADA,oBAEA,CAGF,uCAGE,eACA,2BAFA,kBADA,UAGA,CAGF,sCAWE,gDAJA,YANA,qCACA,2CAUA,oBAHA,kBACA,kBAPA,+DAEA,wBADA,uCAEA,WAEA,UAIA,CAGF,qCACE,+BAGF,wCACE,kCAGF,2CAKE,6GACE,CADF,sGADA,gBAHA,qCAEA,wBADA,kCAIE,CAIJ,qCACE,iBAGF,+BAKE,uCAEA,4CACE,YAEA,0BADA,UACA,CAGF,iDACE","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.scss"],"sourcesContent":["@import \"src/variables\";\n\n.UpdateNotification {\n overflow: hidden;\n}\n\n.UpdateNotificationModal {\n --__top-fringe: 15em; // how much pleroma-tan should stick her head above\n --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant\n --__right-fringe: 8em;\n\n font-size: 15px;\n position: relative;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n\n .text {\n max-width: 40em;\n padding-left: 1em;\n }\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser\n bottom bar regardless of whether or not it is visible.\n */\n width: 100vw;\n }\n\n @media all and (max-height: 600px) {\n display: none;\n }\n\n .content {\n overflow: hidden;\n margin-top: calc(-1 * var(--__top-fringe));\n margin-bottom: calc(-1 * var(--__bottom-fringe));\n margin-right: calc(-1 * var(--__right-fringe));\n\n &.-noImage {\n .text {\n padding-right: var(--__right-fringe);\n }\n }\n }\n\n .panel-body {\n border-width: 0 0 1px;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n }\n\n .panel-footer {\n z-index: 22;\n position: relative;\n border-width: 0;\n grid-template-columns: auto;\n }\n\n .pleroma-tan {\n object-fit: cover;\n object-position: top;\n transition: position, left, right, top, bottom, max-width, max-height;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n width: 25em;\n float: right;\n z-index: 20;\n position: relative;\n shape-margin: 0.5em;\n filter: drop-shadow(5px 5px 10px rgb(0 0 0 / 50%));\n pointer-events: none;\n }\n\n .spacer-top {\n min-height: var(--__top-fringe);\n }\n\n .spacer-bottom {\n min-height: var(--__bottom-fringe);\n }\n\n .extra-info-group {\n transition: max-height, padding, height;\n transition-timing-function: ease-in;\n transition-duration: 700ms;\n max-height: 70vh;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 2px no-repeat,\n linear-gradient(to top, white, white);\n }\n\n .art-credit {\n text-align: right;\n }\n\n &.-peek {\n /* Explanation:\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n */\n transform: translateY(calc(((100vh - 100%) / 2)));\n\n .pleroma-tan {\n float: right;\n z-index: 10;\n shape-image-threshold: 70%;\n }\n\n .extra-info-group {\n max-height: 0;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css b/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css new file mode 100644 index 000000000..d8dc1f944 --- /dev/null +++ b/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css @@ -0,0 +1,2 @@ +.UpdateNotification{overflow:hidden}.UpdateNotificationModal{--__top-fringe:15em;--__bottom-fringe:80em;--__right-fringe:8em;font-size:15px;position:relative;transition:transform;transition-duration:.5s;transition-timing-function:ease-in-out}.UpdateNotificationModal .text{max-width:40em;padding-left:1em}@media (max-width:800px){.UpdateNotificationModal{width:100vw}}@media (max-height:600px){.UpdateNotificationModal{display:none}}.UpdateNotificationModal .content{margin-bottom:calc(var(--__bottom-fringe)*-1);margin-right:calc(var(--__right-fringe)*-1);margin-top:calc(var(--__top-fringe)*-1);overflow:hidden}.UpdateNotificationModal .content.-noImage .text{padding-right:var(--__right-fringe)}.UpdateNotificationModal .panel-body{border-color:var(--border);border-style:solid;border-width:0 0 1px}.UpdateNotificationModal .panel-footer{border-width:0;grid-template-columns:auto;position:relative;z-index:22}.UpdateNotificationModal .pleroma-tan{filter:drop-shadow(5px 5px 10px rgba(0,0,0,.5));float:right;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;pointer-events:none;position:relative;shape-margin:.5em;transition:position,left,right,top,bottom,max-width,max-height;transition-duration:.5s;transition-timing-function:ease-in-out;width:25em;z-index:20}.UpdateNotificationModal .spacer-top{min-height:var(--__top-fringe)}.UpdateNotificationModal .spacer-bottom{min-height:var(--__bottom-fringe)}.UpdateNotificationModal .extra-info-group{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);max-height:70vh;transition:max-height,padding,height;transition-duration:.7s;transition-timing-function:ease-in}.UpdateNotificationModal .art-credit{text-align:right}.UpdateNotificationModal.-peek{transform:translateY(calc(50vh - 50%))}.UpdateNotificationModal.-peek .pleroma-tan{float:right;shape-image-threshold:70%;z-index:10}.UpdateNotificationModal.-peek .extra-info-group{max-height:0} +/*# sourceMappingURL=6464.7845ee2ccc5e22628b2a.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css.map b/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css.map new file mode 100644 index 000000000..90d2c8fce --- /dev/null +++ b/priv/static/static/css/6464.7845ee2ccc5e22628b2a.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/6464.7845ee2ccc5e22628b2a.css","mappings":"AAAA,oBACE,gBAGF,yBACE,mBAAoB,CACpB,sBAAuB,CACvB,oBAAqB,CAErB,eACA,kBACA,qBAEA,wBADA,sCACA,CAEA,+BACE,eACA,iBAGF,yBAhBF,yBAqBI,aAGF,0BAxBF,yBAyBI,cAGF,kCAGE,8CACA,4CAFA,wCADA,eAGA,CAGE,iDACE,oCAKN,qCAGE,2BADA,mBADA,oBAEA,CAGF,uCAGE,eACA,2BAFA,kBADA,UAGA,CAGF,sCAWE,gDAJA,YANA,qCACA,2CAUA,oBAHA,kBACA,kBAPA,+DAEA,wBADA,uCAEA,WAEA,UAIA,CAGF,qCACE,+BAGF,wCACE,kCAGF,2CAKE,6GACE,CADF,sGADA,gBAHA,qCAEA,wBADA,kCAIE,CAIJ,qCACE,iBAGF,+BAKE,uCAEA,4CACE,YAEA,0BADA,UACA,CAGF,iDACE","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.scss"],"sourcesContent":[".UpdateNotification {\n overflow: hidden;\n}\n\n.UpdateNotificationModal {\n --__top-fringe: 15em; // how much pleroma-tan should stick her head above\n --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant\n --__right-fringe: 8em;\n\n font-size: 15px;\n position: relative;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n\n .text {\n max-width: 40em;\n padding-left: 1em;\n }\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser\n bottom bar regardless of whether or not it is visible.\n */\n width: 100vw;\n }\n\n @media all and (max-height: 600px) {\n display: none;\n }\n\n .content {\n overflow: hidden;\n margin-top: calc(-1 * var(--__top-fringe));\n margin-bottom: calc(-1 * var(--__bottom-fringe));\n margin-right: calc(-1 * var(--__right-fringe));\n\n &.-noImage {\n .text {\n padding-right: var(--__right-fringe);\n }\n }\n }\n\n .panel-body {\n border-width: 0 0 1px;\n border-style: solid;\n border-color: var(--border);\n }\n\n .panel-footer {\n z-index: 22;\n position: relative;\n border-width: 0;\n grid-template-columns: auto;\n }\n\n .pleroma-tan {\n object-fit: cover;\n object-position: top;\n transition: position, left, right, top, bottom, max-width, max-height;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n width: 25em;\n float: right;\n z-index: 20;\n position: relative;\n shape-margin: 0.5em;\n filter: drop-shadow(5px 5px 10px rgb(0 0 0 / 50%));\n pointer-events: none;\n }\n\n .spacer-top {\n min-height: var(--__top-fringe);\n }\n\n .spacer-bottom {\n min-height: var(--__bottom-fringe);\n }\n\n .extra-info-group {\n transition: max-height, padding, height;\n transition-timing-function: ease-in;\n transition-duration: 700ms;\n max-height: 70vh;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 2px no-repeat,\n linear-gradient(to top, white, white);\n }\n\n .art-credit {\n text-align: right;\n }\n\n &.-peek {\n /* Explanation:\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n */\n transform: translateY(calc(((100vh - 100%) / 2)));\n\n .pleroma-tan {\n float: right;\n z-index: 10;\n shape-image-threshold: 70%;\n }\n\n .extra-info-group {\n max-height: 0;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/7586.0d43f70bc6240422f179.css b/priv/static/static/css/7586.0d43f70bc6240422f179.css deleted file mode 100644 index 7da2aa2ea..000000000 --- a/priv/static/static/css/7586.0d43f70bc6240422f179.css +++ /dev/null @@ -1,2 +0,0 @@ -.async-component-error{align-items:center;display:flex;height:100%;justify-content:center}.async-component-error .btn{margin:.5em;padding:.5em 2em}.settings-modal{overflow:hidden}.settings-modal .option-list,.settings-modal .setting-list{list-style-type:none;padding-left:2em}.settings-modal .option-list li,.settings-modal .setting-list li{margin-bottom:.5em}.settings-modal .option-list .suboptions,.settings-modal .setting-list .suboptions{margin-top:.3em}.settings-modal .setting-description{font-size:70%;margin-bottom:2em;margin-top:.2em}.settings-modal .settings-modal-panel{height:90vh;max-width:90vw;overflow:hidden;transition:transform;transition-duration:.3s;transition-timing-function:ease-in-out;width:1000px}@media (max-width:800px){.settings-modal .settings-modal-panel{height:100%;max-width:100vw}}.settings-modal .settings-modal-panel>.panel-body{height:100%;overflow-y:hidden}.settings-modal .settings-modal-panel>.panel-body .btn{min-height:2em}.settings-modal .settings-modal-panel>.panel-body .btn:not(.dropdown-button){padding:0 2em}.settings-modal .settings-footer{display:flex;flex-wrap:wrap;line-height:2}.settings-modal .settings-footer>*{margin-right:.5em}.settings-modal .settings-footer .extra-content{display:flex;flex-grow:1}.settings-modal.peek .settings-modal-panel{transform:translateY(calc(50vh + 50% - 50px))}@media (max-width:800px){.settings-modal.peek .settings-modal-panel{transform:translateY(calc(100% - 50px))}} -/*# sourceMappingURL=7586.0d43f70bc6240422f179.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/7586.0d43f70bc6240422f179.css.map b/priv/static/static/css/7586.0d43f70bc6240422f179.css.map deleted file mode 100644 index f8f61fe6e..000000000 --- a/priv/static/static/css/7586.0d43f70bc6240422f179.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/7586.0d43f70bc6240422f179.css","mappings":"AACA,uBAGE,mBAFA,aACA,YAEA,uBAEA,4BACE,YACA,iBCPJ,gBACE,gBAEA,2DAEE,qBACA,iBAEA,iEACE,mBAGF,mFACE,gBAIJ,qCAGE,cADA,kBADA,eAEA,CAGF,sCAOE,YADA,eALA,gBACA,qBAEA,wBADA,uCAEA,YAEA,CAEA,yBATF,sCAWI,YADA,eACA,EAGF,kDACE,YACA,kBAEA,uDACE,eAGF,6EACE,cAKN,iCACE,aACA,eACA,cAEA,mCACE,kBAGF,gDACE,aACA,YAKF,2CASE,8CAEA,yBAXF,2CAgBI","sources":["webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.scss"],"sourcesContent":["\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n","@import \"src/variables\";\n\n.settings-modal {\n overflow: hidden;\n\n .setting-list,\n .option-list {\n list-style-type: none;\n padding-left: 2em;\n\n li {\n margin-bottom: 0.5em;\n }\n\n .suboptions {\n margin-top: 0.3em;\n }\n }\n\n .setting-description {\n margin-top: 0.2em;\n margin-bottom: 2em;\n font-size: 70%;\n }\n\n .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n\n @media all and (max-width: 800px) {\n max-width: 100vw;\n height: 100%;\n }\n\n >.panel-body {\n height: 100%;\n overflow-y: hidden;\n\n .btn {\n min-height: 2em;\n }\n\n .btn:not(.dropdown-button) {\n padding: 0 2em;\n }\n }\n }\n\n .settings-footer {\n display: flex;\n flex-wrap: wrap;\n line-height: 2;\n\n >* {\n margin-right: 0.5em;\n }\n\n .extra-content {\n display: flex;\n flex-grow: 1;\n }\n }\n\n &.peek {\n .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom\n bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/7594.a8030565c3ef463dc1de.css b/priv/static/static/css/7594.a8030565c3ef463dc1de.css new file mode 100644 index 000000000..90225e2c0 --- /dev/null +++ b/priv/static/static/css/7594.a8030565c3ef463dc1de.css @@ -0,0 +1,2 @@ +.async-component-error{align-items:center;display:flex;height:100%;justify-content:center}.async-component-error .btn{margin:.5em;padding:.5em 2em}.settings-modal{overflow:hidden}.settings-modal h4{margin-bottom:.5em}.settings-modal .option-list,.settings-modal .setting-list{list-style-type:none;padding-left:2em}.settings-modal .option-list li,.settings-modal .setting-list li{margin-bottom:.5em}.settings-modal .option-list .suboptions,.settings-modal .setting-list .suboptions{margin-top:.3em}.settings-modal .option-list.two-column,.settings-modal .setting-list.two-column{-moz-column-count:2;column-count:2}.settings-modal .option-list.two-column>li,.settings-modal .setting-list.two-column>li{-moz-column-break-inside:avoid;break-inside:avoid}.settings-modal .setting-description{font-size:70%;margin-bottom:2em;margin-top:.2em}.settings-modal .settings-modal-panel{height:90vh;max-width:90vw;overflow:hidden;transition:transform;transition-duration:.3s;transition-timing-function:ease-in-out;width:1000px}@media (max-width:800px){.settings-modal .settings-modal-panel{height:100%;max-width:100vw}}.settings-modal .settings-modal-panel>.panel-body{height:100%;overflow-y:hidden}.settings-modal .settings-modal-panel>.panel-body .btn{min-height:2em}.settings-modal .settings-modal-panel>.panel-body .btn:not(.dropdown-button){padding:0 2em}.settings-modal .settings-footer{display:flex;flex-wrap:wrap;line-height:2}.settings-modal .settings-footer>*{margin-right:.5em}.settings-modal .settings-footer .extra-content{display:flex;flex-grow:1}.settings-modal.peek .settings-modal-panel{transform:translateY(calc(50vh + 50% - 50px))}@media (max-width:800px){.settings-modal.peek .settings-modal-panel{transform:translateY(calc(100% - 50px))}} +/*# sourceMappingURL=7594.a8030565c3ef463dc1de.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/7594.a8030565c3ef463dc1de.css.map b/priv/static/static/css/7594.a8030565c3ef463dc1de.css.map new file mode 100644 index 000000000..8db316a71 --- /dev/null +++ b/priv/static/static/css/7594.a8030565c3ef463dc1de.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/7594.a8030565c3ef463dc1de.css","mappings":"AACA,uBAGE,mBAFA,aACA,YAEA,uBAEA,4BACE,YACA,iBCTJ,gBACE,gBAEA,mBACE,mBAGF,2DAEE,qBACA,iBAEA,iEACE,mBAGF,mFACE,gBAGF,iFACE,mCAEA,uFACE,kDAKN,qCAGE,cADA,kBADA,eAEA,CAGF,sCAOE,YADA,eALA,gBACA,qBAEA,wBADA,uCAEA,YAEA,CAEA,yBATF,sCAWI,YADA,eACA,EAGF,kDACE,YACA,kBAEA,uDACE,eAGF,6EACE,cAKN,iCACE,aACA,eACA,cAEA,mCACE,kBAGF,gDACE,aACA,YAKF,2CASE,8CAEA,yBAXF,2CAgBI","sources":["webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.scss"],"sourcesContent":["\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n",".settings-modal {\n overflow: hidden;\n\n h4 {\n margin-bottom: 0.5em;\n }\n\n .setting-list,\n .option-list {\n list-style-type: none;\n padding-left: 2em;\n\n li {\n margin-bottom: 0.5em;\n }\n\n .suboptions {\n margin-top: 0.3em;\n }\n\n &.two-column {\n column-count: 2;\n\n > li {\n break-inside: avoid;\n }\n }\n }\n\n .setting-description {\n margin-top: 0.2em;\n margin-bottom: 2em;\n font-size: 70%;\n }\n\n .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n\n @media all and (max-width: 800px) {\n max-width: 100vw;\n height: 100%;\n }\n\n >.panel-body {\n height: 100%;\n overflow-y: hidden;\n\n .btn {\n min-height: 2em;\n }\n\n .btn:not(.dropdown-button) {\n padding: 0 2em;\n }\n }\n }\n\n .settings-footer {\n display: flex;\n flex-wrap: wrap;\n line-height: 2;\n\n >* {\n margin-right: 0.5em;\n }\n\n .extra-content {\n display: flex;\n flex-grow: 1;\n }\n }\n\n &.peek {\n .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom\n bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css b/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css deleted file mode 100644 index 2326ed932..000000000 --- a/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css +++ /dev/null @@ -1,11 +0,0 @@ -.importer-uploading{font-size:1.5em;margin:.25em}.exporter-processing{margin:.25em}.autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{background-color:#121a24;background-color:var(--bg,#121a24);border:1px solid #222;border-color:var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);border-top-left-radius:0;border-top-right-radius:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);left:0;max-height:400px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1}.block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}.mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}.domain-mute-card{align-items:center;display:flex;flex:1 0;justify-content:space-between;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}.autosuggest-results .domain-mute-card{padding-left:1em}.selectable-list-item-inner{align-items:center;display:flex}.selectable-list-item-inner>*{min-width:0}.selectable-list-item-selected-inner{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:var(--selectedMenuText,#b9b9ba)}.selectable-list-header{align-items:center;border-bottom:2px solid #222;border-bottom-color:var(--border,#222);display:flex;padding:.6em 0}.selectable-list-header-actions{flex:1}.selectable-list-checkbox-wrapper{flex:none;padding:0 10px}.with-subscription-loading{padding:10px;text-align:center}.with-subscription-loading .error{font-size:1rem}.mutes-and-blocks-tab{height:100%}.mutes-and-blocks-tab .usersearch-wrapper{padding:1em}.mutes-and-blocks-tab .bulk-actions{min-height:2em;padding:0 1em;text-align:right}.mutes-and-blocks-tab .bulk-action-button{width:10em}.mutes-and-blocks-tab .domain-mute-form{display:flex;flex-direction:column;padding:1em}.mutes-and-blocks-tab .domain-mute-button{align-self:flex-end;margin-top:1em;width:10em}.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.mfa-backup-codes .warning{color:orange;color:var(--cOrange,orange)}.mfa-backup-codes .backup-codes{font-family:var(--postCodeFont,monospace)}.mfa-settings .method-item,.mfa-settings .mfa-heading{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:space-between}.mfa-settings .warning{color:orange;color:var(--cOrange,orange)}.mfa-settings .setup-otp{display:flex;flex-wrap:wrap;justify-content:center}.mfa-settings .setup-otp .qr-code{flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{margin-top:5px;width:15em} -/*! - * Cropper.js v1.5.13 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2022-11-20T05:30:43.444Z - */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}.profile-tab .bio{margin:0}.profile-tab .visibility-tray{padding-top:5px}.profile-tab input[type=file]{height:auto;padding:5px}.profile-tab .banner-background-preview{max-width:100%;position:relative;width:300px}.profile-tab .banner-background-preview img{width:100%}.profile-tab .uploading{font-size:1.5em;margin:.25em}.profile-tab .name-changer{width:100%}.profile-tab .current-avatar-container{height:150px;position:relative;width:150px}.profile-tab .current-avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);display:block;height:100%;width:100%}.profile-tab .reset-button{background-color:rgba(0,0,0,.6);border-radius:5px;border-radius:var(--tooltipRadius,5px);cursor:pointer;font-size:1.5em;height:1.5em;line-height:1.5em;opacity:.7;position:absolute;right:.2em;text-align:center;top:.2em;width:1.5em}.profile-tab .reset-button:hover{opacity:1}.profile-tab .reset-button svg{color:#fff}.profile-tab .oauth-tokens{width:100%}.profile-tab .oauth-tokens th{text-align:left}.profile-tab .oauth-tokens .actions{text-align:right}.profile-tab-usersearch-wrapper{padding:1em}.profile-tab-bulk-actions{min-height:2em;padding:0 1em;text-align:right}.profile-tab-bulk-actions button{width:10em}.profile-tab-domain-mute-form{display:flex;flex-direction:column;padding:1em}.profile-tab-domain-mute-form button{align-self:flex-end;margin-top:1em;width:10em}.profile-tab .setting-subitem{margin-left:1.75em}.profile-tab .profile-fields{display:flex}.profile-tab .profile-fields>.emoji-input{flex:1 1 auto;margin:0 .2em .5em;min-width:0}.profile-tab .profile-fields .delete-field{align-self:center;margin:0 .2em .5em;padding:0 .5em;width:20px}.profile-tab .birthday-input{display:block;margin-bottom:1em}.SizeSetting .number-input{max-width:6.5em}.SizeSetting .css-unit-input,.SizeSetting .css-unit-input select{margin-left:.5em;max-width:4em;min-width:4em;width:4em}.column-settings{display:flex;flex-wrap:wrap;justify-content:space-evenly}.column-settings .size-label{display:block;margin-bottom:.5em;margin-top:.5em}.color-input{display:inline-flex}.color-input-field.input{align-items:stretch;display:inline-flex;flex:0 0 0;max-width:9em;padding:.2em 8px}.color-input-field.input input{background:none;border:none;color:#b9b9ba;color:var(--inputText,#b9b9ba);margin:0;padding:0}.color-input-field.input input.textColor{flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .computedIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input input.nativeColor{align-self:stretch;flex:0 0 2em;min-height:100%;min-width:2em}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{background-color:#000;content:"";display:block;height:50%;position:absolute;width:50%}.color-input-field.input .transparentIndicator:after{left:0;top:0}.color-input-field.input .transparentIndicator:before{bottom:0;right:0}.color-input .label{flex:1 1 auto}.color-control input.text-input{flex:1;max-width:7em}.shadow-control{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{display:flex;flex:0;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{min-width:2em;width:5em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:flex;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{height:2em;margin:0;width:15em}.shadow-control .shadow-preview-container .y-shift-control{align-items:flex-end;flex-direction:column}.shadow-control .shadow-preview-container .y-shift-control .wrap{height:15em;width:2em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform:rotate(90deg);transform-origin:1em 1em}.shadow-control .shadow-preview-container .preview-window{align-items:center;background-color:#999;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;flex:1;justify-content:center}.shadow-control .shadow-preview-container .preview-window .preview-block{background-color:#121a24;background-color:var(--bg,#121a24);border-radius:10px;border-radius:var(--panelRadius,10px);height:33%;width:33%}.shadow-control .shadow-tweak{flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{align-items:stretch}.shadow-control .shadow-tweak .id-control .shadow-switcher{flex:1}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .shadow-switcher{margin-right:5px;min-width:1px}.shadow-control .shadow-tweak .id-control .btn{margin:0 .1em;padding:0 .4em}.font-control input.custom-font{min-width:10em}.font-control.custom .font-switcher{border-bottom-right-radius:0;border-top-right-radius:0}.font-control.custom .custom-font{border-bottom-left-radius:0;border-top-left-radius:0}.contrast-ratio{display:flex;justify-content:flex-end;margin-bottom:5px;margin-top:-4px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;margin-left:.5em;text-align:center}.preview-container{position:relative}.underlay-preview{bottom:0;left:10px;position:absolute;right:10px;top:0}.theme-tab{padding-bottom:2em}.theme-tab .preset-switcher{margin-right:1em}.theme-tab .btn{margin-left:.25em;margin-right:.25em}.theme-tab .style-control{align-items:baseline;display:flex;margin-bottom:5px}.theme-tab .style-control .label{flex:1}.theme-tab .style-control .opt{margin:.5em}.theme-tab .style-control .color-input{flex:0 0 0}.theme-tab .style-control input,.theme-tab .style-control select{flex:0;margin:0;min-width:3em}.theme-tab .style-control input[type=number],.theme-tab .style-control select[type=number]{min-width:5em}.theme-tab .style-control input[type=range],.theme-tab .style-control select[type=range]{align-self:flex-start;flex:1;min-width:3em}.theme-tab .style-control.disabled input,.theme-tab .style-control.disabled select{opacity:.5}.theme-tab .reset-container{flex-wrap:wrap}.theme-tab .apply-container,.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .radius-container,.theme-tab .reset-container{display:flex}.theme-tab .fonts-container,.theme-tab .radius-container{flex-direction:column}.theme-tab .color-container{flex-wrap:wrap;justify-content:space-between}.theme-tab .color-container>h4{width:99%}.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .presets-container,.theme-tab .radius-container,.theme-tab .shadow-container{margin:1em 1em 0}.theme-tab .tab-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:1em;min-height:30px;width:100%}.theme-tab .tab-header p{flex:1;margin:0 .5em 0 0}.theme-tab .tab-header-buttons{display:flex;flex-direction:column}.theme-tab .tab-header-buttons .btn{flex:0 auto;margin-bottom:.5em;min-width:1px;padding:0 1em}.theme-tab .shadow-selector .override{flex:1;margin-left:.5em}.theme-tab .shadow-selector .select-container{margin-bottom:-3px;margin-top:-4px}.theme-tab .save-load,.theme-tab .save-load-options{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:center}.theme-tab .save-load .import-export,.theme-tab .save-load .presets,.theme-tab .save-load-options .import-export,.theme-tab .save-load-options .presets{margin-bottom:.5em}.theme-tab .save-load .import-export,.theme-tab .save-load-options .import-export{display:flex}.theme-tab .save-load .override,.theme-tab .save-load-options .override{margin-left:.5em}.theme-tab .save-load-options{flex-wrap:wrap;justify-content:center;margin-top:.5em}.theme-tab .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.theme-tab .preview-container{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50% 50%;background-size:cover;border-bottom:1px dashed #222;border-color:#222 currentcolor;border-top:1px dashed #222;border-color:var(--border,#222);margin:1em 0;padding:1em}.theme-tab .preview-container .dummy .post{display:flex;font-family:var(--postFont)}.theme-tab .preview-container .dummy .post .content{flex:1}.theme-tab .preview-container .dummy .post .content h4{margin-bottom:.25em}.theme-tab .preview-container .dummy .post .content .icons{display:flex;margin-top:.5em}.theme-tab .preview-container .dummy .post .content .icons i{margin-right:1em}.theme-tab .preview-container .dummy .after-post{align-items:center;display:flex;margin-top:1em}.theme-tab .preview-container .dummy .avatar,.theme-tab .preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;margin-right:1em;text-align:center}.theme-tab .preview-container .dummy .avatar-alt{border-radius:10px;border-radius:var(--avatarAltRadius,10px);flex:0 auto;font-size:12px;line-height:20px;margin-left:28px;min-height:20px;min-width:20px}.theme-tab .preview-container .dummy .avatar{flex:0 auto;font-size:14px;height:48px;line-height:48px;width:48px}.theme-tab .preview-container .dummy .actions{align-items:baseline;display:flex}.theme-tab .preview-container .dummy .actions .checkbox{align-items:baseline;display:inline-flex;flex:1;margin-right:1em}.theme-tab .preview-container .dummy .separator{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);margin:1em}.theme-tab .preview-container .dummy .btn{min-width:3em}.theme-tab .radius-item{flex-basis:auto}.theme-tab .color-item,.theme-tab .radius-item{display:flex;flex:1 1 0;flex-direction:column;margin:5px 6px 0 0;min-width:20em}.theme-tab .color-item.wide,.theme-tab .radius-item.wide{min-width:60%}.theme-tab .color-item:not(.wide):nth-child(odd),.theme-tab .radius-item:not(.wide):nth-child(odd){margin-right:7px}.theme-tab .color-item .color,.theme-tab .color-item .opacity,.theme-tab .radius-item .color,.theme-tab .radius-item .opacity{align-items:baseline;display:flex}.theme-tab .theme-color-cl,.theme-tab .theme-radius-rn{align-self:stretch;background:transparent;border:0;box-shadow:none;color:var(--faint,hsla(240,1%,73%,.5))}.theme-tab .theme-color-cl,.theme-tab .theme-color-in,.theme-tab .theme-radius-in{margin-left:4px}.theme-tab .theme-radius-in{flex:1;max-width:7em;min-width:1em}.theme-tab .theme-radius-lb{max-width:50em}.theme-tab .theme-preview-content{padding:20px}.theme-tab .theme-warning{align-items:baseline;display:flex;margin-bottom:.5em}.theme-tab .theme-warning .buttons .btn{margin-bottom:.5em}.extra-content .apply-container{display:flex;flex-direction:row;flex-grow:1;justify-content:space-around}.extra-content .apply-container .btn{flex-grow:1;max-width:10em;min-height:2em;min-width:0;padding:0}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red} -/*# sourceMappingURL=7962.76663e78ad5ea0bb0b90.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css.map b/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css.map deleted file mode 100644 index 9d501f27a..000000000 --- a/priv/static/static/css/7962.76663e78ad5ea0bb0b90.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/7962.76663e78ad5ea0bb0b90.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.scss","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.css","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.scss","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_user_content.scss"],"sourcesContent":["\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n","\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n","\n@import \"../../variables\";\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n","\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n","\n@import \"../../variables\";\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n",".with-subscription {\n &-loading {\n padding: 10px;\n text-align: center;\n\n .error {\n font-size: 1rem;\n }\n }\n}\n",".mutes-and-blocks-tab {\n height: 100%;\n\n .usersearch-wrapper {\n padding: 1em;\n }\n\n .bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n }\n\n .bulk-action-button {\n width: 10em;\n }\n\n .domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n }\n\n .domain-mute-button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n}\n","\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n@import \"../../../../variables\";\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n","\n@import \"../../../../variables\";\n\n.mfa-settings {\n .mfa-heading,\n .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0; }\n\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n }\n }\n}\n","/*!\n * Cropper.js v1.5.13\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2022-11-20T05:30:43.444Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n }\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 75%);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n }\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n }\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n .cropper-center::after {\n background-color: #eee;\n content: \" \";\n display: block;\n position: absolute;\n }\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n }\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n }\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n }\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n }\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n }\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n }\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n }\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n }\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n }\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n }\n\n@media (min-width: 768px) {\n\n.cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n }\n\n@media (min-width: 992px) {\n\n.cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n }\n\n@media (min-width: 1200px) {\n\n.cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n }\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: \" \";\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n }\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC\");\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n","\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n","@import \"../../../variables\";\n\n.profile-tab {\n .bio {\n margin: 0;\n }\n\n .visibility-tray {\n padding-top: 5px;\n }\n\n input[type=\"file\"] {\n padding: 5px;\n height: auto;\n }\n\n .banner-background-preview {\n max-width: 100%;\n width: 300px;\n position: relative;\n\n img {\n width: 100%;\n }\n }\n\n .uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n\n .name-changer {\n width: 100%;\n }\n\n .current-avatar-container {\n position: relative;\n width: 150px;\n height: 150px;\n }\n\n .current-avatar {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n }\n\n .reset-button {\n position: absolute;\n top: 0.2em;\n right: 0.2em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n background-color: rgb(0 0 0 / 60%);\n opacity: 0.7;\n width: 1.5em;\n height: 1.5em;\n text-align: center;\n line-height: 1.5em;\n font-size: 1.5em;\n cursor: pointer;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n color: white;\n }\n }\n\n .oauth-tokens {\n width: 100%;\n\n th {\n text-align: left;\n }\n\n .actions {\n text-align: right;\n }\n }\n\n &-usersearch-wrapper {\n padding: 1em;\n }\n\n &-bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n\n button {\n width: 10em;\n }\n }\n\n &-domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n\n button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n }\n\n .setting-subitem {\n margin-left: 1.75em;\n }\n\n .profile-fields {\n display: flex;\n\n & > .emoji-input {\n flex: 1 1 auto;\n margin: 0 0.2em 0.5em;\n min-width: 0;\n }\n\n .delete-field {\n width: 20px;\n align-self: center;\n margin: 0 0.2em 0.5em;\n padding: 0 0.5em;\n }\n }\n\n .birthday-input {\n display: block;\n margin-bottom: 1em;\n }\n}\n","\n.SizeSetting {\n .number-input {\n max-width: 6.5em;\n }\n\n .css-unit-input,\n .css-unit-input select {\n margin-left: 0.5em;\n width: 4em;\n max-width: 4em;\n min-width: 4em;\n }\n}\n\n","\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n","@import \"../../variables\";\n\n.color-input {\n display: inline-flex;\n\n &-field.input {\n display: inline-flex;\n flex: 0 0 0;\n max-width: 9em;\n align-items: stretch;\n padding: 0.2em 8px;\n\n input {\n background: none;\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n border: none;\n padding: 0;\n margin: 0;\n\n &.textColor {\n flex: 1 0 3em;\n min-width: 3em;\n padding: 0;\n }\n\n &.nativeColor {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n }\n\n .computedIndicator,\n .transparentIndicator {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n\n .transparentIndicator {\n // forgot to install counter-strike source, ooops\n background-color: #f0f;\n position: relative;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n background-color: #000;\n position: absolute;\n height: 50%;\n width: 50%;\n }\n\n &::after {\n top: 0;\n left: 0;\n }\n\n &::before {\n bottom: 0;\n right: 0;\n }\n }\n }\n\n .label {\n flex: 1 1 auto;\n }\n}\n","\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n","\n@import \"../../variables\";\n\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=\"number\"] {\n width: 5em;\n min-width: 2em;\n }\n\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=\"disabled\"] * {\n opacity: 0.5;\n }\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=\"range\"] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n\n .wrap {\n width: 2em;\n height: $side;\n }\n\n input[type=\"range\"] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n\n .preview-window {\n flex: 1;\n background-color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666 25%, transparent 25%),\n linear-gradient(-45deg, #666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666 75%),\n linear-gradient(-45deg, transparent 75%, #666 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher,\n .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 0.4em;\n margin: 0 0.1em;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n","\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n","\n.preview-container {\n position: relative;\n}\n\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n","@import \"src/variables\";\n\n.theme-tab {\n padding-bottom: 2em;\n\n .preset-switcher {\n margin-right: 1em;\n }\n\n .btn {\n margin-left: 0.25em;\n margin-right: 0.25em;\n }\n\n .style-control {\n display: flex;\n align-items: baseline;\n margin-bottom: 5px;\n\n .label {\n flex: 1;\n }\n\n .opt {\n margin: 0.5em;\n }\n\n .color-input {\n flex: 0 0 0;\n }\n\n input,\n select {\n min-width: 3em;\n margin: 0;\n flex: 0;\n\n &[type=\"number\"] {\n min-width: 5em;\n }\n\n &[type=\"range\"] {\n flex: 1;\n min-width: 3em;\n align-self: flex-start;\n }\n }\n\n &.disabled {\n input,\n select {\n opacity: 0.5;\n }\n }\n }\n\n .reset-container {\n flex-wrap: wrap;\n }\n\n .fonts-container,\n .reset-container,\n .apply-container,\n .radius-container,\n .color-container, {\n display: flex;\n }\n\n .fonts-container,\n .radius-container {\n flex-direction: column;\n }\n\n .color-container {\n > h4 {\n width: 99%;\n }\n\n flex-wrap: wrap;\n justify-content: space-between;\n }\n\n .fonts-container,\n .color-container,\n .shadow-container,\n .radius-container,\n .presets-container {\n margin: 1em 1em 0;\n }\n\n .tab-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n min-height: 30px;\n margin-bottom: 1em;\n\n p {\n flex: 1;\n margin: 0;\n margin-right: 0.5em;\n }\n }\n\n .tab-header-buttons {\n display: flex;\n flex-direction: column;\n\n .btn {\n min-width: 1px;\n flex: 0 auto;\n padding: 0 1em;\n margin-bottom: 0.5em;\n }\n }\n\n .shadow-selector {\n .override {\n flex: 1;\n margin-left: 0.5em;\n }\n\n .select-container {\n margin-top: -4px;\n margin-bottom: -3px;\n }\n }\n\n .save-load,\n .save-load-options {\n display: flex;\n justify-content: center;\n align-items: baseline;\n flex-wrap: wrap;\n\n .presets,\n .import-export {\n margin-bottom: 0.5em;\n }\n\n .import-export {\n display: flex;\n }\n\n .override {\n margin-left: 0.5em;\n }\n }\n\n .save-load-options {\n flex-wrap: wrap;\n margin-top: 0.5em;\n justify-content: center;\n\n .keep-option {\n margin: 0 0.5em 0.5em;\n min-width: 25%;\n }\n }\n\n .preview-container {\n border-top: 1px dashed;\n border-bottom: 1px dashed;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n margin: 1em 0;\n padding: 1em;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-size: cover;\n background-position: 50% 50%;\n\n .dummy {\n .post {\n font-family: var(--postFont);\n display: flex;\n\n .content {\n flex: 1;\n\n h4 {\n margin-bottom: 0.25em;\n }\n\n .icons {\n margin-top: 0.5em;\n display: flex;\n\n i {\n margin-right: 1em;\n }\n }\n }\n }\n\n .after-post {\n margin-top: 1em;\n display: flex;\n align-items: center;\n }\n\n .avatar,\n .avatar-alt {\n background:\n linear-gradient(\n 135deg,\n #b8e1fc 0%,\n #a9d2f3 10%,\n #90bae4 25%,\n #90bcea 37%,\n #90bff0 50%,\n #6ba8e5 51%,\n #a2daf5 83%,\n #bdf3fd 100%\n );\n color: black;\n font-family: sans-serif;\n text-align: center;\n margin-right: 1em;\n }\n\n .avatar-alt {\n flex: 0 auto;\n margin-left: 28px;\n font-size: 12px;\n min-width: 20px;\n min-height: 20px;\n line-height: 20px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n flex: 0 auto;\n width: 48px;\n height: 48px;\n font-size: 14px;\n line-height: 48px;\n }\n\n .actions {\n display: flex;\n align-items: baseline;\n\n .checkbox {\n display: inline-flex;\n align-items: baseline;\n margin-right: 1em;\n flex: 1;\n }\n }\n\n .separator {\n margin: 1em;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .btn {\n min-width: 3em;\n }\n }\n }\n\n .radius-item {\n flex-basis: auto;\n }\n\n .radius-item,\n .color-item {\n min-width: 20em;\n margin: 5px 6px 0 0;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n\n &.wide {\n min-width: 60%;\n }\n\n &:not(.wide):nth-child(2n+1) {\n margin-right: 7px;\n }\n\n .color,\n .opacity {\n display: flex;\n align-items: baseline;\n }\n }\n\n .theme-radius-rn,\n .theme-color-cl {\n border: 0;\n box-shadow: none;\n background: transparent;\n color: var(--faint, $fallback--faint);\n align-self: stretch;\n }\n\n .theme-color-cl,\n .theme-radius-in,\n .theme-color-in {\n margin-left: 4px;\n }\n\n .theme-radius-in {\n min-width: 1em;\n max-width: 7em;\n flex: 1;\n }\n\n .theme-radius-lb {\n max-width: 50em;\n }\n\n .theme-preview-content {\n padding: 20px;\n }\n\n .theme-warning {\n display: flex;\n align-items: baseline;\n margin-bottom: 0.5em;\n\n .buttons {\n .btn {\n margin-bottom: 0.5em;\n }\n }\n }\n}\n\n.extra-content {\n .apply-container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n flex-grow: 1;\n\n /* stylelint-disable-next-line no-descending-specificity */\n .btn {\n flex-grow: 1;\n min-height: 2em;\n min-width: 0;\n max-width: 10em;\n padding: 0;\n }\n }\n}\n","@import \"src/variables\";\n\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css deleted file mode 100644 index b89695d29..000000000 --- a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css +++ /dev/null @@ -1,2 +0,0 @@ -.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.AttachmentSetting .attachment{display:block;height:15em;margin-bottom:.5em;width:100%}.AttachmentSetting .attachment-input{display:flex;flex-direction:column;margin-left:1em;width:20em}.AttachmentSetting.-compact .attachment-input{align-items:flex-end;flex-direction:row}.AttachmentSetting.-compact .attachment{align-self:center;display:block;flex:0;height:4em;margin-bottom:0;min-width:4em;order:0}.AttachmentSetting.-compact .control-field{margin-left:.5em;min-width:12em;order:1}.AttachmentSetting.-compact .control-upload{min-width:12em;order:2;padding:0 .5em}.AttachmentSetting .controls{margin-bottom:.5em}.AttachmentSetting .controls button,.AttachmentSetting .controls input{width:100%}.frontends-tab .cards-list{padding:0}.frontends-tab .relative{position:relative}.frontends-tab .overlay{background:var(--bg);bottom:0;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:2}.frontends-tab dd{word-wrap:nowrap;max-width:10em;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red} -/*# sourceMappingURL=8859.d26a3b0841a7beb8fd4a.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map deleted file mode 100644 index c0ebb3d85..000000000 --- a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/8859.d26a3b0841a7beb8fd4a.css","mappings":"AACA,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,yBACE,qBACA,kBAGF,wBACE,gBACA,eACA,kBCRF,cACE,qBACA,kBAEA,8BACE,iBAIJ,eACE,gBACA,eACA,kBCXA,+BACE,cAEA,YACA,mBAFA,UAEA,CAGF,qCAEE,aACA,sBAFA,gBAGA,WAIA,8CAEE,qBADA,kBACA,CAGF,wCAME,kBAHA,cAFA,OAIA,WAEA,eAAc,CAHd,cAFA,OAKA,CAGF,2CAGE,iBADA,eADA,OAEA,CAGF,4CAEE,eADA,QAEA,eAIJ,6BACE,mBAEA,uEAEE,WCjDJ,2BACE,UAGF,yBACE,kBAGF,wBAEE,qBAKA,SACA,OAHA,WAJA,kBAQA,OAAM,CAHN,MAFA,SAKA,CAGF,kBAEE,iBAGA,eADA,kBAHA,uBAEA,kBAEA,CCxBJ,uBACE,YAEA,qCACE,0CACA,qBACA,qBAEA,oFAEE,cACA,mBAEA,0GACE,gBAIJ,sDACE,aAEA,mEACE,SACA,kBAIJ,gDACE,mBAEA,kBADA,gBACA,CAGF,4CACE,eAGF,8CAGE,aADA,eADA,UAEA,CAGF,wGAEE,sBACA,SCnCW","sources":["webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.scss","webpack://pleroma_fe/./src/_variables.scss"],"sourcesContent":["\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n &.-compact {\n .attachment-input {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .attachment {\n flex: 0;\n order: 0;\n display: block;\n min-width: 4em;\n height: 4em;\n align-self: center;\n margin-bottom: 0;\n }\n\n .control-field {\n order: 1;\n min-width: 12em;\n margin-left: 0.5em;\n }\n\n .control-upload {\n order: 2;\n min-width: 12em;\n padding: 0 0.5em;\n }\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n",".frontends-tab {\n .cards-list {\n padding: 0;\n }\n\n .relative {\n position: relative;\n }\n\n .overlay {\n position: absolute;\n background: var(--bg);\n // fix buttons showing through\n z-index: 2;\n opacity: 0.9;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n dd {\n text-overflow: ellipsis;\n word-wrap: nowrap;\n white-space: nowrap;\n overflow-x: hidden;\n max-width: 10em;\n }\n}\n","@import \"src/variables\";\n\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/app.75b043cffb8e922bc29e.css b/priv/static/static/css/app.75b043cffb8e922bc29e.css new file mode 100644 index 000000000..a8df04ea3 --- /dev/null +++ b/priv/static/static/css/app.75b043cffb8e922bc29e.css @@ -0,0 +1,2 @@ +.modal-view{align-items:center;animation-duration:.2s;animation-name:modal-background-fadein;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:auto;pointer-events:none;position:fixed;right:0;top:0;z-index:var(--ZI_modals)}.modal-view>*{pointer-events:auto}.modal-view.modal-background{background-color:rgba(0,0,0,.5);pointer-events:auto}.modal-view.open{opacity:1}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1;flex:1;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{left:0;position:absolute;top:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{background-color:transparent;border:none;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.login-form{display:flex;flex-direction:column;padding:.6em}.login-form .btn{min-height:2em;width:10em}.login-form .register{flex:1 1}.login-form .login-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:1em}.login-form .form-group{display:flex;flex-direction:column;line-height:24px;padding:.3em .5em .6em}.login-form .form-bottom{display:flex;height:32px;padding:.5em}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.login-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.media-upload .hidden-input-file{display:none}label.media-upload{cursor:pointer}.ScopeSelector .scope{cursor:pointer;display:inline-block;min-height:1.3em;min-width:1.3em;text-align:center}.checkbox{display:inline-block;min-height:1.2em;position:relative}.checkbox>.checkbox-indicator{box-shadow:none;display:inline;line-height:inherit;margin:0;padding:0 0 0 1.2em;position:relative}.checkbox-indicator:before{background-color:var(--background);border-radius:var(--roundness);box-shadow:var(--shadow);box-sizing:border-box;color:transparent;content:"✓";display:block;font-size:1.1em;height:1.1em;line-height:1.1em;overflow:hidden;position:absolute;right:0;text-align:center;top:0;transition:color .2s;vertical-align:top;width:1.1em}.checkbox.disabled .checkbox-indicator:before,.checkbox.disabled .label{opacity:.5}.checkbox input[type=checkbox]:checked+.checkbox-indicator:before,.checkbox.disabled .label{color:var(--text)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{color:var(--text);content:"–"}.checkbox.indeterminate-fix input[type=checkbox]+.checkbox-indicator:before{content:"–"}.checkbox>span{margin-left:.5em}.popover-trigger-button{display:inline-block}.popover{box-shadow:var(--shadow);max-width:calc(100vw - 20px);min-width:0;position:fixed;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.popover-default{background-color:var(--background);border-color:var(--border);border-radius:var(--roundness);border-style:solid;border-width:1px}.popover-default:after{bottom:-1px;box-shadow:var(--shadow);content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:-1px}.dropdown-menu{background-color:var(--background);display:block;font-size:1em;list-style:none;max-width:100vw;padding:0;text-align:left;white-space:nowrap;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.dropdown-menu .dropdown-divider{border-top:1px solid var(--border);height:0;margin:.5rem 0;overflow:hidden}.dropdown-menu .dropdown-item{border:none}.dropdown-menu .dropdown-item-icon svg{margin-right:var(--__horizontal-gap);width:var(--__line-height)}.dropdown-menu .dropdown-item.-has-submenu .chevron-icon{margin-left:2rem;margin-right:.25rem}.dropdown-menu .dropdown-item .menu-checkbox{border-radius:0;box-shadow:var(--shadow);display:inline-block;line-height:var(--__line-height);margin-right:var(--__horizontal-gap);max-height:calc(var(--__line-height) + 1px);max-width:calc(var(--__line-height) + 1px);min-height:calc(var(--__line-height) + 1px);min-width:calc(var(--__line-height) + 1px);text-align:center;vertical-align:middle}.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked:after{content:"✓";font-size:1.25em}.dropdown-menu .dropdown-item .menu-checkbox.-radio{border-radius:9999px}.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked:after{content:"•";font-size:2em}.still-image{align-items:center;display:inline-flex;line-height:0;overflow:hidden;position:relative}.still-image canvas{bottom:0;left:0;position:absolute;right:0;top:0;visibility:var(--_still-image-canvas-visibility,visible)}.still-image canvas,.still-image img{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.still-image.animated:before{zoom:var(--_still_image-label-scale,1);background:hsla(0,0%,50%,.5);border-radius:var(--roundness);color:#fff;content:"gif";display:block;font-size:.7em;left:.5em;line-height:1;padding:2px 4px;position:absolute;top:.5em;visibility:var(--_still-image-label-visibility,visible);z-index:2}.still-image.animated:hover canvas{display:none}.still-image.animated:hover:before{visibility:var(--_still-image-label-visibility,hidden)}.still-image.animated img{visibility:var(--_still-image-img-visibility,hidden)}.still-image.animated:hover img{visibility:visible}.emoji-picker{--__emoji-picker-header:2.2em;display:flex;flex-direction:column;max-width:calc(100vw - 20px);width:25em}.emoji-picker-header-image{align-items:center;display:inline-flex;justify-content:center}.emoji-picker-header-image,.emoji-picker-header-image .still-image{height:var(--__emoji-picker-header);max-height:var(--__emoji-picker-header);max-width:var(--__emoji-picker-header);width:var(--__emoji-picker-header)}.emoji-picker-header-image .still-image{--_still_image-label-scale:0.5;-o-object-fit:contain;object-fit:contain}.emoji-picker .hide-custom-emoji,.emoji-picker .keep-open,.emoji-picker .too-many-emoji{line-height:normal;padding:.5em}.emoji-picker .hide-custom-emoji{padding-top:0}.emoji-picker .too-many-emoji{display:flex;flex-direction:column}.emoji-picker .keep-open-label{display:flex;padding:0 .5em}.emoji-picker .heading{display:flex;padding:.7em .5em 0}.emoji-picker .content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-tabs{display:flex;flex-flow:row nowrap;flex-grow:1;overflow-x:auto;overflow-y:hidden}.emoji-picker .additional-tabs{border-left:1px solid;border-left-color:var(--border);display:flex;flex:0 0 auto;padding-left:.5em}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{align-content:center;display:flex;flex-basis:auto;scrollbar-width:thin}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{align-items:center;cursor:pointer;display:flex;height:var(--__emoji-picker-header);max-height:var(--__emoji-picker-header);max-width:var(--__emoji-picker-header);padding:0 .5em;width:var(--__emoji-picker-header)}.emoji-picker .additional-tabs-item .svg-inline--fa,.emoji-picker .emoji-tabs-item .svg-inline--fa{font-size:1.85em}.emoji-picker .additional-tabs-item.disabled,.emoji-picker .emoji-tabs-item.disabled{opacity:.5;pointer-events:none}.emoji-picker .additional-tabs-item.toggled,.emoji-picker .emoji-tabs-item.toggled{border-bottom:.2em solid}.emoji-picker .sticker-picker{flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{flex:0 0 auto;padding:.3em}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{flex:1 1 1px;height:100%;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;min-height:200px;overflow:auto;position:relative;scrollbar-gutter:stable both-edges;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-picker .emoji-groups.scrolled-top{-webkit-mask-size:100% 20px,100% 0,auto;mask-size:100% 20px,100% 0,auto}.emoji-picker .emoji-groups.scrolled-bottom{-webkit-mask-size:100% 0,100% 20px,auto;mask-size:100% 0,100% 20px,auto}.emoji-picker .emoji-group{align-items:center;display:flex;flex-wrap:wrap;justify-content:left}.emoji-picker .emoji-group-title{font-size:.85em;margin:0;padding-left:.3em;width:100%}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:var(--emoji-size);justify-content:center;line-height:var(--emoji-size);margin:.2em;width:var(--emoji-size)}.emoji-picker .emoji-item .emoji-picker-emoji.-custom{--_still_image-label-scale:0.5;height:var(--emoji-size);max-height:var(--emoji-size);max-width:var(--emoji-size);-o-object-fit:contain;object-fit:contain;width:var(--emoji-size)}.emoji-picker .emoji-item .emoji-picker-emoji.-unicode{font-size:1.6em;overflow:hidden}.input.emoji-input{display:flex;flex-direction:column;padding:0;position:relative}.input.emoji-input .emoji-picker-icon{cursor:pointer;font-size:1.3em;line-height:24px;margin:.2em .25em;position:absolute;right:0;top:0}.input.emoji-input .emoji-picker-icon:hover i{color:var(--text)}.input.emoji-input .emoji-picker-panel{margin-top:2px;position:absolute;z-index:20}.input.emoji-input .emoji-picker-panel.hide{display:none}.input.emoji-input input,.input.emoji-input textarea{background:none!important;border:none;box-shadow:none;color:inherit;flex:1 0 auto;outline:none}.input.emoji-input.with-picker input{padding-right:30px}.input.emoji-input .hidden-overlay{bottom:0;color:red;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.input.emoji-input .hidden-overlay .caret{border:1px solid red;margin-right:calc(-1ch - 1px);width:0}.autocomplete-panel{position:absolute}.autocomplete-item.menu-item{display:flex;padding-bottom:0;padding-top:0}.autocomplete-item.menu-item .image{line-height:var(--__line-height);margin-right:var(--__horizontal-gap);text-align:center}.autocomplete-item.menu-item .image,.autocomplete-item.menu-item .image img{height:calc(var(--__line-height) + var(--__vertical-gap)*2);width:calc(var(--__line-height) + var(--__vertical-gap)*2)}.autocomplete-item.menu-item .image img{-o-object-fit:contain;object-fit:contain}.autocomplete-item.menu-item .image span{font-size:var(--__line-height);line-height:var(--__line-height)}.autocomplete-item.menu-item .label{display:flex;flex-direction:column;justify-content:center;margin:0 .1em 0 .2em}.autocomplete-item.menu-item .label .displayText{line-height:1.5}.autocomplete-item.menu-item .label .detailText{font-size:9px;line-height:9px}label.Select{padding:0}label.Select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:1em;height:2em;line-height:16px;margin:0;padding:0 2em 0 .2em;width:100%;z-index:1}label.Select .select-down-icon{bottom:0;font-family:var(--font);height:100%;line-height:2;pointer-events:none;position:absolute;right:5px;top:0;width:.875em;z-index:0}.poll-form{display:flex;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{align-self:flex-start;padding-left:.1em;padding-top:.25em}.poll-form .poll-option{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.25em}.poll-form .input-container{width:100%}.poll-form .input-container input{padding-right:2.5em;width:100%}.poll-form .delete-option{margin-left:-1.5em;width:1.5em;z-index:1}.poll-form .poll-type-expiry{display:flex;margin-top:.5em;width:100%}.poll-form .poll-type{flex:1 1 60%;margin-right:.75em}.poll-form .poll-type .poll-type-select{padding-right:.75em}.poll-form .poll-expiry{display:flex}.poll-form .poll-expiry .expiry-amount{text-align:right;width:3em}.Flash{display:inline-block;position:relative}.Flash,.Flash .placeholder,.Flash .player{height:100%;width:100%}.Flash .placeholder{align-items:center;background:var(--bg);color:var(--link);display:flex;justify-content:center}.Flash .hider{top:0}.Flash .label{word-wrap:normal;flex:1 1 0;line-height:1.2;text-align:center;white-space:normal}.Flash .hidden{display:none;visibility:"hidden"}.Attachment{align-self:flex-start;border-color:var(--border);border-radius:var(--roundness);border-style:solid;border-width:1px;display:inline-flex;flex-direction:column;height:100%;line-height:0;position:relative}.Attachment .attachment-wrapper{flex:1 1 auto;height:100%;overflow:hidden;position:relative}.Attachment .description-container{display:flex;flex:0 1 0;padding-top:.5em;z-index:1}.Attachment .description-container p{flex:1;line-height:1.5;margin:0;overflow:hidden;padding:.5em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.Attachment .description-container.-static{background:var(--popover);bottom:0;box-shadow:var(--popupShadow);left:0;padding-top:0;position:absolute;right:0}.Attachment .description-field{flex:1;min-width:0}.Attachment .audio-container,.Attachment .flash-container,.Attachment .image-container,.Attachment .oembed-container,.Attachment .placeholder-container,.Attachment .video-container{display:flex;height:100%;justify-content:center;width:100%}.Attachment .image-container .image{height:100%;width:100%}.Attachment .flash-container .flash,.Attachment .flash-container video,.Attachment .video-container .flash,.Attachment .video-container video{align-self:center;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.Attachment .video-container{background:transparent;border:none;color:inherit;outline:none}.Attachment .audio-container{align-items:flex-end;display:flex}.Attachment .audio-container audio{height:100%;width:100%}.Attachment .placeholder-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-top:.5em}.Attachment .play-icon{color:hsla(0,0%,100%,.75);font-size:64px;left:calc(50% - 32px);position:absolute;text-shadow:0 0 2px rgba(0,0,0,.4);top:calc(50% - 32px)}.Attachment .play-icon:before{margin:0}.Attachment .attachment-buttons{display:flex;margin-right:.5em;margin-top:.5em;position:absolute;right:0;top:0;z-index:1}.Attachment .attachment-buttons .attachment-button{border-radius:var(--roundness);font-size:1.25em;height:2em;margin-left:.5em;padding:0;text-align:center;width:2em}.Attachment.-contain-fit canvas,.Attachment.-contain-fit img{-o-object-fit:contain;object-fit:contain}.Attachment.-cover-fit canvas,.Attachment.-cover-fit img{-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container{display:flex;flex:1 0 100%;line-height:1.2em;margin-right:15px;width:100%}.Attachment .oembed-container img{width:100%}.Attachment .oembed-container .image{flex:1}.Attachment .oembed-container .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container .text{flex:2;margin:8px;word-break:break-all}.Attachment .oembed-container .text h1{font-size:1rem;margin:0}.Attachment.-size-small .play-icon{zoom:.5;opacity:.7}.Attachment.-size-small .attachment-buttons{zoom:.7;opacity:.5}.Attachment.-editable{padding:.5em}.Attachment.-editable .attachment-buttons,.Attachment.-editable .description-container{margin:0}.Attachment.-placeholder{color:var(--link);display:inline-block;height:auto;line-height:1.5;overflow:hidden;white-space:nowrap}.Attachment.-placeholder:not(.-editable){border:none}.Attachment.-placeholder.-editable{align-items:baseline;display:flex;flex-direction:row}.Attachment.-placeholder.-editable .attachment-buttons,.Attachment.-placeholder.-editable .description-container{margin:0;padding:0;position:relative}.Attachment.-placeholder.-editable .description-container{flex:1;padding-left:.5em}.Attachment.-placeholder.-editable .attachment-buttons{align-self:center;order:99}.Attachment.-placeholder a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.Attachment.-placeholder svg{color:inherit}.Attachment.-loading{cursor:progress}.Attachment.-compact .placeholder-container{padding-bottom:.5em}.Gallery .gallery-rows{display:flex;flex-direction:column}.Gallery .gallery-row{flex-grow:1;height:0;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner{align-content:stretch;bottom:0;display:flex;flex-flow:row wrap;left:0;position:absolute;right:0;top:0}.Gallery .gallery-row .gallery-row-inner .gallery-item{box-sizing:border-box;flex-grow:1;height:100%;margin:0 .5em 0 0;min-width:2em}.Gallery .gallery-row .gallery-row-inner .gallery-item:last-child{margin:0}.Gallery .gallery-row .gallery-row-inner.-grid{grid-gap:.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));height:auto;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner.-grid .gallery-item{height:200px;margin:0}.Gallery .gallery-row.-grid,.Gallery .gallery-row.-minimal{height:auto}.Gallery .gallery-row.-grid .gallery-row-inner,.Gallery .gallery-row.-minimal .gallery-row-inner{position:relative}.Gallery .gallery-row:not(:first-child){margin-top:.5em}.Gallery.-long .gallery-rows{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;max-height:25em;overflow:hidden}.Gallery .many-attachments-text{line-height:2;text-align:center}.Gallery .many-attachments-buttons{display:flex}.Gallery .many-attachments-button{display:flex;flex:1;justify-content:center;line-height:2}.Gallery .many-attachments-button button{padding:0 2em}.Avatar{--_avatarShadowBox:var(--shadow);--_avatarShadowFilter:var(--shadowFilter);--_avatarShadowInset:var(--shadowInset);--_still-image-label-visibility:hidden;display:inline-block;height:48px;position:relative;width:48px}.Avatar.-compact{border-radius:var(--roundness);height:32px;width:32px}.Avatar .avatar{border-radius:var(--roundness);box-shadow:var(--_avatarShadowBox);height:100%;width:100%}.Avatar .avatar.-better-shadow{box-shadow:var(--_avatarShadowInset);filter:var(--_avatarShadowFilter)}.Avatar .avatar.-animated:before{display:none}.Avatar .avatar.-compact{border-radius:var(--roundness)}.Avatar .avatar.-placeholder{background-color:var(--background)}.Avatar img{height:100%;width:100%}.Avatar .actor-type-indicator{background:hsla(0,0%,50%,.5);border-radius:var(--roundness);bottom:0;color:#fff;margin:-.2em;padding:.2em;position:absolute;right:0}.MentionLink{display:inline;position:relative;white-space:normal;word-break:normal}.MentionLink .new,.MentionLink .original{border-radius:2px;display:inline}.MentionLink .mention-avatar{border-radius:var(--roundness);height:1.5em;margin-right:.2em;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1.5em}.MentionLink .full{word-wrap:normal;display:inline-block;height:100%;left:0;margin-top:.25em;opacity:0;padding:.5em;pointer-events:none;position:absolute;top:100%;transition:opacity .2s ease;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:nowrap;z-index:1}.MentionLink .short.-with-tooltip,.MentionLink .you{-webkit-user-select:none;-moz-user-select:none;user-select:none}.MentionLink .full,.MentionLink .short{white-space:nowrap}.MentionLink .shortName{white-space:normal}.MentionLink .new.-you .shortName{font-weight:600}.MentionLink .new.-has-selection{--color:var(--selectionText);--link:var(--selectionText);background-color:var(--selectionBackground)}.MentionLink .new .at{color:var(--link);display:inline-block;line-height:1;margin:0;opacity:.8;padding:0 .1em;vertical-align:-25%}.MentionLink .new.-striped .shortName{background-image:repeating-linear-gradient(135deg,var(--____highlight-tintColor),var(--____highlight-tintColor) 5px,var(--____highlight-tintColor2) 5px,var(--____highlight-tintColor2) 10px)}.MentionLink .new.-solid .shortName{background-image:linear-gradient(var(--____highlight-tintColor2),var(--____highlight-tintColor2))}.MentionLink .new.-side .shortName{box-shadow:0 -5px 3px -4px inset var(--____highlight-solidColor)}.MentionLink .serverName.-faded{color:var(--linkFaint)}.mention-link-popover{max-height:20rem;max-width:70ch;overflow:hidden}.MentionsLine{word-break:break-all}.MentionsLine .mention-link:not(:first-child):before{content:" "}.MentionsLine .showMoreLess{color:var(--link);margin-left:.5em;white-space:normal}.HashtagLink{color:var(--link);display:inline-block;position:relative;white-space:normal}.RichContent{font-family:var(--font)}.RichContent.-faint{--text:var(--textFaint)!important;--link:var(--linkFaint)!important;--funtextGreentext:var(--funtextGreentextFaint)!important;--funtextCyantext:var(--funtextCyantextFaint)!important}.RichContent blockquote{border-left:.2em solid var(--textFaint);font-style:italic;margin:.2em 0 .2em .2em;padding-left:1em}.RichContent pre{overflow:auto}.RichContent code,.RichContent kbd,.RichContent pre,.RichContent samp,.RichContent var{font-family:var(--monoFont)}.RichContent p{margin:0 0 1em}.RichContent p:last-child{margin:0}.RichContent h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.RichContent h2{font-size:1.1em;margin:1em 0}.RichContent h3{font-size:1em;margin:1.2em 0}.RichContent h4{margin:1.1em 0}.RichContent .emoji,.RichContent .img{display:inline-block}.RichContent .emoji{height:var(--emoji-size,32px);width:var(--emoji-size,32px)}.RichContent .img,.RichContent video{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.RichContent .greentext{color:var(--funtextGreentext)}.RichContent .cyantext{color:var(--funtextCyantext)}a .RichContent{color:var(--link)!important}.poll .votes{display:flex;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .poll-option .input{line-height:inherit}.poll .option-result{color:var(--textLight);display:flex;flex-direction:row;height:100%;position:relative}.poll .option-result-label{align-items:center;display:flex;padding:.1em .25em;word-break:break-word;z-index:1}.poll .result-percentage{flex-shrink:0;width:3.5em}.poll .result-fill{border-radius:var(--roundness);height:100%;left:0;position:absolute;top:0;transition:width .5s}.poll .option-vote{align-items:center;display:flex}.poll input{width:3.5em}.poll .footer{align-items:center;display:flex}.poll.loading *{cursor:progress}.poll .poll-vote-button{margin-right:.5em;padding:0 .5em}.poll .poll-checkbox{display:none}.StatusBody{display:flex;flex-direction:column}.StatusBody .emoji{--_still_image-label-scale:0.5}.StatusBody .attachments{margin-top:.5em}.StatusBody .summary,.StatusBody .text{word-wrap:break-word;line-height:var(--post-line-height);overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.StatusBody .summary{display:block;font-style:italic;padding-bottom:.5em}.StatusBody .text.-single-line{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .summary-wrapper{border-color:var(--border);border-style:solid;border-width:0 0 1px;flex-grow:0;margin-bottom:.5em}.StatusBody .summary-wrapper.-tall{position:relative}.StatusBody .summary-wrapper.-tall .summary{max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .text-wrapper{display:flex;flex-flow:column nowrap}.StatusBody .text-wrapper.-tall-status{height:220px;overflow-x:hidden;overflow-y:hidden;position:relative;z-index:1}.StatusBody .text-wrapper.-tall-status .media-body{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;min-height:0}.StatusBody .cw-status-hider,.StatusBody .status-unhider,.StatusBody .tall-status-hider,.StatusBody .tall-subject-hider{display:inline-block;text-align:center;width:100%;word-break:break-all}.StatusBody .tall-status-hider{height:70px;line-height:110px;margin-top:150px;position:absolute;z-index:2}.StatusBody .tall-subject-hider{padding-bottom:.5em}.StatusBody .cw-status-hider,.StatusBody .status-unhider{word-break:break-all}.StatusBody .cw-status-hider svg,.StatusBody .status-unhider svg{color:inherit}.StatusBody.-compact{--emoji-size:16px;align-items:top;flex-direction:row}.StatusBody.-compact .attachments,.StatusBody.-compact .body{max-height:3.25em}.StatusBody.-compact .body{flex:5 1 auto;mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-repeat:repeat-x,repeat;mask-repeat:repeat-x,repeat;-webkit-mask-size:auto 3.5em,auto auto;mask-size:auto 3.5em,auto auto;min-width:5em;overflow:hidden;white-space:normal}.StatusBody.-compact .attachments{flex:1 1 0;height:100%;margin-left:.5em;margin-top:0;min-width:5em}.StatusBody.-compact .summary-wrapper{border:none;display:inline-block;line-height:inherit;margin:0}.StatusBody.-compact .summary-wrapper .summary:after{content:": "}.StatusBody.-compact .text-wrapper{display:inline-block}.link-preview-card{border-color:var(--border);border-radius:var(--roundness);border-style:solid;border-width:1px;color:var(--text);cursor:pointer;display:flex;flex-direction:row;margin-top:.5em;overflow:hidden}.link-preview-card .card-image{flex-shrink:0;max-width:25%;width:120px}.link-preview-card .card-image img{border-radius:var(--roundness);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.link-preview-card .card-content{display:flex;flex-direction:column;margin:.5em;max-height:100%}.link-preview-card .card-host{font-size:.85em}.link-preview-card .card-description{line-height:1.2em;margin:.5em 0 0;max-height:calc(3.6em - 1px);overflow:hidden;text-overflow:ellipsis;word-break:break-word}.link-preview-card .nsfw-alert{margin:2em 0}.StatusContent{flex:1;min-width:0}.post-status-form{position:relative}.post-status-form .attachments{margin-bottom:.5em}.post-status-form .form-bottom{display:flex;height:2.5em;justify-content:space-between;padding:.5em}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.post-status-form .form-bottom-left{display:flex;flex:1;margin-right:7px;max-width:10em;padding-right:7px}.post-status-form .preview-heading{display:flex;padding-left:.5em}.post-status-form .preview-toggle{cursor:pointer;flex:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.post-status-form .preview-toggle:hover{text-decoration:underline}.post-status-form .preview-toggle i,.post-status-form .preview-toggle svg{font-size:.8em;margin-left:.2em;transform:rotate(90deg)}.post-status-form .preview-container{margin-bottom:1em}.post-status-form .preview-error{color:var(--textFaint);font-style:italic}.post-status-form .preview-status{border:1px solid var(--border);border-radius:var(--roundness);margin:0;padding:.5em}.post-status-form .reply-or-quote-selector{margin-bottom:.5em}.post-status-form .text-format .only-format{color:var(--textFaint)}.post-status-form .visibility-tray{align-items:baseline;display:flex;justify-content:space-between;padding-top:5px}.post-status-form .visibility-notice.edit-warning>:first-child{margin-top:0}.post-status-form .visibility-notice.edit-warning>:last-child{margin-bottom:0}.post-status-form .media-upload-icon{justify-content:left;order:1}.post-status-form .emoji-icon{justify-content:center;order:2}.post-status-form .poll-icon{justify-content:right;order:3}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{align-items:center;display:flex;flex:1;font-size:1.85em;line-height:1.1;padding:0 .1em}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{margin-bottom:.5em;margin-right:.2em;width:18em}.post-status-form .media-upload-wrapper img,.post-status-form .media-upload-wrapper video{max-height:10em;-o-object-fit:contain;object-fit:contain}.post-status-form .media-upload-wrapper .video{max-height:10em}.post-status-form .media-upload-wrapper input{flex:1;width:100%}.post-status-form .status-input-wrapper{display:flex;flex-direction:column;position:relative;width:100%}.post-status-form .btn[disabled]{cursor:not-allowed}.post-status-form form{display:flex;flex-direction:column;margin:.6em;position:relative}.post-status-form .form-group{display:flex;flex-direction:column;line-height:1.85;padding:.25em .5em .5em}.post-status-form .input.form-post-body{background:transparent;box-sizing:content-box;height:calc(var(--post-line-height)*1em);min-height:calc(var(--post-line-height)*1em);overflow:hidden;padding-bottom:calc(var(--_padding) + var(--post-line-height)*1em);resize:none;transition:min-height .2s .1s}.post-status-form .input.form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{bottom:0;margin:0 .5em;padding:0;position:absolute;right:0}.post-status-form .character-counter.error{color:var(--cRed)}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes fade-out{0%{opacity:.6}to{opacity:0}}.post-status-form .drop-indicator{align-items:center;background-color:var(--bg);border:2px dashed var(--text);border-radius:var(--roundness);color:var(--text);display:flex;font-size:5em;height:100%;justify-content:center;opacity:.6;position:absolute;width:100%}.remote-follow{max-width:220px}.remote-follow .remote-button{min-height:2em;width:100%}.dark-overlay:before{background:rgba(27,31,35,.5);bottom:0;content:" ";left:0;right:0;z-index:2000}.dark-overlay:before,.dialog-modal.panel{cursor:default;display:block;position:fixed;top:0}.dialog-modal.panel{left:50%;margin:15vh auto;max-height:80vh;max-width:90vw;transform:translateX(-50%);z-index:2001}.dialog-modal.panel .dialog-modal-heading .title{text-align:center}.dialog-modal.panel .dialog-modal-content{margin:0;padding:1rem;white-space:normal}.dialog-modal.panel .dialog-modal-footer{border-top:1px solid var(--border);display:flex;justify-content:flex-end;margin:0;padding:.5em}.dialog-modal.panel .dialog-modal-footer button{margin-left:.5rem;width:auto}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:flex!important;height:100%}.moderation-tools-button i,.moderation-tools-button svg{font-size:.8em}.AccountActions .ellipsis-button{margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-note{display:flex;flex-direction:column}.user-note .heading{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.75em}.user-note .heading .btn{min-width:95px}.user-note .heading .buttons{display:flex;flex-direction:row;justify-content:right}.user-note .heading .buttons .btn{margin-left:.5em}.user-note .note-text{align-self:stretch}.user-note .note-text.-blank{color:var(--textFaint);font-style:italic}.user-card{position:relative;z-index:1}.user-card:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.user-card .panel-heading{align-items:stretch;background:transparent;box-shadow:none;flex-direction:column;padding:.5em 0;position:relative;text-align:center}.user-card .background-image{background-color:var(--profileBg);background-size:cover;border-bottom-left-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-bottom-right-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-top-left-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);border-top-right-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);bottom:0;left:0;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 60%;mask-size:100% 60%;position:absolute;right:0;top:0;z-index:-2}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card-bio{display:block;line-height:1.3;margin:0;padding:1em;text-align:center}.user-card-bio img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-card.-rounded-t{--__roundnessTop:var(--roundness);--__roundnessBottom:0;border-top-left-radius:var(--roundness);border-top-right-radius:var(--roundness)}.user-card.-popover,.user-card.-rounded{--__roundnessTop:var(--roundness);--__roundnessBottom:var(--roundness);border-radius:var(--roundness)}.user-card.-bordered{border-color:var(--border);border-style:solid;border-width:1px}.user-info{padding:0 26px}.user-info .container{align-items:flex-start;display:flex;max-height:56px;min-width:0;padding:16px 0 6px}.user-info .container>*{min-width:0}.user-info .container>a{display:flex;vertical-align:middle}.user-info .container .Avatar{--_avatarShadowBox:var(--avatarShadow);--_avatarShadowFilter:var(--avatarShadowFilter);--_avatarShadowInset:var(--avatarShadowInset);height:56px;-o-object-fit:cover;object-fit:cover;width:56px}.user-info-avatar{cursor:pointer;position:relative}.user-info-avatar.-overlay{align-items:center;background-color:rgba(0,0,0,.3);border-radius:var(--roundness);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.user-info-avatar.-overlay svg{color:#fff}.user-info-avatar:hover .user-info-avatar.-overlay{opacity:1}.user-info .edit-profile-button,.user-info .external-link-button{cursor:pointer;margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-info .edit-profile-button:not(:hover) .icon,.user-info .external-link-button:not(:hover) .icon{color:var(--lightText)}.user-info .bottom-line{align-items:baseline;font-size:1.1em;font-weight:light}.user-info .bottom-line .lock-icon{margin-left:.5em}.user-info .bottom-line .user-screen-name{color:var(--text);flex:0 1 auto;min-width:1px;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line .dailyAvg{color:var(--text);flex:0 0 auto;font-size:.7em;margin-left:1em;min-width:1px}.user-info .bottom-line .user-role{flex:none}.user-info .user-summary{--emoji-size:1.7em;display:block;flex:1 1 0;line-height:2em;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;z-index:1}.user-info .user-summary .RichContent{--link:var(--text)!important}.user-info .user-summary .bottom-line,.user-info .user-summary .top-line{display:flex}.user-info .user-name{flex:1 1 auto;font-size:1.1em;margin-right:1em;overflow:hidden;text-overflow:ellipsis}.user-info .user-meta{align-items:baseline;display:flex;flex-wrap:wrap;line-height:22px;margin-bottom:.15em}.user-info .user-meta .following{flex:1 0 auto;margin:0 0 .25em;text-align:left}.user-info .user-meta .highlighter{align-self:start;display:flex;flex:0 1 auto;flex-wrap:wrap;margin-right:-.5em}.user-info .user-meta .highlighter .userHighlightCl{flex:1 0 auto;padding:2px 10px}.user-info .user-meta .highlighter .userHighlightSel{flex:1 0 auto;padding-bottom:0;padding-top:0}.user-info .user-meta .highlighter .userHighlightText{flex:1 0 auto;width:70px}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightText{margin-bottom:.25em;margin-right:.5em;vertical-align:top}.user-info .user-interactions{display:flex;flex-flow:row wrap;margin-right:-.75em;position:relative}.user-info .user-interactions>*{margin:0 .75em .6em 0;min-width:95px;white-space:nowrap}.user-info .user-interactions button{margin:0}.user-info .user-note{margin:0 .75em .6em 0}.sidebar .edit-profile-button{display:none}.user-counts{display:flex;flex-wrap:wrap;justify-content:space-between;line-height:16px;padding:.5em 1.5em 0;text-align:center}.user-count{flex:1 0 auto;margin:0 .5em;padding:.5em 0}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}.mute-expiry{display:flex;flex-direction:row}.user-panel .panel{-webkit-backdrop-filter:var(--backdrop-filter);backdrop-filter:var(--backdrop-filter);background:var(--background)}.user-panel .signed-in{overflow:visible;z-index:10}.NavigationEntry.menu-item{--__line-height:2.5em;--__horizontal-gap:0.5em;--__vertical-gap:0.4em;align-items:baseline;display:flex;padding:0}.NavigationEntry.menu-item[aria-expanded]{padding-right:var(--__horizontal-gap)}.NavigationEntry.menu-item .main-link{box-sizing:border-box;flex:1;line-height:var(--__line-height);padding:var(--__vertical-gap) var(--__horizontal-gap)}.NavigationEntry.menu-item .menu-icon{line-height:var(--__line-height);margin-right:var(--__horizontal-gap);padding:0;width:var(--__line-height)}.NavigationEntry.menu-item .timelines-chevron{line-height:var(--__line-height);margin-right:0;padding:0;width:var(--__line-height)}.NavigationEntry.menu-item .extra-button{line-height:var(--__line-height);padding:0;text-align:center;width:var(--__line-height)}.NavigationEntry.menu-item .extra-button:last-child{margin-right:calc(var(--__horizontal-gap)*-1)}.NavigationEntry.menu-item .badge{margin:0 var(--__horizontal-gap)}.NavigationPins{display:flex;flex-wrap:wrap;height:100%;overflow:hidden}.NavigationPins .pinned-item{box-sizing:border-box;flex:1 0 3em;height:100%;min-width:2em;overflow:visible;position:relative;text-align:center}.NavigationPins .pinned-item .iconLetter,.NavigationPins .pinned-item .svg-inline--fa{margin:0}.NavigationPins .pinned-item.toggled{border-bottom:4px solid;margin-bottom:-4px}.NavPanel .panel{box-shadow:var(--shadow);overflow:hidden}.NavPanel ul{list-style:none;margin:0;padding:0}.NavPanel .navigation-chevron{margin-right:.8em}.NavPanel .navigation-chevron,.NavPanel .timelines-chevron{font-size:1.1em;margin-left:.8em}.NavPanel .timelines-background{padding:0 0 0 .6em}.NavPanel .nav-panel-heading{--panel-heading-height-padding:0px}.features-panel li{line-height:24px}.who-to-follow *{vertical-align:middle}.who-to-follow img{height:32px;width:32px}.who-to-follow{margin:0;padding:0 1em}.who-to-follow-items{margin:1em 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.who-to-follow-more{margin:1em 0;padding:0;text-align:center}.floating-shout{bottom:.5em;max-width:25em;position:fixed;z-index:var(--ZI_popovers)}.floating-shout.-left{left:.5em}.floating-shout:not(.-left){right:.5em}.shout-panel .shout-heading{cursor:pointer}.shout-panel .shout-heading .icon{color:var(--text);margin-right:.5em}.shout-panel .shout-heading .title{align-items:center;display:flex;justify-content:space-between}.shout-panel .shout-window{max-height:20em;overflow-x:hidden;overflow-y:auto}.shout-panel .shout-window-container{height:100%}.shout-panel .shout-message{display:flex;padding:.2em .5em}.shout-panel .shout-avatar img{border-radius:var(--roundness);height:24px;margin-right:.5em;margin-top:.25em;width:24px}.shout-panel .shout-input{display:flex}.shout-panel .shout-input textarea{flex:1;margin:.6em;min-height:3.5em;resize:none}.shout-panel .shout-panel .title{display:flex;justify-content:space-between}@keyframes media-fadein{0%{opacity:0}to{opacity:1}}.media-modal-view .modal-image-container{max-height:100%;max-width:100%;overflow:hidden}.media-modal-view .modal-image-container,.media-modal-view .modal-image-container-inner{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.media-modal-view .counter,.media-modal-view .description{color:#fff;margin-top:1em;padding:.2em 2em;text-shadow:0 0 10px #000,0 0 10px #000}.media-modal-view .description{flex:0 0 auto;max-height:9.5em;max-width:500px;min-height:1em;overflow-y:auto;word-break:break-all}.media-modal-view .modal-image{animation:media-fadein .1s cubic-bezier(.7,0,1,.6);image-orientation:from-image;max-height:100%;max-width:100%}.media-modal-view .modal-image.loading{opacity:.5}.media-modal-view .loading-spinner{align-items:center;display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.media-modal-view .loading-spinner svg{color:#fff}.media-modal-view .modal-view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;height:3em;opacity:0;overflow:visible;padding:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);width:3em}.media-modal-view .modal-view-button .button-icon{background-color:rgba(0,0,0,.3);color:#fff;font-size:1rem;height:3em;line-height:3em;position:absolute;text-align:center;width:3em}.media-modal-view .modal-view-button-arrow{display:block;height:3em;margin-top:1.5em;position:absolute;top:50%;width:3em}.media-modal-view .modal-view-button-arrow .arrow-icon{background-color:rgba(0,0,0,.3);color:#fff;line-height:3em;position:absolute;text-align:center;top:0}.media-modal-view .modal-view-button-arrow--prev{left:0}.media-modal-view .modal-view-button-arrow--prev .arrow-icon{left:.5em}.media-modal-view .modal-view-button-arrow--next{right:0}.media-modal-view .modal-view-button-arrow--next .arrow-icon{right:.5em}.media-modal-view .modal-view-button-hide{position:absolute;right:0;top:0}.media-modal-view .modal-view-button-hide .button-icon{right:.5em;top:.5em}.modal-view.media-modal-view{flex-direction:column;overflow:hidden;z-index:var(--ZI_media_modal)}.modal-view.media-modal-view .modal-view-button-arrow,.modal-view.media-modal-view .modal-view-button-hide{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:focus,.modal-view.media-modal-view .modal-view-button-hide:hover{box-shadow:none;outline:none}.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:hover{opacity:1}.side-drawer-container{align-items:stretch;display:flex;height:100%;left:0;position:fixed;top:0;transition-duration:0s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transform:translate(-100%);transition-delay:.35s}.side-drawer-darken{background-color:rgba(0,0,0,.5);height:100vh;left:0;position:fixed;top:0;transition:.35s;transition-property:background-color;width:100vw;z-index:-1}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{flex:1 1 100%}.side-drawer{background-color:var(--background);box-shadow:var(--shadow);flex:0 0 80%;margin:0 0 0 -100px;max-width:20em;overflow-x:hidden;padding:0 0 1em 100px;transition:.35s;transition-property:transform;transition-timing-function:cubic-bezier(0,1,.5,1);width:80%}.side-drawer .badge{margin-left:10px}.side-drawer-logo-wrapper{align-items:center;display:flex;padding:.85em}.side-drawer-logo-wrapper img{flex:none;height:50px;margin-right:.85em}.side-drawer-logo-wrapper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-click-outside-closed{flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{align-items:stretch;background:transparent;display:flex;flex-direction:column;margin:0;padding:0}.side-drawer ul{border-bottom:1px solid;border-color:var(--border);list-style:none;margin:0;padding:0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a,.side-drawer li button{box-sizing:border-box;display:block;height:3em;line-height:3em;padding:0 .7em}.MobilePostButton.button-default{align-items:center;border-radius:100%;bottom:1.5em;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);display:flex;height:5em;justify-content:center;position:fixed;right:1.5em;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1);width:5em;z-index:10}.MobilePostButton.hidden{transform:translateY(150%)}.MobilePostButton svg{color:var(--text);font-size:1.5em}@media (min-width:801px){.new-status-button:not(.always-show){display:none}}.ReplyButton{display:flex}.ReplyButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.ReplyButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ReplyButton .interactive.-active .svg-inline--fa,.ReplyButton .interactive:hover .svg-inline--fa{color:var(--cBlue)}.ReplyButton .interactive .focus-marker{visibility:hidden}.ReplyButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReplyButton .interactive:focus .focus-marker,.ReplyButton .interactive:hover .focus-marker{visibility:visible}.ReplyButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton{display:flex}.FavoriteButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.FavoriteButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.FavoriteButton .interactive .svg-inline--fa{animation-duration:.6s}.FavoriteButton .interactive.-favorited .svg-inline--fa,.FavoriteButton .interactive:hover .svg-inline--fa{color:var(--cOrange)}.FavoriteButton .interactive .focus-marker{visibility:hidden}.FavoriteButton .interactive .active-marker{visibility:visible}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.FavoriteButton .interactive:focus .focus-marker,.FavoriteButton .interactive:hover .focus-marker{visibility:visible}.FavoriteButton .interactive:focus .active-marker,.FavoriteButton .interactive:hover .active-marker{visibility:hidden}.FavoriteButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton .interactive:focus-visible .active-marker{visibility:hidden}.ReactButton .reaction-picker-filter{display:flex;padding:.5em}.ReactButton .reaction-picker-filter input{flex:1}.ReactButton .reaction-picker-divider{background-color:var(--border);height:1px;margin:.5em;width:100%}.ReactButton .reaction-picker{align-content:flex-start;display:flex;flex-wrap:wrap;font-size:1.5em;height:9em;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow-y:scroll;padding:.5em;text-align:center;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:10em}.ReactButton .reaction-picker .emoji-button{align-content:center;cursor:pointer;flex-basis:20%;line-height:1.5}.ReactButton .reaction-picker .emoji-button:hover{transform:scale(1.25)}.ReactButton .popover-trigger{margin:-10px;padding:10px}.ReactButton .popover-trigger .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus .focus-marker,.ReactButton .popover-trigger:hover .focus-marker{visibility:visible}.ReactButton .popover-trigger:focus-visible .focus-marker{visibility:visible}.RetweetButton{display:flex}.RetweetButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.RetweetButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.RetweetButton .interactive .svg-inline--fa{animation-duration:.6s}.RetweetButton .interactive.-repeated .svg-inline--fa,.RetweetButton .interactive:hover .svg-inline--fa{color:var(--cGreen)}.RetweetButton .interactive .focus-marker{visibility:hidden}.RetweetButton .interactive .active-marker{visibility:visible}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.RetweetButton .interactive:focus .focus-marker,.RetweetButton .interactive:hover .focus-marker{visibility:visible}.RetweetButton .interactive:focus .active-marker,.RetweetButton .interactive:hover .active-marker{visibility:hidden}.RetweetButton .interactive:focus-visible .focus-marker{visibility:visible}.RetweetButton .interactive:focus-visible .active-marker{visibility:hidden}.ExtraButtons .popover-trigger{margin:-10px;padding:10px;position:static}.ExtraButtons .popover-trigger:hover .svg-inline--fa{color:var(--text)}.ExtraButtons .popover-trigger-button{width:auto}.ExtraButtons .popover-trigger-button .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus .focus-marker,.ExtraButtons .popover-trigger-button:hover .focus-marker{visibility:visible}.ExtraButtons .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.avatars{display:flex;flex-wrap:wrap;height:24px;margin:0;padding:0}.avatars .avatars-item{margin:0 0 5px 5px}.avatars .avatars-item:first-child{padding-left:5px}.avatars .avatars-item .avatar-small{border-radius:var(--roundness);height:24px;width:24px}.status-popover.popover{border-color:var(--border);border-style:solid;border-width:1px;font-size:1rem;max-width:95%;min-width:15em}.status-popover.popover .Status.Status{border:none}.status-popover.popover .status-preview-no-content{padding:1em;text-align:center}.status-popover.popover .status-preview-no-content i{font-size:2em}.user-list-popover{--emoji-size:16px;padding:.5em}.user-list-popover .user-list-row{display:flex;flex-direction:row;padding:.25em}.user-list-popover .user-list-row .user-list-names{display:flex;flex-direction:column;margin-left:.5em;min-width:5em}.user-list-popover .user-list-row .user-list-names img{height:1em;width:1em}.user-list-popover .user-list-row .user-list-screen-name{font-size:.65em}.EmojiReactions{--emoji-size:calc(var(--emojiSize, 1.25em)*var(--emojiReactionsScale, 1));display:flex;flex-wrap:wrap;margin-top:.25em}.EmojiReactions .emoji-reaction-container{align-items:stretch;display:flex;margin-right:.5em;margin-top:.5em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover{padding:0}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button{align-items:center;border-bottom-left-radius:0;border-top-left-radius:0;box-sizing:border-box;display:inline-flex;height:100%;justify-content:center;margin:0;min-width:2em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button.-picked-reaction{border:1px solid var(--accent);margin-right:-1px}.EmojiReactions .emoji-reaction{align-items:center;border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:border-box;display:flex;justify-content:center;margin:0;padding-left:.5em}.EmojiReactions .emoji-reaction .reaction-emoji{align-items:center;display:flex;height:var(--emoji-size);justify-content:center;line-height:var(--emoji-size);margin-right:.25em;width:var(--emoji-size)}.EmojiReactions .emoji-reaction .reaction-emoji-content{font-size:calc(var(--emoji-size)*.8);height:auto;line-height:inherit;margin:0;max-height:100%;max-width:100%;overflow:hidden;width:auto}.EmojiReactions .emoji-reaction:focus{outline:none}.EmojiReactions .emoji-reaction .svg-inline--fa{color:var(--text)}.EmojiReactions .emoji-reaction.-picked-reaction{border:1px solid var(--accent);margin-left:-1px;margin-right:-1px}.EmojiReactions .emoji-reaction.-picked-reaction .svg-inline--fa{color:var(--accent)}.EmojiReactions .emoji-reaction .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .svg-inline--fa,.EmojiReactions .emoji-reaction:hover .svg-inline--fa{color:var(--accent)}.EmojiReactions .emoji-reaction:focus .focus-marker,.EmojiReactions .emoji-reaction:hover .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .active-marker,.EmojiReactions .emoji-reaction:hover .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus-visible .svg-inline--fa{color:var(--accent)}.EmojiReactions .emoji-reaction:focus-visible .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus-visible .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction-expand{align-items:center;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction-expand:hover{text-decoration:underline}.Status{word-wrap:break-word;min-width:0;white-space:normal;word-break:break-word}.Status:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Status .gravestone{display:flex;padding:var(--status-margin)}.Status .gravestone .deleted-text{align-items:center;margin:.5em 0}.Status .status-container{display:flex;padding:var(--status-margin)}.Status .status-container>*{min-width:0}.Status .status-container.-repeat{padding-top:0}.Status .pin{align-items:center;display:flex;justify-content:flex-end;padding:var(--status-margin) var(--status-margin) 0}._misclick-prevention .Status{pointer-events:none}._misclick-prevention .Status .attachments{cursor:auto;pointer-events:auto}.Status .left-side{margin-right:var(--status-margin)}.Status .right-side{flex:1;min-width:0}.Status .usercard{margin-bottom:var(--status-margin)}.Status .status-username{--_still_image-label-scale:0.25;--emoji-size:14px;flex-shrink:1;font-weight:700;margin-right:.4em;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .status-favicon{height:18px;margin-right:.4em;width:18px}.Status .status-heading{margin-bottom:.5em}.Status .heading-name-row{display:flex;justify-content:space-between;line-height:1.3}.Status .heading-name-row a{display:inline-block;word-break:break-all}.Status .account-name{flex:1 1 0;margin-right:.4em;min-width:1.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .heading-left{display:flex;min-width:0}.Status .heading-right{display:flex;flex-shrink:0}.Status .heading-right .button-unstyled{margin:-5px;padding:5px}.Status .heading-right .svg-inline--fa{margin-left:.25em}.Status .glued-label{display:inline-flex;white-space:nowrap}.Status .timeago{margin-right:.2em}.Status .heading-edited-row,.Status .heading-reply-row{align-content:baseline;align-items:stretch;font-size:.85em;line-height:130%;margin-top:.2em;max-width:100%;position:relative}.Status .mentions,.Status .reply-to-no-popover,.Status .reply-to-popover{flex-shrink:0;margin-right:.4em;min-width:0}.Status .reply-glued-label{margin-right:.5em}.Status .reply-to-popover .reply-to:hover:before{border-bottom:1px solid var(--faint);bottom:0;content:"";display:block;pointer-events:none;position:absolute;width:100%}.Status .reply-to-popover .faint-link:hover{text-decoration:none}.Status .reply-to-popover.-strikethrough .reply-to:after{border-bottom:1px solid var(--faint);content:"";display:block;pointer-events:none;position:absolute;top:50%;width:100%}.Status .mentions,.Status .reply-to{position:relative;white-space:nowrap}.Status .mentions-text,.Status .reply-to-text{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .mentions-line{display:inline}.Status .replies{display:flex;flex-wrap:wrap;font-size:.85em;line-height:1.3;margin-top:.25em}.Status .replies>*{margin-right:.4em}.Status .reply-link{height:17px}.Status .repeat-info{padding:.4em var(--status-margin)}.Status .repeat-info .repeat-icon{color:var(--cGreen)}.Status .repeater-avatar{border-radius:var(--roundness);height:20px;margin-left:28px;width:20px}.Status .repeater-name{margin-right:0;text-overflow:ellipsis}.Status .repeater-name .emoji{height:14px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:14px}.Status .status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.Status .status-actions{display:flex;margin-top:var(--status-margin);position:relative;width:100%}.Status .status-actions>*{flex:1;max-width:4em}.Status .muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Status .muted .mute-thread,.Status .muted .mute-words,.Status .muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Status .muted .mute-words,.Status .muted .status-username{overflow:hidden;text-overflow:ellipsis}.Status .muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Status .muted .mute-thread{flex:0 0 auto}.Status .muted .mute-words{flex:1 0 5em;margin-left:.2em}.Status .muted .mute-words:before{content:" "}.Status .muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Status .reply-form{padding-bottom:0;padding-top:0}.Status .reply-body{flex:1}.Status .favs-repeated-users{margin-top:var(--status-margin)}.Status .stats{display:flex;line-height:1em;width:100%}.Status .avatar-row{align-items:center;display:flex;flex:1;overflow:hidden;position:relative}.Status .avatar-row:before{background-color:var(--textFaint);content:"";height:100%;left:0;position:absolute;width:1px}.Status .stat-count{margin-right:var(--status-margin);-webkit-user-select:none;-moz-user-select:none;user-select:none}.Status .stat-count .stat-title{color:var(--textFaint);font-size:.85em;position:relative;text-transform:uppercase}.Status .stat-count .stat-number{color:var(--text);font-size:1.1em;font-weight:bolder;line-height:1em}.Status .stat-count:hover .stat-title{text-decoration:underline}@media (max-width:800px){.Status .repeater-avatar{margin-left:20px}.Status .post-avatar{height:40px;width:40px}.Status .post-avatar.-compact{height:32px;width:32px}}.Status .quoted-status{border:1px solid var(--border);border-radius:var(--roundness);margin-top:.5em}.Status .quoted-status.-unavailable-prompt{padding:.5em}.Status .display-quoted-status-button{margin:.5em}.Status .display-quoted-status-button-icon{color:inherit}.Report .report-content,.Report .report-state{margin:.5em 0 1em}.Report .reported-status{border:1px solid var(--border);border-radius:var(--roundness);display:block;margin:.5em 0;padding:.5em}.Report .reported-status .status-content{pointer-events:none}.Report .reported-status .reported-status-heading{display:flex;justify-content:space-between;margin-bottom:.2em;width:100%}.Report .reported-status .reported-status-name{font-weight:700}.Report .note{margin-bottom:.5em;width:100%}.Notification{word-wrap:break-word;--emoji-size:14px;border-bottom:1px solid;border-color:var(--border);word-break:break-word}.Notification.Status{background-color:transparent!important}.Notification:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Notification.-muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Notification.-muted .mute-thread,.Notification.-muted .mute-words,.Notification.-muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Notification.-muted .mute-words,.Notification.-muted .status-username{overflow:hidden;text-overflow:ellipsis}.Notification.-muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Notification.-muted .mute-thread{flex:0 0 auto}.Notification.-muted .mute-words{flex:1 0 5em;margin-left:.2em}.Notification.-muted .mute-words:before{content:" "}.Notification.-muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Notification .type-icon{margin:0 .1em}.Notification.-type--repeat .type-icon{color:var(--cGreen)}.Notification.-type--follow .type-icon,.Notification.-type--follow-request .type-icon{color:var(--cBlue)}.Notification.-type--like .type-icon{color:var(--cOrange)}.Notification.-type--move .type-icon{color:var(--cBlue)}.ExtraNotifications,.ExtraNotifications .notification{align-items:stretch;display:flex;flex-direction:column;width:100%}.ExtraNotifications .notification{border-bottom:1px solid;border-color:var(--border)}.ExtraNotifications .extra-notification{padding:1em}.ExtraNotifications .icon{margin-right:.5em}.ExtraNotifications .tip{display:inline}.Notifications:not(.minimal){padding-bottom:15em}.Notifications .loadmore-error{color:var(--text)}.Notifications .notification{position:relative}.Notifications .notification .notification-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.Notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification) 4px,transparent 10px)}.notification{box-sizing:border-box}.notification .Status{flex:1}.notification:hover .animated.Avatar canvas{display:none}.notification:hover .animated.Avatar img{visibility:visible}.notification:last-child .Notification{border-bottom:none}.notification .non-mention{display:flex;flex:1;flex-wrap:nowrap;min-width:0;padding:.6em}.notification .non-mention .avatar-container{height:32px;width:32px}.notification .follow-request-accept:hover{color:var(--text)}.notification .follow-request-reject:hover{color:var(--cRed)}.notification .follow-text,.notification .move-text{display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.5em 0}.notification .follow-text .follow-name,.notification .move-text .follow-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification time{white-space:nowrap}.notification .notification-right{flex:1;min-width:0;padding-left:.8em}.notification .notification-right .timeago{min-width:3em;text-align:right}.notification .notification-right .timeago-link{margin-right:.2em}.notification .notification-right .expand-icon .svg-inline--fa{margin-left:.25em}.notification .emoji-reaction-emoji{font-size:1.3em;height:1.25em;max-width:1.25em;width:auto}.notification .emoji-reaction-emoji-image{-o-object-fit:contain;object-fit:contain;vertical-align:middle}.notification .notification-details{word-wrap:break-word;display:flex;flex:1 1 0;flex-wrap:nowrap;justify-content:space-between;line-height:var(--post-line-height);min-width:0;overflow:hidden;position:relative;width:100%}.notification .notification-details .name-and-action{flex:1;overflow:hidden;text-overflow:ellipsis}.notification .notification-details .username{font-weight:bolder;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.notification .notification-details .timeago{margin-right:.2em}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{font-size:1em;line-height:1.5;margin:0 0 .3em;padding:0;word-break:break-all}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0 0 .3em}.MobileNav{z-index:var(--ZI_navbar)}.MobileNav .mobile-nav{box-sizing:border-box;display:grid;grid-template-columns:2fr auto;grid-template-rows:var(--navbar-height);line-height:var(--navbar-height);width:100%}.MobileNav .mobile-nav a{color:var(--link)}.MobileNav .mobile-inner-nav{align-items:center;display:flex;width:100%}.MobileNav .mobile-nav-button{cursor:pointer;display:inline-block;padding:0 1em;position:relative;text-align:center}.MobileNav .site-name{display:inline-block;padding:0 .3em}.MobileNav .item{display:flex}.MobileNav .mobile-notifications-drawer{-webkit-overflow-scrolling:touch;background:var(--background);box-shadow:var(--shadow);height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateX(0);transition-duration:.25s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.MobileNav .mobile-notifications-drawer.-closed{box-shadow:none;transform:translateX(100%)}.MobileNav .mobile-notifications-header{align-items:center;box-shadow:var(--shadow);display:flex;height:3.5em;justify-content:space-between;line-height:3.5em;position:absolute;width:100%;z-index:calc(var(--ZI_navbar) + 100)}.MobileNav .mobile-notifications-header .spacer{flex:1}.MobileNav .mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.MobileNav .pins{flex:1}.MobileNav .pins .pinned-item{flex-grow:1}.MobileNav .mobile-notifications{height:calc(100vh - var(--navbar-height));margin-top:3.5em;overflow-x:hidden;overflow-y:scroll;width:100vw}.MobileNav .mobile-notifications .notifications{border-radius:0;box-shadow:none;padding:0}.MobileNav .mobile-notifications .notifications .panel{border-radius:0;box-shadow:none;margin:0}.MobileNav .mobile-notifications .notifications .panel:after{border-radius:0}.MobileNav .mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}.MobileNav .confirm-modal.dark-overlay:before{z-index:3000}.MobileNav .confirm-modal.dark-overlay .dialog-modal.panel{z-index:3001}.SearchBar{align-items:baseline;display:inline-flex;justify-content:flex-end;vertical-align:baseline}.SearchBar.-expanded{width:100%}.SearchBar .search-bar-input,.SearchBar .search-button{height:29px}.SearchBar .search-bar-input{flex:1 0 auto}.SearchBar .cancel-search{height:50px}.SearchBar .cancel-icon{color:var(--text)}.DesktopNav{width:100%;z-index:var(--ZI_navbar)}.DesktopNav input{color:var(--inputTopbarText,var(--inputText))}.DesktopNav a{color:var(--link)}.DesktopNav .inner-nav{box-sizing:border-box;display:grid;grid-template-areas:"sitename logo actions";grid-template-columns:2fr auto 2fr;grid-template-rows:var(--navbar-height);margin:auto;max-width:980px;padding:0 1.2em}.DesktopNav.-column-stretch .inner-nav{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--columnGap))}.DesktopNav.-logoLeft .inner-nav{grid-template-areas:"logo sitename actions";grid-template-columns:auto 2fr 2fr}.DesktopNav.-column-stretch.-wide .inner-nav{max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--notifsColumnWidth, var(--miniColumn)) + var(--columnGap))}.DesktopNav .button-default,.DesktopNav .button-default svg{color:var(--text)}.DesktopNav .logo{grid-area:logo;position:relative;transition:opacity;transition-duration:.1s;transition-timing-function:ease-out}@media (min-width:800px){.DesktopNav .logo{opacity:1!important}}.DesktopNav .logo .mask{background-color:var(--text);bottom:0;left:0;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:0;top:0}.DesktopNav .logo img{display:inline-block;height:var(--navbar-height)}.DesktopNav .nav-icon{height:100%;margin-left:.2em;text-align:center;width:2em}.DesktopNav .nav-icon .svg-inline--fa{color:var(--link)}.DesktopNav .sitename{grid-area:sitename}.DesktopNav .actions{grid-area:actions}.DesktopNav .item{display:flex;flex:1;flex-wrap:wrap;height:var(--navbar-height);line-height:var(--navbar-height);overflow:hidden}.DesktopNav .item.right{justify-content:flex-end;text-align:right}.DesktopNav .spacer{width:1em}.user-reporting-panel{max-height:80vh;max-width:700px;min-height:20vh;width:90vw}.user-reporting-panel .panel-body{border-top:1px solid;border-color:var(--border);display:flex;flex-direction:column-reverse;overflow:hidden}.user-reporting-panel-left{box-sizing:border-box;line-height:var(--post-line-height);padding:1.1em .7em .7em}.user-reporting-panel-left>div{margin-bottom:1em}.user-reporting-panel-left>div:last-child{margin-bottom:0}.user-reporting-panel-left p{margin-top:0}.user-reporting-panel-left textarea.form-control{line-height:16px;min-height:44px;overflow:hidden;resize:none;transition:min-height .2s .1s;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{line-height:1.3em;margin:1em 0 0}.user-reporting-panel-right{display:flex;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:flex;justify-content:space-between}.user-reporting-panel-sitem>.Status{flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{flex-direction:row}.user-reporting-panel-left{border-right:1px solid;border-color:var(--border);max-width:320px;padding:1.1em;width:50%}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{flex:1 1 auto;margin-bottom:12px;width:50%}}.modal-view.edit-form-modal-view{align-items:flex-start}.edit-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.edit-form-modal-panel{margin-top:8%}}.edit-form-modal-panel .form-bottom-left{max-width:6.5em}.edit-form-modal-panel .form-bottom-left .emoji-icon{justify-content:right}.modal-view.post-form-modal-view{align-items:flex-start}.post-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.post-form-modal-panel{margin-top:8%}}.modal-view.status-history-modal-view{align-items:flex-start}.status-history-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.status-history-modal-panel{margin-top:8%}}.global-notice-list{align-items:center;display:flex;flex-direction:column;pointer-events:none;position:fixed;top:calc(var(--navbar-height) + .5em);width:100%;z-index:var(--ZI_modals_popovers)}.global-notice-list .global-notice{display:flex;line-height:2;margin-bottom:.5em;max-width:calc(100% - 3em);padding-left:1.5em;pointer-events:auto;text-align:center;width:40em}.global-notice-list .global-notice .notice-message{flex:1 1 100%}.global-notice-list .close-notice{padding-right:.2em}.panel{--__panel-background:var(--background);--__panel-backdrop-filter:var(--backdrop-filter);display:flex;flex-direction:column;position:relative}.panel .tab-switcher .tabs{-webkit-backdrop-filter:var(--__panel-backdrop-filter);backdrop-filter:var(--__panel-backdrop-filter);background:var(--__panel-background)}.panel .panel-heading{background-color:inherit}.panel,.panel:after{border-radius:var(--roundness)}.panel:after{bottom:0;box-shadow:var(--shadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-body{-webkit-backdrop-filter:var(--__panel-backdrop-filter);backdrop-filter:var(--__panel-backdrop-filter);background:var(--background);padding:var(--panel-body-padding,0)}.panel-body .tab-switcher .tabs{-webkit-backdrop-filter:none;backdrop-filter:none;background:none}.panel-body:empty:before{content:"¯\\_(ツ)_/¯";display:block;padding:1em;text-align:center}.panel-body>p{line-height:1.3;margin:0;padding:1em}.panel-footer,.panel-heading{--panel-heading-height-padding:calc(var(--panel-header-height)*0.2);--__panel-heading-gap:calc(var(--panel-header-height)*0.1565);--__panel-heading-height:var(--panel-header-height);--__panel-heading-height-inner:calc(var(--__panel-heading-height) - var(--panel-heading-height-padding, 0)*2);grid-column-gap:var(--__panel-heading-gap);-webkit-backdrop-filter:var(--__panel-backdrop-filter);backdrop-filter:var(--__panel-backdrop-filter);background-size:cover;box-sizing:border-box;display:grid;flex:none;font-size:calc(var(--panelHeaderSize)/3.2);grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(50%,1fr);height:var(--__panel-heading-height);line-height:var(--__panel-heading-height-inner);padding:var(--panel-heading-height-padding);position:relative;z-index:4}.panel-footer.-flexible-height,.panel-heading.-flexible-height{--__panel-heading-height:auto}.panel-footer.-flexible-height:after,.panel-footer.-flexible-height:before,.panel-heading.-flexible-height:after,.panel-heading.-flexible-height:before{display:none}.panel-footer.-stub,.panel-footer.-stub:after,.panel-heading.-stub,.panel-heading.-stub:after{border-radius:var(--roundness)}.panel-footer.-sticky,.panel-heading.-sticky{position:sticky;top:var(--navbar-height)}.panel-footer:after,.panel-footer:before,.panel-heading:after,.panel-heading:before{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.panel-footer .title,.panel-heading .title{font-size:1.3em}.panel-footer .alert,.panel-heading .alert{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-footer:not(.-flexible-height)>.alert,.panel-footer:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.button-default{align-self:stretch;box-sizing:border-box;height:var(--__panel-heading-height-inner);margin:0;min-height:0;min-width:1px;padding-bottom:0;padding-top:0}.panel-footer:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.alert{line-height:calc(var(--__panel-heading-height-inner) - 2px)}.panel-heading{align-items:start;background-image:linear-gradient(to bottom,var(--background),var(--background)),linear-gradient(to bottom,var(--__panel-background),var(--__panel-background));border-radius:var(--roundness) var(--roundness) 0 0;border-width:0 0 1px}.panel-heading:after{background-color:var(--background);border-radius:var(--roundness) var(--roundness) 0 0;box-shadow:var(--shadow);z-index:-2}.panel-heading:not(.-flexible-height)>.button-default{flex-shrink:0}.panel-heading .rightside-button{align-self:stretch;height:var(--__panel-heading-height);margin:calc(var(--panel-heading-height-padding)*-1) 0;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-button>button{box-sizing:border-box;height:100%;padding:calc(var(--panel-heading-height-padding)*1) 0;text-align:center;width:100%}.panel-heading .rightside-button>button svg{font-size:1.2em}.panel-heading .rightside-icon{align-self:stretch;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-icon svg{font-size:1.2em}.panel-footer{align-items:center;background-color:var(--__panel-background);border-color:var(--border);border-style:solid;border-top-left-radius:0;border-top-right-radius:0;border-width:1px 0 0}:root{--status-margin:0.75em;--post-line-height:1.4;--ZI_media_modal:9000;--ZI_modals_popovers:8500;--ZI_modals:8000;--ZI_navbar_popovers:7500;--ZI_navbar:7000;--ZI_popovers:6000;--background:var(--bg)}html{--navbar-height:var(--navbarSize,3.5rem);--emoji-size:var(--emojiSize,32px);--panel-header-height:var(--panelHeaderSize,3.2rem);font-size:var(--textSize,14px)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);font-family:sans-serif;font-family:var(--font);margin:0;overflow-x:clip;overflow-y:scroll;overscroll-behavior-y:none}body.hidden{display:none}@media(any-pointer:fine){*{scrollbar-color:var(--fg) transparent}::-webkit-scrollbar,::-webkit-scrollbar-corner{background:transparent}::-webkit-resizer{background-color:transparent!important;background-image:linear-gradient(135deg,transparent calc(50% - 1px),var(--textFaint) 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),var(--textFaint) 75%,transparent calc(75% + 1px))}::-webkit-scrollbar-button,::-webkit-scrollbar-thumb{border-radius:var(--roundness);box-shadow:var(--shadow)}::-webkit-scrollbar-button{--___bgPadding:2px;background-repeat:no-repeat,no-repeat;color:var(--text)}::-webkit-scrollbar-button:horizontal{background-size:50% calc(50% - var(--___bgPadding)),50% calc(50% - var(--___bgPadding))}::-webkit-scrollbar-button:horizontal:increment{background-image:linear-gradient(45deg,var(--text) 50%,transparent 51%),linear-gradient(-45deg,transparent 50%,var(--text) 51%);background-position:top var(--___bgPadding) left 50%,right 50% bottom var(--___bgPadding)}::-webkit-scrollbar-button:horizontal:decrement{background-image:linear-gradient(45deg,transparent 50%,var(--text) calc(50% + 1px)),linear-gradient(-45deg,var(--text) 50%,transparent 51%);background-position:bottom var(--___bgPadding) right 50%,left 50% top var(--___bgPadding)}::-webkit-scrollbar-button:vertical{background-size:calc(50% - var(--___bgPadding)) 50%,calc(50% - var(--___bgPadding)) 50%}::-webkit-scrollbar-button:vertical:increment{background-image:linear-gradient(-45deg,transparent 50%,var(--text) 51%),linear-gradient(45deg,transparent 50%,var(--text) 51%);background-position:right var(--___bgPadding) top 50%,left var(--___bgPadding) top 50%}::-webkit-scrollbar-button:vertical:decrement{background-image:linear-gradient(-45deg,var(--text) 50%,transparent 51%),linear-gradient(45deg,var(--text) 50%,transparent 51%);background-position:left var(--___bgPadding) top 50%,right var(--___bgPadding) top 50%}html{background:var(--wallpaper);scrollbar-color:var(--fg) var(--wallpaper)}}a{color:var(--link);text-decoration:none}h4{margin:0}.iconLetter{display:inline-block;font-weight:1000;text-align:center}.iconLetter,.svg-inline--fa,i[class*=icon-]{color:var(--icon)}nav{box-shadow:var(--shadow);box-sizing:border-box;font-size:calc(var(--navbar-height)/3.5);height:var(--navbar-height);position:fixed;z-index:var(--ZI_navbar)}#sidebar{grid-area:sidebar}#modal{position:absolute;z-index:var(--ZI_modals)}.column.-scrollable{position:sticky;top:var(--navbar-height)}#main-scroller{grid-area:content;position:relative}#notifs-column{grid-area:notifs}.app-bg-wrapper{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;height:100%;left:0;position:fixed;right:-20px;top:var(--navbar-height);z-index:-1000}.underlay{background-color:var(--underlay);grid-column:1/span 3;grid-row:1/1;pointer-events:none;z-index:-1000}.app-layout{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1rem;--effectiveSidebarColumnWidth:minmax(var(--miniColumn),var(--sidebarColumnWidth,var(--miniColumn)));--effectiveNotifsColumnWidth:minmax(var(--miniColumn),var(--notifsColumnWidth,var(--miniColumn)));--effectiveContentColumnWidth:minmax(var(--miniColumn),var(--contentColumnWidth,var(--maxiColumn)));align-content:flex-start;flex-wrap:wrap;grid-template-areas:"sidebar content";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth);grid-template-rows:1fr;justify-content:center;margin:0 auto;min-height:100vh;overflow-x:clip;position:relative}.app-layout,.app-layout .column{box-sizing:border-box;display:grid}.app-layout .column{--___columnMargin:var(--columnGap);align-content:start;grid-row:1/1;grid-template-columns:100%;margin:0 calc(var(--___columnMargin)/2);padding:calc(var(--___columnMargin)) 0;row-gap:var(--___columnMargin)}.app-layout .column:not(.-scrollable){margin-top:var(--navbar-height)}.app-layout .column:hover{z-index:2}.app-layout .column.-full-height{margin-bottom:0;padding-bottom:0;padding-top:0}.app-layout .column.-scrollable{--___paddingIncrease:calc(var(--columnGap)/2);margin-left:calc(var(--___paddingIncrease)*-1);max-height:calc(100vh - var(--navbar-height));overflow-x:hidden;overflow-y:auto;padding-left:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);position:sticky;top:var(--navbar-height)}@supports(scrollbar-width:none) or (-webkit-text-fill-color:initial){.app-layout .column.-scrollable:not(.-show-scrollbar){margin-right:calc(var(--___paddingIncrease)*-1);padding-right:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);scrollbar-width:none}.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar{display:block;width:0}}.app-layout .column.-scrollable .panel-heading.-sticky{top:calc(var(--columnGap)/-1)}.app-layout.-has-new-post-button .column{padding-bottom:10rem}.app-layout.-no-sticky-headers .column .panel-heading.-sticky{position:relative;top:0}.app-layout .column-inner{align-content:start;box-sizing:border-box;display:grid;grid-template-columns:100%;row-gap:1em}.app-layout.-reverse:not(.-wide,.-mobile){grid-template-areas:"content sidebar";grid-template-columns:var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-wide{grid-template-areas:"sidebar content notifs";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveNotifsColumnWidth)}.app-layout.-wide.-reverse{grid-template-areas:"notifs content sidebar";grid-template-columns:var(--effectiveNotifsColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-mobile{grid-template-areas:"content";grid-template-columns:100vw;padding:0}.app-layout.-mobile .column{margin:var(--navbar-height) 0 0 0;padding-top:0}.app-layout.-mobile .panel,.app-layout.-mobile .panel-heading,.app-layout.-mobile .panel-heading:after,.app-layout.-mobile .panel-heading:before,.app-layout.-mobile .panel:after{border-top-left-radius:0;border-top-right-radius:0}.app-layout.-mobile #notifs-column,.app-layout.-mobile #sidebar,.app-layout.-normal #notifs-column{display:none}.text-center{text-align:center}.button-default{background-color:var(--background);border:none;box-shadow:var(--shadow);color:var(--text);cursor:pointer;font-family:sans-serif;font-family:var(--font);font-size:1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-default::-moz-focus-inner{border:none}.button-default:disabled{cursor:not-allowed}.list-item,.menu-item{--__line-height:1.5em;--__horizontal-gap:0.75em;--__vertical-gap:0.5em;background:transparent;border:none;border-color:var(--border);border-style:solid;border-width:1px 0 0;box-sizing:border-box;clear:both;color:inherit;cursor:pointer;display:block;font-family:inherit;font-size:inherit;font-weight:400;line-height:var(--__line-height);outline:none;padding:var(--__vertical-gap) var(--__horizontal-gap);position:relative;text-align:initial;white-space:nowrap;width:100%}.list-item.-non-interactive,.menu-item.-non-interactive{cursor:auto}.list-item.-active,.list-item:hover,.menu-item.-active,.menu-item:hover{border-bottom-width:1px;border-top-width:1px}.list-item.-active+.list-item,.list-item.-active+.menu-item,.list-item.-active+.menu-item-collapsible:not(.-expanded)+.list-item,.list-item.-active+.menu-item-collapsible:not(.-expanded)+.menu-item,.list-item:hover+.list-item,.list-item:hover+.menu-item,.list-item:hover+.menu-item-collapsible:not(.-expanded)+.list-item,.list-item:hover+.menu-item-collapsible:not(.-expanded)+.menu-item,.menu-item.-active+.list-item,.menu-item.-active+.menu-item,.menu-item.-active+.menu-item-collapsible:not(.-expanded)+.list-item,.menu-item.-active+.menu-item-collapsible:not(.-expanded)+.menu-item,.menu-item:hover+.list-item,.menu-item:hover+.menu-item,.menu-item:hover+.menu-item-collapsible:not(.-expanded)+.list-item,.menu-item:hover+.menu-item-collapsible:not(.-expanded)+.menu-item{border-top-width:0}.list-item[aria-expanded=true],.menu-item[aria-expanded=true]{border-bottom-width:1px}.list-item a,.list-item button:not(.button-default),.menu-item a,.menu-item button:not(.button-default){background:none;border:none;color:var(--text);display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.list-item:first-child,.menu-item:first-child{border-top-left-radius:var(--roundness);border-top-right-radius:var(--roundness);border-top-width:0}.list-item:last-child,.menu-item:last-child{border-bottom-left-radius:var(--roundness);border-bottom-right-radius:var(--roundness);border-bottom-width:0}.button-unstyled{background-color:transparent;border:none;box-shadow:var(--shadow);box-sizing:content-box;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.button-unstyled.-link{color:var(--link)!important}input,textarea{outline:none}.input,input,textarea{border:none;display:inline-block}.input{--_padding:0.5em;background-color:var(--background);box-shadow:var(--shadow);box-sizing:border-box;color:var(--text);font-family:var(--font);font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:2;margin:0;padding:0 var(--_padding);position:relative}.input.unstyled{background:none!important;border-radius:0;box-shadow:none;height:unset}.input.disabled,.input:disabled,.input[disabled=disabled]{cursor:not-allowed}.input[type=range]{background:none;border:none;box-shadow:none;flex:1;margin:0}.input[type=radio]{display:none}.input[type=radio]:checked+label:before{background-color:var(--background);box-shadow:var(--shadow);color:var(--text)}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[type=radio]:disabled+label:before{opacity:.5}.input[type=radio]+label:before{background-color:var(--background);border-radius:100%;box-shadow:var(--shadow);box-sizing:border-box;color:transparent;content:"•";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:box-shadow .2s;vertical-align:top;width:1.1em}.input[type=checkbox]:checked+label:before{background-color:var(--background);box-shadow:var(--shadow);color:var(--text)}.input[type=checkbox]:disabled,.input[type=checkbox]:disabled+label,.input[type=checkbox]:disabled+label:before{opacity:.5}.input[type=checkbox]+label:before{border-radius:var(--roundness);box-shadow:var(--shadow);box-sizing:border-box;color:transparent;content:"✓";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:color .2s;vertical-align:top;width:1.1em}.input.resize-height{resize:vertical}.button-default,.input{--_roundness-left:var(--roundness);--_roundness-right:var(--roundness);border-bottom-left-radius:var(--_roundness-left);border-bottom-right-radius:var(--_roundness-right);border-top-left-radius:var(--_roundness-left);border-top-right-radius:var(--_roundness-right)}textarea.input{line-height:var(--post-line-height);padding:var(--_padding)}option{background-color:var(--background);color:var(--text)}.hide-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{display:none;opacity:0}.cards-list{display:grid;grid-auto-flow:row dense;grid-template-columns:1fr 1fr;list-style:none}.cards-list li{border:1px solid var(--border);border-radius:var(--roundness);margin:.25em;padding:.5em}.btn-block{display:block;width:100%}.btn-group{display:inline-flex;position:relative;vertical-align:middle}.btn-group>*,.btn-group>* .button-default{--_roundness-left:0;--_roundness-right:0;flex:1 1 auto;position:relative}.btn-group>:first-child,.btn-group>:first-child .button-default{--_roundness-left:var(--roundness)}.btn-group>:last-child,.btn-group>:last-child .button-default{--_roundness-right:var(--roundness)}.fa{color:gray}.mobile-shown{display:none}.badge{border-radius:99px;box-sizing:border-box;display:inline-block;font-size:.9em;font-style:normal;font-weight:400;height:1.3em;line-height:1;max-width:10em;min-width:1.7em;overflow:hidden;padding:.15em;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge.-counter,.badge.-dot{margin:0;position:absolute}.badge.-dot{font-size:0;left:calc(50% - 4px);line-height:0;margin-left:6px;margin-top:-6px;max-height:8px;max-width:8px;min-height:8px;min-width:8px;padding:0;top:calc(50% - 4px)}.badge.-counter{font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;min-width:0;padding:.2em;text-align:right;top:calc(50% - .4em)}.alert,.badge.-counter{border-radius:var(--roundness)}.alert{border:1px solid var(--border);margin:0 .35em;padding:0 .25em}.faint{--text:var(--textFaint);--link:var(--linkFaint);color:var(--text)}.visibility-notice{border:1px solid var(--textFaint);border-radius:var(--roundness);padding:.5em}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{color:inherit;padding:.5em;position:absolute;right:0;top:0}.fa-scale-110.iconLetter,.fa-scale-110.svg-inline--fa{font-size:1.1em}.fa-scale-110.svg-inline--fa{vertical-align:-.15em}.fa-old-padding-layer,.fa-old-padding.iconLetter,.fa-old-padding.svg-inline--fa{padding:0 .3em}.veryfaint{opacity:.25}.timeago{--link:var(--text);--linkFaint:var(--textFaint)}.login-hint{text-align:center}@media (min-width:801px){.login-hint{display:none}}.login-hint a{display:inline-block;padding:1em 0;width:100%}.btn.button-default{min-height:2em}.new-status-notification{flex:1;font-size:1.1em;position:relative;z-index:1}@media (max-width:800px){.mobile-hidden{display:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes shakeError{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-active{opacity:0}.visible-for-screenreader-only{clip:rect(0 0 0 0);display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;visibility:visible;width:1px}::-moz-selection{background-color:var(--selectionBackground);color:var(--selectionText)}::selection{background-color:var(--selectionBackground);color:var(--selectionText)}.thread-tree-replies{border-left:2px solid var(--border);margin-left:var(--status-margin)}.thread-tree-replies-hidden{align-items:stretch;display:flex;flex-direction:column;padding:var(--status-margin)}.Conversation{z-index:1}.Conversation.-hidden{-webkit-backdrop-filter:var(--__panel-backdrop-filter);backdrop-filter:var(--__panel-backdrop-filter);background:var(--__panel-background)}.Conversation .conversation-dive-to-top-level-box{align-items:stretch;border-bottom:1px solid var(--border);border-radius:0;display:flex;flex-direction:column;padding:var(--status-margin)}.Conversation .thread-ancestors{border-left:2px solid var(--border);margin-left:var(--status-margin)}.Conversation .thread-ancestor.-faded .RichContent{--text:var(--textFaint)!important;--link:var(--linkFaint)!important;--funtextGreentext:var(--funtextGreentextFaint)!important;--funtextCyantext:var(--funtextCyantextFaint)!important}.Conversation .thread-ancestor-dive-box{border-bottom:1px solid var(--border);border-radius:0;padding-left:var(--status-margin)}.Conversation .thread-ancestor-dive-box,.Conversation .thread-ancestor-dive-box-inner{align-items:stretch;display:flex;flex-direction:column}.Conversation .thread-ancestor-dive-box-inner{padding:var(--status-margin)}.Conversation .conversation-status{border-bottom:1px solid var(--border);border-radius:0}.Conversation .thread-ancestor-has-other-replies .conversation-status,.Conversation .thread-ancestor:last-child .conversation-status,.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box,.Conversation.-expanded .conversation-status:last-child,.Conversation.-expanded .thread-tree .conversation-status,.Conversation:last-child:not(.-expanded) .conversation-status{border-bottom:none}.Conversation .thread-ancestors+.thread-tree>.conversation-status{border-top:1px solid var(--border)}.Conversation.status-fadein.-expanded .thread-body{border-bottom:1px solid var(--border);border-left:4px solid var(--cRed);border-radius:var(--roundness);border-top-left-radius:0;border-top-right-radius:0}.Conversation.-expanded.status-fadein{--___margin:calc(var(--status-margin)/2);background:var(--background);margin:var(--___margin)}.Conversation.-expanded.status-fadein:before{-webkit-backdrop-filter:var(--__panel-backdrop-filter);backdrop-filter:var(--__panel-backdrop-filter);background:var(--background);bottom:calc(var(--___margin)*-1);content:"";display:block;left:calc(var(--___margin)*-1);position:absolute;right:calc(var(--___margin)*-1);top:calc(var(--___margin)*-1);z-index:-1}.timeline-menu-popover{border-top-left-radius:0;border-top-right-radius:0;font-size:1rem;margin-top:.6rem;max-width:100vw;min-width:24rem}.timeline-menu-popover ul{list-style:none;margin:0;padding:0}.TimelineMenu{margin-right:auto;min-width:0}.TimelineMenu .popover-trigger-button{vertical-align:bottom}.TimelineMenu .panel:after{border-top-left-radius:0;border-top-right-radius:0}.TimelineMenu .timeline-menu-title{cursor:pointer;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.TimelineMenu .timeline-menu-title .timeline-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TimelineMenu .timeline-menu-title svg{margin-left:.6em;transition:transform .1s}.TimelineMenu .timeline-menu-title .click-blocker{cursor:default;flex-grow:1}.TimelineMenu.open .timeline-menu-title svg{transform:rotate(180deg)}.TimelineMenu .panel{box-shadow:var(--popoverShadow)}.Timeline .timeline-body{-webkit-backdrop-filter:none;backdrop-filter:none;background:none}.Timeline .alert-badge{border-radius:var(--roundness);font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;padding:.2em;position:absolute;text-align:right;top:calc(50% - .4em)}.Timeline .loadmore-button{position:relative}.Timeline.-blocked{cursor:progress}.Timeline .conversation-heading{top:calc(var(--__panel-heading-height)*var(--currentPanelStack, 2));z-index:2}.Timeline.-embedded .timeline-heading{line-height:2.75em;padding:0 .5em;text-align:center}.Timeline.-embedded .timeline-heading:empty:before{content:normal}.Timeline.-embedded .timeline-heading .alert,.Timeline.-embedded .timeline-heading .button-default{line-height:2em;width:100%}.tab-switcher{display:flex}.tab-switcher .tab-icon{display:block;margin:.2em auto}.tab-switcher.top-tabs{flex-direction:column}.tab-switcher.top-tabs>.tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-top:5px;width:100%}.tab-switcher.top-tabs>.tabs:after,.tab-switcher.top-tabs>.tabs:before{border-bottom:1px solid;border-bottom-color:var(--border);content:"";flex:1 1 auto}.tab-switcher.top-tabs>.tabs .tab-wrapper{height:2em}.tab-switcher.top-tabs>.tabs .tab-wrapper:not(.active):after{border-bottom:1px solid;border-bottom-color:var(--border);bottom:0;left:0;right:0}.tab-switcher.top-tabs>.tabs .tab{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-93px;min-width:1px;padding-bottom:99px;width:100%}.tab-switcher.top-tabs .contents.scrollable-tabs{flex-basis:0}.tab-switcher.side-tabs{flex-direction:row}@media (max-width:800px){.tab-switcher.side-tabs{overflow-x:auto}}.tab-switcher.side-tabs>.contents{flex:1 1 auto}.tab-switcher.side-tabs>.tabs{flex:0 0 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto}.tab-switcher.side-tabs>.tabs:after,.tab-switcher.side-tabs>.tabs:before{border-right:1px solid;border-right-color:var(--border);content:"";flex-basis:.5em;flex-shrink:0}.tab-switcher.side-tabs>.tabs:after{flex-grow:1}.tab-switcher.side-tabs>.tabs:before{flex-grow:0}.tab-switcher.side-tabs>.tabs .tab-wrapper{display:flex;flex-direction:column;min-width:10em}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab-wrapper{min-width:4em}}.tab-switcher.side-tabs>.tabs .tab-wrapper:not(.active):after{border-right:1px solid;border-right-color:var(--border);bottom:0;right:0;top:0}.tab-switcher.side-tabs>.tabs .tab-wrapper:before{border-right:1px solid;border-right-color:var(--border);content:"";flex:0 0 6px}.tab-switcher.side-tabs>.tabs .tab-wrapper:last-child .tab{margin-bottom:0}.tab-switcher.side-tabs>.tabs .tab{border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:content-box;flex:1;margin-left:1em;margin-right:-200px;min-width:10em;min-width:1px;padding-left:1em;padding-right:calc(1em + 200px)}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab{margin-left:.25em;margin-right:calc(.25em - 200px);padding-left:.25em;padding-right:calc(.25em + 200px)}.tab-switcher.side-tabs>.tabs .tab .text{display:none}}.tab-switcher .contents{flex:1 0 auto;min-height:0}.tab-switcher .contents .hidden{display:none}.tab-switcher .contents .full-height:not(.hidden){display:flex;flex-direction:column;height:100%}.tab-switcher .contents .full-height:not(.hidden)>:not(.mobile-label){flex:1}.tab-switcher .contents.scrollable-tabs{overflow-y:auto}.tab-switcher .tab{background-color:var(--background);border:none;border-radius:var(--roundness);box-shadow:var(--shadow);color:var(--text);cursor:pointer;font-family:var(--font);font-size:1em;padding:6px 1em;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.tab-switcher .tab:not(.active){z-index:4}.tab-switcher .tab:not(.active):hover{z-index:6}.tab-switcher .tab.active{background:transparent;z-index:5}.tab-switcher .tab img{margin-top:-5px;max-height:26px;vertical-align:top}.tab-switcher .tabs{box-sizing:border-box;display:flex;position:relative}.tab-switcher .tabs:after,.tab-switcher .tabs:before{display:block;flex:1 1 auto}.tab-switcher .tab-wrapper{display:flex;flex:0 0 auto;position:relative}.tab-switcher .tab-wrapper:not(.active):after{content:"";position:absolute;z-index:7}.tab-switcher .mobile-label{border-bottom:1px solid var(--border);margin-bottom:.25em;margin-left:.2em;margin-top:.5em;padding-bottom:.25em;padding-left:.3em}@media (min-width:800px){.tab-switcher .mobile-label{display:none}}.chat-title{--emoji-size:14px;display:flex}.chat-title,.chat-title .username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title .username{word-wrap:break-word;display:inline;max-width:100%}.chat-title .avatar-container{align-self:center;line-height:1}.chat-title .titlebar-avatar{border-radius:var(--roundness);height:1.5em;margin-right:.5em;width:1.5em}.chat-title .titlebar-avatar.animated:before{display:none}.chat-list-item{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;overflow:hidden}.chat-list-item :focus{outline:none}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{word-wrap:break-word;box-sizing:border-box;overflow:hidden;width:100%}.chat-list-item .heading{display:flex;justify-content:space-between;line-height:1em;width:100%}.chat-list-item .heading-right{white-space:nowrap}.chat-list-item .name-and-account-name{flex-shrink:1;line-height:var(--post-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item .chat-preview{color:var(--textFaint);display:flex;margin:.35em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.chat-list-item a{color:var(--linkFaint);pointer-events:none;text-decoration:none}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item .chat-preview-body{--emoji-size:1.4em;padding-right:1em}.chat-list-item .time-wrapper{line-height:var(--post-line-height)}.basic-user-card{--emoji-size:14px;display:flex;flex:1 0;margin:0}.basic-user-card-collapsed-content{flex:1;margin-left:.7em;min-width:0;text-align:left}.basic-user-card-user-name img{height:16px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:16px}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-user-card-expanded-content{flex:1;margin-left:.7em;min-width:0}.chat-new .input-wrap{display:flex;margin:.7em .5em}.chat-new .input-wrap input{width:100%}.chat-new .search-icon{margin-right:.3em}.chat-new .member-list{padding-bottom:.7rem}.chat-new .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-list{margin-bottom:0;min-height:25em}.emtpy-chat-list-alert{color:var(--textFaint);display:flex;font-size:1.2em;justify-content:center;padding:3em}.chat-message-wrapper.hovered-message-chain .animated.Avatar canvas{display:none}.chat-message-wrapper.hovered-message-chain .animated.Avatar img{visibility:visible}.chat-message-wrapper .chat-message-menu{opacity:0;position:absolute;top:-.8em;transition:opacity .1s}.chat-message-wrapper .chat-message-menu button{padding-bottom:.2em;padding-top:.2em}.chat-message-wrapper .menu-icon{cursor:pointer}.chat-message-wrapper .popover{width:12em}.chat-message-wrapper .chat-message{display:flex;padding-bottom:.5em}.chat-message-wrapper .chat-message .status-body:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.chat-message-wrapper .avatar-wrapper{margin-right:.72em;width:32px}.chat-message-wrapper .attachments,.chat-message-wrapper .link-preview{margin-bottom:1em}.chat-message-wrapper .status{background-color:var(--background);border:1px solid var(--border);border-radius:var(--roundness);color:var(--text);display:flex;padding:.75em}.chat-message-wrapper .created-at{float:right;font-size:.8em;font-style:italic;margin:-1em 0 -.5em;opacity:.8;position:relative}.chat-message-wrapper .without-attachment .message-content .RichContent:after{content:" ";display:inline-block;margin-right:5.4em}.chat-message-wrapper .pending .created-at,.chat-message-wrapper .pending .status-content.media-body{color:var(--faint)}.chat-message-wrapper .error .created-at,.chat-message-wrapper .error .status-content.media-body{color:var(--badgeNotification)}.chat-message-wrapper .chat-message-inner{align-items:flex-start;display:flex;flex-direction:column;max-width:80%;min-width:10em;width:100%}.chat-message-wrapper .outgoing{align-content:end;display:flex;flex-flow:row wrap;justify-content:flex-end}.chat-message-wrapper .outgoing .chat-message-inner{align-items:flex-end}.chat-message-wrapper .outgoing .chat-message-menu{right:.4rem}.chat-message-wrapper .incoming .chat-message-menu{left:.4rem}.chat-message-wrapper .chat-message-inner.with-media,.chat-message-wrapper .chat-message-inner.with-media .status{width:100%}.chat-message-wrapper .visible{opacity:1}.chat-message-date-separator{color:var(--textFaint);font-size:.9em;margin:1.4em 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-view{display:flex;height:100%}.chat-view .chat-view-inner{display:flex;height:auto;overflow:visible;width:100%}.chat-view .chat-view-body{border-radius:var(--roundness);border-bottom-left-radius:0;border-bottom-right-radius:0;box-sizing:border-box;display:flex;flex-direction:column;margin:0;min-height:calc(100vh - var(--navbar-height));overflow:visible;width:100%}.chat-view .chat-view-body:after{border-radius:0}.chat-view .message-list{display:flex;flex-direction:column;height:100%;justify-content:end;padding:0 .8em}.chat-view .footer{bottom:0;position:sticky;z-index:1}.chat-view .chat-view-heading{grid-template-columns:auto minmax(50%,1fr)}.chat-view .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-view .jump-to-bottom-button{align-items:center;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);cursor:pointer;display:flex;height:2.5em;justify-content:center;opacity:0;position:absolute;right:1.3em;top:-3.2em;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);visibility:hidden;width:2.5em;z-index:10}.chat-view .jump-to-bottom-button.visible{opacity:1;visibility:visible}.chat-view .jump-to-bottom-button .unread-message-count{border-radius:50px;font-size:.8em;left:50%;margin-top:-1rem;padding:.1em;position:absolute}.chat-view .jump-to-bottom-button .chat-loading-error{align-items:flex-end;display:flex;height:100%;width:100%}.chat-view .jump-to-bottom-button .chat-loading-error .error{width:100%}.follow-card-content-container{display:flex;flex-flow:row wrap;flex-shrink:0;justify-content:space-between;line-height:1.5em}.follow-card-button{margin-left:1em;margin-top:.5em;padding:0 1.5em}.follow-card-follow-button{margin-left:auto;margin-top:.5em;width:10em}.with-load-more-footer{border-top:1px solid;border-top-color:var(--border);padding:10px;text-align:center}.with-load-more-footer .error{font-size:1rem}.with-load-more-footer a{cursor:pointer}.user-profile{--currentPanelStack:1;flex:2;flex-basis:500px}.user-profile .user-birthday{margin:0 .75em .5em}.user-profile .user-profile-fields{margin:0 .5em}.user-profile .user-profile-fields img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-profile .user-profile-fields img.emoji{height:18px;width:18px}.user-profile .user-profile-fields .user-profile-field{border:1px solid var(--border);border-radius:var(--roundness);display:flex;margin:.25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name{border-right:1px solid var(--border);color:var(--lightText);flex:0 1 30%;font-weight:500;min-width:120px;text-align:right}.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{color:var(--text);flex:1 1 70%;margin:0 0 0 .25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name,.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{box-sizing:border-box;line-height:1.3;overflow:hidden;padding:.5em 1.5em;text-overflow:ellipsis;white-space:nowrap}.user-profile .userlist-placeholder{align-items:middle;display:flex;justify-content:center;padding:2em}.user-profile-placeholder .panel-body{align-items:middle;display:flex;justify-content:center;padding:7em}.search-result-heading{color:var(--faint);padding:.75rem;text-align:center}@media (max-width:800px){.search-nav-heading .tab-switcher .tabs .tab-wrapper{display:block;flex:1 1 auto;justify-content:center;text-align:center}}.search-result{border-bottom:1px solid;border-color:var(--border);box-sizing:border-box}.search-input-container{display:flex;justify-content:center;padding:.8rem}.search-input-container .search-input{box-sizing:border-box;font-size:1rem;line-height:1.125rem;padding:.5rem;width:100%}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{align-items:center;display:flex}.trend .hashtag{color:var(--text);flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count{color:var(--text);flex:0 0 auto;font-size:1.5rem;font-weight:500;line-height:2.25rem;text-align:center;width:2rem}.more-statuses-button{height:3.5em;line-height:3.5em;width:100%}.interface-language-switcher .language-select{margin-right:1em}.registration-form{display:flex;flex-direction:column;margin:.6em}.registration-form .container{display:flex;flex-direction:row}.registration-form .container>*{min-width:0}.registration-form .terms-of-service{flex:0 1 50%;margin:.8em}.registration-form .text-fields{display:flex;flex:1 0;flex-direction:column;margin-top:.6em}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:flex;flex-direction:column;line-height:2;margin-bottom:1em;padding:.3em 0}.registration-form .form-group--error{animation-duration:.6s;animation-name:shakeError;animation-timing-function:ease-in-out}.registration-form .form-group--error .form--label{color:var(--cRed)}.registration-form .form-error{margin-top:-.7em;text-align:left}.registration-form .form-error span{font-size:.85em}.registration-form .form-error ul{list-style:none;margin-top:0;padding:0 0 0 5px}.registration-form .form-error ul li:before{content:"• "}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{margin-bottom:.4em;max-width:350px}.registration-form .btn{height:2em;margin-top:.6em}.registration-form .error{text-align:center}.registration-notice{margin:.6em}@media (max-width:800px){.registration-form .container{flex-direction:column-reverse}}.password-reset-form{align-items:center;display:flex;flex-direction:column;margin:.6em}.password-reset-form .container{display:flex;flex:1 0;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .container>*{min-width:0}.password-reset-form .form-group{display:flex;flex-direction:column;line-height:1.85em;margin-bottom:1em;padding:.3em 0}.password-reset-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.password-reset-form .alert{margin:.3em 0 1em;padding:.5em}.password-reset-form .notice-dismissible{padding-right:2rem}.password-reset-form .dismiss{cursor:pointer}.follow-request-card-content-container{display:flex;flex-flow:row wrap}.follow-request-card-content-container button{flex:1 1;margin-right:.5em;margin-top:.5em;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}.tos-content{margin:1em}.staff-group{padding-left:1em;padding-top:1em}.staff-group .basic-user-card{padding-left:0}.mrf-section{margin:1em}.mrf-section table{padding-bottom:20px;padding-left:10px;text-align:left;width:100%}.mrf-section table td,.mrf-section table th{max-width:360px;overflow:hidden;vertical-align:text-top;width:180px}.mrf-section table td+td,.mrf-section table th+th{width:auto}.list-card{display:flex}.list-name{flex-grow:1}.button-list-edit,.list-name{color:var(--link);margin:0;padding:1em}.Lists .new-list-button{padding:0 .5em}.ListsUserSearch .input-wrap{display:flex;margin:.7em .5em}.ListsUserSearch .input-wrap input{width:100%}.ListsUserSearch .search-icon{margin-right:.3em}.panel-loading{align-items:center;color:var(--text);display:flex;font-size:2em;height:100%;justify-content:center}.panel-loading .loading-text svg{color:var(--text);line-height:0;vertical-align:middle}.ListEdit{--panel-body-padding:0.5em;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.ListEdit .list-edit-heading{grid-template-columns:auto minmax(50%,1fr)}.ListEdit .panel-body{display:flex;flex:1;flex-direction:column;overflow:hidden}.ListEdit .list-member-management{flex:1 0 auto}.ListEdit .search-icon{margin-right:.3em}.ListEdit .users-list{overflow-y:auto;padding-bottom:.7rem}.ListEdit .members-list,.ListEdit .search-list{flex-direction:column;min-height:0;overflow:hidden}.ListEdit .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.ListEdit .btn{margin:0 .5em}.ListEdit .panel-footer{grid-template-columns:minmax(10%,1fr)}.ListEdit .panel-footer .footer-button{min-width:9em}.announcement-editor{align-items:stretch;display:flex;flex-direction:column}.announcement-editor .announcement-metadata{margin-top:.5em}.announcement-editor .post-textarea{box-sizing:content-box;height:10em;overflow:none;resize:vertical}.announcement{border-bottom:1px solid var(--border);border-radius:0;padding:var(--status-margin)}.announcement .body,.announcement .heading{margin-bottom:var(--status-margin)}.announcement .footer,.announcement .footer .times{display:flex;flex-direction:column}.announcement .footer .actions{display:flex;flex-direction:row;justify-content:space-evenly}.announcement .footer .actions .btn{flex:1;margin:1em;max-width:10em}.announcements-page .post-form{padding:var(--status-margin)}.announcements-page .post-form .body,.announcements-page .post-form .heading{margin-bottom:var(--status-margin)}.announcements-page .post-form .post-button{min-width:10em} +/*# sourceMappingURL=app.75b043cffb8e922bc29e.css.map*/ \ No newline at end of file diff --git a/priv/static/static/css/app.75b043cffb8e922bc29e.css.map b/priv/static/static/css/app.75b043cffb8e922bc29e.css.map new file mode 100644 index 000000000..71326425d --- /dev/null +++ b/priv/static/static/css/app.75b043cffb8e922bc29e.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/app.75b043cffb8e922bc29e.css","mappings":"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BAEA,0BACA,wBAJA,sBACA,CAnBA,WACA,CAUA,0BACA,mBACA,CACA,oBACA,CAhBA,qBACA,CAQA,UACA,CAFA,aACA,CAFA,cACA,CAVF,aAEE,CAKA,mBACA,CAFA,iBACA,CACA,eACA,CAUA,gCACA,CAhBA,YACA,CAeA,qDACA,CATA,iBACA,CARA,kBACA,CAOA,kBACA,CAIA,UAQA,yDAEA,WACE,yEAKA,wBAFF,oBAGE,CAKA,wwBAGF,kBAEE,+DAGF,uBACE,yGAMA,eACA,YACA,CAKA,kBAJA,cACA,CACA,mBACA,CAFA,cACA,CACA,iBACA,CALA,YACA,CAJA,SACA,CAHF,kBAWE,+CAIA,uCACA,CAFF,wCACE,CACA,kBACA,6CAIA,0CACA,CAFF,2CACE,CACA,qBACA,kBAWF,4BACA,CARF,WACE,CAKA,wBACA,CAIA,sBACA,eAFA,cACA,CATA,cACA,CAEA,mBACA,CAFA,cACA,CAIA,iBACA,CATA,YACA,CAMA,SACA,CANA,kBAUA,wBAEA,2BAEE,gBAOF,YACA,uBAJF,WAEE,qBA4BA,CA1BA,OAGF,gBASE,CAEA,kCACA,CACA,wBACA,CAGA,qBACA,CANA,iBACA,CACA,uBACA,cACA,CAKA,oBACA,CADA,YACA,CAFA,aACA,CALA,QACA,CAKA,0BAHA,iBAIA,iBArBE,yBAEA,CAHF,eACE,CAEA,eACA,aACA,2DAmBF,kBAGE,oBAGF,eACE,YACA,CACA,eACA,QAFA,QAGA,oBAGF,YACE,yCAGE,kCACA,CAFF,wBACE,CACA,iBACA,wGAIA,UAGE,iCAWF,kCACA,CAFA,kBACA,CACA,wBACA,CAKA,qBACA,kBACA,CAdA,WACA,CAFA,oBACA,CAFF,aACE,CAYA,eACA,CATA,YACA,CAMA,eACA,CAJA,iBACA,CAMA,gBALA,iBACA,CATA,yBACA,CAMA,kBACA,CAPA,WAaA,4CAMA,kCACA,0BAFF,iBAGE,iHAIA,UAGE,oCAUF,8BACA,yBACA,CAKA,qBACA,kBACA,CAbA,WACA,CAFA,oBACA,CAFF,aACE,CAWA,eACA,CARA,YACA,CAKA,eACA,CAJA,iB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","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.css","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/extra_notifications/extra_notifications.vue","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n",".vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:auto 0 0}.vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}","\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n.media-upload {\n .hidden-input-file {\n display: none;\n }\n}\n\nlabel.media-upload {\n cursor: pointer; // We use