You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/style-guide.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -248,6 +248,7 @@ Feature toggles and interaction configuration.
248
248
| JSON Key | Type | Default | Description |
249
249
|----------|------|---------|-------------|
250
250
|`behavior.productCard.cardStyle`| string |`"actionButton"`| Product card layout. `"actionButton"` = image overlay with primary/secondary action buttons; `"productDetail"` = extended card with image, badge, name, subtitle, and price. |
251
+
|`behavior.productCard.cardsAlignment`| string |`"center"`| Horizontal alignment of product cards within their display area. `"start"` = left-aligned; `"center"` = centered; `"end"` = right-aligned. |
251
252
252
253
### Input
253
254
@@ -301,7 +302,6 @@ Feature toggles and interaction configuration.
301
302
|----------|------|---------|-------------|
302
303
|`behavior.promptSuggestions.itemMaxLines`| number |`1`| Max lines for suggestion chip text before ellipsis. |
303
304
|`behavior.promptSuggestions.showHeader`| boolean |`false`| Show a "Suggestions" header label above the chips. Label text is configurable via `text["suggestions.header"]`. |
304
-
|`behavior.promptSuggestions.alignToMessage`| boolean |`false`| Align the suggestion chips to the message bubble edges. When `false`, uses the default offset. |
305
305
306
306
> **Tip:** To hide the header subtitle, set `text["header.subtitle"]` to `""`. The subtitle is automatically hidden when its text is blank.
307
307
@@ -315,7 +315,8 @@ Feature toggles and interaction configuration.
315
315
"carouselStyle": "scroll"
316
316
},
317
317
"productCard": {
318
-
"cardStyle": "productDetail"
318
+
"cardStyle": "productDetail",
319
+
"cardsAlignment": "center"
319
320
},
320
321
"input": {
321
322
"enableVoiceInput": true,
@@ -347,8 +348,7 @@ Feature toggles and interaction configuration.
347
348
},
348
349
"promptSuggestions": {
349
350
"itemMaxLines": 1,
350
-
"showHeader": true,
351
-
"alignToMessage": true
351
+
"showHeader": true
352
352
}
353
353
}
354
354
}
@@ -554,7 +554,7 @@ Icon and image asset configuration.
554
554
555
555
| JSON Key | Type | Default | Description |
556
556
|----------|------|---------|-------------|
557
-
|`assets.icons.company`| string |`""`| Company icon displayed to the left of agent text message bubbles. Accepts a remote URL (`http://` or `https://`) or a local asset name (without extension) resolved from the app's `assets/icons/` folder. Supported local formats: `.png`, `.webp`, `.jpg`, `.jpeg`. Leave empty to show no icon. |
557
+
|`assets.icons.company`| string |`""`| Company icon displayed to the left of agent text message bubbles. When set, ALL agent response elements — message text, product cards, and prompt suggestion chips — are automatically aligned to the icon column (flush with the right edge of the icon). Accepts a remote URL (`http://` or `https://`) or a local asset name (without extension) resolved from the app's `assets/icons/` folder. Supported local formats: `.png`, `.webp`, `.jpg`, `.jpeg`. Leave empty to show no icon. |
558
558
559
559
### Example
560
560
@@ -731,8 +731,8 @@ Used when `behavior.productCard.cardStyle` is `"productDetail"`.
|`--message-max-width`|`cssLayout.messageMaxWidth`|`Double?`|`null`| Max message width (dp or %) |
734
-
|`--agent-icon-size`|`cssLayout.agentIconSize`|`Double?`|`39.0`| Size (dp) of the agent icon shown to the left of agent text messages|
735
-
|`--agent-icon-spacing`|`cssLayout.agentIconSpacing`|`Double?`|`12.0`| Horizontal gap (dp) between the agent icon and the message card |
734
+
|`--agent-icon-size`|`cssLayout.agentIconSize`|`Double?`|`39.0`| Size (dp) of the agent icon shown to the left of agent messages. Also determines the start offset applied to product cards and prompt suggestion chips so they align with the message text column.|
735
+
|`--agent-icon-spacing`|`cssLayout.agentIconSpacing`|`Double?`|`12.0`| Horizontal gap (dp) between the agent icon and the message card. Also contributes to the start offset of product cards and prompt suggestion chips.|
736
736
737
737
### Layout - Chat
738
738
@@ -1147,6 +1147,7 @@ This section documents which properties are fully implemented, partially impleme
1147
1147
|`behavior.multimodalCarousel.cardClickAction`| ⚠️ | Parsed but not implemented in carousel composables | - |
1148
1148
|`behavior.multimodalCarousel.carouselStyle`| ✅ | Switches between paged (prev/next/dots) and continuous scroll |`ProductCarousel`|
1149
1149
|`behavior.productCard.cardStyle`| ✅ | Switches between action-button cards and extended product-detail cards |`RecommendationCards`, `ProductCarousel`|
|`behavior.input.enableVoiceInput`| ✅ | Controls mic button visibility |`InputActionButtons`|
1151
1152
|`behavior.input.sendButtonStyle`| ✅ |`"default"` (paper airplane) or `"arrow"` (filled circle with upward arrow) |`SendButton`|
1152
1153
|`behavior.input.disableMultiline`| ✅ | Restricts input to a single line when `true`|`ChatTextField`|
@@ -1221,7 +1222,7 @@ This section documents which properties are fully implemented, partially impleme
1221
1222
1222
1223
| Property | Status | Notes | Used In |
1223
1224
|----------|--------|-------|---------|
1224
-
|`assets.icons.company`| ✅ | Company icon displayed to the left of agent text message bubbles|`ChatMessageItem` (`RenderTextMessageWithIcon`) |
1225
+
|`assets.icons.company`| ✅ | Company icon displayed to the left of agent text message bubbles. When set, product cards and prompt suggestion chips are automatically offset to align with the agent text column. |`ChatMessageItem` (`RenderTextMessageWithIcon`, `RenderMixedMessage`) |
1225
1226
1226
1227
### Theme Tokens - Typography
1227
1228
@@ -1449,6 +1450,7 @@ When creating themes for the Android SDK, focus on these **actively used** prope
Copy file name to clipboardExpand all lines: code/concierge/src/androidTest/kotlin/com/adobe/marketing/mobile/concierge/ui/components/messages/ChatMessageItemTest.kt
Copy file name to clipboardExpand all lines: code/concierge/src/androidTest/kotlin/com/adobe/marketing/mobile/concierge/ui/theme/ConciergeStylesTest.kt
Copy file name to clipboardExpand all lines: code/concierge/src/main/kotlin/com/adobe/marketing/mobile/concierge/ui/components/card/RecommendationCards.kt
Copy file name to clipboardExpand all lines: code/concierge/src/main/kotlin/com/adobe/marketing/mobile/concierge/ui/components/messages/ChatMessageItem.kt
+30-12Lines changed: 30 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -288,11 +288,14 @@ private fun RenderTextMessageWithIcon(
Copy file name to clipboardExpand all lines: code/concierge/src/main/kotlin/com/adobe/marketing/mobile/concierge/ui/components/welcomescreen/SuggestedPromptItem.kt
0 commit comments