diff --git a/app/CHANGELOG.md b/app/CHANGELOG.md index 615f36846..c180b7840 100644 --- a/app/CHANGELOG.md +++ b/app/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [DemoApp][Library] For `control item` components, add edge to edge configuration ([#880](https://github.com/Orange-OpenSource/ouds-flutter/issues/880)) - [DemoApp][Library] Create component - `List item` ([#54](https://github.com/Orange-OpenSource/ouds-flutter/issues/54)) ### Changed +- [Library] for `Alert Message` component, Add default vocalisation on "info" status ([#806](https://github.com/Orange-OpenSource/ouds-flutter/issues/806)) +- [Library] For `Alert Message` component, update to v1.2.0 ([#878](https://github.com/Orange-OpenSource/ouds-flutter/issues/878)) - [Library] For `navigation button` component, update to v3.4.0 ([#870](https://github.com/Orange-OpenSource/ouds-flutter/issues/870)) - [Library] For `button` component, update to version 3.4.0 ([#869](https://github.com/Orange-OpenSource/ouds-flutter/issues/869)) - [Library] update tokens 2.7.0 ([943](https://github.com/Orange-OpenSource/ouds-flutter/issues/943)) @@ -28,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [DemoApp][Library] For `button` component, update to version 3.3.0 ([#832](https://github.com/Orange-OpenSource/ouds-flutter/issues/832)) - [DemoApp][Library] Update `progress-indicator`: add size parameter to OudsCircularProgressIndicator for button integration ([#876](https://github.com/Orange-OpenSource/ouds-flutter/issues/876)) ### Fixed +- [Library] for `Alert Message` component, Close button is not reached with keyboard ([#811](https://github.com/Orange-OpenSource/ouds-flutter/issues/811)) - [Library] Bug A11Y `Top bar` Action button and badge are not grouped in iOS ([#816](https://github.com/Orange-OpenSource/ouds-flutter/issues/816)) - [Library] `Navigation Button` Disabled state is not vocalized ([#931](https://github.com/Orange-OpenSource/ouds-flutter/issues/931)) - [Library] fix: fix Indicator Icon with text direction `list item` to resolve ar ([#925](https://github.com/Orange-OpenSource/ouds-flutter/issues/925)) diff --git a/ouds_core/CHANGELOG.md b/ouds_core/CHANGELOG.md index ab4ac878c..6d712a0e2 100644 --- a/ouds_core/CHANGELOG.md +++ b/ouds_core/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [Library] For `control item` components, add edge to edge configuration ([#880](https://github.com/Orange-OpenSource/ouds-flutter/issues/880)) - [Library] Create component - `List item` ([#54](https://github.com/Orange-OpenSource/ouds-flutter/issues/54)) ### Changed +- [Library] for `Alert Message` component, Add default vocalisation on "info" status ([#806](https://github.com/Orange-OpenSource/ouds-flutter/issues/806)) +- [Library] For `Alert Message` component, update to v1.2.0 ([#878](https://github.com/Orange-OpenSource/ouds-flutter/issues/878)) - [Library] For `navigation button` component, update to v3.4.0 ([#870](https://github.com/Orange-OpenSource/ouds-flutter/issues/870)) - [Library] For `button` component, update to version 3.4.0 ([#869](https://github.com/Orange-OpenSource/ouds-flutter/issues/869)) - [Library] update tokens 2.7.0 ([943](https://github.com/Orange-OpenSource/ouds-flutter/issues/943)) @@ -25,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [Library] For `button` component, update to version 3.3.0 ([#832](https://github.com/Orange-OpenSource/ouds-flutter/issues/832)) - [Library] Update `progress-indicator`: add size parameter to OudsCircularProgressIndicator for button integration ([#876](https://github.com/Orange-OpenSource/ouds-flutter/issues/876)) ### Fixed +- [Library] for `Alert Message` component, Close button is not reached with keyboard ([#811](https://github.com/Orange-OpenSource/ouds-flutter/issues/811)) - [Library] Bug A11Y `Top bar` Action button and badge are not grouped in iOS ([#816](https://github.com/Orange-OpenSource/ouds-flutter/issues/816)) - [Library] `Navigation Button` Disabled state is not vocalized ([#931](https://github.com/Orange-OpenSource/ouds-flutter/issues/931)) - [Library] fix: fix Indicator Icon with text direction `list item` to resolve ar ([#925](https://github.com/Orange-OpenSource/ouds-flutter/issues/925)) diff --git a/ouds_core/lib/components/alert/internal/ouds_alert_status_modifier.dart b/ouds_core/lib/components/alert/internal/ouds_alert_status_modifier.dart index 926500685..06e86191f 100644 --- a/ouds_core/lib/components/alert/internal/ouds_alert_status_modifier.dart +++ b/ouds_core/lib/components/alert/internal/ouds_alert_status_modifier.dart @@ -43,6 +43,23 @@ class OudsAlertStatusModifier { return null; } + /// Returns the Border color based on the alert message status. + Color getBorderStatusColor(OudsIconStatus? status) { + final colorTheme = OudsTheme.of(context).colorScheme(context); + + if (status != null) { + return switch (status) { + Neutral() => colorTheme.borderDefault, + Accent() => colorTheme.borderStatusAccent, + Positive() => colorTheme.borderStatusPositive, + Info() => colorTheme.borderStatusInfo, + Warning() => colorTheme.borderStatusWarning, + Negative() => colorTheme.borderStatusNegative, + }; + } + return colorTheme.borderDefault; + } + /// Returns the text color based on the alert message status. Color getStatusTextColor(OudsIconStatus? status) { final colorTheme = OudsTheme.of(context).colorScheme(context); diff --git a/ouds_core/lib/components/alert/ouds_alert_message.dart b/ouds_core/lib/components/alert/ouds_alert_message.dart index 4d10cc707..566ac67f6 100644 --- a/ouds_core/lib/components/alert/ouds_alert_message.dart +++ b/ouds_core/lib/components/alert/ouds_alert_message.dart @@ -197,39 +197,61 @@ class _OudsAlertMessageState extends State { final actionLink = widget.actionLayout != null ? OudsLink( label: widget.actionLayout!.text, + size: OudsLinkSize.defaultSize, + density: + widget.actionLayout?.layout == + OudsAlertMessageActionLayoutEnum.trailing + ? OudsLinkDensity.defaultDensity + : OudsLinkDensity.compact, onPressed: () { widget.actionLayout!.onClick?.call(); }, ) : null; + final maxWidthBoxedText = theme.sizeScheme(context).maxWidthBoxedText; + // Build the main text content of the alert, including label, description, // and bullet list. final textContentChildren = [ // Main label text. - Text( - widget.label, - style: theme.typographyTokens - .typeLabelModerateLarge(context) - .copyWith( - color: alertMessageStatusModifier.getStatusTextColor( - widget.status, + ConstrainedBox( + constraints: BoxConstraints(maxWidth: maxWidthBoxedText), + child: Text( + widget.label, + style: theme.typographyTokens + .typeLabelModerateLarge(context) + .copyWith( + color: alertMessageStatusModifier.getStatusTextColor( + widget.status, + ), ), - ), + ), ), // Optional description text. if (widget.description != null && widget.description!.isNotEmpty) ...[ SizedBox(height: alertTokens.spaceRowGap), _buildDescription(context), + SizedBox(height: alertTokens.spacePaddingBlockBottomContent), ], // Optional bullet list. A gap is added only if the list is not empty. if (widget.bulletList != null && - widget.bulletList!.any((bullet) => bullet.isNotEmpty)) + widget.bulletList!.any((bullet) => bullet.isNotEmpty)) ...[ SizedBox(height: alertTokens.spaceRowGap), - // Generate bullet list items, filtering out any empty strings. - ...?widget.bulletList - ?.where((bullet) => bullet.isNotEmpty) - .map((bullet) => buildBulletList(context, widget.status, bullet)), + // Generate bullet list items, filtering out any empty strings, and + // insert a gap between items only (not after the last one). + for (final entry + in widget.bulletList! + .where((bullet) => bullet.isNotEmpty) + .toList() + .asMap() + .entries) ...[ + if (entry.key > 0) + SizedBox(height: alertMessageTokens.spaceRowGapBullet), + buildBulletList(context, widget.status, entry.value), + ], + SizedBox(height: alertTokens.spacePaddingBlockBottomContent), + ], ]; // Build the close button if a callback is provided. @@ -247,6 +269,18 @@ class _OudsAlertMessageState extends State { // Determine if a custom icon is provided for Neutral or Accent statuses. final nonFunctionalIcon = widget.status?.nonFunctionalIcon; + bool isTrailingActionLink = + widget.actionLayout != null && + widget.actionLayout!.text.isNotEmpty && + widget.actionLayout!.layout == + OudsAlertMessageActionLayoutEnum.trailing; + + bool isBottomActionLink = + actionLink != null && + widget.actionLayout != null && + widget.actionLayout!.text.isNotEmpty && + widget.actionLayout!.layout == OudsAlertMessageActionLayoutEnum.bottom; + // Assemble the final alert content layout. Widget alertContent; alertContent = Semantics( @@ -265,6 +299,7 @@ class _OudsAlertMessageState extends State { Padding( padding: EdgeInsetsDirectional.only( top: alertTokens.spacePaddingBlock, + bottom: alertTokens.spacePaddingBlock, ), child: Container( color: widget.status?.getBackgroundColor, @@ -297,6 +332,7 @@ class _OudsAlertMessageState extends State { Padding( padding: EdgeInsetsDirectional.only( top: alertTokens.spacePaddingBlock, + bottom: alertTokens.spacePaddingBlock, ), child: alertMessageStatusModifier.buildStatusIcon( context, @@ -311,7 +347,6 @@ class _OudsAlertMessageState extends State { child: Padding( padding: EdgeInsetsDirectional.only( top: alertTokens.spacePaddingBlock, - end: alertTokens.spaceColumnGap, bottom: alertTokens.spacePaddingBlock, ), child: Column( @@ -329,6 +364,10 @@ class _OudsAlertMessageState extends State { ? OudsLocalizations.of( context, )?.core_common_error_a11y + : widget.status is Info + ? OudsLocalizations.of( + context, + )?.core_common_info_a11y : null, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -336,12 +375,7 @@ class _OudsAlertMessageState extends State { ), ), // Optional action link positioned at the bottom. - if (actionLink != null && - widget.actionLayout != null && - widget.actionLayout!.text.isNotEmpty && - widget.actionLayout!.layout == - OudsAlertMessageActionLayoutEnum.bottom) ...[ - SizedBox(height: alertTokens.spaceRowGapAction), + if (isBottomActionLink) ...[ Semantics( sortKey: const OrdinalSortKey(2.0), container: true, @@ -356,10 +390,8 @@ class _OudsAlertMessageState extends State { ), ), // Optional action link positioned at the top-end. - if (widget.actionLayout != null && - widget.actionLayout!.text.isNotEmpty && - widget.actionLayout!.layout == - OudsAlertMessageActionLayoutEnum.trailing) ...[ + if (isTrailingActionLink) ...[ + SizedBox(width: alertTokens.spaceColumnGap), Semantics( sortKey: const OrdinalSortKey(2.0), container: true, @@ -373,10 +405,15 @@ class _OudsAlertMessageState extends State { ], // Optional close button. if (closeButton != null) ...[ + SizedBox( + width: isTrailingActionLink ? 0 : alertTokens.spaceColumnGap, + ), Semantics( sortKey: const OrdinalSortKey(3.0), button: true, container: true, + // it's used for iOS Keyboard , for Voice Over it can reached by Button/Label + focusable: true, label: l10n?.core_alert_alertMessage_close_label_a11y, child: closeButton, ), @@ -394,11 +431,15 @@ class _OudsAlertMessageState extends State { ), padding: EdgeInsetsDirectional.only( start: alertTokens.spacePaddingInline, + end: isTrailingActionLink == false && closeButton == null + ? alertTokens.spacePaddingInline + : 0, ), decoration: BoxDecoration( border: OudsBorder().borderAll( width: alertMessageTokens.borderWidth, - color: Colors.transparent, + color: alertMessageStatusModifier.getBorderStatusColor(widget.status), + strokeAlign: BorderSide.strokeAlignInside, ), borderRadius: OudsAlertMessageBorderModifier.getBorderRadius(context), color: alertMessageStatusModifier.getStatusColor(widget.status), @@ -411,19 +452,22 @@ class _OudsAlertMessageState extends State { Widget _buildDescription(BuildContext context) { final theme = OudsTheme.of(context); final alertMessageStatusModifier = OudsAlertStatusModifier(context); - final textStyle = theme.typographyTokens .typeLabelDefaultMedium(context) .copyWith( color: alertMessageStatusModifier.getStatusTextColor(widget.status), ); - return Text.rich( - MarkdownSpanBuilder.buildRichText( - context, - widget.description ?? '', - baseStyle: textStyle, - onLinkTap: widget.onDescriptionLinkTapped, + final maxWidthBoxedText = theme.sizeScheme(context).maxWidthBoxedText; + return ConstrainedBox( + constraints: BoxConstraints(maxWidth: maxWidthBoxedText), + child: Text.rich( + MarkdownSpanBuilder.buildRichText( + context, + widget.description ?? '', + baseStyle: textStyle, + onLinkTap: widget.onDescriptionLinkTapped, + ), ), ); } @@ -439,7 +483,6 @@ class _OudsAlertMessageState extends State { ) { final theme = OudsTheme.of(context); final alertMessageStatusModifier = OudsAlertStatusModifier(context); - final maxTextWidth = theme.sizeScheme(context).maxWidthLabelMedium; final textScaler = MediaQuery.textScalerOf(context); final double iconContainerWidth = textScaler.scale( theme.sizeScheme(context).iconWithLabelMediumSizeMedium, @@ -456,6 +499,8 @@ class _OudsAlertMessageState extends State { theme.sizeScheme(context).iconWithLabelMediumSizeSmall, ); + final maxWidthBoxedText = theme.sizeScheme(context).maxWidthBoxedText; + return IntrinsicHeight( child: Row( crossAxisAlignment: CrossAxisAlignment.start, @@ -487,7 +532,7 @@ class _OudsAlertMessageState extends State { ), Flexible( child: ConstrainedBox( - constraints: BoxConstraints(maxWidth: maxTextWidth), + constraints: BoxConstraints(maxWidth: maxWidthBoxedText), child: Text.rich( MarkdownSpanBuilder.buildBoldOnly(label, baseStyle: textStyle), ), diff --git a/ouds_core/lib/components/alert/ouds_inline_alert.dart b/ouds_core/lib/components/alert/ouds_inline_alert.dart index 623aa477e..f330dbd86 100644 --- a/ouds_core/lib/components/alert/ouds_inline_alert.dart +++ b/ouds_core/lib/components/alert/ouds_inline_alert.dart @@ -70,6 +70,8 @@ class _OudsInlineAlertState extends State { ? OudsLocalizations.of(context)?.core_common_warning_a11y : widget.status is Negative ? OudsLocalizations.of(context)?.core_common_error_a11y + : widget.status is Info + ? OudsLocalizations.of(context)?.core_common_info_a11y : null, container: true, child: Row( diff --git a/ouds_core/lib/components/common/OudsBorder.dart b/ouds_core/lib/components/common/OudsBorder.dart index 01bb43a3d..c7c9577b6 100644 --- a/ouds_core/lib/components/common/OudsBorder.dart +++ b/ouds_core/lib/components/common/OudsBorder.dart @@ -42,6 +42,9 @@ class OudsBorder { /// - [width]: The width of the border. If this value is considered "Hairline," no border is created. /// - [color]: The color of the border. /// - [style]: The style of the border (default: BorderStyle.solid). + /// - [strokeAlign]: Where the border is painted relative to the box's edge. + /// Defaults to [BorderSide.strokeAlignInside] to match Figma's "Inside" stroke + /// position, which is the alignment used across OUDS components. /// /// Returns an instance of [Border] if the width is not "Hairline"; otherwise, returns null. /// @@ -49,8 +52,8 @@ class OudsBorder { required double width, required Color color, BorderStyle? style, + double strokeAlign = BorderSide.strokeAlignInside, }) { - final widthNone = width.takeUnlessHairline(); if (widthNone == null) return null; @@ -58,6 +61,7 @@ class OudsBorder { color: color, width: width, style: style ?? BorderStyle.solid, + strokeAlign: strokeAlign, ); } } \ No newline at end of file diff --git a/ouds_theme_contract/lib/theme/scheme/responsive/ouds_size_scheme.dart b/ouds_theme_contract/lib/theme/scheme/responsive/ouds_size_scheme.dart index b9d87ac2c..2f35319fd 100644 --- a/ouds_theme_contract/lib/theme/scheme/responsive/ouds_size_scheme.dart +++ b/ouds_theme_contract/lib/theme/scheme/responsive/ouds_size_scheme.dart @@ -290,6 +290,12 @@ class OudsSizeScheme { tablet: sizeTokens.maxWidthLabelXlargeTablet, ); + double get maxWidthBoxedText => OudsWindowSizeClassUtil.selectMobileTablet( + sizeClass: sizeClass, + mobile: sizeTokens.maxWidthBoxedTextMobile, + tablet: sizeTokens.maxWidthBoxedTextTablet, + ); + /// Non-responsive tokens (direct mapping) /// iconDecorative diff --git a/ouds_theme_contract/lib/theme/tokens/semantic/ouds_size_semantic_tokens.dart b/ouds_theme_contract/lib/theme/tokens/semantic/ouds_size_semantic_tokens.dart index ec2ab3af8..cf4dd4c59 100644 --- a/ouds_theme_contract/lib/theme/tokens/semantic/ouds_size_semantic_tokens.dart +++ b/ouds_theme_contract/lib/theme/tokens/semantic/ouds_size_semantic_tokens.dart @@ -88,6 +88,8 @@ abstract class OudsSizeSemanticTokens { late double maxWidthBodyMediumTablet; late double maxWidthBodySmallMobile; late double maxWidthBodySmallTablet; + late double maxWidthBoxedTextMobile; + late double maxWidthBoxedTextTablet; late double maxWidthDisplayLargeMobile; late double maxWidthDisplayLargeTablet; late double maxWidthDisplayMediumMobile; diff --git a/ouds_theme_orange/lib/semantic/orange_size_semantic_tokens.dart b/ouds_theme_orange/lib/semantic/orange_size_semantic_tokens.dart index 0cdee462e..8f8c8c264 100644 --- a/ouds_theme_orange/lib/semantic/orange_size_semantic_tokens.dart +++ b/ouds_theme_orange/lib/semantic/orange_size_semantic_tokens.dart @@ -13,8 +13,8 @@ // Orange brand tokens version 2.7.0 // Generated by Tokenator -import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; import 'package:ouds_global_raw_tokens/dimension_raw_tokens.dart'; +import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; class OrangeSizeSemanticTokens extends OudsSizeSemanticTokens { @override @@ -24,7 +24,8 @@ class OrangeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorative3xsmall => DimensionRawTokens.dimension150; @override - double get iconDecorative4xsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconDecorative4xsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconDecorativeLarge => DimensionRawTokens.dimension600; @override @@ -36,89 +37,131 @@ class OrangeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorativeXsmall => DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeLargeMobile => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeMobile => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeLargeTablet => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeTablet => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeMediumMobile => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeMediumTablet => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeSmallMobile => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeSmallTablet => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeLargeMobile => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeLargeTablet => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeMediumMobile => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeMediumTablet => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeSmallMobile => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodyMediumSizeSmallTablet => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeLargeMobile => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeLargeTablet => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeMediumMobile => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeMediumTablet => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeSmallMobile => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallMobile => + DimensionRawTokens.dimension150; @override - double get iconWithBodySmallSizeSmallTablet => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallTablet => + DimensionRawTokens.dimension150; @override - double get iconWithHeadingLargeSizeLargeMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeLargeMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeLargeTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingLargeSizeLargeTablet => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingLargeSizeMediumMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeMediumMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingLargeSizeMediumTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeMediumTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeSmallMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingLargeSizeSmallMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingLargeSizeSmallTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeSmallTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingMediumSizeLargeTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingMediumSizeLargeTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingMediumSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingMediumSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingMediumSizeMediumTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingMediumSizeMediumTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingMediumSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingMediumSizeSmallTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeSmallTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeMediumTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeSmallTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingXlargeSizeLargeMobile => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeLargeMobile => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingXlargeSizeLargeTablet => DimensionRawTokens.dimension650; + double get iconWithHeadingXlargeSizeLargeTablet => + DimensionRawTokens.dimension650; @override - double get iconWithHeadingXlargeSizeMediumMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingXlargeSizeMediumMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingXlargeSizeMediumTablet => DimensionRawTokens.dimension600; + double get iconWithHeadingXlargeSizeMediumTablet => + DimensionRawTokens.dimension600; @override - double get iconWithHeadingXlargeSizeSmallMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingXlargeSizeSmallMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingXlargeSizeSmallTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeSmallTablet => + DimensionRawTokens.dimension550; @override double get iconWithLabelLargeSizeLarge => DimensionRawTokens.dimension400; @override @@ -144,7 +187,8 @@ class OrangeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconWithLabelSmallSizeSmall => DimensionRawTokens.dimension150; @override - double get iconWithLabelSmallSizeXsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconWithLabelSmallSizeXsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconWithLabelXlargeSizeLarge => DimensionRawTokens.dimension500; @override @@ -166,6 +210,10 @@ class OrangeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get maxWidthBodySmallTablet => DimensionRawTokens.dimension6000; @override + double get maxWidthBoxedTextMobile => DimensionRawTokens.dimension7000; + @override + double get maxWidthBoxedTextTablet => DimensionRawTokens.dimension8000; + @override double get maxWidthDisplayLargeMobile => DimensionRawTokens.dimension9000; @override double get maxWidthDisplayLargeTablet => DimensionRawTokens.dimension9000; diff --git a/ouds_theme_orange_compact/lib/semantic/orangeCompact_size_semantic_tokens.dart b/ouds_theme_orange_compact/lib/semantic/orangeCompact_size_semantic_tokens.dart index 114624307..857c8592e 100644 --- a/ouds_theme_orange_compact/lib/semantic/orangeCompact_size_semantic_tokens.dart +++ b/ouds_theme_orange_compact/lib/semantic/orangeCompact_size_semantic_tokens.dart @@ -13,8 +13,8 @@ // Orange Compact brand tokens version 2.7.0 // Generated by Tokenator -import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; import 'package:ouds_global_raw_tokens/dimension_raw_tokens.dart'; +import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; class OrangeCompactSizeSemanticTokens extends OudsSizeSemanticTokens { @override @@ -24,7 +24,8 @@ class OrangeCompactSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorative3xsmall => DimensionRawTokens.dimension150; @override - double get iconDecorative4xsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconDecorative4xsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconDecorativeLarge => DimensionRawTokens.dimension550; @override @@ -36,89 +37,131 @@ class OrangeCompactSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorativeXsmall => DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeLargeMobile => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeLargeMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeLargeTablet => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeLargeTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeMediumMobile => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeMediumMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeMediumTablet => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeMediumTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeSmallMobile => DimensionRawTokens.dimension200; + double get iconWithBodyLargeSizeSmallMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodyLargeSizeSmallTablet => DimensionRawTokens.dimension200; + double get iconWithBodyLargeSizeSmallTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodyMediumSizeLargeMobile => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeLargeTablet => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeMediumMobile => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeMediumTablet => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeSmallMobile => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodyMediumSizeSmallTablet => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeLargeMobile => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeLargeTablet => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeMediumMobile => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeMediumTablet => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeSmallMobile => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallMobile => + DimensionRawTokens.dimension150; @override - double get iconWithBodySmallSizeSmallTablet => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallTablet => + DimensionRawTokens.dimension150; @override - double get iconWithHeadingLargeSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingLargeSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingLargeSizeLargeTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingLargeSizeLargeTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingLargeSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingLargeSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingLargeSizeMediumTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingLargeSizeMediumTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingLargeSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingLargeSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingLargeSizeSmallTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingLargeSizeSmallTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingMediumSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingMediumSizeLargeTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeLargeTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingMediumSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingMediumSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingMediumSizeMediumTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingMediumSizeMediumTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingMediumSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingMediumSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingMediumSizeSmallTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingMediumSizeSmallTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeLargeMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeLargeMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeLargeTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeLargeTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeMediumMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeMediumMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeMediumTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeMediumTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeSmallMobile => DimensionRawTokens.dimension250; + double get iconWithHeadingSmallSizeSmallMobile => + DimensionRawTokens.dimension250; @override - double get iconWithHeadingSmallSizeSmallTablet => DimensionRawTokens.dimension250; + double get iconWithHeadingSmallSizeSmallTablet => + DimensionRawTokens.dimension250; @override - double get iconWithHeadingXlargeSizeLargeMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingXlargeSizeLargeMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingXlargeSizeLargeTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingXlargeSizeLargeTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingXlargeSizeMediumMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingXlargeSizeMediumMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingXlargeSizeMediumTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingXlargeSizeMediumTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingXlargeSizeSmallMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingXlargeSizeSmallMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingXlargeSizeSmallTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingXlargeSizeSmallTablet => + DimensionRawTokens.dimension400; @override double get iconWithLabelLargeSizeLarge => DimensionRawTokens.dimension350; @override @@ -144,7 +187,8 @@ class OrangeCompactSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconWithLabelSmallSizeSmall => DimensionRawTokens.dimension150; @override - double get iconWithLabelSmallSizeXsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconWithLabelSmallSizeXsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconWithLabelXlargeSizeLarge => DimensionRawTokens.dimension450; @override @@ -166,6 +210,10 @@ class OrangeCompactSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get maxWidthBodySmallTablet => DimensionRawTokens.dimension6000; @override + double get maxWidthBoxedTextMobile => DimensionRawTokens.dimension7000; + @override + double get maxWidthBoxedTextTablet => DimensionRawTokens.dimension7000; + @override double get maxWidthDisplayLargeMobile => DimensionRawTokens.dimension9000; @override double get maxWidthDisplayLargeTablet => DimensionRawTokens.dimension9000; diff --git a/ouds_theme_sosh/lib/ouds_theme_sosh.dart b/ouds_theme_sosh/lib/ouds_theme_sosh.dart index 159fb704c..c0cd75ee8 100644 --- a/ouds_theme_sosh/lib/ouds_theme_sosh.dart +++ b/ouds_theme_sosh/lib/ouds_theme_sosh.dart @@ -63,6 +63,7 @@ import 'package:ouds_theme_sosh/semantic/sosh_grid_semantic_tokens.dart'; import 'package:ouds_theme_sosh/semantic/sosh_opacity_semantic_tokens.dart'; import 'package:ouds_theme_sosh/semantic/sosh_size_semantic_tokens.dart'; import 'package:ouds_theme_sosh/semantic/sosh_space_semantic_tokens.dart'; +import 'package:ouds_theme_sosh/sosh_typography.dart'; /// [SoshTheme] implements the [OudsThemeContract] and defines the theme for the "White label" version of the application. /// This theme provides configurations for both light and dark modes, with customizable color schemes, typography, @@ -212,7 +213,7 @@ class SoshTheme implements OudsThemeContract { } @override - OudsTypography get typographyTokens => OudsTypography(); + OudsTypography get typographyTokens => SoshTypography(); @override OudsProvidersTokens providersTokens(BuildContext context) { return OudsProvidersTokens( diff --git a/ouds_theme_sosh/lib/semantic/sosh_size_semantic_tokens.dart b/ouds_theme_sosh/lib/semantic/sosh_size_semantic_tokens.dart index cd1fbd050..4d38089bc 100644 --- a/ouds_theme_sosh/lib/semantic/sosh_size_semantic_tokens.dart +++ b/ouds_theme_sosh/lib/semantic/sosh_size_semantic_tokens.dart @@ -13,8 +13,8 @@ // Sosh brand tokens version 2.7.0 // Generated by Tokenator -import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; import 'package:ouds_global_raw_tokens/dimension_raw_tokens.dart'; +import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; class SoshSizeSemanticTokens extends OudsSizeSemanticTokens { @override @@ -24,7 +24,8 @@ class SoshSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorative3xsmall => DimensionRawTokens.dimension150; @override - double get iconDecorative4xsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconDecorative4xsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconDecorativeLarge => DimensionRawTokens.dimension600; @override @@ -36,89 +37,131 @@ class SoshSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorativeXsmall => DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeLargeMobile => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeMobile => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeLargeTablet => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeTablet => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeMediumMobile => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeMediumTablet => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeSmallMobile => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeSmallTablet => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeLargeMobile => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeLargeTablet => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeMediumMobile => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeMediumTablet => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeSmallMobile => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodyMediumSizeSmallTablet => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeLargeMobile => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeLargeTablet => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeMediumMobile => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeMediumTablet => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeSmallMobile => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallMobile => + DimensionRawTokens.dimension150; @override - double get iconWithBodySmallSizeSmallTablet => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallTablet => + DimensionRawTokens.dimension150; @override - double get iconWithHeadingLargeSizeLargeMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeLargeMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeLargeTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingLargeSizeLargeTablet => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingLargeSizeMediumMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeMediumMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingLargeSizeMediumTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeMediumTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeSmallMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingLargeSizeSmallMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingLargeSizeSmallTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeSmallTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingMediumSizeLargeTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingMediumSizeLargeTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingMediumSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingMediumSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingMediumSizeMediumTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingMediumSizeMediumTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingMediumSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingMediumSizeSmallTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeSmallTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeMediumTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeSmallTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingXlargeSizeLargeMobile => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeLargeMobile => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingXlargeSizeLargeTablet => DimensionRawTokens.dimension650; + double get iconWithHeadingXlargeSizeLargeTablet => + DimensionRawTokens.dimension650; @override - double get iconWithHeadingXlargeSizeMediumMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingXlargeSizeMediumMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingXlargeSizeMediumTablet => DimensionRawTokens.dimension600; + double get iconWithHeadingXlargeSizeMediumTablet => + DimensionRawTokens.dimension600; @override - double get iconWithHeadingXlargeSizeSmallMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingXlargeSizeSmallMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingXlargeSizeSmallTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeSmallTablet => + DimensionRawTokens.dimension550; @override double get iconWithLabelLargeSizeLarge => DimensionRawTokens.dimension400; @override @@ -144,7 +187,8 @@ class SoshSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconWithLabelSmallSizeSmall => DimensionRawTokens.dimension150; @override - double get iconWithLabelSmallSizeXsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconWithLabelSmallSizeXsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconWithLabelXlargeSizeLarge => DimensionRawTokens.dimension500; @override @@ -166,6 +210,10 @@ class SoshSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get maxWidthBodySmallTablet => DimensionRawTokens.dimension6000; @override + double get maxWidthBoxedTextMobile => DimensionRawTokens.dimension7000; + @override + double get maxWidthBoxedTextTablet => DimensionRawTokens.dimension8000; + @override double get maxWidthDisplayLargeMobile => DimensionRawTokens.dimension9000; @override double get maxWidthDisplayLargeTablet => DimensionRawTokens.dimension9000; diff --git a/ouds_theme_sosh/lib/sosh_typography.dart b/ouds_theme_sosh/lib/sosh_typography.dart new file mode 100644 index 000000000..438e138bd --- /dev/null +++ b/ouds_theme_sosh/lib/sosh_typography.dart @@ -0,0 +1,140 @@ +/* + * // Software Name: OUDS Flutter + * // SPDX-FileCopyrightText: Copyright (c) Orange SA + * // SPDX-License-Identifier: MIT + * // + * // This software is distributed under the MIT license, + * // the text of which is available at https://opensource.org/license/MIT/ + * // or see the "LICENSE" file for more details. + * // + * // Software description: Flutter library of reusable graphical components + * // + */ + +import 'package:flutter/material.dart'; +import 'package:ouds_theme_contract/theme/scheme/typography/ouds_typography.dart'; + +/// Lightweight wrapper for OudsTypography that qualifies the "Sosh" font family with its +/// declaring package. +/// +/// The "Sosh" font is declared in the `ouds_theme_sosh` package's `pubspec.yaml`. Flutter +/// requires the `package` argument on [TextStyle] to resolve a font family declared in a +/// package other than the app itself; without it, the style silently falls back to the +/// platform default font. This is only needed for explicit [TextStyle]s built from +/// [OudsTypography] (e.g. used by `Text.rich`); ambient `Text` styling already works because +/// [ThemeData] is built with both `fontFamily` and `package`. +class SoshTypography extends OudsTypography { + static const String _package = 'ouds_theme_sosh'; + + @override + TextStyle typeDisplayLarge(BuildContext context) => + super.typeDisplayLarge(context).copyWith(package: _package); + + @override + TextStyle typeDisplayMedium(BuildContext context) => + super.typeDisplayMedium(context).copyWith(package: _package); + + @override + TextStyle typeDisplaySmall(BuildContext context) => + super.typeDisplaySmall(context).copyWith(package: _package); + + @override + TextStyle typeHeadingXLarge(BuildContext context) => + super.typeHeadingXLarge(context).copyWith(package: _package); + + @override + TextStyle typeHeadingLarge(BuildContext context) => + super.typeHeadingLarge(context).copyWith(package: _package); + + @override + TextStyle typeHeadingMedium(BuildContext context) => + super.typeHeadingMedium(context).copyWith(package: _package); + + @override + TextStyle typeHeadingSmall(BuildContext context) => + super.typeHeadingSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultLarge(BuildContext context) => + super.typeBodyDefaultLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultMedium(BuildContext context) => + super.typeBodyDefaultMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultSmall(BuildContext context) => + super.typeBodyDefaultSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateLarge(BuildContext context) => + super.typeBodyModerateLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateMedium(BuildContext context) => + super.typeBodyModerateMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateSmall(BuildContext context) => + super.typeBodyModerateSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongLarge(BuildContext context) => + super.typeBodyStrongLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongMedium(BuildContext context) => + super.typeBodyStrongMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongSmall(BuildContext context) => + super.typeBodyStrongSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultXLarge(BuildContext context) => + super.typeLabelDefaultXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultLarge(BuildContext context) => + super.typeLabelDefaultLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultMedium(BuildContext context) => + super.typeLabelDefaultMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultSmall(BuildContext context) => + super.typeLabelDefaultSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateXLarge(BuildContext context) => + super.typeLabelModerateXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateLarge(BuildContext context) => + super.typeLabelModerateLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateMedium(BuildContext context) => + super.typeLabelModerateMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateSmall(BuildContext context) => + super.typeLabelModerateSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongXLarge(BuildContext context) => + super.typeLabelStrongXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongLarge(BuildContext context) => + super.typeLabelStrongLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongMedium(BuildContext context) => + super.typeLabelStrongMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongSmall(BuildContext context) => + super.typeLabelStrongSmall(context).copyWith(package: _package); +} diff --git a/ouds_theme_wireframe/lib/ouds_theme_wireframe.dart b/ouds_theme_wireframe/lib/ouds_theme_wireframe.dart index 06a79663a..643e45628 100644 --- a/ouds_theme_wireframe/lib/ouds_theme_wireframe.dart +++ b/ouds_theme_wireframe/lib/ouds_theme_wireframe.dart @@ -63,6 +63,7 @@ import 'package:ouds_theme_wireframe/semantic/wireframe_grid_semantic_tokens.dar import 'package:ouds_theme_wireframe/semantic/wireframe_opacity_semantic_tokens.dart'; import 'package:ouds_theme_wireframe/semantic/wireframe_size_semantic_tokens.dart'; import 'package:ouds_theme_wireframe/semantic/wireframe_space_semantic_tokens.dart'; +import 'package:ouds_theme_wireframe/wireframe_typography.dart'; /// [WireframeTheme] implements the [OudsThemeContract] and defines the theme for the "White label" version of the application. /// This theme provides configurations for both light and dark modes, with customizable color schemes, typography, @@ -218,7 +219,7 @@ class WireframeTheme implements OudsThemeContract { } @override - OudsTypography get typographyTokens => OudsTypography(); + OudsTypography get typographyTokens => WireframeTypography(); @override OudsProvidersTokens providersTokens(BuildContext context) { return OudsProvidersTokens( diff --git a/ouds_theme_wireframe/lib/semantic/wireframe_size_semantic_tokens.dart b/ouds_theme_wireframe/lib/semantic/wireframe_size_semantic_tokens.dart index c2d9c8136..984ebab71 100644 --- a/ouds_theme_wireframe/lib/semantic/wireframe_size_semantic_tokens.dart +++ b/ouds_theme_wireframe/lib/semantic/wireframe_size_semantic_tokens.dart @@ -13,8 +13,8 @@ // Wireframe brand tokens version 2.7.0 // Generated by Tokenator -import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; import 'package:ouds_global_raw_tokens/dimension_raw_tokens.dart'; +import 'package:ouds_theme_contract/theme/tokens/semantic/ouds_size_semantic_tokens.dart'; class WireframeSizeSemanticTokens extends OudsSizeSemanticTokens { @override @@ -24,7 +24,8 @@ class WireframeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorative3xsmall => DimensionRawTokens.dimension150; @override - double get iconDecorative4xsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconDecorative4xsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconDecorativeLarge => DimensionRawTokens.dimension600; @override @@ -36,89 +37,131 @@ class WireframeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconDecorativeXsmall => DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeLargeMobile => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeMobile => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeLargeTablet => DimensionRawTokens.dimension350; + double get iconWithBodyLargeSizeLargeTablet => + DimensionRawTokens.dimension350; @override - double get iconWithBodyLargeSizeMediumMobile => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeMediumTablet => DimensionRawTokens.dimension300; + double get iconWithBodyLargeSizeMediumTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyLargeSizeSmallMobile => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyLargeSizeSmallTablet => DimensionRawTokens.dimension250; + double get iconWithBodyLargeSizeSmallTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeLargeMobile => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeMobile => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeLargeTablet => DimensionRawTokens.dimension300; + double get iconWithBodyMediumSizeLargeTablet => + DimensionRawTokens.dimension300; @override - double get iconWithBodyMediumSizeMediumMobile => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeMediumTablet => DimensionRawTokens.dimension250; + double get iconWithBodyMediumSizeMediumTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodyMediumSizeSmallMobile => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodyMediumSizeSmallTablet => DimensionRawTokens.dimension200; + double get iconWithBodyMediumSizeSmallTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeLargeMobile => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeMobile => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeLargeTablet => DimensionRawTokens.dimension250; + double get iconWithBodySmallSizeLargeTablet => + DimensionRawTokens.dimension250; @override - double get iconWithBodySmallSizeMediumMobile => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumMobile => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeMediumTablet => DimensionRawTokens.dimension200; + double get iconWithBodySmallSizeMediumTablet => + DimensionRawTokens.dimension200; @override - double get iconWithBodySmallSizeSmallMobile => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallMobile => + DimensionRawTokens.dimension150; @override - double get iconWithBodySmallSizeSmallTablet => DimensionRawTokens.dimension150; + double get iconWithBodySmallSizeSmallTablet => + DimensionRawTokens.dimension150; @override - double get iconWithHeadingLargeSizeLargeMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeLargeMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeLargeTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingLargeSizeLargeTablet => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingLargeSizeMediumMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeMediumMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingLargeSizeMediumTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingLargeSizeMediumTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingLargeSizeSmallMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingLargeSizeSmallMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingLargeSizeSmallTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingLargeSizeSmallTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingMediumSizeLargeTablet => DimensionRawTokens.dimension500; + double get iconWithHeadingMediumSizeLargeTablet => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingMediumSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingMediumSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingMediumSizeMediumTablet => DimensionRawTokens.dimension450; + double get iconWithHeadingMediumSizeMediumTablet => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingMediumSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingMediumSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingMediumSizeSmallTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingMediumSizeSmallTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeMobile => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeMobile => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeLargeTablet => DimensionRawTokens.dimension400; + double get iconWithHeadingSmallSizeLargeTablet => + DimensionRawTokens.dimension400; @override - double get iconWithHeadingSmallSizeMediumMobile => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumMobile => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeMediumTablet => DimensionRawTokens.dimension350; + double get iconWithHeadingSmallSizeMediumTablet => + DimensionRawTokens.dimension350; @override - double get iconWithHeadingSmallSizeSmallMobile => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallMobile => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingSmallSizeSmallTablet => DimensionRawTokens.dimension300; + double get iconWithHeadingSmallSizeSmallTablet => + DimensionRawTokens.dimension300; @override - double get iconWithHeadingXlargeSizeLargeMobile => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeLargeMobile => + DimensionRawTokens.dimension550; @override - double get iconWithHeadingXlargeSizeLargeTablet => DimensionRawTokens.dimension650; + double get iconWithHeadingXlargeSizeLargeTablet => + DimensionRawTokens.dimension650; @override - double get iconWithHeadingXlargeSizeMediumMobile => DimensionRawTokens.dimension500; + double get iconWithHeadingXlargeSizeMediumMobile => + DimensionRawTokens.dimension500; @override - double get iconWithHeadingXlargeSizeMediumTablet => DimensionRawTokens.dimension600; + double get iconWithHeadingXlargeSizeMediumTablet => + DimensionRawTokens.dimension600; @override - double get iconWithHeadingXlargeSizeSmallMobile => DimensionRawTokens.dimension450; + double get iconWithHeadingXlargeSizeSmallMobile => + DimensionRawTokens.dimension450; @override - double get iconWithHeadingXlargeSizeSmallTablet => DimensionRawTokens.dimension550; + double get iconWithHeadingXlargeSizeSmallTablet => + DimensionRawTokens.dimension550; @override double get iconWithLabelLargeSizeLarge => DimensionRawTokens.dimension400; @override @@ -144,7 +187,8 @@ class WireframeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get iconWithLabelSmallSizeSmall => DimensionRawTokens.dimension150; @override - double get iconWithLabelSmallSizeXsmall => DimensionRawTokens.dimensionOutOfSystem250; + double get iconWithLabelSmallSizeXsmall => + DimensionRawTokens.dimensionOutOfSystem250; @override double get iconWithLabelXlargeSizeLarge => DimensionRawTokens.dimension500; @override @@ -166,6 +210,10 @@ class WireframeSizeSemanticTokens extends OudsSizeSemanticTokens { @override double get maxWidthBodySmallTablet => DimensionRawTokens.dimension6000; @override + double get maxWidthBoxedTextMobile => DimensionRawTokens.dimension7000; + @override + double get maxWidthBoxedTextTablet => DimensionRawTokens.dimension8000; + @override double get maxWidthDisplayLargeMobile => DimensionRawTokens.dimension9000; @override double get maxWidthDisplayLargeTablet => DimensionRawTokens.dimension9000; diff --git a/ouds_theme_wireframe/lib/wireframe_typography.dart b/ouds_theme_wireframe/lib/wireframe_typography.dart new file mode 100644 index 000000000..0c43d958f --- /dev/null +++ b/ouds_theme_wireframe/lib/wireframe_typography.dart @@ -0,0 +1,140 @@ +/* + * // Software Name: OUDS Flutter + * // SPDX-FileCopyrightText: Copyright (c) Orange SA + * // SPDX-License-Identifier: MIT + * // + * // This software is distributed under the MIT license, + * // the text of which is available at https://opensource.org/license/MIT/ + * // or see the "LICENSE" file for more details. + * // + * // Software description: Flutter library of reusable graphical components + * // + */ + +import 'package:flutter/material.dart'; +import 'package:ouds_theme_contract/theme/scheme/typography/ouds_typography.dart'; + +/// Lightweight wrapper for OudsTypography that qualifies the "ShantellSans" font family with +/// its declaring package. +/// +/// The "ShantellSans" font is declared in the `ouds_theme_wireframe` package's `pubspec.yaml`. +/// Flutter requires the `package` argument on [TextStyle] to resolve a font family declared in +/// a package other than the app itself; without it, the style silently falls back to the +/// platform default font. This is only needed for explicit [TextStyle]s built from +/// [OudsTypography] (e.g. used by `Text.rich`); ambient `Text` styling already works because +/// [ThemeData] is built with both `fontFamily` and `package`. +class WireframeTypography extends OudsTypography { + static const String _package = 'ouds_theme_wireframe'; + + @override + TextStyle typeDisplayLarge(BuildContext context) => + super.typeDisplayLarge(context).copyWith(package: _package); + + @override + TextStyle typeDisplayMedium(BuildContext context) => + super.typeDisplayMedium(context).copyWith(package: _package); + + @override + TextStyle typeDisplaySmall(BuildContext context) => + super.typeDisplaySmall(context).copyWith(package: _package); + + @override + TextStyle typeHeadingXLarge(BuildContext context) => + super.typeHeadingXLarge(context).copyWith(package: _package); + + @override + TextStyle typeHeadingLarge(BuildContext context) => + super.typeHeadingLarge(context).copyWith(package: _package); + + @override + TextStyle typeHeadingMedium(BuildContext context) => + super.typeHeadingMedium(context).copyWith(package: _package); + + @override + TextStyle typeHeadingSmall(BuildContext context) => + super.typeHeadingSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultLarge(BuildContext context) => + super.typeBodyDefaultLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultMedium(BuildContext context) => + super.typeBodyDefaultMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyDefaultSmall(BuildContext context) => + super.typeBodyDefaultSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateLarge(BuildContext context) => + super.typeBodyModerateLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateMedium(BuildContext context) => + super.typeBodyModerateMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyModerateSmall(BuildContext context) => + super.typeBodyModerateSmall(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongLarge(BuildContext context) => + super.typeBodyStrongLarge(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongMedium(BuildContext context) => + super.typeBodyStrongMedium(context).copyWith(package: _package); + + @override + TextStyle typeBodyStrongSmall(BuildContext context) => + super.typeBodyStrongSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultXLarge(BuildContext context) => + super.typeLabelDefaultXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultLarge(BuildContext context) => + super.typeLabelDefaultLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultMedium(BuildContext context) => + super.typeLabelDefaultMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelDefaultSmall(BuildContext context) => + super.typeLabelDefaultSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateXLarge(BuildContext context) => + super.typeLabelModerateXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateLarge(BuildContext context) => + super.typeLabelModerateLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateMedium(BuildContext context) => + super.typeLabelModerateMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelModerateSmall(BuildContext context) => + super.typeLabelModerateSmall(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongXLarge(BuildContext context) => + super.typeLabelStrongXLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongLarge(BuildContext context) => + super.typeLabelStrongLarge(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongMedium(BuildContext context) => + super.typeLabelStrongMedium(context).copyWith(package: _package); + + @override + TextStyle typeLabelStrongSmall(BuildContext context) => + super.typeLabelStrongSmall(context).copyWith(package: _package); +}