Skip to content

Commit 4327215

Browse files
committed
chore: update list item v0.1
2 parents 17d05d2 + 04b7775 commit 4327215

285 files changed

Lines changed: 3708 additions & 1350 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

NOTICE.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,24 @@ ouds_theme_orange/assets/component/radio-button/radio-button-selected.svg
117117
ouds_theme_orange/assets/component/switch/selected-switch.svg
118118
ouds_theme_orange/assets/component/tag/close.svg
119119
ouds_theme_orange/assets/functional/social-and-engagement/heart-empty.svg
120+
ouds_theme_orange/assets/functional/actions/delete.svg
120121
ouds_theme_orange/assets/functional/settings-and-tools/hide.svg
121122
ouds_theme_orange/assets/functional/navigation/menu.svg
123+
ouds_theme_orange/assets/functional/navigation/form-chevron-left.svg
122124
ouds_theme_orange/assets/component/bullet-list/bullet-level-0.svg
123125
ouds_theme_orange/assets/component/badge-icon/warning-external-shape.svg
124126
ouds_theme_orange/assets/component/badge-icon/warning-internal-shape.svg
125127
ouds_theme_orange/assets/component/badge-icon/error-fill.svg
126128
ouds_theme_orange/assets/component/badge-icon/info-fill.svg
127129
ouds_theme_orange/assets/component/badge-icon/tick-confirmation-fill.svg
130+
ouds_theme_orange/assets/component/list-item/expanded-false.svg
131+
ouds_theme_orange/assets/component/list-item/expanded-reverse-false.svg
132+
ouds_theme_orange/assets/component/list-item/expanded-reverse-true.svg
133+
ouds_theme_orange/assets/component/list-item/expanded-true.svg
134+
ouds_theme_orange/assets/component/list-item/external-link.svg
135+
ouds_theme_orange/assets/component/list-item/next.svg
136+
ouds_theme_orange/assets/component/list-item/previous.svg
137+
ouds_theme_orange/assets/component/list-item/select.svg
128138

129139

130140
ouds_theme_orange/fonts/Roboto-Black.ttf
@@ -171,12 +181,21 @@ ouds_theme_orange_compact/assets/functional/actions/copy.svg
171181
ouds_theme_orange_compact/assets/functional/social-and-engagement/heart-empty.svg
172182
ouds_theme_orange_compact/assets/functional/settings-and-tools/hide.svg
173183
ouds_theme_orange_compact/assets/functional/navigation/menu.svg
184+
ouds_theme_orange_compact/assets/functional/navigation/form-chevron-left.svg
174185
ouds_theme_orange_compact/assets/component/bullet-list/bullet-level-0.svg
175186
ouds_theme_orange_compact/assets/component/badge-icon/warning-external-shape.svg
176187
ouds_theme_orange_compact/assets/component/badge-icon/warning-internal-shape.svg
177188
ouds_theme_orange_compact/assets/component/badge-icon/error-fill.svg
178189
ouds_theme_orange_compact/assets/component/badge-icon/info-fill.svg
179190
ouds_theme_orange_compact/assets/component/badge-icon/tick-confirmation-fill.svg
191+
ouds_theme_orange_compact/assets/component/list-item/expanded-false.svg
192+
ouds_theme_orange_compact/assets/component/list-item/expanded-reverse-false.svg
193+
ouds_theme_orange_compact/assets/component/list-item/expanded-reverse-true.svg
194+
ouds_theme_orange_compact/assets/component/list-item/expanded-true.svg
195+
ouds_theme_orange_compact/assets/component/list-item/external-link.svg
196+
ouds_theme_orange_compact/assets/component/list-item/next.svg
197+
ouds_theme_orange_compact/assets/component/list-item/previous.svg
198+
ouds_theme_orange_compact/assets/component/list-item/select.svg
180199

181200

182201
ouds_theme_orange_compact/fonts/Roboto-Black.ttf
@@ -192,6 +211,7 @@ ouds_theme_orange_compact/fonts/SF-Pro-Display-Black-Thin.ttf
192211

