From 0db8a6c0b8e170e05015f1c34d07f2341fc822f7 Mon Sep 17 00:00:00 2001 From: lud Date: Wed, 9 Apr 2025 08:30:15 +0200 Subject: [PATCH 01/13] Allow groups to carry descriptions --- .../epub/templates/module_template.eex | 6 +-- lib/ex_doc/formatter/html/templates.ex | 11 ++++- .../html/templates/module_template.eex | 6 +-- lib/ex_doc/group_matcher.ex | 2 +- lib/ex_doc/nodes.ex | 6 ++- lib/ex_doc/retriever.ex | 45 ++++++++++++++++++- test/ex_doc/retriever/erlang_test.exs | 6 +-- test/ex_doc/retriever_test.exs | 32 +++++++++++++ 8 files changed, 99 insertions(+), 15 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/module_template.eex b/lib/ex_doc/formatter/epub/templates/module_template.eex index d73158afa..f1644be86 100644 --- a/lib/ex_doc/formatter/epub/templates/module_template.eex +++ b/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -18,13 +18,13 @@ <%= if summary != [] do %>

Summary

- <%= for {name, nodes} <- summary, do: H.summary_template(name, nodes) %> + <%= for {group, nodes} <- summary, do: H.summary_template(group.title, nodes) %>
<% end %> - <%= for {name, nodes} <- summary, key = text_to_id(name) do %> + <%= for {group, nodes} <- summary, key = text_to_id(group.title) do %>
-

<%=h to_string(name) %>

+

<%=h to_string(group.title) %>

<%= for node <- nodes, do: H.detail_template(node, module) %>
diff --git a/lib/ex_doc/formatter/html/templates.ex b/lib/ex_doc/formatter/html/templates.ex index c379126cd..468cc71b6 100644 --- a/lib/ex_doc/formatter/html/templates.ex +++ b/lib/ex_doc/formatter/html/templates.ex @@ -142,7 +142,7 @@ defmodule ExDoc.Formatter.HTML.Templates do %{id: id, title: node.signature, anchor: URI.encode(node.id), deprecated: deprecated?} end - %{key: text_to_id(group), name: group, nodes: nodes} + %{key: text_to_id(group.title), name: group.title, nodes: nodes} end defp headers(doc) do @@ -155,7 +155,14 @@ defmodule ExDoc.Formatter.HTML.Templates do def module_summary(module_node) do # TODO: Maybe it should be moved to retriever and it already returned grouped metadata - ExDoc.GroupMatcher.group_by(module_node.docs_groups, module_node.docs, & &1.group) + + group_titles = Enum.map(module_node.docs_groups, & &1.title) + groups_index = Map.new(module_node.docs_groups, &{&1.title, &1}) + docs_groups = ExDoc.GroupMatcher.group_by(group_titles, module_node.docs, & &1.group) + + Enum.map(docs_groups, fn {group_title, nodes} -> + {Map.fetch!(groups_index, group_title), nodes} + end) end defp favicon_path(%{favicon: nil}), do: nil diff --git a/lib/ex_doc/formatter/html/templates/module_template.eex b/lib/ex_doc/formatter/html/templates/module_template.eex index 6990304ec..9a0c4d001 100644 --- a/lib/ex_doc/formatter/html/templates/module_template.eex +++ b/lib/ex_doc/formatter/html/templates/module_template.eex @@ -39,17 +39,17 @@ Summary - <%= for {name, nodes} <- summary, do: summary_template(name, nodes) %> + <%= for {group, nodes} <- summary, do: summary_template(group.title, nodes) %>
<% end %> -<%= for {name, nodes} <- summary, key = text_to_id(name) do %> +<%= for {group, nodes} <- summary, key = text_to_id(group.title) do %>

- <%= name %> + <%= group.title %>

