Package-level declarations
Types
CO₂ severity levels based on concentration thresholds (ppm).
Output of parseInlineMarkdown: the stripped text plus spans, all in display-space offsets.
The five inline styles shared with iOS.
Represents the various visual states of the node key as an enum. Each enum constant encapsulates the icon, color, descriptive text, and optional badge details.
EPA AQI severity categories for PM2.5-derived AQI (0-500), per meshtastic/design#54. Mirrors Co2Severity's ppm→severity pattern, keyed on AQI value instead.
Event emitted when a user re-presses a bottom navigation destination that should trigger a scroll-to-top behaviour on the corresponding screen.
Represents the various visual states of the security icon as an enum. Each enum constant encapsulates the icon, color, descriptive text, and optional badge details.
A non-link inline style applied over a half-open range in display-space.
Properties
Extension property to check if the channel uses a low entropy PSK (not securely encrypted).
Extension property to check if MQTT is enabled for the channel.
Extension property to check if the channel has precise location enabled.
Shared node-tinted surface treatment so node cards and message bubbles match. A node's identity color is applied as a faint wash over the neutral card surface plus a node-colored outline — the more accessible alternative to a heavily saturated fill, since content keeps the surface/onSurface AA pairing while still reading as "this node".
Functions
Screenshot-test sample; public so :screenshot-tests can render it at compact, medium, and expanded widths.
Shared composable that observes AlertManager.currentAlert and renders a MeshtasticDialog when an alert is present. This eliminates duplicated alert-rendering boilerplate across Android and Desktop host shells.
A wrapper around ConnectionsNavIcon that adds a blinking glow effect when there is mesh activity (Send/Receive).
A Text component that automatically detects and linkifies URLs, email addresses, and phone numbers.
The foundational list item. It supports a leadingIcon (optional), headline text and supportingText (optional), and a trailingContent composable (optional).
Copy-to-clipboard icon button.
Rates link quality from SNR relative to the active modem preset's demodulation floor (ModemPreset.snrLimit). A given SNR means different things per preset — e.g. -15 dB is excellent on LongSlow (SF12) but unusable on ShortFast (SF7) — so a fixed threshold mis-rates most presets.
Extension function for LazyListScope with drag-and-drop functionality for indexed items.
Generic empty-state placeholder for detail panes in list-detail layouts.
Bottom sheet shown when the user taps the event card on the Connections screen. Surfaces the event metadata the bundled event_firmware.json carries — welcome message, location, dates, and links — themed with the edition's accent color.
Full-width band of an event edition's brand palette, left to right in authored order.
Common component to check the connected device's firmware version against the minimum required version. Will display a dismissable alert if the firmware is old, or a blocking alert if it is too old.
Style spans over the RAW source (delimiters kept in place) for live in-field styling. Unlike parseInlineMarkdown this does NOT strip delimiters — it reports each bold/italic/strikethrough/code element's raw content range so a text-field OutputTransformation can addStyle without changing the stored text. Links are not styled here.
A list item with an optional leadingIcon, headline text, optional supportingText, and optional trailingIcon.
Displays a human readable description and icon representing the signal quality.
A composable that displays a signal strength indicator with an icon and optional text value. The icon and its color change based on the number of signal bars.
Shared shell for setting up global UI logic across platforms (Android, Desktop).
Common application-level setup for all Meshtastic platforms (Android, Desktop, etc.).
A comprehensive and flexible dialog component for the Meshtastic application.
Unified Floating Action Button for importing Meshtastic data (Contacts, Channels, etc.) via NFC, QR, or URL. Handles the SharedContactImportDialog if a contact is pending import.
Shared NavDisplay wrapper that configures the standard Meshtastic entry decorators, scene strategies, and transition animations for all platform hosts.
Shared NavDisplay wrapper for a single backstack.
Shared adaptive navigation shell using NavigationSuiteScaffold.
A simplified MeshtasticDialog using only string resources.
Shared composable that observes SnackbarManager.events and provides a global SnackbarHostState.
A simplified MeshtasticDialog using a title resource and a plain text message.
Prompt shown when an NFC action (scan or write) is requested while NFC is turned off. Offers to open system settings. titleRes lets the caller frame it for the specific action (e.g. scan vs write).
Node-colored outline; active (selected / online) uses a stronger alpha. Null when there's no node color.
A modifier that applies a glow animation to a node card when a packet is received.
function to display information about the current node's encryption key.
Key status (always status-colored) + the signed-node shield.
The "signed node" shield (XEdDSA), tappable like NodeKeyStatusIcon — tap opens SignedNodeDialog.
Parses the lightweight inline markdown subset shared with the iOS client — **bold**, *italic*, ~~strikethrough~~, ` `code` ` and [label](url) — into a delimiter-stripped InlineMarkdownResult.displayText plus display-space StyleSpans and LinkSpans.
Convenience overload that reads the status and actions directly from a PermissionUiState.
Shared placeholder screen for desktop/JVM feature stubs that are not yet implemented. Displays a centered label in MaterialTheme.typography.headlineMedium.
A reusable error-state card: an errorContainer message box plus one full-width recovery action. Generalizes the compass warning/recovery pattern so any feature can present context plus a single corrective action (request a permission, open Bluetooth/Wi-Fi/app settings, etc.).
Overload for SecurityIcon that takes a Channel object to determine its security state.
Displays an icon representing the security status of a channel. Clicking the icon shows a detailed help dialog.
Overload for SecurityIcon that takes an AppOnlyProtos.ChannelSet and a channel index. If the channel at the given index is not found, nothing is rendered.
Overload for SecurityIcon that takes an AppOnlyProtos.ChannelSet and a channel name. If a channel with the given name is not found, nothing is rendered. This overload optimizes lookup by name by memoizing a map of channel names to settings.
Overload for SecurityIcon that enables recomposition when making changes to the ChannelSettings.
Overload for SecurityIcon that derives the SecurityState from boolean flags.
Displays a dialog with the contact's information as a QR code and URI.
Displays a dialog for importing a shared contact.
Shared composable that conditionally renders SharedContactDialog and ScannedQrCodeDialog when the device is connected and requests are pending.
Renders the node's signal quality, or nothing when it has no SNR reading to rate.
The plain-language "signed node" explanation, shared by NodeSignedStatusIcon and the node-details signed row.
Scrolls to the targetIndex while applying the same fast-scroll optimisation used by smartScrollToTop.
Executes the smart scroll-to-top policy.
A toggleable switch list item.
Handles the display of the traceroute alert when a response is received. Consolidates the side effect logic from the main application screens into common code.
Icon + short label for a TransportMechanism value, or null if unknown. Single source for transport badging.