193212
## OUDS / Themes / Sosh
194213
ouds_theme_orange/assets/communication/accessibility/accessibility-vision.svg
214+
ouds_theme_sosh/assets/communication/accessibility/accessibility-vision.svg
195215
ouds_theme_sosh/assets/communication/security-and-safety/lock.svg
196216
ouds_theme_sosh/assets/component/alert/error-fill.svg
197217
ouds_theme_sosh/assets/component/alert/important-fill.svg
@@ -220,14 +240,24 @@ ouds_theme_sosh/assets/component/radio-button/radio-button-selected.svg
220240
ouds_theme_sosh/assets/component/switch/selected-switch.svg
221241
ouds_theme_sosh/assets/component/tag/close.svg
222242
ouds_theme_sosh/assets/functional/social-and-engagement/heart-empty.svg
243+
ouds_theme_sosh/assets/functional/actions/delete.svg
223244
ouds_theme_sosh/assets/functional/settings-and-tools/hide.svg
224245
ouds_theme_sosh/assets/functional/navigation/menu.svg
246+
ouds_theme_sosh/assets/functional/navigation/form-chevron-left.svg
225247
ouds_theme_sosh/assets/component/bullet-list/bullet-level-0.svg
226248
ouds_theme_sosh/assets/component/badge-icon/warning-external-shape.svg
227249
ouds_theme_sosh/assets/component/badge-icon/warning-internal-shape.svg
228250
ouds_theme_sosh/assets/component/badge-icon/error-fill.svg
229251
ouds_theme_sosh/assets/component/badge-icon/info-fill.svg
230252
ouds_theme_sosh/assets/component/badge-icon/tick-confirmation-fill.svg
253+
ouds_theme_sosh/assets/component/list-item/expanded-false.svg
254+
ouds_theme_sosh/assets/component/list-item/expanded-reverse-false.svg
255+
ouds_theme_sosh/assets/component/list-item/expanded-reverse-true.svg
256+
ouds_theme_sosh/assets/component/list-item/expanded-true.svg
257+
ouds_theme_sosh/assets/component/list-item/external-link.svg
258+
ouds_theme_sosh/assets/component/list-item/next.svg
259+
ouds_theme_sosh/assets/component/list-item/previous.svg
260+
ouds_theme_sosh/assets/component/list-item/select.svg
231261

232262

233263
ouds_theme_sosh/fonts/Sosh-Black.ttf
@@ -238,6 +268,7 @@ ouds_theme_sosh/fonts/Sosh-Thin.ttf
238268

239269
## OUDS / Themes / Wireframe
240270
ouds_theme_orange/assets/communication/accessibility/accessibility-vision.svg
271+
ouds_theme_wireframe/assets/communication/accessibility/accessibility-vision.svg
241272
ouds_theme_wireframe/assets/communication/security-and-safety/lock.svg
242273
ouds_theme_wireframe/assets/component/alert/error-fill.svg
243274
ouds_theme_wireframe/assets/component/alert/important-fill.svg
@@ -266,13 +297,24 @@ ouds_theme_wireframe/assets/component/radio-button/radio-button-selected.svg
266297
ouds_theme_wireframe/assets/component/switch/selected-switch.svg
267298
ouds_theme_wireframe/assets/component/tag/close.svg
268299
ouds_theme_wireframe/assets/functional/social-and-engagement/heart-empty.svg
300+
ouds_theme_wireframe/assets/functional/actions/delete.svg
269301
ouds_theme_wireframe/assets/functional/settings-and-tools/hide.svg
270302
ouds_theme_wireframe/assets/functional/navigation/menu.svg
303+
ouds_theme_wireframe/assets/functional/navigation/form-chevron-left.svg
304+
ouds_theme_wireframe/assets/component/bullet-list/bullet-level-0.svg
271305
ouds_theme_wireframe/assets/component/badge-icon/warning-external-shape.svg
272306
ouds_theme_wireframe/assets/component/badge-icon/warning-internal-shape.svg
273307
ouds_theme_wireframe/assets/component/badge-icon/error-fill.svg
274308
ouds_theme_wireframe/assets/component/badge-icon/info-fill.svg
275309
ouds_theme_wireframe/assets/component/badge-icon/tick-confirmation-fill.svg
310+
ouds_theme_wireframe/assets/component/list-item/expanded-false.svg
311+
ouds_theme_wireframe/assets/component/list-item/expanded-reverse-false.svg
312+
ouds_theme_wireframe/assets/component/list-item/expanded-reverse-true.svg
313+
ouds_theme_wireframe/assets/component/list-item/expanded-true.svg
314+
ouds_theme_wireframe/assets/component/list-item/external-link.svg
315+
ouds_theme_wireframe/assets/component/list-item/next.svg
316+
ouds_theme_wireframe/assets/component/list-item/previous.svg
317+
ouds_theme_wireframe/assets/component/list-item/select.svg
276318

277319

278320
ouds_theme_wireframe/fonts/ShantellSans-Bold.ttf