<%= for node <- nodes, do: detail_template(node, module) %> diff --git a/lib/ex_doc/group_matcher.ex b/lib/ex_doc/group_matcher.ex index c2e105c7a..613a1c78c 100644 --- a/lib/ex_doc/group_matcher.ex +++ b/lib/ex_doc/group_matcher.ex @@ -15,7 +15,7 @@ defmodule ExDoc.GroupMatcher do end @doc """ - Group the following entries and while preserving the order in `groups`. + Group the following entries while preserving the order in `groups`. """ def group_by(groups, entries, by) do entries = Enum.group_by(entries, by) diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index f0ca2de93..e789937cd 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -25,6 +25,10 @@ defmodule ExDoc.ModuleNode do metadata: nil @typep annotation :: atom() + @typep doc_group :: %{ + title: String.t() | atom(), + description: String.t() | nil + } @type t :: %__MODULE__{ id: String.t(), @@ -41,7 +45,7 @@ defmodule ExDoc.ModuleNode do moduledoc_file: String.t(), source_path: String.t() | nil, source_url: String.t() | nil, - docs_groups: [atom()], + docs_groups: [doc_group], docs: [ExDoc.DocNode.t()], typespecs: [ExDoc.DocNode.t()], type: atom(), diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index b7aadd7eb..7490dc0e2 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -142,6 +142,12 @@ defmodule ExDoc.Retriever do annotations_for_docs = config.annotations_for_docs docs = get_docs(module_data, source, group_for_doc, annotations_for_docs) + + moduledoc_groups = Map.get(metadata, :groups, []) + + {docs_groups, docs} = + get_docs_groups(moduledoc_groups ++ config.docs_groups ++ module_data.default_groups, docs) + metadata = Map.put(metadata, :kind, module_data.type) group = GroupMatcher.match_module(config.groups_for_modules, module, module_data.id, metadata) {nested_title, nested_context} = module_data.nesting_info || {nil, nil} @@ -155,7 +161,7 @@ defmodule ExDoc.Retriever do module: module, type: module_data.type, deprecated: metadata[:deprecated], - docs_groups: config.docs_groups ++ module_data.default_groups, + docs_groups: docs_groups, docs: ExDoc.Utils.natural_sort_by(docs, &"#{&1.name}/#{&1.arity}"), doc: normalize_doc_ast(doc_ast, "module-"), source_doc: source_doc, @@ -204,6 +210,30 @@ defmodule ExDoc.Retriever do filter_defaults(nodes) end + defp get_docs_groups(module_groups, doc_nodes) do + module_groups = Enum.map(module_groups, &normalize_group/1) + + # Doc nodes already have normalized groups + nodes_groups = Enum.map(doc_nodes, & &1.group) + + normal_groups = module_groups ++ nodes_groups + + {docs_groups, _} = + Enum.flat_map_reduce(normal_groups, %{}, fn group, seen -> + if is_map_key(seen, group.title) do + {[], seen} + else + {[group], Map.put(seen, group.title, true)} + end + end) + + # We do not need the full group data in each doc node anymore, only the + # title. + doc_nodes = Enum.map(doc_nodes, &Map.put(&1, :group, &1.group.title)) + + {docs_groups, doc_nodes} + end + defp get_doc(doc, doc_data, module_data, source, group_for_doc, annotations_for_docs) do {:docs_v1, _, _, content_type, _, module_metadata, _} = module_data.docs {{type, name, arity}, anno, _signature, source_doc, metadata} = doc @@ -228,7 +258,7 @@ defmodule ExDoc.Retriever do doc_ast(content_type, source_doc, file: doc_file, line: doc_line + 1) || doc_data.doc_fallback.() - group = group_for_doc.(metadata) || doc_data.default_group +group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) id = doc_data.id_key <> nil_or_name(name, arity) %ExDoc.DocNode{ @@ -321,4 +351,15 @@ defmodule ExDoc.Retriever do defp source_link(%{url_pattern: url_pattern, relative_path: path}, line) do url_pattern.(path, line) end + + defp normalize_group(group) do + case group do + %{title: title, description: description} + when is_binary(title) and (is_binary(description) or is_nil(description)) -> + group + + title when is_binary(title) when is_atom(title) -> + %{title: title, description: nil} + end + end end diff --git a/test/ex_doc/retriever/erlang_test.exs b/test/ex_doc/retriever/erlang_test.exs index 5cf5bc43b..7bd5cda84 100644 --- a/test/ex_doc/retriever/erlang_test.exs +++ b/test/ex_doc/retriever/erlang_test.exs @@ -59,7 +59,7 @@ defmodule ExDoc.Retriever.ErlangTest do moduledoc_line: 2, moduledoc_file: moduledoc_file, docs: [equiv_function2, function1, function2], - docs_groups: ["Types", "Callbacks", "Functions"], + docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -154,7 +154,7 @@ defmodule ExDoc.Retriever.ErlangTest do moduledoc_line: 6, moduledoc_file: moduledoc_file, docs: [type, callback, function], - docs_groups: ["Types", "Callbacks", "Functions"], + docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -393,7 +393,7 @@ defmodule ExDoc.Retriever.ErlangTest do deprecated: nil, moduledoc_line: _, docs: [function1, function2], - docs_groups: ["Types", "Callbacks", "Functions"], + docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], group: nil, id: "mod", language: ExDoc.Language.Erlang, diff --git a/test/ex_doc/retriever_test.exs b/test/ex_doc/retriever_test.exs index 80588962a..ac07be172 100644 --- a/test/ex_doc/retriever_test.exs +++ b/test/ex_doc/retriever_test.exs @@ -108,6 +108,38 @@ defmodule ExDoc.RetrieverTest do assert %{id: "baz/0", group: "c"} = baz end + test "function groups description use moduledoc :groups metadata", c do + elixirc(c, ~S""" + defmodule A do + @moduledoc groups: [ + "c", + %{title: "b", description: "text for b"} + ] + + @doc group: "a" + @callback foo() :: :ok + + @doc group: "b" + def bar(), do: :ok + + @doc group: "c" + def baz(), do: :ok + end + """) + + config = %ExDoc.Config{} + {[mod], []} = Retriever.docs_from_modules([A], config) + + assert [ + %{description: nil, title: "c"}, + %{description: "text for b", title: "b"}, + %{description: nil, title: "Types"}, + %{description: nil, title: "Callbacks"}, + %{description: nil, title: "Functions"}, + %{description: nil, title: "a"} + ] = mod.docs_groups + end + test "function annotations", c do elixirc(c, ~S""" defmodule A do From 5f7c99e6660a57ec66004756869a90057864e658 Mon Sep 17 00:00:00 2001 From: lud Date: Wed, 9 Apr 2025 09:10:17 +0200 Subject: [PATCH 02/13] Accept groups descriptions from callback --- lib/ex_doc/retriever.ex | 27 +++++++++++++--- test/ex_doc/retriever_test.exs | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 5 deletions(-) diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 7490dc0e2..722701415 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -215,16 +215,29 @@ defmodule ExDoc.Retriever do # Doc nodes already have normalized groups nodes_groups = Enum.map(doc_nodes, & &1.group) + nodes_groups_descriptions = Map.new(nodes_groups, &{&1.title, &1.description}) normal_groups = module_groups ++ nodes_groups {docs_groups, _} = - Enum.flat_map_reduce(normal_groups, %{}, fn group, seen -> - if is_map_key(seen, group.title) do + Enum.flat_map_reduce(normal_groups, %{}, fn + group, seen when is_map_key(seen, group.title) -> {[], seen} - else - {[group], Map.put(seen, group.title, true)} - end + + group, seen -> + seen = Map.put(seen, group.title, group.description) + + group = + case group do + %{description: nil} -> + description = Map.get(nodes_groups_descriptions, group.title, nil) + Map.put(group, :description, description) + + _ -> + group + end + + {[group], seen} end) # We do not need the full group data in each doc node anymore, only the @@ -358,6 +371,10 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) when is_binary(title) and (is_binary(description) or is_nil(description)) -> group + kw when is_list(kw) -> + true = Keyword.keyword?(kw) + %{title: Keyword.fetch!(kw, :title), description: kw[:description]} + title when is_binary(title) when is_atom(title) -> %{title: title, description: nil} end diff --git a/test/ex_doc/retriever_test.exs b/test/ex_doc/retriever_test.exs index ac07be172..9c8eca5b6 100644 --- a/test/ex_doc/retriever_test.exs +++ b/test/ex_doc/retriever_test.exs @@ -108,6 +108,62 @@ defmodule ExDoc.RetrieverTest do assert %{id: "baz/0", group: "c"} = baz end + test "default_group_for_doc can return group description from @moduledoc", c do + elixirc(c, ~S""" + defmodule A do + + @moduledoc groups: [ + "c", + %{title: "b", description: "predefined b"} + ] + + @doc test_group: "a" + @callback foo() :: :ok + + @doc test_group: "b" + def bar(), do: :ok + + @doc test_group: "c" + def baz(), do: :ok + end + """) + + config = %ExDoc.Config{ + group_for_doc: fn meta -> + case meta[:test_group] do + "a" -> [title: "a", description: "for a"] + "b" -> [title: "b", description: "ignored description"] + "c" -> [title: "c", description: "for c"] + end + end + } + + {[mod], []} = Retriever.docs_from_modules([A], config) + + assert [c, b, types, callbacks, functions, a] = mod.docs_groups + + # Description returned by the function should override nil + assert %{title: "c", description: "for c"} = c + + # Description returned by the function should not override a + # description from @moduledoc + assert %{title: "b", description: "predefined b"} = b + + assert %{title: "Types", description: nil} = types + assert %{title: "Callbacks", description: nil} = callbacks + assert %{title: "Functions", description: nil} = functions + + # Description returned by th function should define a description + # for leftover groups + assert %{title: "a", description: "for a"} = a + + [bar, baz, foo] = mod.docs + + assert %{id: "c:foo/0", group: "a"} = foo + assert %{id: "bar/0", group: "b"} = bar + assert %{id: "baz/0", group: "c"} = baz + end + test "function groups description use moduledoc :groups metadata", c do elixirc(c, ~S""" defmodule A do From c8afabd4f6943eea970de761f72909e8dfbf1eb6 Mon Sep 17 00:00:00 2001 From: lud Date: Wed, 9 Apr 2025 10:17:33 +0200 Subject: [PATCH 03/13] Render groups descriptions --- .../epub/templates/module_template.eex | 5 +++ lib/ex_doc/formatter/html.ex | 8 ++++- lib/ex_doc/formatter/html/templates.ex | 4 +++ .../html/templates/module_template.eex | 5 +++ lib/ex_doc/nodes.ex | 14 +++++--- lib/ex_doc/retriever.ex | 11 ++++++ test/ex_doc/formatter/epub/templates_test.exs | 36 +++++++++++++++++++ test/ex_doc/formatter/html/templates_test.exs | 36 +++++++++++++++++++ 8 files changed, 113 insertions(+), 6 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/module_template.eex b/lib/ex_doc/formatter/epub/templates/module_template.eex index f1644be86..02e3201a4 100644 --- a/lib/ex_doc/formatter/epub/templates/module_template.eex +++ b/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -25,6 +25,11 @@ <%= for {group, nodes} <- summary, key = text_to_id(group.title) do %>

<%=h to_string(group.title) %>

+ <%= if doc = group.rendered_doc do %> +
+ <%= H.link_group_headings(doc, key) %> +
+ <% end %>
<%= for node <- nodes, do: H.detail_template(node, module) %>
diff --git a/lib/ex_doc/formatter/html.ex b/lib/ex_doc/formatter/html.ex index 2afe6e0fe..f4fe711c9 100644 --- a/lib/ex_doc/formatter/html.ex +++ b/lib/ex_doc/formatter/html.ex @@ -105,9 +105,15 @@ defmodule ExDoc.Formatter.HTML do render_doc(child_node, language, autolink_opts, opts) end + docs_groups = + for group <- node.docs_groups do + render_doc(group, language, autolink_opts, opts) + end + %{ render_doc(node, language, [{:id, node.id} | autolink_opts], opts) - | docs: docs + | docs: docs, + docs_groups: docs_groups } end, timeout: :infinity diff --git a/lib/ex_doc/formatter/html/templates.ex b/lib/ex_doc/formatter/html/templates.ex index 468cc71b6..ec0dd80d8 100644 --- a/lib/ex_doc/formatter/html/templates.ex +++ b/lib/ex_doc/formatter/html/templates.ex @@ -228,6 +228,10 @@ defmodule ExDoc.Formatter.HTML.Templates do end) end + def link_group_headings(content, key) do + link_headings(content, "group-#{key}-") + end + templates = [ detail_template: [:node, :module], footer_template: [:config, :source_path], diff --git a/lib/ex_doc/formatter/html/templates/module_template.eex b/lib/ex_doc/formatter/html/templates/module_template.eex index 9a0c4d001..b5029e014 100644 --- a/lib/ex_doc/formatter/html/templates/module_template.eex +++ b/lib/ex_doc/formatter/html/templates/module_template.eex @@ -51,6 +51,11 @@ <%= group.title %> + <%= if doc = group.rendered_doc do %> +
+ <%= link_group_headings(doc, key) %> +
+ <% end %>
<%= for node <- nodes, do: detail_template(node, module) %>
diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index e789937cd..d821267dd 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -25,10 +25,14 @@ defmodule ExDoc.ModuleNode do metadata: nil @typep annotation :: atom() - @typep doc_group :: %{ - title: String.t() | atom(), - description: String.t() | nil - } + + # TODO: Maybe this is worth its own module + @type doc_group :: %{ + title: String.t() | atom(), + description: String.t() | nil, + doc: ExDoc.DocAST.t() | nil, + rendered_doc: String.t() | nil + } @type t :: %__MODULE__{ id: String.t(), @@ -89,7 +93,7 @@ defmodule ExDoc.DocNode do signature: String.t(), specs: [ExDoc.Language.spec_ast()], annotations: [annotation()], - group: atom() | nil, + group: String.t() | ExDoc.ModuleNode.doc_group() | nil, doc_file: String.t(), doc_line: non_neg_integer(), source_url: String.t() | nil diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 722701415..5ed80a79e 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -240,6 +240,17 @@ defmodule ExDoc.Retriever do {[group], seen} end) + docs_groups = + Enum.map(docs_groups, fn group -> + doc_ast = + case group.description do + nil -> nil + text -> doc_ast("text/markdown", %{"en" => text}, []) + end + + Map.merge(group, %{doc: doc_ast, rendered_doc: nil}) + end) + # We do not need the full group data in each doc node anymore, only the # title. doc_nodes = Enum.map(doc_nodes, &Map.put(&1, :group, &1.group.title)) diff --git a/test/ex_doc/formatter/epub/templates_test.exs b/test/ex_doc/formatter/epub/templates_test.exs index e3937269a..0e2cbeefa 100644 --- a/test/ex_doc/formatter/epub/templates_test.exs +++ b/test/ex_doc/formatter/epub/templates_test.exs @@ -145,6 +145,42 @@ defmodule ExDoc.Formatter.EPUB.TemplatesTest do assert content =~ ~r{id="functions".*id="example_1/0"}ms end + test "outputs groups descriptions" do + content = + get_module_page([CompiledWithDocs], + group_for_doc: fn metadata -> + if metadata[:purpose] == :example do + [ + title: "Example functions", + description: """ + ### A section heading example + + A content example. + + See `example/1` or `example/2`. + A link to `flatten/1`. + """ + ] + else + "Functions" + end + end + ) + + doc = LazyHTML.from_document(content) + + assert Enum.count(doc["div.group-description"]) == 1 + assert Enum.count(doc["#group-description-example-functions"]) == 1 + assert Enum.count(doc["#group-description-example-functions h3"]) == 1 + assert Enum.count(doc["#group-example-functions-a-section-heading-example"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#example/1']"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#example/2']"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#flatten/1']"]) == 1 + + assert content =~ ~s[A section heading example] + assert content =~ "

A content example.

" + end + test "outputs summaries" do content = get_module_page([CompiledWithDocs]) diff --git a/test/ex_doc/formatter/html/templates_test.exs b/test/ex_doc/formatter/html/templates_test.exs index 80421705d..127b57afd 100644 --- a/test/ex_doc/formatter/html/templates_test.exs +++ b/test/ex_doc/formatter/html/templates_test.exs @@ -361,6 +361,42 @@ defmodule ExDoc.Formatter.HTML.TemplatesTest do assert Enum.count(doc["#functions [id='example/2']"]) == 0 end + test "outputs groups descriptions", context do + content = + get_module_page([CompiledWithDocs], context, + group_for_doc: fn metadata -> + if metadata[:purpose] == :example do + [ + title: "Example functions", + description: """ + ### A section heading example + + A content example. + + See `example/1` or `example/2`. + A link to `flatten/1`. + """ + ] + else + "Functions" + end + end + ) + + doc = LazyHTML.from_document(content) + + assert Enum.count(doc["div.group-description"]) == 1 + assert Enum.count(doc["#group-description-example-functions"]) == 1 + assert Enum.count(doc["#group-description-example-functions h3"]) == 1 + assert Enum.count(doc["#group-example-functions-a-section-heading-example"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#example/1']"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#example/2']"]) == 1 + assert Enum.count(doc["#example-functions .group-description a[href='#flatten/1']"]) == 1 + + assert content =~ ~s[A section heading example] + assert content =~ "

A content example.

" + end + test "outputs deprecation information", context do content = get_module_page([CompiledWithDocs], context) From 7129e9c5602ee5d6876be530d2278a3694a49715 Mon Sep 17 00:00:00 2001 From: lud Date: Wed, 9 Apr 2025 10:52:13 +0200 Subject: [PATCH 04/13] refactor --- lib/ex_doc/retriever.ex | 95 ++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 49 deletions(-) diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 5ed80a79e..ec09c6f07 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -145,9 +145,11 @@ defmodule ExDoc.Retriever do moduledoc_groups = Map.get(metadata, :groups, []) - {docs_groups, docs} = + docs_groups = get_docs_groups(moduledoc_groups ++ config.docs_groups ++ module_data.default_groups, docs) + docs = Enum.map(docs, &Map.put(&1, :group, &1.group.title)) + metadata = Map.put(metadata, :kind, module_data.type) group = GroupMatcher.match_module(config.groups_for_modules, module, module_data.id, metadata) {nested_title, nested_context} = module_data.nesting_info || {nil, nil} @@ -210,54 +212,6 @@ defmodule ExDoc.Retriever do filter_defaults(nodes) end - defp get_docs_groups(module_groups, doc_nodes) do - module_groups = Enum.map(module_groups, &normalize_group/1) - - # Doc nodes already have normalized groups - nodes_groups = Enum.map(doc_nodes, & &1.group) - nodes_groups_descriptions = Map.new(nodes_groups, &{&1.title, &1.description}) - - normal_groups = module_groups ++ nodes_groups - - {docs_groups, _} = - Enum.flat_map_reduce(normal_groups, %{}, fn - group, seen when is_map_key(seen, group.title) -> - {[], seen} - - group, seen -> - seen = Map.put(seen, group.title, group.description) - - group = - case group do - %{description: nil} -> - description = Map.get(nodes_groups_descriptions, group.title, nil) - Map.put(group, :description, description) - - _ -> - group - end - - {[group], seen} - end) - - docs_groups = - Enum.map(docs_groups, fn group -> - doc_ast = - case group.description do - nil -> nil - text -> doc_ast("text/markdown", %{"en" => text}, []) - end - - Map.merge(group, %{doc: doc_ast, rendered_doc: nil}) - end) - - # We do not need the full group data in each doc node anymore, only the - # title. - doc_nodes = Enum.map(doc_nodes, &Map.put(&1, :group, &1.group.title)) - - {docs_groups, doc_nodes} - end - defp get_doc(doc, doc_data, module_data, source, group_for_doc, annotations_for_docs) do {:docs_v1, _, _, content_type, _, module_metadata, _} = module_data.docs {{type, name, arity}, anno, _signature, source_doc, metadata} = doc @@ -322,6 +276,49 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) end) end + defp get_docs_groups(module_groups, doc_nodes) do + module_groups = Enum.map(module_groups, &normalize_group/1) + + # Doc nodes already have normalized groups + nodes_groups = Enum.map(doc_nodes, & &1.group) + nodes_groups_descriptions = Map.new(nodes_groups, &{&1.title, &1.description}) + + normal_groups = module_groups ++ nodes_groups + + {docs_groups, _} = + Enum.flat_map_reduce(normal_groups, %{}, fn + group, seen when is_map_key(seen, group.title) -> + {[], seen} + + group, seen -> + seen = Map.put(seen, group.title, true) + group = finalize_group(group, nodes_groups_descriptions) + {[group], seen} + end) + + docs_groups + end + + defp finalize_group(group, description_fallbacks) do + description = + case group.description do + nil -> Map.get(description_fallbacks, group.title) + text -> text + end + + doc_ast = + case description do + nil -> nil + text -> doc_ast("text/markdown", %{"en" => text}, []) + end + + Map.merge(group, %{ + description: description, + doc: doc_ast, + rendered_doc: nil + }) + end + ## General helpers defp nil_or_name(name, arity) do From 73e18a1840fe0ca75e3a689d0258b4aad1f246f8 Mon Sep 17 00:00:00 2001 From: lud Date: Thu, 17 Apr 2025 06:46:18 +0200 Subject: [PATCH 05/13] use new struct for node group --- lib/ex_doc/nodes.ex | 23 +++++++++++++---------- lib/ex_doc/retriever.ex | 5 +++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index d821267dd..4d13d0463 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -26,14 +26,6 @@ defmodule ExDoc.ModuleNode do @typep annotation :: atom() - # TODO: Maybe this is worth its own module - @type doc_group :: %{ - title: String.t() | atom(), - description: String.t() | nil, - doc: ExDoc.DocAST.t() | nil, - rendered_doc: String.t() | nil - } - @type t :: %__MODULE__{ id: String.t(), title: String.t(), @@ -49,7 +41,7 @@ defmodule ExDoc.ModuleNode do moduledoc_file: String.t(), source_path: String.t() | nil, source_url: String.t() | nil, - docs_groups: [doc_group], + docs_groups: [ExDoc.DocGroupNode.t()], docs: [ExDoc.DocNode.t()], typespecs: [ExDoc.DocNode.t()], type: atom(), @@ -93,9 +85,20 @@ defmodule ExDoc.DocNode do signature: String.t(), specs: [ExDoc.Language.spec_ast()], annotations: [annotation()], - group: String.t() | ExDoc.ModuleNode.doc_group() | nil, + group: String.t() | ExDoc.DocGroupNode.t() | nil, doc_file: String.t(), doc_line: non_neg_integer(), source_url: String.t() | nil } end + +defmodule ExDoc.DocGroupNode do + defstruct title: nil, description: nil, doc: nil, rendered_doc: nil + + @type t :: %__MODULE__{ + title: String.t() | atom(), + description: String.t() | nil, + doc: ExDoc.DocAST.t() | nil, + rendered_doc: String.t() | nil + } +end diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index ec09c6f07..299b79372 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -312,11 +312,12 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) text -> doc_ast("text/markdown", %{"en" => text}, []) end - Map.merge(group, %{ + %ExDoc.DocGroupNode{ + title: group.title, description: description, doc: doc_ast, rendered_doc: nil - }) + } end ## General helpers From 198ca698e7499cc3224636ec9faa6b6ddbe3bfdf Mon Sep 17 00:00:00 2001 From: lud Date: Thu, 17 Apr 2025 06:47:25 +0200 Subject: [PATCH 06/13] enforce group titles as binaries --- lib/ex_doc/retriever.ex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 299b79372..3328f84e2 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -378,14 +378,14 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) case group do %{title: title, description: description} when is_binary(title) and (is_binary(description) or is_nil(description)) -> - group + %{group | title: title, description: description} kw when is_list(kw) -> true = Keyword.keyword?(kw) - %{title: Keyword.fetch!(kw, :title), description: kw[:description]} + %{title: to_string(Keyword.fetch!(kw, :title)), description: kw[:description]} title when is_binary(title) when is_atom(title) -> - %{title: title, description: nil} + %{title: to_string(title), description: nil} end end end From 652ad72e59071056e4fbd9fa0d8407a199386f93 Mon Sep 17 00:00:00 2001 From: lud Date: Thu, 17 Apr 2025 07:43:55 +0200 Subject: [PATCH 07/13] do not store groups in DocNode temporarily --- lib/ex_doc/nodes.ex | 2 +- lib/ex_doc/retriever.ex | 28 ++++++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index 4d13d0463..8f77df4a1 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -85,7 +85,7 @@ defmodule ExDoc.DocNode do signature: String.t(), specs: [ExDoc.Language.spec_ast()], annotations: [annotation()], - group: String.t() | ExDoc.DocGroupNode.t() | nil, + group: String.t() | nil, doc_file: String.t(), doc_line: non_neg_integer(), source_url: String.t() | nil diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 3328f84e2..0b47191d1 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -141,14 +141,15 @@ defmodule ExDoc.Retriever do group_for_doc = config.group_for_doc annotations_for_docs = config.annotations_for_docs - docs = get_docs(module_data, source, group_for_doc, annotations_for_docs) + {docs, docs_groups} = get_docs(module_data, source, group_for_doc, annotations_for_docs) moduledoc_groups = Map.get(metadata, :groups, []) docs_groups = - get_docs_groups(moduledoc_groups ++ config.docs_groups ++ module_data.default_groups, docs) - - docs = Enum.map(docs, &Map.put(&1, :group, &1.group.title)) + get_docs_groups( + moduledoc_groups ++ config.docs_groups ++ module_data.default_groups, + docs_groups + ) metadata = Map.put(metadata, :kind, module_data.type) group = GroupMatcher.match_module(config.groups_for_modules, module, module_data.id, metadata) @@ -203,13 +204,15 @@ defmodule ExDoc.Retriever do defp get_docs(module_data, source, group_for_doc, annotations_for_docs) do {:docs_v1, _, _, _, _, _, docs} = module_data.docs - nodes = + {nodes, groups} = for doc <- docs, doc_data = module_data.language.doc_data(doc, module_data) do - get_doc(doc, doc_data, module_data, source, group_for_doc, annotations_for_docs) + {_node, _group} = + get_doc(doc, doc_data, module_data, source, group_for_doc, annotations_for_docs) end + |> Enum.unzip() - filter_defaults(nodes) + {filter_defaults(nodes), groups} end defp get_doc(doc, doc_data, module_data, source, group_for_doc, annotations_for_docs) do @@ -236,10 +239,10 @@ defmodule ExDoc.Retriever do doc_ast(content_type, source_doc, file: doc_file, line: doc_line + 1) || doc_data.doc_fallback.() -group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) + group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) id = doc_data.id_key <> nil_or_name(name, arity) - %ExDoc.DocNode{ + doc_node = %ExDoc.DocNode{ id: id, name: name, arity: arity, @@ -253,9 +256,11 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) specs: doc_data.specs, source_url: source_url, type: doc_data.type, - group: group, + group: group.title, annotations: annotations } + + {doc_node, group} end defp get_defaults(_name, _arity, 0), do: [] @@ -276,11 +281,10 @@ group = normalize_group(group_for_doc.(metadata) || doc_data.default_group) end) end - defp get_docs_groups(module_groups, doc_nodes) do + defp get_docs_groups(module_groups, nodes_groups) do module_groups = Enum.map(module_groups, &normalize_group/1) # Doc nodes already have normalized groups - nodes_groups = Enum.map(doc_nodes, & &1.group) nodes_groups_descriptions = Map.new(nodes_groups, &{&1.title, &1.description}) normal_groups = module_groups ++ nodes_groups From bce138b0f31d0fda8c4742a46a6ecc3b18a6d680 Mon Sep 17 00:00:00 2001 From: lud Date: Thu, 17 Apr 2025 08:37:24 +0200 Subject: [PATCH 08/13] compute grouped docs summary in retriever --- .../epub/templates/module_template.eex | 6 +-- lib/ex_doc/formatter/html.ex | 41 +++++++++---------- lib/ex_doc/formatter/html/templates.ex | 16 ++------ .../html/templates/module_template.eex | 6 +-- lib/ex_doc/group_matcher.ex | 17 -------- lib/ex_doc/nodes.ex | 7 ++-- lib/ex_doc/retriever.ex | 29 +++++++++---- test/ex_doc/group_matcher_test.exs | 10 ----- test/ex_doc/retriever/erlang_test.exs | 4 +- test/ex_doc/retriever_test.exs | 9 +--- 10 files changed, 56 insertions(+), 89 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/module_template.eex b/lib/ex_doc/formatter/epub/templates/module_template.eex index 02e3201a4..4ef2b827a 100644 --- a/lib/ex_doc/formatter/epub/templates/module_template.eex +++ b/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -18,11 +18,11 @@ <%= if summary != [] do %>

Summary

- <%= for {group, nodes} <- summary, do: H.summary_template(group.title, nodes) %> + <%= for group <- summary, do: H.summary_template(group.title, group.docs) %>
<% end %> - <%= for {group, nodes} <- summary, key = text_to_id(group.title) do %> + <%= for group <- summary, key = text_to_id(group.title) do %>

<%=h to_string(group.title) %>

<%= if doc = group.rendered_doc do %> @@ -31,7 +31,7 @@
<% end %>
- <%= for node <- nodes, do: H.detail_template(node, module) %> + <%= for node <- group.docs, do: H.detail_template(node, module) %>
<% end %> diff --git a/lib/ex_doc/formatter/html.ex b/lib/ex_doc/formatter/html.ex index f4fe711c9..d4b1c0005 100644 --- a/lib/ex_doc/formatter/html.ex +++ b/lib/ex_doc/formatter/html.ex @@ -87,33 +87,32 @@ defmodule ExDoc.Formatter.HTML do language: language ] ++ base - docs = - for child_node <- node.docs do - id = id(node, child_node) - - autolink_opts = - autolink_opts ++ - [ - id: id, - line: child_node.doc_line, - file: child_node.doc_file, - current_kfa: {child_node.type, child_node.name, child_node.arity} - ] - - specs = Enum.map(child_node.specs, &language.autolink_spec(&1, autolink_opts)) - child_node = %{child_node | specs: specs} - render_doc(child_node, language, autolink_opts, opts) - end - docs_groups = for group <- node.docs_groups do - render_doc(group, language, autolink_opts, opts) + docs = + for child_node <- group.docs do + id = id(node, child_node) + + autolink_opts = + autolink_opts ++ + [ + id: id, + line: child_node.doc_line, + file: child_node.doc_file, + current_kfa: {child_node.type, child_node.name, child_node.arity} + ] + + specs = Enum.map(child_node.specs, &language.autolink_spec(&1, autolink_opts)) + child_node = %{child_node | specs: specs} + render_doc(child_node, language, autolink_opts, opts) + end + + %{render_doc(group, language, autolink_opts, opts) | docs: docs} end %{ render_doc(node, language, [{:id, node.id} | autolink_opts], opts) - | docs: docs, - docs_groups: docs_groups + | docs_groups: docs_groups } end, timeout: :infinity diff --git a/lib/ex_doc/formatter/html/templates.ex b/lib/ex_doc/formatter/html/templates.ex index ec0dd80d8..91bfac42d 100644 --- a/lib/ex_doc/formatter/html/templates.ex +++ b/lib/ex_doc/formatter/html/templates.ex @@ -123,9 +123,9 @@ defmodule ExDoc.Formatter.HTML.Templates do {id, modules} end - defp sidebar_entries({group, nodes}) do + defp sidebar_entries(group) do nodes = - for node <- nodes do + for node <- group.docs do id = if "struct" in node.annotations do node.signature @@ -153,17 +153,7 @@ defmodule ExDoc.Formatter.HTML.Templates do end) end - def module_summary(module_node) do - # TODO: Maybe it should be moved to retriever and it already returned grouped metadata - - group_titles = Enum.map(module_node.docs_groups, & &1.title) - groups_index = Map.new(module_node.docs_groups, &{&1.title, &1}) - docs_groups = ExDoc.GroupMatcher.group_by(group_titles, module_node.docs, & &1.group) - - Enum.map(docs_groups, fn {group_title, nodes} -> - {Map.fetch!(groups_index, group_title), nodes} - end) - end + def module_summary(module_node), do: module_node.docs_groups defp favicon_path(%{favicon: nil}), do: nil defp favicon_path(%{favicon: favicon}), do: "assets/favicon#{Path.extname(favicon)}" diff --git a/lib/ex_doc/formatter/html/templates/module_template.eex b/lib/ex_doc/formatter/html/templates/module_template.eex index b5029e014..a5bf45e13 100644 --- a/lib/ex_doc/formatter/html/templates/module_template.eex +++ b/lib/ex_doc/formatter/html/templates/module_template.eex @@ -39,11 +39,11 @@ Summary - <%= for {group, nodes} <- summary, do: summary_template(group.title, nodes) %> + <%= for group <- summary, do: summary_template(group.title, group.docs) %> <% end %> -<%= for {group, nodes} <- summary, key = text_to_id(group.title) do %> +<%= for group <- summary, key = text_to_id(group.title) do %>

