> ## Documentation Index
> Fetch the complete documentation index at: https://anvil.servicetitan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# @servicetitan/anvil2-rn

> Release notes for @servicetitan/anvil2-rn, newest first.

Current version: **0.2.5**. Source: [`packages/anvil2-rn/CHANGELOG.md`](https://github.com/servicetitan/hammer/blob/main/packages/anvil2-rn/CHANGELOG.md).

## 0.2.5

### Patch Changes

* [#3000](https://github.com/servicetitan/hammer/pull/3000) [`2b10cd1`](https://github.com/servicetitan/hammer/commit/2b10cd19737da370cf44f79e103b9701484e35d0) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Card] Remove the border, matching the current design spec, reversing its layout impact (auto-sized `Card` shrinks, fixed-size `Card` regains the padding)

## 0.2.4

### Patch Changes

* [#3045](https://github.com/servicetitan/hammer/pull/3045) [`e71cb3a`](https://github.com/servicetitan/hammer/commit/e71cb3ae8997e44f70619f7377a1722bb8920763) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[ActionLog] An untitled step no longer renders a blank title line: its description takes the marker's line, as on web, and its details toggle is named by its position ("Show details for step 3")

* [#3064](https://github.com/servicetitan/hammer/pull/3064) [`3e36538`](https://github.com/servicetitan/hammer/commit/3e36538671898869a4298df2fd7563490338dcd2) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Tokens] Add `text.highlight.backgroundFallback`, a solid stand-in for `text.highlight.background` (web's gradient) on React Native, Swift, and Kotlin, which cannot render it.

  \[Text] Consume `backgroundFallback` for the `highlighted` prop's background instead of a hardcoded `rgba(188, 226, 234, 0.4)` literal.

* [#3060](https://github.com/servicetitan/hammer/pull/3060) [`6155a3f`](https://github.com/servicetitan/hammer/commit/6155a3fab8453cd7c96b2f095a2cf96189fb8f92) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[AgentThinking] A long `label` wraps within the indicator's container and truncates after two lines, instead of running past the screen edge

* Updated dependencies \[[`3e36538`](https://github.com/servicetitan/hammer/commit/3e36538671898869a4298df2fd7563490338dcd2)]:
  * @servicetitan/carto-tokens\@0.4.7
  * @servicetitan/anvil2-icons\@0.1.10

## 0.2.3

### Minor Changes

* [#2997](https://github.com/servicetitan/hammer/pull/2997) [`37d5944`](https://github.com/servicetitan/hammer/commit/37d594454be062fd2057b11a401fcf45161a986d) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[MarkdownTable, MarkdownTableCell, MarkdownTableHeaderCell, MarkdownTableRow] Add components for rendering markdown-sourced tables

* [#2992](https://github.com/servicetitan/hammer/pull/2992) [`cd90d00`](https://github.com/servicetitan/hammer/commit/cd90d00c5b02f2f1838b386d3380d6b31fd931c5) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Add `isUserTalking`, an orange presence glow for the caller

### Patch Changes

* [#2992](https://github.com/servicetitan/hammer/pull/2992) [`cd90d00`](https://github.com/servicetitan/hammer/commit/cd90d00c5b02f2f1838b386d3380d6b31fd931c5) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Fix the collapsed circle's waveform glyph to blue200

* Updated dependencies \[[`60a7a12`](https://github.com/servicetitan/hammer/commit/60a7a12c58bfa1ce3b9abe55d631acd470be4b40)]:
  * @servicetitan/anvil2-icons\@0.1.9

## 0.2.2

### Patch Changes

* Updated dependencies \[[`5a21d98`](https://github.com/servicetitan/hammer/commit/5a21d983676ac8686b864917484bc4267a6533b8), [`5a21d98`](https://github.com/servicetitan/hammer/commit/5a21d983676ac8686b864917484bc4267a6533b8), [`65336ab`](https://github.com/servicetitan/hammer/commit/65336abcfa13379fa8d16c4708fdc645b41cf1da)]:
  * @servicetitan/carto-tokens\@0.4.6
  * @servicetitan/anvil2-icons\@0.1.8

## 0.2.1

### Minor Changes

* [#2897](https://github.com/servicetitan/hammer/pull/2897) [`b628c84`](https://github.com/servicetitan/hammer/commit/b628c845e5751c536a301813afb12689597133c8) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Add `status` to the expanded strip — the leading indicator now reflects talking, thinking or listening.

  The strip's waveform moves to a 16pt box in `primitive/color/blue/200` to match design's `.Talking Indicator`, so callers that omit `status` will see it smaller and blue rather than 20pt and inverse.

### Patch Changes

* [#2899](https://github.com/servicetitan/hammer/pull/2899) [`ad50448`](https://github.com/servicetitan/hammer/commit/ad5044878de84a1d93f7f28b2124e81a395bdace) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Match the heights design draws — `promptBar.padding` is the horizontal inset, paired with `condensed` vertically, and the inline controls are 48 with the voice row's exit at 64.

  Every row built on the bar's surface loses 16pt: the text bar and the voice-mode row land at 64, and the listening and transcribing rows at 56, since their controls are unchanged.

* [#2902](https://github.com/servicetitan/hammer/pull/2902) [`56a0758`](https://github.com/servicetitan/hammer/commit/56a0758ed3473a16776f13c56e961f8da71bd3fd) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Button, ButtonToggle] Fix `Button`/`ButtonToggle` rendering a drop shadow and `secondary` drawing a 1px border in every state, matching the web kit's flat, borderless look; `secondary` is now 2pt narrower and shorter since its border no longer adds to the box.

* [#2897](https://github.com/servicetitan/hammer/pull/2897) [`b628c84`](https://github.com/servicetitan/hammer/commit/b628c845e5751c536a301813afb12689597133c8) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Fade the presence halo on turn changes and pulse it while `isAgentSpeaking`, instead of snapping it on and off.

## 0.2.0

### Major Changes

* [#2868](https://github.com/servicetitan/hammer/pull/2868) [`0347522`](https://github.com/servicetitan/hammer/commit/0347522f5e8f3be81f4a2a1f5f52fce8437b6c0e) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Withhold the send action at rest, show it disabled once the editor is focused, and enable it on a draft.

### Minor Changes

* [#2862](https://github.com/servicetitan/hammer/pull/2862) [`dc20f1d`](https://github.com/servicetitan/hammer/commit/dc20f1d557528a5a7febff5925de6cdedbef41bc) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Button] Add the `large` size and the `danger-secondary` variant to the React Native kit, with the `critical-subdued` semantic intents behind them.

* [#2866](https://github.com/servicetitan/hammer/pull/2866) [`8410327`](https://github.com/servicetitan/hammer/commit/841032761ac22727304cdb44c74528db17c8258b) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Add `isAgentSpeaking` — the presence glow now marks Atlas holding the floor rather than the call being open.

### Patch Changes

* [#2860](https://github.com/servicetitan/hammer/pull/2860) [`b6d7c34`](https://github.com/servicetitan/hammer/commit/b6d7c349b4338d6df3dd4ba0d6640cedaed0121f) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Restore the spec'd `red.700` stop glyph and alias `foreground.color.critical` for the muted-mic tint.

* [#2866](https://github.com/servicetitan/hammer/pull/2866) [`8410327`](https://github.com/servicetitan/hammer/commit/841032761ac22727304cdb44c74528db17c8258b) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Let the host align the expanded strip — it no longer pins its own `alignSelf`.

* Updated dependencies \[[`dc20f1d`](https://github.com/servicetitan/hammer/commit/dc20f1d557528a5a7febff5925de6cdedbef41bc)]:
  * @servicetitan/carto-tokens\@0.4.5
  * @servicetitan/anvil2-icons\@0.1.7

## 0.1.10

### Minor Changes

* [#2848](https://github.com/servicetitan/hammer/pull/2848) [`fcd48c7`](https://github.com/servicetitan/hammer/commit/fcd48c710036e1b6fdb06ea910b8b60c336fb8a0) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Add `isVoiceModeActive` to collapse the bar to a single exit-to-typing control during a live voice conversation.

* [#2847](https://github.com/servicetitan/hammer/pull/2847) [`48560b1`](https://github.com/servicetitan/hammer/commit/48560b176fe0c8f094bb20e2af52fb90c450eff2) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[VoiceModeFab] Add the floating voice-mode control — an idle circle, an active circle with a presence glow, and an expanded strip with mic-mute, stop, and collapse.

### Patch Changes

* Updated dependencies \[[`6e236a2`](https://github.com/servicetitan/hammer/commit/6e236a2b55edd8f4ebbe240d78e1a3a6a3588586)]:
  * @servicetitan/anvil2-icons\@0.1.6

## 0.1.9

### Minor Changes

* [#2826](https://github.com/servicetitan/hammer/pull/2826) [`cba0245`](https://github.com/servicetitan/hammer/commit/cba02454f2acd0901b8da4a54c2dc8443faafa10) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[AgentMessage] Add `showToolbar` to omit the timestamp + action row for a host with no copy/feedback surface of its own. Defaults to `true`, matching current behavior.

### Patch Changes

* [#2828](https://github.com/servicetitan/hammer/pull/2828) [`24c1d47`](https://github.com/servicetitan/hammer/commit/24c1d470bb1d840a8e6e10bdf9ec7c2d02c47358) Thanks [@w-a-t-s-o-n](https://github.com/w-a-t-s-o-n)! - \[Button] Use fully rounded corners at every size.

* Updated dependencies \[[`24c1d47`](https://github.com/servicetitan/hammer/commit/24c1d470bb1d840a8e6e10bdf9ec7c2d02c47358)]:
  * @servicetitan/carto-tokens\@0.4.4
  * @servicetitan/anvil2-icons\@0.1.5

## 0.1.8

### Minor Changes

* [#2803](https://github.com/servicetitan/hammer/pull/2803) [`f655a8d`](https://github.com/servicetitan/hammer/commit/f655a8d297191cb4899a92df36a4ddc7a4f45bf2) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Checkbox] Add a React Native checkbox, porting the AI Kit web component's API (`isSelected` / `defaultSelected` / `isIndeterminate` / `isDisabled`, and the labelled vs `aria-label`/`aria-labelledby` union).

### Patch Changes

* [#2807](https://github.com/servicetitan/hammer/pull/2807) [`d1ecabc`](https://github.com/servicetitan/hammer/commit/d1ecabce992de81055fb6345e395c1e78af34cc3) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[ActionLog, PromptBar] Stop the decorative `ActivityIndicator` from being announced as a second, unnamed progress indicator beside the labelled status.

* [#2794](https://github.com/servicetitan/hammer/pull/2794) [`49857b1`](https://github.com/servicetitan/hammer/commit/49857b1d09a43518370edd6c85c4fc0e82ed884d) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[MessageToolbar] Size the action buttons 40x40 for touch and tighten their grouping

* Updated dependencies \[[`64cea5c`](https://github.com/servicetitan/hammer/commit/64cea5cc6bae3750031164190fff1f38d07ba513)]:
  * @servicetitan/carto-tokens\@0.4.3
  * @servicetitan/anvil2-icons\@0.1.4

## 0.1.7

### Patch Changes

* [#2783](https://github.com/servicetitan/hammer/pull/2783) [`5848c75`](https://github.com/servicetitan/hammer/commit/5848c7533fc4ee69a7774d155c9c5ae599676f69) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[MessageToolbar] Order assistant actions before the timestamp, matching the web kit

## 0.1.6

### Patch Changes

* [#2729](https://github.com/servicetitan/hammer/pull/2729) [`84ff49a`](https://github.com/servicetitan/hammer/commit/84ff49a85f39dfb2c43219a1d67eae5e16078a02) Thanks [@jpex](https://github.com/jpex)! - \[Suggestion] Restyle the chip surface to match Card — standard fill, 1px standard border, and hover-only ambient elevation

* Updated dependencies \[[`84ff49a`](https://github.com/servicetitan/hammer/commit/84ff49a85f39dfb2c43219a1d67eae5e16078a02)]:
  * @servicetitan/carto-tokens\@0.4.2
  * @servicetitan/anvil2-icons\@0.1.3

## 0.1.5

### Patch Changes

* Updated dependencies \[[`2ef0653`](https://github.com/servicetitan/hammer/commit/2ef06532214695ce98607caaefb9f0e51cedf3b1)]:
  * @servicetitan/anvil2-icons\@0.1.2

## 0.1.4

### Minor Changes

* [#2711](https://github.com/servicetitan/hammer/pull/2711) [`4b85324`](https://github.com/servicetitan/hammer/commit/4b85324222f33f6421a8d1a953f6a161a5eae57c) Thanks [@ericag1985](https://github.com/ericag1985)! - \[Icons] Consume `@servicetitan/anvil2-icons/react-native` for the shared allowlist

### Patch Changes

* Updated dependencies \[[`4b85324`](https://github.com/servicetitan/hammer/commit/4b85324222f33f6421a8d1a953f6a161a5eae57c), [`4b85324`](https://github.com/servicetitan/hammer/commit/4b85324222f33f6421a8d1a953f6a161a5eae57c)]:
  * @servicetitan/anvil2-icons\@0.1.1

## 0.1.3

### Patch Changes

* [#2686](https://github.com/servicetitan/hammer/pull/2686) [`feadc16`](https://github.com/servicetitan/hammer/commit/feadc16c21a4b1a3ab842838e4c5b5ca5cde75ba) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[BottomSheet] Centre the header title and subheader. No API change.

## 0.1.2

### Minor Changes

* [#2669](https://github.com/servicetitan/hammer/pull/2669) [`21efe99`](https://github.com/servicetitan/hammer/commit/21efe990377cc5b6f154d2e37286374995b71aa4) Thanks [@w-a-t-s-o-n](https://github.com/w-a-t-s-o-n)! - Publish Carto's React Native component kit from the Hammer monorepo as `@servicetitan/anvil2-rn`.

  Formerly `@servicetitan/carto-rn-kit`.

### Patch Changes

* Updated dependencies \[[`21efe99`](https://github.com/servicetitan/hammer/commit/21efe990377cc5b6f154d2e37286374995b71aa4), [`21efe99`](https://github.com/servicetitan/hammer/commit/21efe990377cc5b6f154d2e37286374995b71aa4)]:
  * @servicetitan/carto-tokens\@0.4.1

## 0.1.1

### Minor Changes

* [#297](https://github.com/servicetitan/carto/pull/297) [`396df2d`](https://github.com/servicetitan/carto/commit/396df2d6e804169ca23ab81cfd6b301f67f2fae9) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[BottomSheet] Drag the handle down to dismiss. The grip is now an interactive control: dragging it down past a quarter of the sheet's height, or on a fast downward flick, dismisses; a shorter drag settles back open. The drag drives the same enter/exit value, so the surface slides and the scrim fades together. Only active when `isDismissable`; the handle stays hidden from assistive tech (a drag can't be performed there — the header X, or the scrim when it's hidden, remains the dismiss affordance). This is drag-to-*dismiss*, still not drag-to-resize detents.

* [#290](https://github.com/servicetitan/carto/pull/290) [`08d85da`](https://github.com/servicetitan/carto/commit/08d85daf23b302eb4f9f27fd31671f922776a6d9) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[BottomSheet] Add a React Native bottom sheet — a bottom-anchored modal surface with a drag handle, header (title + optional subheader + close), and a scrolling body region. Mirrors the web sheet's configuration-first API (`title`, `subheader`, `content`, `trigger`, `showCloseButton`, `isDismissable`, controlled/uncontrolled open state) and Dialog's motion. Drag-to-resize detents are not included in this version.

* [#296](https://github.com/servicetitan/carto/pull/296) [`6bb7888`](https://github.com/servicetitan/carto/commit/6bb788857de9bbbc57dce789e3aad38ee8cb2d54) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[ButtonToggle] Add a React Native toggle button — a persistent on/off control (bold/italic toolbar buttons, view-mode switches) built on `Button`'s own `secondary` visual system plus an informative selected treatment, matching the web kit's border-reservation trick so toggling selection never resizes the button. Selection is controlled (`isSelected`/`onChange`) or uncontrolled (`defaultSelected`/`onChange`), same split as the web kit's `ToggleButton`. Uses RN's dedicated `accessibilityRole="togglebutton"` + `accessibilityState.checked`, since plain `"button"` has no ARIA-legal state for a toggle's value and RN's `AccessibilityState` has no `pressed` key.

## 0.1.0

### Major Changes

* [#288](https://github.com/servicetitan/carto/pull/288) [`aa78524`](https://github.com/servicetitan/carto/commit/aa78524fdf7519c8b290feb226afd99753993bed) Thanks [@w-a-t-s-o-n](https://github.com/w-a-t-s-o-n)! - **Do not use the previous version in this package’s changelog.** For packages versioned in [#287](https://github.com/servicetitan/carto/pull/287), that entry was merged to `main` but never successfully published (`@servicetitan/anvil2-charts-kit@0.0.2`, `@servicetitan/anvil2-rn-charts-kit@0.1.0`, `@servicetitan/anvil2-ai-kit@0.8.4`, `@servicetitan/anvil2-rn@0.0.10`). Several of those numbers (and other unpublished builds) are permanently reserved after a security-related npm unpublish and cannot be republished.

  Bump package versions past the reserved numbers. Upgrade to the versions from this release; do not pin to the removed or unpublished ones.

* [#283](https://github.com/servicetitan/carto/pull/283) [`debb29f`](https://github.com/servicetitan/carto/commit/debb29f5f711570b9666d937c523924f026f47ef) Thanks [@ericag1985](https://github.com/ericag1985)! - \[Dependencies] Raise the `react-native` peer floor to 0.81, matching Expo SDK 54 — the version whose default architecture resolves the percentage transforms the chart tooltip positions itself with

### Minor Changes

* [#283](https://github.com/servicetitan/carto/pull/283) [`debb29f`](https://github.com/servicetitan/carto/commit/debb29f5f711570b9666d937c523924f026f47ef) Thanks [@ericag1985](https://github.com/ericag1985)! - \[TooltipSurface] Add the tooltip pill and caret as a standalone visual, for cases where the caller already knows what to explain and where — a chart overlay labelling the point under the finger, say. Also exports the `TooltipCaretDirection` and `TooltipSurfaceProps` types

### Patch Changes

* Updated dependencies \[[`aa78524`](https://github.com/servicetitan/carto/commit/aa78524fdf7519c8b290feb226afd99753993bed), [`debb29f`](https://github.com/servicetitan/carto/commit/debb29f5f711570b9666d937c523924f026f47ef)]:
  * @servicetitan/carto-tokens\@0.4.0

## 0.0.10

### Minor Changes

* [#280](https://github.com/servicetitan/carto/pull/280) [`334c709`](https://github.com/servicetitan/carto/commit/334c7095a021ce4afe7ed90628731ef2c96f4d35) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Dialog] Animate open/close — the scrim fades and the surface slides up from `spacing.expansive` while fading in, on the layer-entry motion tokens (`emphasis` in, `transition` out), matching the web Dialog. Honors the OS "Reduce motion" setting (instant), and defers the Modal's unmount so the exit actually plays. Built on `react-native-reanimated` (already a peer dependency of the kit).

* [#281](https://github.com/servicetitan/carto/pull/281) [`3746762`](https://github.com/servicetitan/carto/commit/3746762123d9c7deb0c4a6110156ac9e6a335508) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Disclosure] Animate the chevron rotation (0°↔180°) on expand/collapse instead of snapping, on the `semantic.motion.transition` curve — matching the web Disclosure's `transition: transform`. Uses built-in RN `Animated` (native driver, no new dependency) and snaps under the OS "Reduce motion" setting. Visible in `ActionLog`, which composes `Disclosure`.

* [#279](https://github.com/servicetitan/carto/pull/279) [`e74b382`](https://github.com/servicetitan/carto/commit/e74b382b044bb53afa0ffa495355b5e9fe753fd2) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Animate the inline↔stacked reflow with react-native-reanimated Layout Animations — the RN counterpart to the web PromptBar's Framer `layout` transition. Every persistent element (bar, editor, controls) shares one token-driven curve (`semantic.motion.duration.transition` + `easing.transition`) so the bar expands as a single linked motion, and it honors the OS "Reduce motion" setting. Adds `react-native-reanimated` (`>=3.16.0 <5`) as a peer dependency (install + native rebuild + add `react-native-reanimated/plugin` last in your babel plugins).

* [#278](https://github.com/servicetitan/carto/pull/278) [`ad1fd44`](https://github.com/servicetitan/carto/commit/ad1fd443c0177a53433e5ed8ea968ecd267ff529) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Render the listening state as a live scrolling audio waveform instead of a flat level-meter fill. The bars floor at a resting pill (so the row reads as "listening" at silence), scale symmetrically from center off `audioLevel`, and scroll left as new levels arrive — mirroring the web kit's internal `Waveform`. Built on RN's built-in `Animated` (no `react-native-reanimated` dependency); under the OS "reduce motion" setting the scroll stops but the bars stay responsive to the live level. Purely visual — the meter track announces the listening status via its `listeningLabel` + a polite live region (the misleading `progressbar` role, which exposed no value, is dropped).

## 0.0.9

### Minor Changes

* [#272](https://github.com/servicetitan/carto/pull/272) [`4330d0c`](https://github.com/servicetitan/carto/commit/4330d0c1d0c66b45160fc7d5c9fb0b8aa4c9f611) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Add label-override props for every voice/send control. `sendLabel` (default `"Send"`), `stopLabel` (default `"Stop"`), `startVoiceLabel` (default `"Start voice input"`), `acceptVoiceLabel` (default `"Accept voice input"`), and `cancelVoiceLabel` (default `"Cancel voice input"`) mirror the existing `listeningLabel`/`transcribingLabel` pattern — the kit has no i18n layer of its own, so a localized host now has an override for every accessible name PromptBar renders, not just two of them. Found while an early adopter's chat input (with translated en/es/fr labels) swapped onto PromptBar and lost localization on these five controls.

* [#275](https://github.com/servicetitan/carto/pull/275) [`7c06845`](https://github.com/servicetitan/carto/commit/7c068458de9ee06d013d157168095f420f4473f5) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Reflow to a stacked layout on any draft, matching the web `PromptInput`. An empty editor stays a compact inline row (`[text] [mic] [send]`); with content, the editor moves onto its own row above a right-aligned `[mic] [send]` row. Driven by `value` — no new prop, no API change. Note: the bar is taller once there's a draft (its height was already dynamic; this adds a step at the first character), so account for it in any fixed-offset / `KeyboardAvoidingView` positioning. The transition is not yet animated (`LayoutAnimation` is unreliable under Fabric; a reanimated-based follow-up is tracked).

## 0.0.8

### Minor Changes

* [#270](https://github.com/servicetitan/carto/pull/270) [`a2655d6`](https://github.com/servicetitan/carto/commit/a2655d6a55cdb306ba9836a20826e7400eb43b43) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Add voice-capture states. `onStartVoice` already surfaced a mic; the host can now drive a controlled `voiceState` (`"idle" | "listening" | "transcribing"`) so the bar renders the full voice flow, not just the mic. `"listening"` swaps the editor for a discard / live level-meter (`audioLevel`) / accept row (`onCancelVoice` / `onAcceptVoice`); `"transcribing"` shows a busy row with the interim `transcript`. Still transport-agnostic — the host owns the recorder/STT. This unblocks consumers whose chat input drives on-device speech-to-text from adopting PromptBar without regressing voice.

  Both user-facing strings are overridable for localization: `transcribingLabel` (default `"Transcribing…"` — the interim-transcript fallback and the row's accessible label) and `listeningLabel` (default `"Recording"` — the polite live-region status announced while capturing).

### Patch Changes

* [#269](https://github.com/servicetitan/carto/pull/269) [`5dcb3fc`](https://github.com/servicetitan/carto/commit/5dcb3fcd212cf9270031f53275925a733efd4ec2) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Card] Render the card border token. ANV-5318 flattened Card to a bordered, no-shadow surface and the `component.card.border` token was added, but `Card.styles.ts` never applied it — so the card had no edge and was invisible on a same-color background (its fill is the standard neutral background). The border is now drawn in every state.

  **Upgrade note:** `borderWidth` participates in RN layout, so this is a visual *and* layout change — the card grows by `2 × border.width` (or its content box shrinks by the same), and any consumer who wrapped `Card` in their own bordered surface to work around the missing edge will now see a **double border**. If that's you, remove your own wrapper.

## 0.0.7

### Minor Changes

* [#252](https://github.com/servicetitan/carto/pull/252) [`6656ed9`](https://github.com/servicetitan/carto/commit/6656ed938a446cdcc3335dab1a14936fb3108722) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[AgentMessage, UserMessage, Card, ActionLog] Adopt the `CartoTelemetryProvider` telemetry seam. Each gains an optional `analyticsId`; when it's set and a provider is mounted, the component emits a `CartoInteractionEvent` before its own handler runs — `AgentMessage`/`UserMessage` toolbar actions emit `press` with `meta.action` (`copy` | `like` | `dislike` | `retry`), `Card`'s button variant emits `press`, and `ActionLog` emits `toggle` for its steps and per-step-details disclosures with `meta.section` (`steps` | `details`), `meta.expanded`, and — for `details` — `meta.stepId` identifying which step was toggled. Adds `toggle` to `CartoInteractionType` and `AgentMessage` / `UserMessage` / `Card` / `ActionLog` to `CartoInteractionComponent`. Fully back-compatible: untagged, or with no provider, these components emit nothing and pay zero cost.

## 0.0.6

### Minor Changes

* [#249](https://github.com/servicetitan/carto/pull/249) [`4db26fb`](https://github.com/servicetitan/carto/commit/4db26fb7790e0f532f55fb0c559cce5edc5ed5d6) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Card] Add `Card` component — a static or button-interactive surface. Content flows through the `content` prop (a bare string is wrapped in `Text` for you), with a `padding` scale (`snug` | `base` | `relaxed`, default `base`). Passing `onPress` + `label` makes the whole card a button, optionally `isDisabled`.

* [#247](https://github.com/servicetitan/carto/pull/247) [`afa28d2`](https://github.com/servicetitan/carto/commit/afa28d2ed70aeb0b228bfbd58a705812b4b2d0fc) Thanks [@jonathanackerson](https://github.com/jonathanackerson)! - \[Button, CartoTelemetryProvider, Dialog, PromptBar, SuggestionList] Add an opt-in telemetry seam. Wrap an app (or subtree) in the new `CartoTelemetryProvider` with an `onInteraction` handler and instrumented components emit a semantic `CartoInteractionEvent` (`component` + `type` + optional structural `meta`) on each interaction — no per-component handler wrapping. The context value is stable for the provider's lifetime (the handler is read through a ref), so an inline `onInteraction` never re-renders instrumented consumers. A new optional `analyticsId` prop tags an instance and threads through `Button` (`press`), `SuggestionList` (`select`, `meta.index`), `PromptBar` (`submit`, `meta.length`), and `Dialog` (`press` for the confirm action; `dismiss` for the X, cancel, or scrim); a component emits only when tagged **and** a provider is mounted, so Carto's own internal chrome stays silent. Fully back-compatible: with no provider, components emit nothing and pay zero cost. Privacy: `meta` carries structural values only (an index, a length) — never typed text or user content. Also exports the `CartoInteractionComponent`, `CartoInteractionEvent`, `CartoInteractionHandler`, `CartoInteractionMeta`, and `CartoInteractionType` types.

* [#249](https://github.com/servicetitan/carto/pull/249) [`4db26fb`](https://github.com/servicetitan/carto/commit/4db26fb7790e0f532f55fb0c559cce5edc5ed5d6) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[ActionLog] Add `ActionLog` component — a collapsible vertical timeline of agent steps. Steps are supplied as a typed `steps` array (`id`, `title`, optional `description`, `status`, and `details`), each rendering a status marker (`not-started` | `in-progress` | `success` | `error`) and an optional per-step details disclosure. Expansion is uncontrolled by default (`defaultExpanded`) or controllable via `expanded` + `onExpandedChange`.

### Patch Changes

* Updated dependencies \[[`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a), [`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a), [`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a), [`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a), [`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a), [`ced2173`](https://github.com/servicetitan/carto/commit/ced2173c1cf6231d1de1c50032f40775e147eb6a)]:
  * @servicetitan/carto-tokens\@0.3.0

## 0.0.5

### Patch Changes

* Updated dependencies \[[`15a46a4`](https://github.com/servicetitan/carto/commit/15a46a4b9aa6cb1c0bccd64c478b66da53d59e45)]:
  * @servicetitan/carto-tokens\@0.2.4

## 0.0.4

### Minor Changes

* [#226](https://github.com/servicetitan/carto/pull/226) [`875b0c5`](https://github.com/servicetitan/carto/commit/875b0c522495b2ef61c6f124046a001d21c0c80b) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[MessageToolbar] Fill the selected feedback thumb so the chosen state reads visually (parity with the web filled-thumb variant). lucide ships no filled thumb glyph, so the outline glyph is filled with the ghost `Button`'s resting foreground — the same color it paints the icon stroke — yielding a clean solid thumb; the unselected thumb stays outline. The accessible label ("Remove like"/"Remove dislike") still conveys the state. Surfaces through `AgentMessage` (`currentFeedback`).

* [#227](https://github.com/servicetitan/carto/pull/227) [`f05b9eb`](https://github.com/servicetitan/carto/commit/f05b9eb8f83636e383faa915edda10b2faab0aec) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[PromptBar] Add a React Native chat prompt bar — the text-first slice of the web `PromptBar`: a controlled, auto-growing editor (`value`/`onChange`, grows to `maxRows` then scrolls) with a send action (`onSend`, gated by `canSend` which defaults to any non-whitespace draft) and an optional fine-print `disclaimer`. When a response is streaming in (`isSending`), sending is withheld; wire `onStop` too and the send button becomes a **Stop** that cancels the in-flight response. Wire `onStartVoice` to surface a mic button that hands voice capture off to the host (the kit owns no recorder/STT); the mic is withheld while `disabled` or `isSending`. Controls are vertically centered so a single line of text sits level with the buttons. Prop names mirror the web component so attachments / the transcription waveform can be added later without reshaping the API; send is button-driven (Enter inserts a newline on mobile keyboards).

## 0.0.3

### Minor Changes

* [#223](https://github.com/servicetitan/carto/pull/223) [`dbdc1fd`](https://github.com/servicetitan/carto/commit/dbdc1fd0745d026bd142439dfcaeeac46eec9695) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Text] Add bounded `color` (semantic foreground role) and `align` props. RN has no CSS color inheritance like the web `Text`, so `color` (`standard | subtle | informative | critical | inverse`, mapped to `semantic.foreground.color`) is the constrained way to pick a non-default foreground without a raw `style`; `align` (`start | center | end`) covers multi-line alignment.

## 0.0.2

### Minor Changes

* [#221](https://github.com/servicetitan/carto/pull/221) [`63b6e32`](https://github.com/servicetitan/carto/commit/63b6e32d139ca95e7e0b39318620065f5341420d) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[AgentThinking] Add a React Native agent thinking indicator (animated Atlas logo + optional status label)

* [#213](https://github.com/servicetitan/carto/pull/213) [`d0df353`](https://github.com/servicetitan/carto/commit/d0df353bd3a12e0656db966cf7ad1a43dbe13803) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[AtlasLogo] Add a React Native Atlas logo component

* [#218](https://github.com/servicetitan/carto/pull/218) [`a28f694`](https://github.com/servicetitan/carto/commit/a28f6940862d81a8f0a08956b40529c51d72e158) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Dialog] Add a React Native modal dialog component

* [#219](https://github.com/servicetitan/carto/pull/219) [`43acfc6`](https://github.com/servicetitan/carto/commit/43acfc61c0e67b8b211dd61eeb9504f6873d8cec) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[UserMessage, AgentMessage] Add React Native chat message components with a shared message toolbar (copy + retry / copy + feedback)

* [#214](https://github.com/servicetitan/carto/pull/214) [`477e0dc`](https://github.com/servicetitan/carto/commit/477e0dc9906848a89fb0efb57b0dce87ec21f902) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Suggestion] Add React Native `Suggestion` and `SuggestionList` components

* [#220](https://github.com/servicetitan/carto/pull/220) [`9295949`](https://github.com/servicetitan/carto/commit/92959490107e71c3eb565eedc4993b50dbb2afb8) Thanks [@rollsroyc3](https://github.com/rollsroyc3)! - \[Text] Add a React Native typographic Text component (headline / body / eyebrow)

## 0.0.1

### Minor Changes

* [#203](https://github.com/servicetitan/carto/pull/203) [`b4a6c06`](https://github.com/servicetitan/carto/commit/b4a6c065f2f941b4536b6814cc29742a43278df7) Thanks [@ericag1985](https://github.com/ericag1985)! - Add `CartoThemeProvider` + `useCartoTheme` and drive component styling from `@servicetitan/carto-tokens`' React Native `light`/`dark` bundles — `Button` now renders real token values (colors, spacing, radius, typography, elevation) instead of placeholders.

* [#201](https://github.com/servicetitan/carto/pull/201) [`36f3b3e`](https://github.com/servicetitan/carto/commit/36f3b3eb148936389cdf7d0c1f2c82fe9e9871fc) Thanks [@ericag1985](https://github.com/ericag1985)! - \[Button] Add the initial `@servicetitan/anvil2-rn` React Native component kit with a `Button` component (`primary`, `secondary`, `ghost`, `danger` variants; `medium`, `small`, `xsmall` sizes; icon and icon-only support).

### Patch Changes

* Updated dependencies \[[`78d6ae5`](https://github.com/servicetitan/carto/commit/78d6ae5f758a8f9b86bf272e5b7d64cde62dd745), [`6c6b726`](https://github.com/servicetitan/carto/commit/6c6b726c5e0bfab02407256bb0663946300accc2), [`78d6ae5`](https://github.com/servicetitan/carto/commit/78d6ae5f758a8f9b86bf272e5b7d64cde62dd745)]:
  * @servicetitan/carto-tokens\@0.2.3


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.