When the Suki Web SDK minimizes during ambient capture, the UI transforms into a compact floating widget. Recording and session behavior stay the same; the change is so your application can reclaim screen space for the chart or other primary content. The SDK remains attached to your original root element. In minimized layout the iframe uses fixed positioning, so you must shrink or move your host container around that mount. If you leave the old reservation in place, you will see a large empty region where the full headed panel used to sit. This guide outlines host code responsibilities versus what the Web SDK already handles. For mount placement, overflow, and transform guidance, read the Minimized layout overview.Documentation Index
Fetch the complete documentation index at: https://developer.suki.ai/llms.txt
Use this file to discover all available pages before exploring further.
Minimized layout applies only to the headed Web SDK. It requires Web SDK
3.1.0 or later.Layout values from the hosted iframe
The hosted iframe sends one layout value at a time. Treatminimized and minimized-paused the same in your host layout: both mean the small overlay is active, so you should free the area you reserved for the full headed panel. When the value is expanded, give that slot back to the full panel.
| Status | Description | Action |
|---|---|---|
expanded | The full headed panel is active in your mount slot. | Restore your usual width, height, min sizes, and flex rules for that region. |
minimized | The SDK is a small floating widget; ambient capture can still be active. | Collapse or hide your mount wrapper so chart content can expand. |
minimized-paused | The SDK uses minimized chrome while ambient is paused. | Collapse the host slot the same way you do for minimized. |
How to implement minimized layout
Initialize and mount
Use a root element reserved for the iframe, the same as the
rootElement you pass to mount in @suki-sdk/js, or the parent tree where you render SukiAssistant in @suki-sdk/react.Collapse your mount wrapper
When
layout is not expanded, set width, minWidth, height, and minHeight to 0, or hide the column with flex rules (including flex-basis when that is what reserves space).Maintain visibility on the mount
Keep
overflow: visible on the mount node while minimized so the fixed-position iframe is not clipped by a scrolling or clipping ancestor.Restore dimensions when expanded
When
layout returns to expanded, restore your normal CSS dimensions or flex basis for the headed panel.In React
- The
SukiAssistantcomponent does not automatically collapse its container when the SDK minimizes. - You must use the
onLayoutChangeprop to collapse, hide, or restyle the container in your layout.
Code examples
Subscribe toui:layout-change on the @suki-sdk/js instance after initialize.
In @suki-sdk/react, drive a wrapper around SukiAssistant from onLayoutChange so your slot tracks the SDK (the React sample shows a typical wrapper with inline styles; use classes or tokens in production if you prefer).
What you do not need to do
- Iframe sizing: do not re-implement iframe width, height, or positioning. The
@suki-sdk/jspackage controls iframe geometry for expanded and minimized states when minimize is allowed. You only adjust your mount container. - Space recovery: if your layout does not have an empty slot to reclaim (for example the SDK sits in a dedicated overlay and nothing else needs to grow into a reserved column), you can skip handling
ui:layout-changefor layout recovery. You should still follow Configure the mount point on the overview so fixed positioning and stacking behave predictably.
Validate in a test environment
Follow these steps to verify your integration end to end.Start a session
Initiate ambient capture from the headed SDK UI or your controlled entry point. When capability and session state allow it, the iframe should become a small floating widget.
Confirm the layout shift
-
In JavaScript: after
ui:layout-changefires and you collapse the mount, your main content should grow into the reclaimed space. -
In React: use
onLayoutChangeto collapse your container wheneverlayoutis notexpanded, and confirm the shift matches what you expect.
If you are unsure how minimize is enabled for staging or production, ask your Suki integration contact for the current rollout process.
Troubleshooting
Widget is misplaced or clipped
Widget is misplaced or clipped
This is usually caused by
transform, filter, or will-change on an ancestor of the mount. Relocate the mount outside transformed or filtered containers, set overflow: visible on the mount while minimized, and retest.Read Avoid transformed ancestors to learn more about how to avoid this issue.Chart does not expand when the SDK minimizes
Chart does not expand when the SDK minimizes
Explicitly set
width, height, minWidth, minHeight, or flex-basis to zero (or hide the column) when layout is not expanded. Without collapsing, the layout keeps reserving the prior panel size (for example 360×640). In React, drive that collapse from onLayoutChange.Ambient dialogs are hard to see
Ambient dialogs are hard to see
Verify the feature flag or Remote Config rollout enables minimize for the user or organization, and confirm the iframe is not clipped. Check
z-index stacking and overflow on ancestors.