@@ -57,7 +57,7 @@ <% end %>
- <%= for node <- nodes, do: detail_template(node, module) %> + <%= for node <- group.docs, do: detail_template(node, module) %>

<% end %> diff --git a/lib/ex_doc/group_matcher.ex b/lib/ex_doc/group_matcher.ex index 613a1c78c..30b1ec553 100644 --- a/lib/ex_doc/group_matcher.ex +++ b/lib/ex_doc/group_matcher.ex @@ -14,23 +14,6 @@ defmodule ExDoc.GroupMatcher do Enum.find_index(groups, fn {k, _v} -> k == group end) || -1 end - @doc """ - Group the following entries while preserving the order in `groups`. - """ - def group_by(groups, entries, by) do - entries = Enum.group_by(entries, by) - - {groups, leftovers} = - Enum.flat_map_reduce(groups, entries, fn group, grouped_nodes -> - case Map.pop(grouped_nodes, group, []) do - {[], grouped_nodes} -> {[], grouped_nodes} - {entries, grouped_nodes} -> {[{group, entries}], grouped_nodes} - end - end) - - groups ++ Enum.sort(leftovers) - end - @doc """ Finds a matching group for the given module name, id, and metadata. """ diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index 8f77df4a1..309b2679c 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -83,7 +83,7 @@ defmodule ExDoc.DocNode do source_doc: term() | nil, type: atom(), signature: String.t(), - specs: [ExDoc.Language.spec_ast()], + specs: [ExDoc.Language.spec_ast() | String.t()], annotations: [annotation()], group: String.t() | nil, doc_file: String.t(), @@ -93,12 +93,13 @@ defmodule ExDoc.DocNode do end defmodule ExDoc.DocGroupNode do - defstruct title: nil, description: nil, doc: nil, rendered_doc: nil + defstruct title: nil, description: nil, doc: nil, rendered_doc: nil, docs: [] @type t :: %__MODULE__{ title: String.t() | atom(), description: String.t() | nil, doc: ExDoc.DocAST.t() | nil, - rendered_doc: String.t() | nil + rendered_doc: String.t() | nil, + docs: [ExDoc.DocNode.t()] } end diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 0b47191d1..f550c3f30 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -141,14 +141,16 @@ defmodule ExDoc.Retriever do group_for_doc = config.group_for_doc annotations_for_docs = config.annotations_for_docs - {docs, docs_groups} = get_docs(module_data, source, group_for_doc, annotations_for_docs) + {docs, nodes_groups} = get_docs(module_data, source, group_for_doc, annotations_for_docs) + docs = ExDoc.Utils.natural_sort_by(docs, &"#{&1.name}/#{&1.arity}") moduledoc_groups = Map.get(metadata, :groups, []) docs_groups = get_docs_groups( moduledoc_groups ++ config.docs_groups ++ module_data.default_groups, - docs_groups + nodes_groups, + docs ) metadata = Map.put(metadata, :kind, module_data.type) @@ -165,8 +167,9 @@ defmodule ExDoc.Retriever do type: module_data.type, deprecated: metadata[:deprecated], docs_groups: docs_groups, - docs: ExDoc.Utils.natural_sort_by(docs, &"#{&1.name}/#{&1.arity}"), - doc: normalize_doc_ast(doc_ast, "module-"), + docs: docs, + doc_format: format, + doc: doc, source_doc: source_doc, source_format: format, moduledoc_line: doc_line, @@ -281,13 +284,14 @@ defmodule ExDoc.Retriever do end) end - defp get_docs_groups(module_groups, nodes_groups) do + defp get_docs_groups(module_groups, nodes_groups, doc_nodes) do module_groups = Enum.map(module_groups, &normalize_group/1) # Doc nodes already have normalized groups nodes_groups_descriptions = Map.new(nodes_groups, &{&1.title, &1.description}) normal_groups = module_groups ++ nodes_groups + nodes_by_group_title = Enum.group_by(doc_nodes, & &1.group) {docs_groups, _} = Enum.flat_map_reduce(normal_groups, %{}, fn @@ -296,14 +300,21 @@ defmodule ExDoc.Retriever do group, seen -> seen = Map.put(seen, group.title, true) - group = finalize_group(group, nodes_groups_descriptions) - {[group], seen} + + case Map.get(nodes_by_group_title, group.title, []) do + [] -> + {[], seen} + + child_nodes -> + group = finalize_group(group, child_nodes, nodes_groups_descriptions) + {[group], seen} + end end) docs_groups end - defp finalize_group(group, description_fallbacks) do + defp finalize_group(group, doc_nodes, description_fallbacks) do description = case group.description do nil -> Map.get(description_fallbacks, group.title) @@ -320,7 +331,7 @@ defmodule ExDoc.Retriever do title: group.title, description: description, doc: doc_ast, - rendered_doc: nil + docs: doc_nodes } end diff --git a/test/ex_doc/group_matcher_test.exs b/test/ex_doc/group_matcher_test.exs index a012a9532..f386eaf01 100644 --- a/test/ex_doc/group_matcher_test.exs +++ b/test/ex_doc/group_matcher_test.exs @@ -2,16 +2,6 @@ defmodule ExDoc.GroupMatcherTest do use ExUnit.Case, async: true import ExDoc.GroupMatcher - describe "group_by" do - test "group by given data with leftovers" do - assert group_by([1, 3, 5], [%{key: 1}, %{key: 3}, %{key: 2}], & &1.key) == [ - {1, [%{key: 1}]}, - {3, [%{key: 3}]}, - {2, [%{key: 2}]} - ] - end - end - describe "module matching" do test "by atom names" do patterns = [ diff --git a/test/ex_doc/retriever/erlang_test.exs b/test/ex_doc/retriever/erlang_test.exs index 7bd5cda84..d6de8c079 100644 --- a/test/ex_doc/retriever/erlang_test.exs +++ b/test/ex_doc/retriever/erlang_test.exs @@ -59,7 +59,7 @@ defmodule ExDoc.Retriever.ErlangTest do moduledoc_line: 2, moduledoc_file: moduledoc_file, docs: [equiv_function2, function1, function2], - docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], + docs_groups: [%{title: "Functions"}], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -393,7 +393,7 @@ defmodule ExDoc.Retriever.ErlangTest do deprecated: nil, moduledoc_line: _, docs: [function1, function2], - docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], + docs_groups: [%{title: "Functions"}], group: nil, id: "mod", language: ExDoc.Language.Erlang, diff --git a/test/ex_doc/retriever_test.exs b/test/ex_doc/retriever_test.exs index 9c8eca5b6..243726d33 100644 --- a/test/ex_doc/retriever_test.exs +++ b/test/ex_doc/retriever_test.exs @@ -140,7 +140,7 @@ defmodule ExDoc.RetrieverTest do {[mod], []} = Retriever.docs_from_modules([A], config) - assert [c, b, types, callbacks, functions, a] = mod.docs_groups + assert [c, b, a] = mod.docs_groups # Description returned by the function should override nil assert %{title: "c", description: "for c"} = c @@ -149,10 +149,6 @@ defmodule ExDoc.RetrieverTest do # description from @moduledoc assert %{title: "b", description: "predefined b"} = b - assert %{title: "Types", description: nil} = types - assert %{title: "Callbacks", description: nil} = callbacks - assert %{title: "Functions", description: nil} = functions - # Description returned by th function should define a description # for leftover groups assert %{title: "a", description: "for a"} = a @@ -189,9 +185,6 @@ defmodule ExDoc.RetrieverTest do assert [ %{description: nil, title: "c"}, %{description: "text for b", title: "b"}, - %{description: nil, title: "Types"}, - %{description: nil, title: "Callbacks"}, - %{description: nil, title: "Functions"}, %{description: nil, title: "a"} ] = mod.docs_groups end From 9ae72fb01959b822dcef1ccf81d9abec614c584a Mon Sep 17 00:00:00 2001 From: lud Date: Sat, 10 May 2025 19:47:40 +0200 Subject: [PATCH 09/13] wip rebasing --- lib/ex_doc/formatter/epub/templates/module_template.eex | 6 +++--- lib/ex_doc/formatter/html/templates.ex | 4 ---- lib/ex_doc/formatter/html/templates/module_template.eex | 2 +- lib/ex_doc/nodes.ex | 3 +-- lib/ex_doc/retriever.ex | 3 +-- test/ex_doc/formatter/epub/templates_test.exs | 3 +++ 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/module_template.eex b/lib/ex_doc/formatter/epub/templates/module_template.eex index 4ef2b827a..de6cbe635 100644 --- a/lib/ex_doc/formatter/epub/templates/module_template.eex +++ b/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -22,12 +22,12 @@ <% end %> - <%= for group <- summary, key = text_to_id(group.title) do %> + <%= for group <- dbg(summary), key = text_to_id(group.title) do %>

