@@ -21,7 +21,9 @@ import OUDSTokensSemantic
21
21
/// all tokens to the users. It helps users to override some of the tokens and assign them to an `OUDSTheme` implementation to use.
22
22
/// Custom themes can use subclass of ``OrangeThemeTagComponentTokensProvider`` and apply the provider they need.
23
23
/// It implements also the protocol `TagComponentTokens` so as to expose the component tokens for *tags* through any `OUDSTheme`.
24
- /// *Tags* components tokens are defined with semantic tokens of colors (from `AllColorSemanticTokensProvider`).
24
+ /// *Tags* components tokens are defined with semantic tokens of colors (from `AllColorSemanticTokensProvider`),
25
+ /// sizes (from `AllSizeSemanticTokensProvider`), spaces (from `AllSpaceSemanticTokensProvider`) and borders
26
+ /// (from `AllBorderSemanticTokensProvider`).
25
27
///
26
28
/// ```swift
27
29
/// // Define your own provider for tag component tokens
@@ -31,6 +33,12 @@ import OUDSTokensSemantic
31
33
/// // Then override the tag component tokens you want.
32
34
///
33
35
/// override var tagColorBgReminder: MultipleColorSemanticTokens { colors.colorOpacityLower }
36
+ ///
37
+ /// override var tagBorderWidthDefault: BorderWidthSemanticToken { borders.borderWidthMedium }
38
+ ///
39
+ /// override var tagSizeMinWidthMedium: SizeSemanticToken { DimensionRawTokens.dimension500 }
40
+ ///
41
+ /// override var tagSpacePaddingInlineIconStartSmall: SpaceSemanticToken { spaces.spacePaddingInlineMedium }
34
42
///
35
43
/// // ...
36
44
/// }
@@ -65,23 +73,49 @@ import OUDSTokensSemantic
65
73
/// ```swift
66
74
/// // Uses by default here:
67
75
/// // - OrangeThemeColorSemanticTokensProvider for colors
76
+ /// // - OrangeThemeBorderSemanticTokensProvider for borders
77
+ /// // - OrangeThemeSizeSemanticTokensProvider for sizes
78
+ /// // - OrangeThemeSpaceSemanticTokensProvider for spaces
68
79
/// let tagComponentTokensProvider = OrangeThemeTagComponentTokensProvider()
69
80
///
70
- /// // Or use your own color semantic tokens providers (or only some)
81
+ /// // Or use your own color, space, size and border semantic tokens providers (or only some)
71
82
/// let tagComponentTokensProvider = OrangeThemeTagComponentTokensProvider(
72
- /// colors: CustomColorSemanticTokensProvider())
83
+ /// sizes: CustomSizeSemanticTokensProvider(),
84
+ /// borders: CustomBorderSemanticTokensProvider(),
85
+ /// colors: CustomColorSemanticTokensProvider(),
86
+ /// spaces: CustomSpaceSemanticTokensProvider)
73
87
/// ```
88
+ ///
74
89
/// - Since: 0.9.0
75
90
open class OrangeThemeTagComponentTokensProvider : AllTagComponentTokensProvider {
76
91
77
- /// Provider of color semantic tokens to use for link colors
92
+ /// Provider of size semantic tokens to use for tag suzes
93
+ public let sizes : AllSizeSemanticTokensProvider
94
+
95
+ /// Provider of border semantic tokens to use for tag borders
96
+ public let borders : AllBorderSemanticTokensProvider
97
+
98
+ /// Provider of color semantic tokens to use for tag colors
78
99
public let colors : AllColorSemanticTokensProvider
79
100
101
+ /// Provider of space semantic tokens to use for tag spaces
102
+ public let spaces : AllSpaceSemanticTokensProvider
103
+
80
104
/// Defines a provider of component tokens dedicated to `OUDSTag`
81
- /// - Parameter colors: Provider for color semantic tokens. If nil, a default one will be used (``OrangeThemeColorSemanticTokensProvider``)
82
- public init ( colors: AllColorSemanticTokensProvider ? = nil ) {
105
+ /// - Parameters:
106
+ /// - sizes: Provider for size semantic tokens. If nil, a default one will be used (``OrangeThemeSizeSemanticTokensProvider``)
107
+ /// - borders: Provider for borders semantic tokens. If nil, a default one will be used (``OrangeThemeBorderSemanticTokensProvider``)
108
+ /// - colors: Provider for colors semantic tokens. If nil, a default one will be used (``OrangeThemeColorSemanticTokensProvider``)
109
+ /// - spaces: Provider for spaces semantic tokens. If nil, a default one will be used (``OrangeThemeSpaceSemanticTokensProvider``)
110
+ public init ( sizes: AllSizeSemanticTokensProvider ? = nil ,
111
+ borders: AllBorderSemanticTokensProvider ? = nil ,
112
+ colors: AllColorSemanticTokensProvider ? = nil ,
113
+ spaces: AllSpaceSemanticTokensProvider ? = nil ) {
83
114
OL . debug ( " Init of OrangeThemeTagComponentTokensProvider " )
115
+ self . sizes = ( sizes ?? OrangeThemeSizeSemanticTokensProvider ( ) )
116
+ self . borders = ( borders ?? OrangeThemeBorderSemanticTokensProvider ( ) )
84
117
self . colors = ( colors ?? OrangeThemeColorSemanticTokensProvider ( ) )
118
+ self . spaces = ( spaces ?? OrangeThemeSpaceSemanticTokensProvider ( ) )
85
119
}
86
120
87
121
deinit { }
0 commit comments