app/CHANGELOG.md

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [Unreleased](https://github.com/Orange-OpenSource/ouds-flutter/compare/2.0.0...develop)
88
### Added
99
### Changed
10-
- [Library] `tab bar component`, update the animation of the `selected tab indicator` ([#633](https://github.com/Orange-OpenSource/ouds-flutter/issues/633))
11-
- [DemoApp][Library] Update `ToolBar Top`, with Badge in Trailing Actions ([#642](https://github.com/Orange-OpenSource/ouds-flutter/issues/642))
12-
- [DemoApp][Library] update `alert message`, `switch`, `radio`, `checkbox`, `text input`, `pin code input`, `phone number input`, components to use rich text ([#782](https://github.com/Orange-OpenSource/ouds-flutter/issues/782))
13-
- [Library] Update text input component to v1.4 ([#692](https://github.com/Orange-OpenSource/ouds-flutter/issues/692))
14-
- [Library] update `Password input` component to v1.3 ([#689](https://github.com/Orange-OpenSource/ouds-flutter/issues/689))
15-
- [Library] `filter chip` and `suggestion chip` component update to v1.4 ([#688](https://github.com/Orange-OpenSource/ouds-flutter/issues/688))
16-
- [DemoApp][Library] update `badge icon` component to 1.3.0 ([#680](https://github.com/Orange-OpenSource/ouds-flutter/issues/680))
17-
- [Library] update library icons to use the one from v1.6 ([#661](https://github.com/Orange-OpenSource/ouds-flutter/issues/661))
18-
- [Library] deps downgrade dartdoc from to 8.3.3 to fix meta version ([#786](https://github.com/Orange-OpenSource/ouds-flutter/issues/786))
19-
- [DemoApp] deps update dependency github.com/apple/swift-protobuf to 1.38.0 ([#773](https://github.com/Orange-OpenSource/ouds-flutter/issues/773))
20-
- [Library] deps update dependency bump dartdoc to 9.0.4 ([#780](https://github.com/Orange-OpenSource/ouds-flutter/issues/780))
21-
- [Library] update `Phone number input` component to v1.3 ([#690](https://github.com/Orange-OpenSource/ouds-flutter/issues/690))
22-
- [Library] update `tag` component to v1.5 ([#694](https://github.com/Orange-OpenSource/ouds-flutter/issues/694))
23-
- [Library] update `input tag` component to v1.2 ([#695](https://github.com/Orange-OpenSource/ouds-flutter/issues/695))
24-
- [DemoApp][Library] update tokens 2.5.0 ([#778](https://github.com/Orange-OpenSource/ouds-flutter/issues/778))
25-
- [DemoApp][Library] update tokens 2.4.0 ([#726](https://github.com/Orange-OpenSource/ouds-flutter/issues/726))
26-
2710
### Fixed
28-
- [DemoApp][Library] `Bottom Bar` Inconsistent order of the accessible ([#625](https://github.com/Orange-OpenSource/ouds-flutter/issues/625))
29-
- [Library] `Bottom Bar` Overlap when zoom is activated ([#627](https://github.com/Orange-OpenSource/ouds-flutter/issues/627))
30-
- [DemoApp] Update pubspec icons 1.6 ([#794](https://github.com/Orange-OpenSource/ouds-flutter/issues/794))
31-
- [Library] `Password input` Label is truncated when zoom is applied ([#600](https://github.com/Orange-OpenSource/ouds-flutter/issues/600))
32-
- [Library] `Filter chip` is not reached by keyboard focus or Switch Access focus ([#474](https://github.com/Orange-OpenSource/ouds-flutter/issues/474))
33-
- [Library] `Phone number input` Add a hint to explain how to interact with fields ([#571](https://github.com/Orange-OpenSource/ouds-flutter/issues/571))
34-
- [Library] `input tag` the whole component should have the role button ([#481](https://github.com/Orange-OpenSource/ouds-flutter/issues/481))
3511

3612
## [2.0.0](https://github.com/Orange-OpenSource/ouds-flutter/compare/1.3.1...2.0.0) - 2026-06-19
3713
### Added

app/lib/ui/components/component_variants_screen.dart

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import 'package:flutter/material.dart';
1414
import 'package:get/get.dart';
15+
import 'package:ouds_core/components/list_item/ouds_list_item.dart';
1516
import 'package:ouds_flutter_demo/main_app_bar.dart';
1617
import 'package:ouds_flutter_demo/ui/components/component_entities.dart';
1718
import 'package:ouds_flutter_demo/ui/theme/theme_controller.dart';
@@ -21,7 +22,11 @@ class ComponentVariantsScreen extends StatelessWidget {
2122
final Component component;
2223
final String? previousPageTitle;
2324

24-
const ComponentVariantsScreen({super.key, required this.component, this.previousPageTitle});
25+
const ComponentVariantsScreen({
26+
super.key,
27+
required this.component,
28+
this.previousPageTitle,
29+
});
2530

2631
@override
2732
Widget build(BuildContext context) {
@@ -40,22 +45,25 @@ class ComponentVariantsScreen extends StatelessWidget {
4045
child: Column(
4146
crossAxisAlignment: CrossAxisAlignment.stretch,
4247
children: [
43-
Container(
44-
child: component.customComponent,
45-
),
48+
Container(child: component.customComponent),
4649
Padding(
47-
padding: EdgeInsetsDirectional.all(currentTheme.spaceScheme(context).insetMedium),
50+
padding: EdgeInsetsDirectional.all(
51+
currentTheme.spaceScheme(context).insetMedium,
52+
),
4853
child: Text(
4954
component.description,
50-
style: currentTheme.typographyTokens.typeBodyDefaultLarge(context),
55+
style: currentTheme.typographyTokens.typeBodyDefaultLarge(
56+
context,
57+
),
5158
),
5259
),
5360
ListView.builder(
5461
shrinkWrap: true,
5562
physics: NeverScrollableScrollPhysics(),
5663
itemCount: component.variants?.length,
5764
itemBuilder: (BuildContext context, int index) {
58-
if (component.variants != null && index < component.variants!.length) {
65+
if (component.variants != null &&
66+
index < component.variants!.length) {
5967
return VariantEntry(
6068
variant: component.variants![index],
6169
previousPageTitle: component.title,
@@ -77,24 +85,24 @@ class VariantEntry extends StatelessWidget {
7785
final VariantComponent variant;
7886
final String? previousPageTitle;
7987

80-
const VariantEntry({super.key, required this.variant, this.previousPageTitle});
88+
const VariantEntry({
89+
super.key,
90+
required this.variant,
91+
this.previousPageTitle,
92+
});
8193

8294
@override
8395
Widget build(BuildContext context) {
84-
final themeController = Provider.of<ThemeController>(context);
85-
final currentTheme = themeController.currentTheme;
86-
8796
return Semantics(
8897
button: true,
89-
child: ListTile(
90-
title: Text(
91-
variant.title,
92-
style: currentTheme.typographyTokens.typeHeadingMedium(context),
93-
),
98+
child: OudsListItem(
99+
size: OudsListItemSize.smallSize,
100+
label: variant.title,
101+
boldLabel: true,
94102
onTap: () {
95103
Get.to(variant.screen);
96104
},
97105
),
98106
);
99107
}
100-
}
108+
}

app/lib/ui/components/list_item/list_item_code_generator.dart

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class ListItemCodeGenerator {
6262
if (state.leading != ListItemLeadingEnum.none)
6363
' leading: ${_leadingCode(state.leading)},',
6464
if (state.trailing != ListItemTrailingEnum.none)
65-
' trailing: ${_trailingCode(state.trailing)},',
65+
' trailing: ${_trailingCode(state.trailing, state.trailingTextStyle)},',
6666
if (!state.divider) ' divider: false,',
6767
if (state.background) ' background: true,',
6868
if (state.helperText.trim().isNotEmpty)
@@ -96,7 +96,7 @@ class ListItemCodeGenerator {
9696
' leading: ${_smallLeadingCode(state.leading)},',
9797
if (state.trailing != ListItemTrailingEnum.none &&
9898
ListItemTrailingEnum.smallOptions.contains(state.trailing))
99-
' trailing: ${_smallTrailingCode(state.trailing)},',
99+
' trailing: ${_smallTrailingCode(state.trailing, state.trailingTextStyle)},',
100100
if (!state.divider) ' divider: false,',
101101
' background: ${state.background},',
102102
if (state.helperText.trim().isNotEmpty)
@@ -146,10 +146,19 @@ class ListItemCodeGenerator {
146146
147147
static String _trailingCode(
148148
ListItemTrailingEnum trailing,
149+
ListItemTrailingTextStyleEnum trailingTextStyle,
149150
) => switch (trailing) {
150151
ListItemTrailingEnum.none => '',
151-
ListItemTrailingEnum.text =>
152-
"OudsListItemTrailingText(OudsListItemTrailingLabel('Label'))",
152+
ListItemTrailingEnum.text => switch (trailingTextStyle) {
153+
ListItemTrailingTextStyleEnum.label =>
154+
"OudsListItemTrailingText(OudsListItemTrailingLabel('Label'))",
155+
ListItemTrailingTextStyleEnum.labelMuted =>
156+
"OudsListItemTrailingText(OudsListItemTrailingLabelMuted('Label'))",
157+
ListItemTrailingTextStyleEnum.labelStrong =>
158+
"OudsListItemTrailingText(OudsListItemTrailingLabelStrong('Label'))",
159+
ListItemTrailingTextStyleEnum.labelAndExtraLabel =>
160+
"OudsListItemTrailingText(OudsListItemTrailingLabelAndExtraLabel('Label', 'Extra label'))",
161+
},
153162
// TODO[v0.3]: uncomment badge when available — also add ListItemTrailingEnum.badge to the enum and restore the import
154163
// ListItemTrailingEnum.badge =>
155164
// "OudsListItemTrailingBadge(\n"
@@ -185,8 +194,19 @@ class ListItemCodeGenerator {
185194

186195
static String _smallTrailingCode(
187196
ListItemTrailingEnum trailing,
197+
ListItemTrailingTextStyleEnum trailingTextStyle,
188198
) => switch (trailing) {
189-
ListItemTrailingEnum.text => "OudsSmallListItemTrailingText('Label')",
199+
ListItemTrailingEnum.text => switch (trailingTextStyle) {
200+
ListItemTrailingTextStyleEnum.label =>
201+
"OudsSmallListItemTrailingText('Label')",
202+
ListItemTrailingTextStyleEnum.labelMuted =>
203+
"OudsSmallListItemTrailingText('Label', style: OudsListItemTextStyle.labelMuted)",
204+
ListItemTrailingTextStyleEnum.labelStrong =>
205+
"OudsSmallListItemTrailingText('Label', style: OudsListItemTextStyle.labelStrong)",
206+
// labelAndExtraLabel is not supported in small — falls back to label
207+
ListItemTrailingTextStyleEnum.labelAndExtraLabel =>
208+
"OudsSmallListItemTrailingText('Label')",
209+
},
190210
ListItemTrailingEnum.icon =>
191211
"OudsSmallListItemTrailingIcon(Neutral(icon: 'assets/ic_heart.svg'))",
192212
ListItemTrailingEnum.image =>

app/lib/ui/components/list_item/list_item_customization.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class ListItemCustomizationState
5959
late final ImageSizeState imageSizeState;
6060
late final ImageFormatState imageFormatState;
6161
late final ImageRoundedState imageRoundedState;
62+
late final TrailingTextStyleState trailingTextStyleState;
6263

6364
@override
6465
void initState() {
@@ -80,6 +81,7 @@ class ListItemCustomizationState
8081
imageSizeState = ImageSizeState(setState);
8182
imageFormatState = ImageFormatState(setState);
8283
imageRoundedState = ImageRoundedState(setState);
84+
trailingTextStyleState = TrailingTextStyleState(setState);
8385
}
8486

8587
String get label => labelTextState.value;
@@ -138,6 +140,11 @@ class ListItemCustomizationState
138140
bool get imageRounded => imageRoundedState.value;
139141
set imageRounded(bool value) => imageRoundedState.value = value;
140142

143+
ListItemTrailingTextStyleEnum get trailingTextStyle =>
144+
trailingTextStyleState.selected;
145+
set trailingTextStyle(ListItemTrailingTextStyleEnum value) =>
146+
trailingTextStyleState.selected = value;
147+
141148
bool get enable => hasEnabled;
142149
set enable(bool value) => hasEnabled = value;
143150

@@ -397,3 +404,20 @@ class ImageRoundedState {
397404
});
398405
}
399406
}
407+
408+
class TrailingTextStyleState {
409+
TrailingTextStyleState(this._setState);
410+
411+
final void Function(void Function()) _setState;
412+
ListItemTrailingTextStyleEnum _selected =
413+
ListItemTrailingTextStyleEnum.label;
414+
final List<ListItemTrailingTextStyleEnum> list =
415+
ListItemTrailingTextStyleEnum.values;
416+
417+
ListItemTrailingTextStyleEnum get selected => _selected;
418+
set selected(ListItemTrailingTextStyleEnum newValue) {
419+
_setState(() {
420+
_selected = newValue;
421+
});
422+
}
423+
}

0 commit comments

Comments
 (0)