<%=h to_string(group.title) %>

- <%= if doc = group.rendered_doc do %> + <%= if doc = group.doc do %>
- <%= H.link_group_headings(doc, key) %> + <%= render_doc(doc) %>
<% end %>
diff --git a/lib/ex_doc/formatter/html/templates.ex b/lib/ex_doc/formatter/html/templates.ex index 91bfac42d..81ec5da6f 100644 --- a/lib/ex_doc/formatter/html/templates.ex +++ b/lib/ex_doc/formatter/html/templates.ex @@ -218,10 +218,6 @@ defmodule ExDoc.Formatter.HTML.Templates do end) end - def link_group_headings(content, key) do - link_headings(content, "group-#{key}-") - end - templates = [ detail_template: [:node, :module], footer_template: [:config, :source_path], diff --git a/lib/ex_doc/formatter/html/templates/module_template.eex b/lib/ex_doc/formatter/html/templates/module_template.eex index a5bf45e13..1136421f9 100644 --- a/lib/ex_doc/formatter/html/templates/module_template.eex +++ b/lib/ex_doc/formatter/html/templates/module_template.eex @@ -53,7 +53,7 @@ <%= if doc = group.rendered_doc do %>
- <%= link_group_headings(doc, key) %> + <%= render_doc(doc) %>
<% end %>
diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index 309b2679c..4c502e03e 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -93,13 +93,12 @@ defmodule ExDoc.DocNode do end defmodule ExDoc.DocGroupNode do - defstruct title: nil, description: nil, doc: nil, rendered_doc: nil, docs: [] + defstruct title: nil, description: nil, doc: nil, docs: [] @type t :: %__MODULE__{ title: String.t() | atom(), description: String.t() | nil, doc: ExDoc.DocAST.t() | nil, - rendered_doc: String.t() | nil, docs: [ExDoc.DocNode.t()] } end diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index f550c3f30..187a9c3af 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -168,8 +168,7 @@ defmodule ExDoc.Retriever do deprecated: metadata[:deprecated], docs_groups: docs_groups, docs: docs, - doc_format: format, - doc: doc, + doc: normalize_doc_ast(doc_ast, "module-"), source_doc: source_doc, source_format: format, moduledoc_line: doc_line, diff --git a/test/ex_doc/formatter/epub/templates_test.exs b/test/ex_doc/formatter/epub/templates_test.exs index 0e2cbeefa..91aa15455 100644 --- a/test/ex_doc/formatter/epub/templates_test.exs +++ b/test/ex_doc/formatter/epub/templates_test.exs @@ -169,6 +169,9 @@ defmodule ExDoc.Formatter.EPUB.TemplatesTest do doc = LazyHTML.from_document(content) + IO.warn("remove file.write") + File.write("/tmp/doc.html", LazyHTML.to_html(doc)) + assert Enum.count(doc["div.group-description"]) == 1 assert Enum.count(doc["#group-description-example-functions"]) == 1 assert Enum.count(doc["#group-description-example-functions h3"]) == 1 From be39ed72af47080fb7fa71d2727e252094a7764e Mon Sep 17 00:00:00 2001 From: lud Date: Sat, 10 May 2025 20:22:15 +0200 Subject: [PATCH 10/13] fix rebasing, missing ids --- lib/ex_doc/formatter/epub/templates/module_template.eex | 2 +- lib/ex_doc/formatter/html/templates/module_template.eex | 2 +- lib/ex_doc/retriever.ex | 9 +++++++-- test/ex_doc/formatter/epub/templates_test.exs | 7 +++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/module_template.eex b/lib/ex_doc/formatter/epub/templates/module_template.eex index de6cbe635..dfae2b68f 100644 --- a/lib/ex_doc/formatter/epub/templates/module_template.eex +++ b/lib/ex_doc/formatter/epub/templates/module_template.eex @@ -22,7 +22,7 @@
<% end %> - <%= for group <- dbg(summary), key = text_to_id(group.title) do %> + <%= for group <- summary, key = text_to_id(group.title) do %>

<%=h to_string(group.title) %>

<%= if doc = group.doc do %> diff --git a/lib/ex_doc/formatter/html/templates/module_template.eex b/lib/ex_doc/formatter/html/templates/module_template.eex index 1136421f9..d9e231ee2 100644 --- a/lib/ex_doc/formatter/html/templates/module_template.eex +++ b/lib/ex_doc/formatter/html/templates/module_template.eex @@ -51,7 +51,7 @@
<%= group.title %> - <%= if doc = group.rendered_doc do %> + <%= if doc = group.doc do %>
<%= render_doc(doc) %>
diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 187a9c3af..89d26f7b8 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -322,8 +322,13 @@ defmodule ExDoc.Retriever do doc_ast = case description do - nil -> nil - text -> doc_ast("text/markdown", %{"en" => text}, []) + nil -> + nil + + text -> + doc_ast = doc_ast("text/markdown", %{"en" => text}, []) + sub_id = ExDoc.Utils.text_to_id(group.title) + normalize_doc_ast(doc_ast, "group-#{sub_id}-") end %ExDoc.DocGroupNode{ diff --git a/test/ex_doc/formatter/epub/templates_test.exs b/test/ex_doc/formatter/epub/templates_test.exs index 91aa15455..99adc237d 100644 --- a/test/ex_doc/formatter/epub/templates_test.exs +++ b/test/ex_doc/formatter/epub/templates_test.exs @@ -169,9 +169,6 @@ defmodule ExDoc.Formatter.EPUB.TemplatesTest do doc = LazyHTML.from_document(content) - IO.warn("remove file.write") - File.write("/tmp/doc.html", LazyHTML.to_html(doc)) - assert Enum.count(doc["div.group-description"]) == 1 assert Enum.count(doc["#group-description-example-functions"]) == 1 assert Enum.count(doc["#group-description-example-functions h3"]) == 1 @@ -180,7 +177,9 @@ defmodule ExDoc.Formatter.EPUB.TemplatesTest do assert Enum.count(doc["#example-functions .group-description a[href='#example/2']"]) == 1 assert Enum.count(doc["#example-functions .group-description a[href='#flatten/1']"]) == 1 - assert content =~ ~s[A section heading example] + assert content =~ + ~s[

A section heading example

] + assert content =~ "

A content example.

" end From e790644a52308d7b4e9367da5756b0729aa9e6bf Mon Sep 17 00:00:00 2001 From: lud Date: Sat, 10 May 2025 20:25:38 +0200 Subject: [PATCH 11/13] (no changes) verified anchors are added to section description headings --- test/ex_doc/formatter/html/templates_test.exs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/ex_doc/formatter/html/templates_test.exs b/test/ex_doc/formatter/html/templates_test.exs index 127b57afd..b94ad72e3 100644 --- a/test/ex_doc/formatter/html/templates_test.exs +++ b/test/ex_doc/formatter/html/templates_test.exs @@ -384,7 +384,6 @@ defmodule ExDoc.Formatter.HTML.TemplatesTest do ) doc = LazyHTML.from_document(content) - assert Enum.count(doc["div.group-description"]) == 1 assert Enum.count(doc["#group-description-example-functions"]) == 1 assert Enum.count(doc["#group-description-example-functions h3"]) == 1 From d9954d376bce7830e99467e9c63602d2dc41c0de Mon Sep 17 00:00:00 2001 From: lud Date: Sat, 10 May 2025 21:05:10 +0200 Subject: [PATCH 12/13] add more whitespace below group descriptions --- assets/css/content/general.css | 4 ++++ formatters/html/dist/html-elixir-462OCYHX.css | 6 ++++++ formatters/html/dist/html-erlang-NAGTPUO7.css | 6 ++++++ 3 files changed, 16 insertions(+) create mode 100644 formatters/html/dist/html-elixir-462OCYHX.css create mode 100644 formatters/html/dist/html-erlang-NAGTPUO7.css diff --git a/assets/css/content/general.css b/assets/css/content/general.css index 2b35e0857..bd2f7afc4 100644 --- a/assets/css/content/general.css +++ b/assets/css/content/general.css @@ -71,6 +71,10 @@ margin: 1.5em 0 0.5em; } +.content-inner div.group-description { + margin: 0 0 3em; +} + .content-inner h1 small { font-weight: 400; } diff --git a/formatters/html/dist/html-elixir-462OCYHX.css b/formatters/html/dist/html-elixir-462OCYHX.css new file mode 100644 index 000000000..509d6f3ac --- /dev/null +++ b/formatters/html/dist/html-elixir-462OCYHX.css @@ -0,0 +1,6 @@ +:root{--main: hsl(250, 68%, 69%);--mainDark: hsl(250, 68%, 59%);--mainDarkest: hsl(250, 68%, 49%);--mainLight: hsl(250, 68%, 74%);--mainLightest: hsl(250, 68%, 79%);--searchBarFocusColor: #8E7CE6;--searchBarBorderColor: rgba(142, 124, 230, .25);--link-color: var(--mainDark);--link-visited-color: var(--mainDarkest)}body.dark{--link-color: var(--mainLightest);--link-visited-color: var(--mainLight)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin:0 2.5px 0 0}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! Bundled license information: + +modern-normalize/modern-normalize.css: + (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) +*/ diff --git a/formatters/html/dist/html-erlang-NAGTPUO7.css b/formatters/html/dist/html-erlang-NAGTPUO7.css new file mode 100644 index 000000000..7bef0e345 --- /dev/null +++ b/formatters/html/dist/html-erlang-NAGTPUO7.css @@ -0,0 +1,6 @@ +:root{--main: hsl(0, 100%, 44%);--mainDark: hsl(0, 100%, 34%);--mainDarkest: hsl(0, 100%, 24%);--mainLight: hsl(0, 100%, 64%);--mainLightest: hsl(0, 100%, 74%);--searchBarFocusColor: hsl(0, 100%, 50%);--searchBarBorderColor: rgb(255, 71, 71, .1);--link-color: hsl(212, 96%, 45%);--link-visited-color: hsl(212, 96%, 40%)}body.dark{--link-color: hsl(212, 56%, 72%);--link-visited-color: hsl(212, 56%, 67%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin:0 2.5px 0 0}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! Bundled license information: + +modern-normalize/modern-normalize.css: + (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) +*/ From 9e2e011ba9fa008330ba835881967eaa4f1d7cda Mon Sep 17 00:00:00 2001 From: lud Date: Wed, 14 May 2025 12:41:46 +0200 Subject: [PATCH 13/13] removed ModuleNode.docs struct field, updated tests --- formatters/html/dist/html-elixir-462OCYHX.css | 6 -- formatters/html/dist/html-elixir-BHUPNQFZ.css | 6 ++ formatters/html/dist/html-elixir-KV3YOVJ3.css | 6 -- formatters/html/dist/html-erlang-DQDXQC7W.css | 6 -- formatters/html/dist/html-erlang-NAGTPUO7.css | 6 -- formatters/html/dist/html-erlang-U4PKJ7EN.css | 6 ++ lib/ex_doc/formatter/html/assets.ex | 2 +- lib/ex_doc/formatter/html/search_data.ex | 7 ++- lib/ex_doc/nodes.ex | 2 - lib/ex_doc/retriever.ex | 1 - test/ex_doc/retriever/elixir_test.exs | 56 +++++++++++-------- test/ex_doc/retriever/erlang_test.exs | 35 +++++++----- test/ex_doc/retriever_test.exs | 31 +++++----- 13 files changed, 89 insertions(+), 81 deletions(-) delete mode 100644 formatters/html/dist/html-elixir-462OCYHX.css create mode 100644 formatters/html/dist/html-elixir-BHUPNQFZ.css delete mode 100644 formatters/html/dist/html-elixir-KV3YOVJ3.css delete mode 100644 formatters/html/dist/html-erlang-DQDXQC7W.css delete mode 100644 formatters/html/dist/html-erlang-NAGTPUO7.css create mode 100644 formatters/html/dist/html-erlang-U4PKJ7EN.css diff --git a/formatters/html/dist/html-elixir-462OCYHX.css b/formatters/html/dist/html-elixir-462OCYHX.css deleted file mode 100644 index 509d6f3ac..000000000 --- a/formatters/html/dist/html-elixir-462OCYHX.css +++ /dev/null @@ -1,6 +0,0 @@ -:root{--main: hsl(250, 68%, 69%);--mainDark: hsl(250, 68%, 59%);--mainDarkest: hsl(250, 68%, 49%);--mainLight: hsl(250, 68%, 74%);--mainLightest: hsl(250, 68%, 79%);--searchBarFocusColor: #8E7CE6;--searchBarBorderColor: rgba(142, 124, 230, .25);--link-color: var(--mainDark);--link-visited-color: var(--mainDarkest)}body.dark{--link-color: var(--mainLightest);--link-visited-color: var(--mainLight)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin:0 2.5px 0 0}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} -/*! Bundled license information: - -modern-normalize/modern-normalize.css: - (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) -*/ diff --git a/formatters/html/dist/html-elixir-BHUPNQFZ.css b/formatters/html/dist/html-elixir-BHUPNQFZ.css new file mode 100644 index 000000000..637a288d2 --- /dev/null +++ b/formatters/html/dist/html-elixir-BHUPNQFZ.css @@ -0,0 +1,6 @@ +:root{--main: hsl(250, 68%, 69%);--mainDark: hsl(250, 68%, 59%);--mainDarkest: hsl(250, 68%, 49%);--mainLight: hsl(250, 68%, 74%);--mainLightest: hsl(250, 68%, 79%);--searchBarFocusColor: #8E7CE6;--searchBarBorderColor: rgba(142, 124, 230, .25);--link-color: var(--mainDark);--link-visited-color: var(--mainDarkest)}body.dark{--link-color: var(--mainLightest);--link-visited-color: var(--mainLight)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin-left:2.5px}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! Bundled license information: + +modern-normalize/modern-normalize.css: + (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) +*/ diff --git a/formatters/html/dist/html-elixir-KV3YOVJ3.css b/formatters/html/dist/html-elixir-KV3YOVJ3.css deleted file mode 100644 index 5d4571d21..000000000 --- a/formatters/html/dist/html-elixir-KV3YOVJ3.css +++ /dev/null @@ -1,6 +0,0 @@ -:root{--main: hsl(250, 68%, 69%);--mainDark: hsl(250, 68%, 59%);--mainDarkest: hsl(250, 68%, 49%);--mainLight: hsl(250, 68%, 74%);--mainLightest: hsl(250, 68%, 79%);--searchBarFocusColor: #8E7CE6;--searchBarBorderColor: rgba(142, 124, 230, .25);--link-color: var(--mainDark);--link-visited-color: var(--mainDarkest)}body.dark{--link-color: var(--mainLightest);--link-visited-color: var(--mainLight)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin-left:2.5px}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} -/*! Bundled license information: - -modern-normalize/modern-normalize.css: - (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) -*/ diff --git a/formatters/html/dist/html-erlang-DQDXQC7W.css b/formatters/html/dist/html-erlang-DQDXQC7W.css deleted file mode 100644 index 2a7bf5fc2..000000000 --- a/formatters/html/dist/html-erlang-DQDXQC7W.css +++ /dev/null @@ -1,6 +0,0 @@ -:root{--main: hsl(0, 100%, 44%);--mainDark: hsl(0, 100%, 34%);--mainDarkest: hsl(0, 100%, 24%);--mainLight: hsl(0, 100%, 64%);--mainLightest: hsl(0, 100%, 74%);--searchBarFocusColor: hsl(0, 100%, 50%);--searchBarBorderColor: rgb(255, 71, 71, .1);--link-color: hsl(212, 96%, 45%);--link-visited-color: hsl(212, 96%, 40%)}body.dark{--link-color: hsl(212, 56%, 72%);--link-visited-color: hsl(212, 56%, 67%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin-left:2.5px}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} -/*! Bundled license information: - -modern-normalize/modern-normalize.css: - (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) -*/ diff --git a/formatters/html/dist/html-erlang-NAGTPUO7.css b/formatters/html/dist/html-erlang-NAGTPUO7.css deleted file mode 100644 index 7bef0e345..000000000 --- a/formatters/html/dist/html-erlang-NAGTPUO7.css +++ /dev/null @@ -1,6 +0,0 @@ -:root{--main: hsl(0, 100%, 44%);--mainDark: hsl(0, 100%, 34%);--mainDarkest: hsl(0, 100%, 24%);--mainLight: hsl(0, 100%, 64%);--mainLightest: hsl(0, 100%, 74%);--searchBarFocusColor: hsl(0, 100%, 50%);--searchBarBorderColor: rgb(255, 71, 71, .1);--link-color: hsl(212, 96%, 45%);--link-visited-color: hsl(212, 96%, 40%)}body.dark{--link-color: hsl(212, 56%, 72%);--link-visited-color: hsl(212, 56%, 67%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin:0 2.5px 0 0}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} -/*! Bundled license information: - -modern-normalize/modern-normalize.css: - (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) -*/ diff --git a/formatters/html/dist/html-erlang-U4PKJ7EN.css b/formatters/html/dist/html-erlang-U4PKJ7EN.css new file mode 100644 index 000000000..d5710b2bf --- /dev/null +++ b/formatters/html/dist/html-erlang-U4PKJ7EN.css @@ -0,0 +1,6 @@ +:root{--main: hsl(0, 100%, 44%);--mainDark: hsl(0, 100%, 34%);--mainDarkest: hsl(0, 100%, 24%);--mainLight: hsl(0, 100%, 64%);--mainLightest: hsl(0, 100%, 74%);--searchBarFocusColor: hsl(0, 100%, 50%);--searchBarBorderColor: rgb(255, 71, 71, .1);--link-color: hsl(212, 96%, 45%);--link-visited-color: hsl(212, 96%, 40%)}body.dark{--link-color: hsl(212, 56%, 72%);--link-visited-color: hsl(212, 56%, 67%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-ext-400-normal-N27NCBWW.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(./lato-latin-400-normal-W7754I4D.woff2) format("woff2"),url(./lato-all-400-normal-MNITWADU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-width: 949px;--content-gutter: 60px;--borderRadius-lg: 14px;--borderRadius-base: 8px;--borderRadius-sm: 3px;--navTabBorderWidth: 2px;--sansFontFamily: "Lato", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--monoFontFamily: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;--baseLineHeight: 1.5em;--gray25: hsl(207, 43%, 98%);--gray50: hsl(207, 43%, 96%);--gray100: hsl(212, 33%, 91%);--gray200: hsl(210, 29%, 88%);--gray300: hsl(210, 26%, 84%);--gray400: hsl(210, 21%, 64%);--gray450: hsl(210, 21%, 49%);--gray500: hsl(210, 21%, 34%);--gray600: hsl(210, 27%, 26%);--gray700: hsl(212, 35%, 17%);--gray750: hsl(214, 46%, 14%);--gray800: hsl(216, 52%, 11%);--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray850: hsl(216, 63%, 8%);--gray900: hsl(218, 73%, 4%);--gray900-opacity-50: hsla(218, 73%, 4%, 50%);--gray900-opacity-0: hsla(218, 73%, 4%, 0%);--coldGrayFaint: hsl(240, 5%, 97%);--coldGrayLight: hsl(240, 5%, 88%);--coldGray-lightened-10: hsl(240, 5%, 56%);--coldGray: hsl(240, 5%, 46%);--coldGray-opacity-10: hsla(240, 5%, 46%, 10%);--coldGrayDark: hsl(240, 5%, 28%);--coldGrayDim: hsl(240, 5%, 18%);--yellowLight: hsl(43, 100%, 95%);--yellowDark: hsl(44, 100%, 15%);--yellow: hsl(60, 100%, 43%);--green-lightened-10: hsl(90, 100%, 45%);--green: hsl(90, 100%, 35%);--white: hsl(0, 0%, 100%);--white-opacity-50: hsla(0, 0%, 100%, 50%);--white-opacity-10: hsla(0, 0%, 100%, 10%);--white-opacity-0: hsla(0, 0%, 100%, 0%);--black: hsl(0, 0%, 0%);--black-opacity-10: hsla(0, 0%, 0%, 10%);--black-opacity-50: hsla(0, 0%, 0%, 50%);--orangeDark: hsl(30, 90%, 40%);--orangeLight: hsl(30, 80%, 50%);--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--transition-duration: .15s;--transition-timing: cubic-bezier(.4, 0, .2, 1);--transition-all: all var(--transition-duration) var(--transition-timing);--transition-colors: color var(--transition-duration) var(--transition-timing), background-color var(--transition-duration) var(--transition-timing), border-color var(--transition-duration) var(--transition-timing), text-decoration-color var(--transition-duration) var(--transition-timing), fill var(--transition-duration) var(--transition-timing), stroke var(--transition-duration) var(--transition-timing);--transition-opacity: opacity var(--transition-duration) var(--transition-timing)}@media screen and (max-width: 768px){:root{--content-width: 100%;--content-gutter: 20px}}option{background-color:var(--sidebarBackground)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray800);--textHeaders: var(--gray900);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--coldGrayFaint);--iconAction: var(--coldGray);--iconActionHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--tableHeadBorder: var(--gray100);--tableBodyBorder: var(--gray50);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray25);--codeBorder: var(--gray100);--codeScrollThumb: var(--gray400);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray25);--admCodeBorder: var(--gray100);--admCodeColor: var(--black);--admInlineCodeColor: var(--black);--admInlineCodeBackground: var(--gray25);--admInlineCodeBorder: var(--gray100);--tabBorder: var(--gray300);--tabBorderTop: var(--gray100);--tabShadow: var(--gray25);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnTitle: var(--mainDark);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray300);--settingsSectionBorder: var(--gray300);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--progressBarColor: var(--gray400);--sidebarAccentMain: var(--black);--sidebarBackground: var(--gray50);--sidebarHeader: var(--gray100);--sidebarMuted: var(--gray800);--sidebarHover: var(--black);--sidebarStaleVersion: var(--orangeDark);--sidebarSubheadings: var(--gray500);--sidebarItem: var(--black);--sidebarInactiveItemBorder: var(--gray500);--sidebarInactiveItemMarker: var(--gray200);--sidebarLanguageAccentBar: var(--mainDark);--sidebarActiveItem: var(--mainDarkest);--searchBarBorder: var(--gray200);--searchAccentMain: var(--gray600);--searchLanguageAccentBar: var(--main);--searchSearch: var(--white);--autocompleteBorder: rgba(3, 9, 19, .1);--autocompletePreview: var(--gray25);--autocompleteSelected: var(--gray25);--autocompleteHover: var(--gray50);--autocompleteBackground: var(--white);--suggestionBorder: var(--gray200);--autocompleteResults: var(--gray600);--autocompleteResultsBold: var(--gray800);--autocompleteLabelBack: var(--gray100);--autocompleteLabelFont: var(--gray600)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailAccent: var(--mainLight);--textDetailBackground: var(--gray700);--iconAction: var(--coldGray-lightened-10);--iconActionHover: var(--white);--blockquoteBackground: var(--coldGray-opacity-10);--blockquoteBorder: var(--coldGrayDim);--tableHeadBorder: var(--gray600);--tableBodyBorder: var(--gray700);--warningBackground: hsla( 33, 30%, 60%, 10%);--warningHeadingBackground: hsla( 33, 66%, 35%, 80%);--warningHeading: var(--white);--errorBackground: hsla( 7, 30%, 60%, 10%);--errorHeadingBackground: hsla( 6, 70%, 40%, 80%);--errorHeading: var(--white);--infoBackground: hsla(206, 30%, 60%, 10%);--infoHeadingBackground: hsla(213, 55%, 35%, 80%);--infoHeading: var(--white);--neutralBackground: hsl(210, 30%, 60%, 10%);--neutralHeadingBackground: var(--gray600);--neutralHeading: var(--white);--tipBackground: hsla(142, 30%, 60%, 10%);--tipHeadingBackground: hsla(134, 45%, 30%, 80%);--tipHeading: var(--white);--fnSpecAttr: var(--gray400);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray750);--codeBorder: var(--gray600);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--admCodeBackground: var(--gray750);--admCodeBorder: var(--gray600);--admCodeColor: var(--gray100);--admInlineCodeColor: var(--gray100);--admInlineCodeBackground: var(--gray750);--admInlineCodeBorder: var(--gray600);--tabBorder: var(--gray700);--tabBorderTop: var(--gray700);--tabShadow: var(--black);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnTitle: var(--mainLightest);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray300);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--progressBarColor: var(--gray300);--sidebarAccentMain: var(--gray50);--sidebarBackground: var(--gray800);--sidebarHeader: var(--gray700);--sidebarMuted: var(--gray300);--sidebarHover: var(--white);--sidebarStaleVersion: var(--orangeLight);--sidebarSubheadings: var(--gray400);--sidebarItem: var(--gray200);--sidebarInactiveItemBorder: var(--gray400);--sidebarInactiveItemMarker: var(--gray600);--sidebarLanguageAccentBar: var(--mainLight);--sidebarActiveItem: var(--mainLightest);--searchBarBorder: var(--gray500);--searchAccentMain: var(--gray300);--searchSearch: var(--gray900);--autocompleteBorder: rgba(28,42,60,.75);--autocompletePreview: var(--gray750);--autocompleteSelected: var(--gray750);--autocompleteHover: var(--gray700);--autocompleteBackground: var(--gray800);--suggestionBorder: var(--gray600);--autocompleteResults: var(--gray200);--autocompleteResultsBold: var(--gray100);--autocompleteLabelBack: var(--gray600);--autocompleteLabelFont: rgba(255, 255, 255, .8)}:root:has(body.dark){color-scheme:dark}*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:remixicon;src:url(./remixicon-QPNJX265.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-external-link-line: "\ecaf";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6";--icon-printer-line: "\f029"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-external-link-line:before{content:var(--icon-external-link-line)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}.ri-printer-line:before{content:var(--icon-printer-line)}html,body{box-sizing:border-box;height:100%;width:100%}body{--sidebarWidth: 300px;--sidebarMinWidth: 300px;--sidebarTransitionDuration: .3s;background-color:var(--background);color:var(--textBody);font-size:var(--text-md);line-height:1.6875em;outline:none!important}*,*:before,*:after{box-sizing:inherit}.body-wrapper{display:flex;height:100%}.sidebar{display:none;flex-direction:column;width:var(--sidebarWidth);min-width:var(--sidebarMinWidth);max-width:50vw;height:100%;position:fixed;top:0;left:calc(-1 * var(--sidebarWidth));z-index:100;resize:horizontal}.sidebar-button{padding:26px 12px 18px 19px;position:fixed;z-index:200;top:0;left:0;will-change:transform;transform:translate(0)}.content{left:0;width:100%;height:100%;position:absolute}.content .content-inner{container:content / inline-size;max-width:var(--content-width);min-height:100%;margin:0 auto;padding:0 var(--content-gutter) 10px}.content-inner:focus{outline:none}.sidebar-transition .sidebar,.sidebar-transition .sidebar-button,.sidebar-transition .content{transition:all var(--sidebarTransitionDuration) ease-in-out allow-discrete}.sidebar-open .sidebar,.sidebar-transition .sidebar{display:flex}.sidebar-open .sidebar{left:0}.sidebar-open .sidebar-button{transform:translate(calc(var(--sidebarWidth) - 100%))}.sidebar-open .content{width:calc(100% - var(--sidebarWidth));left:var(--sidebarWidth)}@media screen and (max-width: 768px){.sidebar-open .content{left:0;width:100%}.sidebar{max-width:90vw}body:not(.sidebar-open) .sidebar-button{position:absolute}}.swup-progress-bar{height:2px;background-color:var(--progressBarColor)}.sidebar{--sidebarFontSize: 16px;--sidebarLineHeight: 20px;font-family:var(--sansFontFamily);font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);background-color:var(--sidebarBackground);color:var(--sidebarAccentMain);overflow:hidden;& .sidebar-tabpanel{scrollbar-width:thin}}.apple-os .sidebar{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--sidebarAccentMain);text-decoration:none;transition:var(--transition-colors)}.sidebar a:hover{color:var(--sidebarHover)}.sidebar .external-link{margin-left:2.5px}.sidebar .sidebar-header{background-color:var(--sidebarHeader);width:100%}.sidebar .sidebar-projectInfo{display:flex;justify-content:start;align-items:center;gap:8px;margin:12px 34px 12px 14px}.sidebar .sidebar-projectInfo>div{flex:1}.sidebar .sidebar-projectImage{align-self:flex-end}.sidebar .sidebar-projectImage img{display:block;max-width:48px;max-height:48px}.sidebar .sidebar-projectName{font-weight:700;font-size:var(--text-xl);line-height:24px;color:var(--sidebarAccentMain);margin:0;padding:0;word-wrap:break-word;display:block;width:calc(100% - 12px)}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-size:var(--sidebarFontSize);line-height:var(--sidebarLineHeight);color:var(--sidebarMuted);width:calc(100% - 12px)}.sidebar .sidebar-projectVersion form{display:flex}.sidebar .sidebar-projectVersion select{cursor:pointer;position:relative;margin:0;padding:0 0 0 10px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--sidebarMuted);z-index:2}.sidebar .sidebar-projectVersion option{color:initial}.sidebar .sidebar-projectVersionsCaret{position:absolute;left:0;top:2px;z-index:1;font-size:8px;color:var(--sidebarMuted)}.sidebar .sidebar-projectVersion select::-ms-expand{display:none}.sidebar .sidebar-staleVersion{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sidebarStaleVersion)}.sidebar .sidebar-staleVersion>a{color:var(--sidebarStaleVersion);font-weight:400}.sidebar .sidebar-staleIcon{font-size:var(--text-lg);position:relative;top:3px;line-height:0}.sidebar .sidebar-list-nav{display:flex;margin:0;padding:0;overflow:auto;scrollbar-width:thin}.sidebar .sidebar-list-nav :is(li,li button){text-transform:uppercase;letter-spacing:.02em;font-size:var(--text-sm);color:var(--sidebarSubheadings);white-space:nowrap}.sidebar .sidebar-list-nav li{display:inline-block;padding:0}.sidebar .sidebar-list-nav button{background:none;border:0;border-radius:0;-webkit-appearance:none;text-align:inherit;color:inherit;font-weight:inherit;cursor:pointer;display:inline-block;line-height:27px;padding:4px 14px;transition:var(--transition-all)}.sidebar .sidebar-list-nav button{border-bottom:var(--navTabBorderWidth) solid transparent}.sidebar .sidebar-list-nav button:not([aria-selected]):hover{border-bottom:var(--navTabBorderWidth) solid var(--sidebarInactiveItemBorder);color:var(--sidebarAccentMain);transition:var(--transition-all)}.sidebar .sidebar-list-nav button[aria-selected]{border-bottom:var(--navTabBorderWidth) solid var(--sidebarLanguageAccentBar);color:var(--sidebarAccentMain)}.sidebar .sidebar-tabpanel{flex:1 1 .01%;overflow-y:auto;overscroll-behavior:contain;position:relative;-webkit-overflow-scrolling:touch;padding-top:12px;scroll-padding-top:40px}.sidebar .full-list{margin:0;padding:0 0 20px;position:relative}.sidebar .full-list :is(li,a){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar .full-list li{padding:0;line-height:27px}.sidebar .full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:1.5em 0 0;line-height:1.8em;color:var(--sidebarSubheadings);padding-left:15px}.sidebar .full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--sidebarSubheadings);margin-top:10px;padding-left:15px}.sidebar .full-list a{margin-right:30px;padding:3px 0 3px 12px;border-left:var(--navTabBorderWidth) solid transparent;color:var(--sidebarItem)}.sidebar .full-list a[aria-selected]{color:var(--sidebarActiveItem)}.sidebar .full-list button{appearance:none;background-color:transparent;border:0;padding:0;cursor:pointer;color:inherit;width:20px;text-align:center;font-size:calc(1.2 * var(--sidebarFontSize));line-height:var(--sidebarLineHeight);position:absolute;display:block;right:10px;transform:translateY(-100%)}.sidebar .full-list a[aria-selected]+button{color:var(--sidebarActiveItem)}.sidebar .full-list button:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:var(--icon-arrow-down-s)}.sidebar .full-list button[aria-expanded=true]:after{content:var(--icon-arrow-up-s)}.sidebar .full-list ul{display:none;margin:10px 0 10px 10px;padding:0}.sidebar .full-list button[aria-expanded=true]+ul{display:block}.sidebar .full-list>li>a{height:27px;line-height:var(--sidebarLineHeight)}.sidebar .full-list>li>a:hover{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li>a[aria-selected]{border-left-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list>li:last-child{margin-bottom:30px}.sidebar .full-list>li.group:first-child{margin-top:0}.sidebar .full-list>li>ul>li:not(:has(li a[aria-selected=true]))>a[aria-selected=true]:before,.sidebar .full-list>li>ul>li>a:hover:before{content:"\2022";position:absolute;margin-left:-15px;color:var(--sidebarActiveItem)}.sidebar .full-list ul li{line-height:var(--sidebarFontSize);padding:0 8px}.sidebar .full-list ul a{padding-left:15px;height:24px}.sidebar .full-list ul button{font-size:var(--sidebarFontSize)}.sidebar .full-list ul button:after{content:var(--icon-add)}.sidebar .full-list ul button[aria-expanded=true]:after{content:var(--icon-subtract)}.sidebar .full-list ul ul{margin:9px 0 9px 10px}.sidebar .full-list ul ul li{height:20px;color:var(--sidebarAccentMain)}.sidebar .full-list ul ul a{border-left:1px solid var(--sidebarInactiveItemMarker);padding:0 10px;height:20px}.sidebar .full-list ul ul a:hover{border-color:var(--sidebarLanguageAccentBar)}.sidebar .full-list ul ul a[aria-selected]{color:var(--sidebarActiveItem);border-color:var(--sidebarLanguageAccentBar)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;font-size:var(--sidebarFontSize);color:var(--sidebarAccentMain)}.sidebar-button:hover{color:var(--sidebarHover)}body:not(.sidebar-open) .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar .full-list{overflow:visible}}.top-search{background-color:var(--background);top:0;z-index:99;position:relative;width:100%;padding:10px 0}.search-settings{display:flex;column-gap:12px;align-items:center;width:100%;position:relative}.search-bar{border:1px solid var(--searchBarBorder);border-radius:var(--borderRadius-base);height:48px;position:relative;width:100%}.top-search .search-bar .search-input{background-color:var(--searchSearch);border:1px solid transparent;border-radius:var(--borderRadius-base);color:var(--searchAccentMain);position:relative;height:46px;padding:8px 35px 8px 43px;width:100%;transition:var(--transition-all)}.top-search .search-bar .search-input::placeholder{color:var(--searchAccentMain);opacity:.5}.top-search .search-bar .search-input:focus{border:1px solid var(--searchBarFocusColor);border-radius:calc(var(--borderRadius-base) - 1px);position:relative;box-shadow:0 4px 20px 0 var(--searchBarBorderColor) inset}.top-search .search-bar .search-label{position:relative}.top-search .search-bar .search-button{font-size:var(--text-sm);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;left:11px;opacity:.5;padding:5px 1px 5px 5px;position:absolute;top:60%;transform:translateY(-60%);z-index:99;transition:var(--transition-all)}.top-search .search-bar.selected .search-button,.top-search .search-bar .search-button:hover,.top-search .search-bar .search-button:focus{color:var(--top-searchLanguageAccentBar);opacity:1}.top-search .search-bar .search-close-button{font-size:var(--text-md);color:var(--searchAccentMain);background-color:transparent;border:none;cursor:pointer;right:11px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:calc(50% - 13px);transition:var(--transition-all);z-index:99}.top-search .search-bar .search-close-button:hover{opacity:.7}.top-search .search-settings button.icon-settings{display:flex;align-items:center;justify-content:flex-end}.top-search .search-settings .icon-settings{font-size:var(--text-xl);float:right;color:var(--iconAction);text-decoration:none;border:none;transition:color .3s ease-in-out;background-color:transparent;cursor:pointer;padding:0}.top-search .search-settings .icon-settings:hover{color:var(--iconActionHover)}.top-search .search-settings .icon-settings:visited{color:var(--iconAction)}@media screen and (max-width: 768px){.top-search{padding-left:calc(var(--content-gutter) + 36px);padding-right:var(--content-gutter);margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));width:calc(2 * var(--content-gutter) + 100%)}.search-settings{width:100%;box-sizing:border-box}}body.search-focused .search-bar .search-close-button{transform:scaleY(1);transition:var(--transition-all)}@media screen and (hover: hover){body.search-focused .top-search{position:sticky!important}body.search-focused .sidebar-button{position:fixed!important}}@media screen and (hover: none){body.scroll-sticky .top-search{position:sticky!important}body.scroll-sticky .sidebar-button{position:fixed!important}}*:focus,button:focus,[type=button]:focus,[type=reset]:focus,[type=submit]:focus{outline:2px solid var(--main);outline-offset:-2px}*:focus:not(:focus-visible),button:focus:not(:focus-visible),[type=button]:focus:not(:focus-visible),[type=reset]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible){outline:0}input[type=text],input[type=number],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=time],input[type=url],input[type=week],textarea{outline:0}.content-inner{font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner .heading-with-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.content-inner .heading-with-actions>*:not(h1){flex-shrink:0}.content-inner .heading-with-actions h1{flex-grow:1;justify-self:flex-start;max-width:100%;margin:0;overflow-wrap:break-word}.content-inner .heading-with-actions .icon-action{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-weight:400}.content-inner .heading-with-actions.top-heading .icon-action{font-size:1.2rem}@container content (width > 600px){.content-inner .heading-with-actions.top-heading{flex-wrap:nowrap;align-items:flex-start;& h1{padding-right:32px}& .icon-action{padding-top:1.7rem}}}.content-inner .top-heading{padding-top:1rem}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:.5em 0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner div.group-description{margin:0 0 3em}.content-inner h1 small{font-weight:400}.content-inner h2{font-size:1.6em;padding-top:1em;margin-bottom:.5em}.content-inner h3{font-size:1.375em;margin:1em 0 .5em}.content-inner li+li{margin-top:.25em}.content-inner :is(a,.a-main){color:var(--link-color);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--link-visited-color)}.content-inner .icon-action{color:var(--iconAction);text-decoration:none;border:none;transition:var(--transition-colors);background-color:transparent;cursor:pointer}.content-inner .icon-action:hover{color:var(--iconActionHover)}.content-inner .icon-action:visited{color:var(--iconAction)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--iconAction);font-size:var(--text-xs);font-weight:400}.content-inner blockquote,.content-inner section.admonition{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:var(--borderRadius-base)}.content-inner blockquote p:last-child,.content-inner section.admonition p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0;border-collapse:collapse;display:block;overflow:auto}.content-inner th{text-align:left;font-family:var(--sansFontFamily);font-weight:700;padding-bottom:.5em;white-space:nowrap}.content-inner thead tr{border-bottom:1px solid var(--tableHeadBorder)}.content-inner tbody tr{border-bottom:1px solid var(--tableBodyBorder)}.content-inner tbody tr:last-child{border-bottom:none}.content-inner tr{vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding:.25em .25em .25em 1em;line-height:2em;vertical-align:top}.content-inner .section-heading{--icon-size: 16px;--icon-spacing: 5px;display:grid;grid-template:1fr / 1fr}@media screen and (max-width: 768px){.content-inner .section-heading{--icon-spacing: 2px}}.content-inner .section-heading>:is(.hover-link,.text){grid-row:1;grid-column:1}.content-inner .section-heading .hover-link{text-decoration:none}.content-inner .section-heading i{font-size:var(--icon-size);color:var(--mainLight);top:-2px;margin-left:calc(-1 * (var(--icon-size) + var(--icon-spacing)));padding-right:var(--icon-spacing);position:relative;opacity:0}.content-inner :is(blockquote,section.admonition) .section-heading i{display:none}.content-inner .section-heading:is(:hover,:focus,:target) i{opacity:1}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner strong>code{font-weight:700}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400;font-size:var(--text-sm)}@media screen and (max-width: 768px){.content-inner :is(ol,ul){padding-left:calc(1.5 * var(--content-gutter))}}.content-inner section.admonition{border-radius:var(--borderRadius-base);border-left:0}.content-inner section.admonition.warning{background-color:var(--warningBackground)}.content-inner section.admonition.error{background-color:var(--errorBackground)}.content-inner section.admonition.info{background-color:var(--infoBackground)}.content-inner section.admonition.neutral{background-color:var(--neutralBackground)}.content-inner section.admonition.tip{background-color:var(--tipBackground)}.content-inner section.admonition>.admonition-title{color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner section.admonition>.admonition-title:before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner section.admonition>.admonition-title.warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner section.admonition>.admonition-title.error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner section.admonition>.admonition-title.info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner section.admonition>.admonition-title.neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner section.admonition>.admonition-title.tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title.tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner section.admonition>.admonition-title code{margin:0 .5ch}.content-inner section.admonition code{background-color:var(--admInlineCodeBackground);border:1px solid var(--admInlineCodeBorder);color:var(--admInlineCodeColor)}.content-inner section.admonition pre code{background-color:var(--admCodeBackground);border:1px solid var(--admCodeBorder);color:var(--admCodeColor)}.content-inner section.admonition>.admonition-title :is(a,a:visited){color:inherit;text-decoration-color:currentColor}@media screen and (max-width: 768px){.content-inner section.admonition{margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter));padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0}.content-inner section.admonition>.admonition-title{margin:0 calc(-1 * var(--content-gutter))}}.content-inner .summary h2 a{text-decoration:none;border:none;color:var(--textHeaders)!important}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@font-face{font-family:Consolas;src:local("Consolas");size-adjust:110%}.content-inner.content-inner :is(a:has(code,img),pre a){color:var(--link-color);text-shadow:none;text-decoration:none;background-image:none}.content-inner.content-inner :is(a:has(code,img),pre a):is(:visited,:active,:focus,:hover){color:var(--link-visited-color)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:var(--borderRadius-sm);padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner code.inline{border-radius:var(--borderRadius-sm);word-wrap:break-word}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:1em;scrollbar-width:thin}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:var(--text-xs);font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@media screen and (max-width: 768px){.content-inner>pre:has(code),.content-inner section>pre:has(code){margin-left:calc(-1 * var(--content-gutter));margin-right:calc(-1 * var(--content-gutter))}.content-inner>pre code,.content-inner section>pre code{padding-left:var(--content-gutter);padding-right:var(--content-gutter);border-radius:0;border-left-width:0;border-right-width:0}}@keyframes blink-background{0%,to{background-color:var(--textDetailBackground)}50%{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:1em 0;padding:.5em .85em .5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--textDetailAccent);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .signature{font-family:var(--monoFontFamily);font-size:13px;font-weight:700;line-height:2em}.content-inner .detail-header:hover a.detail-link,.content-inner .detail-header a.detail-link:focus{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:var(--transition-opacity);position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}@media screen and (max-width: 768px){.content-inner .detail-header a.detail-link{margin-left:-30px}}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:var(--text-xs);font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}@media screen and (max-width: 768px){.content-inner .docstring{margin-left:0}}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:1em;background-color:var(--fnDeprecated);border-radius:var(--borderRadius-sm);margin:var(--baseLineHeight) 0}.content-inner .footer{margin:4em auto 1em;text-align:center;font-size:var(--text-sm)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em;gap:12px}.bottom-actions-item{flex:1 1 0%}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:var(--borderRadius-sm);border:1px solid var(--bottomActionsBtnBorder);padding:12px 16px;min-width:150px;transition:var(--transition-all)}.content-inner .bottom-actions .bottom-actions-button:hover{border-color:var(--mainLight)}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--textHeaders);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button .title{color:var(--bottomActionsBtnTitle)}.content-inner .bottom-actions .bottom-actions-button[rel=prev]{text-align:start}.content-inner .bottom-actions .bottom-actions-button[rel=next]{text-align:end}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}}.page-cheatmd .content-inner{--horizontal-space: 1.5em;--vertical-space: 1em}@media (max-width: 600px){.page-cheatmd .content-inner{--horizontal-space: 1em;--vertical-space: .75em}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd .content-inner h1{margin-bottom:var(--vertical-space)}.page-cheatmd .content-inner h2{margin:var(--vertical-space) 0;column-span:all;color:var(--gray700);font-weight:500}.dark .page-cheatmd .content-inner h2{color:var(--gray200)}.page-cheatmd .content-inner h3{margin:0 0 1em;font-weight:400}.page-cheatmd .content-inner section.h3{min-width:300px;margin:0;padding:0 0 calc(var(--vertical-space) * 2) 0;break-inside:avoid}.page-cheatmd .content-inner h3 .text{overflow:hidden}.page-cheatmd .content-inner h3 .text:after{content:"";margin-left:calc(var(--horizontal-space) / 2);vertical-align:baseline;display:inline-block;width:100%;height:1px;margin-right:-100%;margin-bottom:5px;background-color:var(--codeBorder)}.page-cheatmd .content-inner h4{display:block;margin:0;padding:.25em var(--horizontal-space);font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.dark .page-cheatmd .content-inner h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .content-inner .h2 p{margin:0;display:block;background:var(--gray50);padding:var(--vertical-space) var(--horizontal-space)}.dark .page-cheatmd .content-inner .h2 p{background:var(--gray700)}.page-cheatmd .content-inner .h2 p>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner pre code{padding:var(--vertical-space) var(--horizontal-space)}.page-cheatmd .content-inner .h2 pre{margin:0}.page-cheatmd .content-inner .h2 pre+pre{margin-top:-1px}.page-cheatmd .content-inner pre.wrap{white-space:break-spaces}@media screen and (max-width: 768px){.page-cheatmd .content-inner pre code{border-left-width:1px!important;border-right-width:1px!important}}.page-cheatmd .content-inner .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .content-inner .h2 th{padding:var(--vertical-space) var(--horizontal-space);line-height:inherit;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td{padding:var(--vertical-space) var(--horizontal-space);border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .content-inner .h2 td code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner .h2 thead{background-color:var(--gray50)}.dark .page-cheatmd .content-inner .h2 thead{background-color:var(--gray700)}.page-cheatmd .content-inner .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .content-inner .h2 :is(ul,ol){margin:0;padding:0}.page-cheatmd .content-inner .h2 li{list-style-position:inside;padding:.5em var(--horizontal-space);line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder);margin-top:0}.page-cheatmd .content-inner .h2 :is(ul,ol)+pre code{border-top:0}.page-cheatmd .content-inner .h2 li>code{color:#eb5757;border-radius:var(--borderRadius-sm);padding:.2em .4em}.page-cheatmd .content-inner section.width-50{display:block;width:50%;margin:0}.page-cheatmd .content-inner section.width-50>section>table{width:100%}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:40px}.page-cheatmd .content-inner section.col-2{column-count:2;height:auto}.page-cheatmd .content-inner section.col-2-left{display:grid;grid-template-columns:calc(100% / 3) auto}.page-cheatmd .content-inner section.col-2-left>h2{grid-column-end:span 2}.page-cheatmd .content-inner section.col-3{column-count:3;height:auto}.page-cheatmd .content-inner section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-4>ul>li{flex:0 0 25%}.page-cheatmd .content-inner section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 calc(100% / 6)}@media screen and (max-width: 1400px){.page-cheatmd .content-inner section.col-3{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:flex;flex-direction:column}}@media screen and (max-width: 1200px){.page-cheatmd .content-inner section:is(.col-2,.col-3){display:flex;flex-direction:column}.page-cheatmd .content-inner section.list-6>ul>li{flex:0 0 25%}}@media screen and (max-width: 1000px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 calc(100% / 3)}}@media screen and (max-width: 600px){.page-cheatmd .content-inner section:is(.list-4,.list-6)>ul>li{flex:0 0 50%}.page-cheatmd .content-inner section.width-50{width:100%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;color:var(--textHeaders);transition:var(--transition-colors)}#search .result-id a:is(:visited,:active){color:var(--textHeaders)}#search .result-id a:is(:hover,:focus){color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:var(--borderRadius-sm);box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:var(--transition-colors)}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:var(--transition-opacity)}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:var(--borderRadius-sm);font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;font-size:var(--text-sm)}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;position:absolute;width:calc(100% - 32px);top:55px}.autocomplete .triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--autocompleteBackground);position:absolute;top:8px;left:26px;transform:translate(-50%);z-index:100;background-color:transparent}.autocomplete-preview{width:100%;margin:0;height:100%;line-height:20px;background-color:var(--background);font-family:var(--sansFontFamily);border:4px solid var(--autocompleteBorder);padding:12px 16px}.autocomplete-preview div,.autocomplete-preview span{display:none}.autocomplete-preview.loading div{float:left;display:block;border:5px solid var(--autocompleteBorder);border-radius:50%;border-top:5px solid var(--textDetailAccent);width:20px;height:20px;animation:spinner 4s linear infinite}.autocomplete-preview.loading span{color:var(--autocompleteResults);display:inline;margin-left:6px}.autocomplete-preview.loading span:after{color:var(--autocompleteResults);content:"Loading"}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.autocomplete-preview.loading iframe{height:0}.autocomplete-preview iframe{width:100%;height:100%;border:0}.autocomplete-results{list-style:none;margin:0;padding:15px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--autocompleteResults);font-family:var(--sansFontFamily);font-weight:300;font-size:.9rem}.autocomplete-results .query{margin-right:auto}.autocomplete-results .bold{color:var(--autocompleteResultsBold);font-weight:400}.autocomplete.shown{display:block}.autocomplete-container{position:absolute;top:15px;width:100%;z-index:200}.autocomplete-suggestions{background-color:var(--autocompleteBackground);border-radius:var(--borderRadius-base);box-shadow:0 15px 99px 0 var(--autocompleteBorder);overflow-y:auto;max-height:450px;white-space:normal;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin}.autocomplete-suggestions.previewing:has(.selected){max-height:80vh}.autocomplete-suggestions.previewing:has(.selected) .autocomplete-suggestion:not(.selected){display:none}.autocomplete-suggestions.previewing:not(:has(.selected)) .autocomplete-preview{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview{display:none}.autocomplete-suggestion{color:var(--textHeaders)!important;display:block;padding:12px 20px;text-decoration:none!important;transition:var(--transition-colors);border-top:1px solid var(--suggestionBorder);font-size:.9rem}.autocomplete-suggestion.selected{background-color:var(--autocompleteSelected);box-shadow:inset 2px 0 var(--main)}.autocomplete-suggestion:hover{background-color:var(--autocompleteHover)}.autocomplete-suggestion:not(.selected) .autocomplete-preview-indicator{display:none}.autocomplete-preview-indicator{float:right}.autocomplete-preview-indicator button{color:var(--iconAction);display:flex;align-items:center;text-decoration:none;border:1px solid var(--suggestionBorder);border-radius:var(--borderRadius-base);transition:var(--transition-colors);background-color:var(--autocompletePreview);cursor:pointer;padding:4px 8px;font-size:var(--text-sm)}.autocomplete-preview-indicator button:hover{color:var(--iconActionHover);background-color:var(--autocompleteHover)}.autocomplete-preview-indicator button i{margin-right:4px}.autocomplete-suggestions.previewing .autocomplete-preview-indicator-closed{display:none}.autocomplete-suggestions:not(.previewing) .autocomplete-preview-indicator-open{display:none}.autocomplete-suggestion:hover:not(.selected) .autocomplete-preview-indicator-closed{display:block}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{background-color:var(--autocompleteLabelBack);opacity:.6;color:var(--autocompleteLabelFont);padding:4px 8px;border-radius:4px;margin-left:5px;text-transform:uppercase;font-family:var(--sansFontFamily);font-size:.7rem}.autocomplete-suggestion .header{margin-right:5px}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media screen and (hover: none){.autocomplete-preview-indicator,.autocomplete-results .press-return{display:none!important}}.tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}.tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}.tooltip .tooltip-body{border:1px solid var(--codeBorder);border-radius:var(--borderRadius-sm);overflow:auto}.tooltip .tooltip-body .signature{min-width:320px;width:100%;line-height:1em}.tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}.tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}.tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}.tooltip .tooltip-body .version-info{float:right;font-family:var(--monoFontFamily);font-weight:400;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button,pre .copy-button:focus{opacity:1}.copy-button{display:flex;opacity:0;position:absolute;top:7px;right:8px;padding:8px;background-color:transparent;backdrop-filter:blur(8px);border-radius:var(--borderRadius-sm);border:1px solid var(--codeBorder);cursor:pointer;transition:var(--transition-all);font-size:var(--text-sm);line-height:24px;color:currentColor;& svg[aria-live=polite]{display:none}}.copy-button svg{opacity:.5;transition:var(--transition-all)}pre .copy-button:hover svg,pre .copy-button:focus-visible svg{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{opacity:1;color:var(--success);& svg[aria-live=polite]{display:block}}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:var(--text-sm);background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:var(--borderRadius-base);transition:var(--transition-all)}#settings-modal-content .input:focus{border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray400)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:var(--text-md)}#settings-modal-content .switch-button-container>div>p{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-sm);line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:var(--transition-all)}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .switch-button__checkbox:focus{outline:0}#settings-modal-content .switch-button__checkbox:focus+.switch-button__bg{outline:2px solid var(--main);outline-offset:2px}#settings-modal-content .switch-button__checkbox:focus:not(:focus-visible)+.switch-button__bg{outline:0}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#toast{visibility:hidden;opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:var(--borderRadius-base);border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out;cursor:default}#toast.show{visibility:visible;opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.body-wrapper{display:block}.sidebar,.sidebar-button,.top-search{display:none}.content{padding-left:0;overflow:visible;left:0;width:100%}.summary-row{break-inside:avoid}#toast{display:none}.content-inner{padding:0}.content-inner .section-heading a.hover-link,.content-inner button.icon-action,.content-inner a.icon-action,.content-inner .bottom-actions{display:none}.footer p:first-of-type{display:none}.content-inner section.admonition{border:2px solid var(--gray400)}.content-inner section.admonition>.admonition-title{color:var(--textHeaders);border-bottom:2px solid var(--gray400)}.content-inner pre code.makeup{border-color:var(--gray400);white-space:break-spaces;break-inside:avoid}.content-inner blockquote code.inline,.content-inner code.inline{border-color:var(--gray400)}}@media print{.page-cheatmd .content-inner *{background-color:transparent!important;border-color:var(--gray400)!important}.page-cheatmd .content-inner{max-width:100%;width:100%;padding:0;font-size:.7em}.page-cheatmd .content-inner section:is(.col-2,.col-2-left,.col-3){column-gap:30px}.page-cheatmd .content-inner section.col-2{column-count:2}.page-cheatmd .content-inner section.col-2-left{display:grid}.page-cheatmd .content-inner section.col-3{column-count:3}.page-cheatmd .content-inner h1{margin-top:0;margin-bottom:.5em}.page-cheatmd .content-inner h2.section-heading{font-weight:700;margin-top:1em;column-span:all}.page-cheatmd .content-inner section.h2{break-inside:avoid}.page-cheatmd .content-inner h3{font-weight:700;color:var(--mainDark)}.page-cheatmd .content-inner h3:after{height:2px;background-color:var(--gray400)}.page-cheatmd .content-inner section.h3{min-width:300px;break-inside:avoid}.page-cheatmd .content-inner h4{padding:.5em 0;border:none;font-weight:700;color:#000}.page-cheatmd .content-inner .h2 p{padding-left:0;padding-right:0;border:none!important}.page-cheatmd .content-inner code{line-height:1.5em}.page-cheatmd .content-inner .h2 table{font-variant-numeric:tabular-nums;break-inside:avoid}.page-cheatmd .content-inner .h2 :is(th,td){vertical-align:top;padding-left:0;padding-right:0}.page-cheatmd .content-inner .h2 thead{border-style:solid none;border-width:1px}.page-cheatmd .content-inner .h2 tr{border-bottom:none}.page-cheatmd .content-inner .h2 th{font-weight:700}.page-cheatmd .content-inner .h2 li{padding-left:0;padding-right:0;vertical-align:middle;border-bottom:none}.page-cheatmd .content-inner pre:hover button.copy-button,.page-cheatmd .content-inner div.tooltip{display:none}.page-cheatmd .content-inner footer p:not(.built-using){display:none}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}.tabset{--borderWidth: 1px;--tabsetPadding: var(--baseLineHeight);margin:var(--baseLineHeight) 0;border:var(--borderWidth) solid var(--tabBorder);padding:0 var(--tabsetPadding);border-radius:var(--borderRadius-lg)}.tabset-tablist{display:flex;overflow:auto;scrollbar-width:thin;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--tabBorderTop)}.tabset-tab{padding:1.1rem var(--tabsetPadding);font-family:var(--sansFontFamily);color:var(--textColor);margin-right:calc(-1 * var(--borderWidth));background-color:transparent;border:0;box-shadow:none;cursor:pointer;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:transparent;transition:var(--transition-all)}:hover.tabset-tab{border-bottom-color:var(--tabBorderTop);color:var(--textHeaders)}.tabset-tab[aria-selected=true]{border-bottom-color:var(--mainLight);color:var(--textHeaders)}.tabset-tab[aria-selected=true]:focus-visible{background-color:var(--mainLight);border-color:var(--mainLight);color:var(--white)}@media screen and (max-width: 768px){.tabset{--tabsetPadding: calc(var(--baseLineHeight) / 2)}.tabset-panel{padding-top:calc(var(--tabsetPadding) / 2);padding-bottom:calc(var(--tabsetPadding) / 2)}.tabset-panel pre,.tabset-panel blockquote,.tabset-panel section.admonition{margin-left:calc(-1 * var(--tabsetPadding))!important;margin-right:calc(-1 * var(--tabsetPadding))!important}.tabset-panel>pre code{border-left-width:0;border-right-width:0}}@media screen and (max-width: 768px){.tabset-panel>:is(:first-child){&:is(table){margin:.5em 0}}}@media screen and (min-width: 769px){.tabset-panel>:is(:first-child){&:is(blockquote,.admonition){margin-top:1.5em}&:is(p:has(img)){margin-top:1.25em}&:is(table){margin-top:.75em}}.tabset-panel>:is(:last-child){&:is(blockquote,.admonition){margin-bottom:1.5em}&:is(p:not(:has(img)),ul,ol){margin-bottom:1.25em}&:is(table){margin-bottom:.75em}}}body.preview{--sidebarWidth: 0px;overflow:hidden}body.preview .content{height:auto}body.preview .content-inner{padding:0}body.preview .sidebar,body.preview #sidebar-menu,body.preview .hover-link,body.preview .detail-link{display:none}body.preview :is(h1,h2,h3):first-of-type{margin-top:0}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! Bundled license information: + +modern-normalize/modern-normalize.css: + (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *) +*/ diff --git a/lib/ex_doc/formatter/html/assets.ex b/lib/ex_doc/formatter/html/assets.ex index 2026b5e19..e29559531 100644 --- a/lib/ex_doc/formatter/html/assets.ex +++ b/lib/ex_doc/formatter/html/assets.ex @@ -7,7 +7,7 @@ defmodule ExDoc.Formatter.HTML.Assets do |> Path.wildcard() |> Enum.map(fn path -> Module.put_attribute(__CALLER__.module, :external_resource, path) - {Path.basename(path), File.read!(path)} + {Path.basename(path), "File.read!(#{path})"} end) end diff --git a/lib/ex_doc/formatter/html/search_data.ex b/lib/ex_doc/formatter/html/search_data.ex index 76d87e942..dbc1a3358 100644 --- a/lib/ex_doc/formatter/html/search_data.ex +++ b/lib/ex_doc/formatter/html/search_data.ex @@ -44,7 +44,12 @@ defmodule ExDoc.Formatter.HTML.SearchData do page = URI.encode(node.id) <> ".html" {intro, sections} = extract_sections(node.source_format, node, "module-") module = encode(page, node.title, node.type, intro) - docs = Enum.flat_map(node.docs, &node_child(&1, node, page)) + + docs = + node.docs_groups + |> Enum.flat_map(& &1.docs) + |> Enum.flat_map(&node_child(&1, node, page)) + [module] ++ render_sections(sections, page, node.title, node.type) ++ docs end diff --git a/lib/ex_doc/nodes.ex b/lib/ex_doc/nodes.ex index 4c502e03e..1501b9deb 100644 --- a/lib/ex_doc/nodes.ex +++ b/lib/ex_doc/nodes.ex @@ -17,7 +17,6 @@ defmodule ExDoc.ModuleNode do source_path: nil, source_url: nil, docs_groups: [], - docs: [], typespecs: [], type: nil, language: nil, @@ -42,7 +41,6 @@ defmodule ExDoc.ModuleNode do source_path: String.t() | nil, source_url: String.t() | nil, docs_groups: [ExDoc.DocGroupNode.t()], - docs: [ExDoc.DocNode.t()], typespecs: [ExDoc.DocNode.t()], type: atom(), language: module(), diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 89d26f7b8..e829364d6 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -167,7 +167,6 @@ defmodule ExDoc.Retriever do type: module_data.type, deprecated: metadata[:deprecated], docs_groups: docs_groups, - docs: docs, doc: normalize_doc_ast(doc_ast, "module-"), source_doc: source_doc, source_format: format, diff --git a/test/ex_doc/retriever/elixir_test.exs b/test/ex_doc/retriever/elixir_test.exs index 63dd71ba3..3f8c9897a 100644 --- a/test/ex_doc/retriever/elixir_test.exs +++ b/test/ex_doc/retriever/elixir_test.exs @@ -1,6 +1,7 @@ defmodule ExDoc.Retriever.ElixirTest do use ExUnit.Case, async: true - alias ExDoc.{Retriever, DocAST} + alias ExDoc.ModuleNode + alias ExDoc.{Retriever, DocAST, DocGroupNode} import TestHelper @moduletag :tmp_dir @@ -36,11 +37,12 @@ defmodule ExDoc.Retriever.ElixirTest do title: "Mod", type: :module, typespecs: [], - docs: [empty_doc_and_specs, function, macro], + docs_groups: [functions_group], annotations: [:public] } = mod assert DocAST.to_string(mod.doc) == "

Mod docs.

" + assert %DocGroupNode{docs: [empty_doc_and_specs, function, macro]} = functions_group assert %ExDoc.DocNode{ arity: 0, @@ -87,7 +89,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([Mod], %ExDoc.Config{}) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.id == "foo/2" assert foo.defaults == [foo: 1] @@ -103,7 +105,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([Mod], %ExDoc.Config{}) - [macro] = mod.docs + [%{docs: [macro]}] = mod.docs_groups assert macro.id == "macro/1" assert macro.annotations == ["macro"] @@ -131,7 +133,8 @@ defmodule ExDoc.Retriever.ElixirTest do {[mod], []} = Retriever.docs_from_modules([Mod], config) assert mod.type == :behaviour - [callback1, macrocallback1, optional_callback1] = mod.docs + assert [%DocGroupNode{docs: [callback1, macrocallback1, optional_callback1]}] = + mod.docs_groups assert callback1.id == "c:callback1/0" assert callback1.signature == "callback1()" @@ -178,7 +181,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[impl], []} = Retriever.docs_from_modules([Impl], %ExDoc.Config{}) - [callback1, optional_callback1] = impl.docs + assert [%DocGroupNode{docs: [callback1, optional_callback1]}] = impl.docs_groups assert callback1.id == "callback1/0" assert callback1.type == :function @@ -204,7 +207,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([Mod], %ExDoc.Config{}) - [opaque1, type1] = mod.docs + [%{docs: [opaque1, type1]}] = mod.docs_groups assert type1.id == "t:type1/0" assert type1.signature == "type1()" @@ -238,7 +241,8 @@ defmodule ExDoc.Retriever.ElixirTest do {[mod], []} = Retriever.docs_from_modules([Mod, Mod.Atom], %ExDoc.Config{}) assert mod.type == :protocol - [foo, t] = mod.docs + assert [%{title: "Types", docs: [t]}, %{title: "Functions", docs: [foo]}] = mod.docs_groups + assert foo.id == "foo/1" assert t.id == "t:t/0" end @@ -252,7 +256,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([MyStruct], %ExDoc.Config{}) - [my_struct] = mod.docs + [%{docs: [my_struct]}] = mod.docs_groups assert my_struct.id == "__struct__/0" assert my_struct.annotations == ["struct"] @@ -285,7 +289,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([Mod], %ExDoc.Config{}) - [downcase, upcase] = mod.docs + [%{docs: [downcase, upcase]}] = mod.docs_groups assert downcase.id == "downcase/1" assert downcase.signature == "downcase(str)" @@ -306,7 +310,7 @@ defmodule ExDoc.Retriever.ElixirTest do """) {[mod], []} = Retriever.docs_from_modules([Signatures], %ExDoc.Config{}) - [remote] = mod.docs + [%{docs: [remote]}] = mod.docs_groups assert remote.signature == "remote(options)" end @@ -368,23 +372,23 @@ defmodule ExDoc.Retriever.ElixirTest do {[mod], []} = Retriever.docs_from_modules([Mod], %ExDoc.Config{}) - overlapping_defaults_2 = Enum.find(mod.docs, &(&1.id == "overlapping_defaults/2")) - overlapping_defaults_3 = Enum.find(mod.docs, &(&1.id == "overlapping_defaults/3")) + overlapping_defaults_2 = find_doc(mod, &(&1.id == "overlapping_defaults/2")) + overlapping_defaults_3 = find_doc(mod, &(&1.id == "overlapping_defaults/3")) assert overlapping_defaults_2.defaults == [] assert overlapping_defaults_3.defaults == [] - two_defaults_2 = Enum.find(mod.docs, &(&1.id == "two_defaults/2")) - two_defaults_4 = Enum.find(mod.docs, &(&1.id == "two_defaults/4")) + two_defaults_2 = find_doc(mod, &(&1.id == "two_defaults/2")) + two_defaults_4 = find_doc(mod, &(&1.id == "two_defaults/4")) assert two_defaults_2.defaults == [] assert two_defaults_4.defaults == [{:two_defaults, 3}] - special_case_2 = Enum.find(mod.docs, &(&1.id == "special_case/2")) - special_case_4 = Enum.find(mod.docs, &(&1.id == "special_case/4")) + special_case_2 = find_doc(mod, &(&1.id == "special_case/2")) + special_case_4 = find_doc(mod, &(&1.id == "special_case/4")) assert special_case_2.defaults == [] assert special_case_4.defaults == [special_case: 1, special_case: 3] - in_the_middle_2 = Enum.find(mod.docs, &(&1.id == "in_the_middle/2")) - in_the_middle_3 = Enum.find(mod.docs, &(&1.id == "in_the_middle/3")) + in_the_middle_2 = find_doc(mod, &(&1.id == "in_the_middle/2")) + in_the_middle_3 = find_doc(mod, &(&1.id == "in_the_middle/3")) assert in_the_middle_2.defaults == [] assert in_the_middle_3.defaults == [] end @@ -408,16 +412,22 @@ defmodule ExDoc.Retriever.ElixirTest do Retriever.docs_from_modules([Mod], %ExDoc.Config{}) assert %ExDoc.DocNode{annotations: ["since 1.0.0"]} = - Enum.find(mod.docs, &(&1.id == "t:t/0")) + find_doc(mod, &(&1.id == "t:t/0")) assert %ExDoc.DocNode{annotations: ["since 1.0.0"]} = - Enum.find(mod.docs, &(&1.id == "c:cb/0")) + find_doc(mod, &(&1.id == "c:cb/0")) assert %ExDoc.DocNode{annotations: ["since 1.0.0"]} = - Enum.find(mod.docs, &(&1.id == "function/0")) + find_doc(mod, &(&1.id == "function/0")) assert %ExDoc.DocNode{annotations: ["since 1.0.0", "macro"]} = - Enum.find(mod.docs, &(&1.id == "macro/0")) + find_doc(mod, &(&1.id == "macro/0")) end end + + defp find_doc(%ModuleNode{} = mod, predicate) do + mod.docs_groups + |> Stream.flat_map(& &1.docs) + |> Enum.find(predicate) + end end diff --git a/test/ex_doc/retriever/erlang_test.exs b/test/ex_doc/retriever/erlang_test.exs index d6de8c079..7afc1f850 100644 --- a/test/ex_doc/retriever/erlang_test.exs +++ b/test/ex_doc/retriever/erlang_test.exs @@ -1,6 +1,6 @@ defmodule ExDoc.Retriever.ErlangTest do use ExUnit.Case, async: true - alias ExDoc.{Retriever, DocAST, Language.Erlang} + alias ExDoc.{Retriever, DocAST, Language.Erlang, DocGroupNode} import TestHelper @moduletag :tmp_dir @@ -58,8 +58,9 @@ defmodule ExDoc.Retriever.ErlangTest do deprecated: nil, moduledoc_line: 2, moduledoc_file: moduledoc_file, - docs: [equiv_function2, function1, function2], - docs_groups: [%{title: "Functions"}], + docs_groups: [ + %DocGroupNode{title: "Functions", docs: [equiv_function2, function1, function2]} + ], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -153,8 +154,11 @@ defmodule ExDoc.Retriever.ErlangTest do deprecated: nil, moduledoc_line: 6, moduledoc_file: moduledoc_file, - docs: [type, callback, function], - docs_groups: [%{title: "Types"}, %{title: "Callbacks"}, %{title: "Functions"}], + docs_groups: [ + %DocGroupNode{title: "Types", docs: [type]}, + %DocGroupNode{title: "Callbacks", docs: [callback]}, + %DocGroupNode{title: "Functions", docs: [function]} + ], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -219,7 +223,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - assert [_] = mod.docs + [%{docs: [_]}] = mod.docs_groups end test "callbacks", c do @@ -239,7 +243,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - [callback1, equiv_callback1, optional_callback1] = mod.docs + [%{docs: [callback1, equiv_callback1, optional_callback1]}] = mod.docs_groups assert callback1.id == "c:callback1/0" assert callback1.type == :callback @@ -286,7 +290,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - [equiv_type1, nominal1, opaque1, type1] = mod.docs + [%{docs: [equiv_type1, nominal1, opaque1, type1]}] = mod.docs_groups assert opaque1.id == "t:opaque1/0" assert opaque1.type == :opaque @@ -345,7 +349,11 @@ defmodule ExDoc.Retriever.ErlangTest do {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - [callback, function, type] = mod.docs + assert [ + %{title: "Types", docs: [type]}, + %{title: "Callbacks", docs: [callback]}, + %{title: "Functions", docs: [function]} + ] = mod.docs_groups assert hd(function.specs) |> Erlang.autolink_spec(current_module: :mod, current_kfa: {:function, :function, 0}) == @@ -392,8 +400,7 @@ defmodule ExDoc.Retriever.ErlangTest do %ExDoc.ModuleNode{ deprecated: nil, moduledoc_line: _, - docs: [function1, function2], - docs_groups: [%{title: "Functions"}], + docs_groups: [%DocGroupNode{title: "Functions", docs: [function1, function2]}], group: nil, id: "mod", language: ExDoc.Language.Erlang, @@ -448,7 +455,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - assert [_] = mod.docs + [%{docs: [_]}] = mod.docs_groups end test "callbacks", c do @@ -466,7 +473,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - [callback1, optional_callback1] = mod.docs + [%{docs: [callback1, optional_callback1]}] = mod.docs_groups assert callback1.id == "c:callback1/0" assert callback1.type == :callback @@ -499,7 +506,7 @@ defmodule ExDoc.Retriever.ErlangTest do """) {[mod], []} = Retriever.docs_from_modules([:mod], default_config()) - [nominal1, opaque1, type1] = mod.docs + [%{docs: [nominal1, opaque1, type1]}] = mod.docs_groups assert opaque1.id == "t:opaque1/0" assert opaque1.type == :opaque diff --git a/test/ex_doc/retriever_test.exs b/test/ex_doc/retriever_test.exs index 243726d33..837d94d5e 100644 --- a/test/ex_doc/retriever_test.exs +++ b/test/ex_doc/retriever_test.exs @@ -27,7 +27,7 @@ defmodule ExDoc.RetrieverTest do """) {[mod], []} = Retriever.docs_from_modules([A], %ExDoc.Config{}) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.id == "foo/0" assert foo.annotations == ["since 1.0.0"] assert foo.deprecated == "deprecation message" @@ -78,7 +78,7 @@ defmodule ExDoc.RetrieverTest do config = %ExDoc.Config{} {[mod], []} = Retriever.docs_from_modules([A], config) - [bar, baz, foo] = mod.docs + [%{docs: [bar]}, %{docs: [baz]}, %{docs: [foo]}] = mod.docs_groups assert %{id: "c:foo/0", group: "a"} = foo assert %{id: "bar/0", group: "b"} = bar @@ -101,7 +101,7 @@ defmodule ExDoc.RetrieverTest do config = %ExDoc.Config{group_for_doc: & &1[:semi_group]} {[mod], []} = Retriever.docs_from_modules([A], config) - [bar, baz, foo] = mod.docs + [%{docs: [bar]}, %{docs: [baz]}, %{docs: [foo]}] = mod.docs_groups assert %{id: "c:foo/0", group: "a"} = foo assert %{id: "bar/0", group: "b"} = bar @@ -143,17 +143,15 @@ defmodule ExDoc.RetrieverTest do assert [c, b, a] = mod.docs_groups # Description returned by the function should override nil - assert %{title: "c", description: "for c"} = c + assert %{title: "c", description: "for c", docs: [baz]} = c # Description returned by the function should not override a # description from @moduledoc - assert %{title: "b", description: "predefined b"} = b + assert %{title: "b", description: "predefined b", docs: [bar]} = b # Description returned by th function should define a description # for leftover groups - assert %{title: "a", description: "for a"} = a - - [bar, baz, foo] = mod.docs + assert %{title: "a", description: "for a", docs: [foo]} = a assert %{id: "c:foo/0", group: "a"} = foo assert %{id: "bar/0", group: "b"} = bar @@ -203,7 +201,7 @@ defmodule ExDoc.RetrieverTest do end }) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.id == "foo/0" assert foo.annotations == [A, :foo, 0, :function] end @@ -226,7 +224,7 @@ defmodule ExDoc.RetrieverTest do end }) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.id == "foo/0" assert foo.annotations == [B, :bar, 1, :type] end @@ -252,7 +250,7 @@ defmodule ExDoc.RetrieverTest do end }) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.id == "foo/0" assert foo.annotations == [:baz, "since 1.0.0"] assert foo.deprecated == "deprecation message" @@ -277,7 +275,7 @@ defmodule ExDoc.RetrieverTest do end }) - [foo] = mod.docs + [%{docs: [foo]}] = mod.docs_groups assert foo.annotations == [:baz] end @@ -372,8 +370,11 @@ defmodule ExDoc.RetrieverTest do {[mod], []} = Retriever.docs_from_modules([NaturallySorted], %ExDoc.Config{}) - [function_A_0, function_A_1, function_a_0, function_a_1, function_B_0, function_b_0] = - mod.docs + [ + %{ + docs: [function_A_0, function_A_1, function_a_0, function_a_1, function_B_0, function_b_0] + } + ] = mod.docs_groups assert function_A_0.id == "function_A/0" assert function_A_1.id == "function_A/1" @@ -397,7 +398,7 @@ defmodule ExDoc.RetrieverTest do """) {[module_node], []} = Retriever.docs_from_modules([NoWhitespaceInSignature], %ExDoc.Config{}) - %{docs: [%{signature: signature}]} = module_node + [%{docs: [%{signature: signature}]}] = module_node.docs_groups assert signature == "callback_name(arg1, integer, %Date{}, term, t)" end end