docs: publish channels: main api

This commit is contained in:
github-actions[bot] committed 2026-09-19 14:07:08 +00:00
1 parent 8c2e01e80a
commit ef920d6014
12 files changed
+13 -13

No files matched your search

@@ -93,7 +93,7 @@
<div class="breadcrumbs"><a href="../../index.html">core-navigation</a><span class="delimiter">/</span><a href="../index.html">org.meshtastic.core.navigation</a><span class="delimiter">/</span><span class="current">DeepLinkRouter</span></div>
<div class="cover ">
<h1 class="cover"><span>Deep</span><wbr><span>Link</span><wbr><span><span>Router</span></span></h1>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="index.html">DeepLinkRouter</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L44">source</a>)</span></span></div><p class="paragraph">Type-safe deep link parser for KMP Navigation 3.</p><p class="paragraph">Maps an incoming OS intent URI to a list of NavKeys representing the target backstack. This ensures that when a user deep links into a detail view, the logical "up" hierarchy is synthesized and correctly populated in the user-owned NavBackStack list.</p><p class="paragraph">Supports both legacy query-parameter URIs and modern RESTful path patterns:</p><ul><li><p class="paragraph"><code class="lang-kotlin">/nodes</code> -&gt; List of all nodes</p></li><li><p class="paragraph"><code class="lang-kotlin">/nodes/{destNum}</code> -&gt; Node details</p></li><li><p class="paragraph"><code class="lang-kotlin">/nodes/{destNum}/{metric}</code> -&gt; Specific node metric (e.g., <code class="lang-kotlin">/nodes/1234/device-metrics</code>)</p></li><li><p class="paragraph"><code class="lang-kotlin">/messages</code> -&gt; Conversation list</p></li><li><p class="paragraph"><code class="lang-kotlin">/messages/{contactKey}</code> -&gt; Specific conversation</p></li><li><p class="paragraph"><code class="lang-kotlin">/settings</code> -&gt; Settings root</p></li><li><p class="paragraph"><code class="lang-kotlin">/settings/{destNum}/{page}</code> -&gt; Specific settings page for a node</p></li><li><p class="paragraph"><code class="lang-kotlin">/wifi-provision</code> -&gt; WiFi provisioning screen</p></li><li><p class="paragraph"><code class="lang-kotlin">/wifi-provision?address={mac}</code> -&gt; WiFi provisioning targeting a specific device MAC address</p></li><li><p class="paragraph"><code class="lang-kotlin">/connections?address={prefixedAddress}</code> -&gt; Connections screen, auto-connecting to a prefixed device address (e.g. <code class="lang-kotlin">t192.168.1.1:4403</code> for TCP, <code class="lang-kotlin">xAA:BB:CC:DD:EE:FF</code> for BLE) — lets external tooling trigger a connection. <code class="lang-kotlin">address=n</code> disconnects instead of connecting.</p></li></ul></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="index.html">DeepLinkRouter</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L58">source</a>)</span></span></div><p class="paragraph">Deep-link router for KMP Navigation 3.</p><p class="paragraph">Maps an incoming OS intent URI to the back stack it should open, so a link into a detail view lands with its logical "up" hierarchy already populated. Every supported link is a <a href="https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/UriDeepLinkMatcher.html">UriDeepLinkMatcher</a> pattern whose placeholders decode straight into the target route's fields, wrapped with <a href="https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/deeplink/package-summary.html">withBackStack</a> to synthesize the parents.</p><p class="paragraph">Path literals match case-insensitively. The scheme and host are not part of the contract: <code class="lang-kotlin">meshtastic://meshtastic</code> and <code class="lang-kotlin">http(s)://meshtastic.org</code> links are routed identically, because the OS intent-filter already decides which hosts reach the app.</p><p class="paragraph">Supports both legacy query-parameter URIs and modern RESTful path patterns:</p><ul><li><p class="paragraph"><code class="lang-kotlin">/nodes</code> -&gt; List of all nodes</p></li><li><p class="paragraph"><code class="lang-kotlin">/nodes/{destNum}</code> -&gt; Node details</p></li><li><p class="paragraph"><code class="lang-kotlin">/nodes/{destNum}/{metric}</code> -&gt; Specific node metric (e.g., <code class="lang-kotlin">/nodes/1234/device-metrics</code>)</p></li><li><p class="paragraph"><code class="lang-kotlin">/messages</code> -&gt; Conversation list</p></li><li><p class="paragraph"><code class="lang-kotlin">/messages/{contactKey}</code> -&gt; Specific conversation</p></li><li><p class="paragraph"><code class="lang-kotlin">/settings</code> -&gt; Settings root</p></li><li><p class="paragraph"><code class="lang-kotlin">/settings/{destNum}/{page}</code> -&gt; Specific settings page for a node</p></li><li><p class="paragraph"><code class="lang-kotlin">/wifi-provision</code> -&gt; WiFi provisioning screen</p></li><li><p class="paragraph"><code class="lang-kotlin">/wifi-provision?address={mac}</code> -&gt; WiFi provisioning targeting a specific device MAC address</p></li><li><p class="paragraph"><code class="lang-kotlin">/connections?address={prefixedAddress}</code> -&gt; Connections screen, auto-connecting to a prefixed device address (e.g. <code class="lang-kotlin">t192.168.1.1:4403</code> for TCP, <code class="lang-kotlin">xAA:BB:CC:DD:EE:FF</code> for BLE) — lets external tooling trigger a connection. <code class="lang-kotlin">address=n</code> disconnects instead of connecting.</p></li></ul></div></div>
</div>
<div class="tabbedcontent">
<div class="tabs-section" tabs-section="tabs-section"><button class="section-tab" data-active="" data-togglable="CONSTRUCTOR,TYPE,PROPERTY,FUNCTION">Members</button></div>
@@ -110,7 +110,7 @@
</span></span></div>
<div>
<div class="title">
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="top-level-path-segments.html">topLevelPathSegments</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html">Set</a><span class="token operator">&lt;</span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">&gt;</span></div><div class="brief "><p class="paragraph">Canonical set of top-level path segments this router dispatches on. <a href="route.html">route</a> refuses segments outside this set, so a new <code class="lang-kotlin">when</code> branch stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an <code class="lang-kotlin">android:pathPrefix</code> in the https App Links intent-filter in <code class="lang-kotlin">androidApp/src/main/AndroidManifest.xml</code> — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.</p></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="top-level-path-segments.html">topLevelPathSegments</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html">Set</a><span class="token operator">&lt;</span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">&gt;</span></div><div class="brief "><p class="paragraph">Canonical set of top-level path segments this router dispatches on. <a href="route.html">route</a> refuses segments outside this set, so a new pattern stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an <code class="lang-kotlin">android:pathPrefix</code> in the https App Links intent-filter in <code class="lang-kotlin">androidApp/src/main/AndroidManifest.xml</code> — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.</p></div></div></div>
</div>
</div>
</div>
@@ -94,7 +94,7 @@
<div class="cover ">
<h1 class="cover"><span><span>route</span></span></h1>
</div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">fun </span><a href="route.html"><span class="token function">route</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">uri<span class="token operator">: </span><a href="../../../../core/common/org.meshtastic.core.common.util/-common-uri/index.html">CommonUri</a></span></span><span class="token punctuation">)</span><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html">List</a><span class="token operator">&lt;</span><a href="https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavKey.html">NavKey</a><span class="token operator">&gt;</span><span class="token operator">?</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L80">source</a>)</span></span></div><p class="paragraph">Synthesizes a backstack list from an incoming Meshtastic URI.</p><span class="kdoc-tag"><h4 class="">Return</h4><p class="paragraph">A list of strongly-typed NavKeys representing the backstack, or null if the URI is not recognized.</p></span><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":core:navigation/commonMain" data-filterable-set=":core:navigation/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span><span>uri</span></span></u></div></span></div><div><div class="title"><p class="paragraph">The incoming OS intent URI (e.g. "meshtastic://meshtastic/share?message=hello")</p></div></div></div></div></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">fun </span><a href="route.html"><span class="token function">route</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">uri<span class="token operator">: </span><a href="../../../../core/common/org.meshtastic.core.common.util/-common-uri/index.html">CommonUri</a></span></span><span class="token punctuation">)</span><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html">List</a><span class="token operator">&lt;</span><a href="https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavKey.html">NavKey</a><span class="token operator">&gt;</span><span class="token operator">?</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L97">source</a>)</span></span></div><p class="paragraph">Synthesizes a backstack list from an incoming Meshtastic URI.</p><span class="kdoc-tag"><h4 class="">Return</h4><p class="paragraph">A list of strongly-typed NavKeys representing the backstack, or null if the URI is not recognized.</p></span><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":core:navigation/commonMain" data-filterable-set=":core:navigation/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span><span>uri</span></span></u></div></span></div><div><div class="title"><p class="paragraph">The incoming OS intent URI (e.g. "meshtastic://meshtastic/share?message=hello")</p></div></div></div></div></div></div></div>
</div>
<div class="footer">
<div class="footer--container">
@@ -94,7 +94,7 @@
<div class="cover ">
<h1 class="cover"><span>top</span><wbr><span>Level</span><wbr><span>Path</span><wbr><span><span>Segments</span></span></h1>
</div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="top-level-path-segments.html">topLevelPathSegments</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html">Set</a><span class="token operator">&lt;</span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">&gt;</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L52">source</a>)</span></span></div><p class="paragraph">Canonical set of top-level path segments this router dispatches on. <a href="route.html">route</a> refuses segments outside this set, so a new <code class="lang-kotlin">when</code> branch stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an <code class="lang-kotlin">android:pathPrefix</code> in the https App Links intent-filter in <code class="lang-kotlin">androidApp/src/main/AndroidManifest.xml</code> — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.</p></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="top-level-path-segments.html">topLevelPathSegments</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html">Set</a><span class="token operator">&lt;</span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">&gt;</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/navigation/src/commonMain/kotlin/org/meshtastic/core/navigation/DeepLinkRouter.kt#L66">source</a>)</span></span></div><p class="paragraph">Canonical set of top-level path segments this router dispatches on. <a href="route.html">route</a> refuses segments outside this set, so a new pattern stays dead (and its feature tests fail) until its segment is added here. Every entry must also be declared as an <code class="lang-kotlin">android:pathPrefix</code> in the https App Links intent-filter in <code class="lang-kotlin">androidApp/src/main/AndroidManifest.xml</code> — DeepLinkManifestConsistencyTest (androidApp unit tests) enforces that directly from this set.</p></div></div>
</div>
<div class="footer">
<div class="footer--container">
@@ -154,7 +154,7 @@
</span></span></div>
<div>
<div class="title">
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="-deep-link-router/index.html">DeepLinkRouter</a></div><div class="brief "><p class="paragraph">Type-safe deep link parser for KMP Navigation 3.</p></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:navigation/commonMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="-deep-link-router/index.html">DeepLinkRouter</a></div><div class="brief "><p class="paragraph">Deep-link router for KMP Navigation 3.</p></div></div></div>
</div>
</div>
</div>
File diff suppressed because one or more lines are too long.
@@ -94,7 +94,7 @@
<div class="cover ">
<h1 class="cover"><span>Connection</span><wbr><span>Action</span><wbr><span><span>Button</span></span></h1>
</div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/feature/connections/src/commonMain/kotlin/org/meshtastic/feature/connections/ui/components/ConnectionActionButton.kt#L41">source</a>)</span></span></div><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSpacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":feature:connections/commonMain" data-filterable-set=":feature:connections/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span>icon</span><wbr><span>Content</span><wbr><span><span>Description</span></span></u></div></span></div><div><div class="title"><p class="paragraph">accessibility label for the leading icon. Defaults to <code class="lang-kotlin">null</code> because the visible <a href="-connection-action-button.html">text</a> usually describes the action; override when the icon carries information the text does not.</p></div></div></div></div></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/feature/connections/src/commonMain/kotlin/org/meshtastic/feature/connections/ui/components/ConnectionActionButton.kt#L41">source</a>)</span></span></div><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconsize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconspacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":feature:connections/commonMain" data-filterable-set=":feature:connections/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span>icon</span><wbr><span>Content</span><wbr><span><span>Description</span></span></u></div></span></div><div><div class="title"><p class="paragraph">accessibility label for the leading icon. Defaults to <code class="lang-kotlin">null</code> because the visible <a href="-connection-action-button.html">text</a> usually describes the action; override when the icon carries information the text does not.</p></div></div></div></div></div></div></div>
</div>
<div class="footer">
<div class="footer--container">
@@ -158,7 +158,7 @@
</span></span></div>
<div>
<div class="title">
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSpacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconsize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconspacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p></div></div></div>
</div>
</div>
</div>
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.