Skip to content

Commit f7bc715

Browse files
authored
Merge pull request #86 from Konyaco/component/font_icon_primitives
[fluent] refactor: Migrate to new `FontIcon`
2 parents b72a809 + 2b4d1e8 commit f7bc715

File tree

22 files changed

+563
-392
lines changed

22 files changed

+563
-392
lines changed

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/BreadcrumbBar.kt

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,11 @@ import androidx.compose.ui.Alignment
1313
import androidx.compose.ui.Modifier
1414
import androidx.compose.ui.graphics.Color
1515
import androidx.compose.ui.text.TextStyle
16-
import androidx.compose.ui.unit.TextUnit
1716
import androidx.compose.ui.unit.dp
1817
import com.konyaco.fluent.FluentTheme
1918
import com.konyaco.fluent.LocalContentAlpha
2019
import com.konyaco.fluent.LocalContentColor
2120
import com.konyaco.fluent.LocalTextStyle
22-
import com.konyaco.fluent.icons.Icons
23-
import com.konyaco.fluent.icons.filled.ChevronRight
24-
import com.konyaco.fluent.icons.filled.MoreHorizontal
2521
import com.konyaco.fluent.layout.overflow.OverflowActionScope
2622
import com.konyaco.fluent.layout.overflow.OverflowFlyoutContainer
2723
import com.konyaco.fluent.layout.overflow.OverflowPosition
@@ -140,10 +136,9 @@ object BreadcrumbBarDefaults {
140136
enabled = enabled
141137
) {
142138
FontIcon(
143-
glyph = '\uE712',
144-
vector = Icons.Filled.MoreHorizontal,
139+
type = FontIconPrimitive.More,
145140
contentDescription = null,
146-
iconSize = FontIconDefaults.fontSizeSmall
141+
size = FontIconSize.Small
147142
)
148143
}
149144
}
@@ -164,10 +159,9 @@ object BreadcrumbBarDefaults {
164159
enabled = enabled
165160
) {
166161
FontIcon(
167-
glyph = '\uE712',
168-
vector = Icons.Filled.MoreHorizontal,
162+
type = FontIconPrimitive.More,
169163
contentDescription = null,
170-
iconSize = FontIconDefaults.fontSizeStandard
164+
size = FontIconSize.Standard
171165
)
172166
}
173167
}
@@ -193,7 +187,7 @@ fun BreadcrumbBarItem(
193187
colorScheme = colorScheme,
194188
chevronColors = chevronColors,
195189
textStyle = FluentTheme.typography.body,
196-
chevronSize = FontIconDefaults.fontSizeSmall,
190+
chevronSize = FontIconSize.Small,
197191
modifier = modifier,
198192
chevronVisible = chevronVisible,
199193
enabled = enabled,
@@ -221,7 +215,7 @@ fun LargeBreadcrumbBarItem(
221215
colorScheme = colorScheme,
222216
chevronColors = chevronColors,
223217
textStyle = FluentTheme.typography.title,
224-
chevronSize = FontIconDefaults.fontSizeStandard,
218+
chevronSize = FontIconSize.Standard,
225219
modifier = modifier,
226220
chevronVisible = chevronVisible,
227221
enabled = enabled,
@@ -254,7 +248,7 @@ private fun BasicBreadcrumbBarItem(
254248
colorScheme: VisualStateScheme<Color>,
255249
chevronColors: VisualStateScheme<Color>,
256250
textStyle: TextStyle,
257-
chevronSize: TextUnit,
251+
chevronSize: FontIconSize,
258252
modifier: Modifier = Modifier,
259253
chevronVisible: Boolean = true,
260254
enabled: Boolean = true,
@@ -294,11 +288,10 @@ private fun BasicBreadcrumbBarItem(
294288
LocalTextStyle provides LocalTextStyle.current.copy(chevronColor)
295289
) {
296290
FontIcon(
297-
glyph = '\uE974',
298-
vector = Icons.Filled.ChevronRight,
291+
type = FontIconPrimitive.ChevronRight,
299292
contentDescription = null,
300293
modifier = Modifier.padding(horizontal = 4.dp),
301-
iconSize = chevronSize
294+
size = chevronSize
302295
)
303296
}
304297
}

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Button.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ import com.konyaco.fluent.animation.FluentDuration
5353
import com.konyaco.fluent.animation.FluentEasing
5454
import com.konyaco.fluent.background.BackgroundSizing
5555
import com.konyaco.fluent.background.Layer
56-
import com.konyaco.fluent.icons.Icons
57-
import com.konyaco.fluent.icons.regular.ChevronDown
5856
import com.konyaco.fluent.scheme.PentaVisualScheme
5957
import com.konyaco.fluent.scheme.VisualState
6058
import com.konyaco.fluent.scheme.VisualStateScheme
@@ -716,10 +714,11 @@ private fun AnimatedDropDownIcon(interaction: MutableInteractionSource) {
716714
targetValue = if (isPressed) 2.dp else 0.dp,
717715
animationSpec = tween(FluentDuration.ShortDuration, easing = FluentEasing.FastInvokeEasing)
718716
)
719-
Icon(
720-
imageVector = Icons.Default.ChevronDown,
717+
FontIcon(
718+
type = FontIconPrimitive.ChevronDown,
719+
size = FontIconSize.Small,
721720
contentDescription = null,
722-
modifier = Modifier.graphicsLayer { translationY = animatedOffset.value.toPx() }.size(12.dp)
721+
modifier = Modifier.graphicsLayer { translationY = animatedOffset.value.toPx() }
723722
)
724723
}
725724

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CalendarDatePicker.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import androidx.compose.runtime.mutableStateOf
77
import androidx.compose.runtime.remember
88
import androidx.compose.runtime.setValue
99
import com.konyaco.fluent.ExperimentalFluentApi
10-
import com.konyaco.fluent.icons.Icons
11-
import com.konyaco.fluent.icons.regular.CalendarLtr
1210

1311
/**
1412
* A calendar view lets a user view and interact with a calendar that they can navigate by month, year, or decade. A user can select a single date or a range of dates. It doesn't have a picker surface and the calendar is always visible.
@@ -50,7 +48,7 @@ fun CalendarDatePicker(
5048
"${day.year}/${day.monthValue + 1}/${day.day}"
5149
} ?: "Pick a date"
5250
)
53-
Icon(Icons.Default.CalendarLtr, null)
51+
FontIcon(type = FontIconPrimitive.Calendar, contentDescription = null)
5452
}
5553
)
5654
}

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CalendarView.kt

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,6 @@ import com.konyaco.fluent.animation.FluentEasing
5252
import com.konyaco.fluent.background.BackgroundSizing
5353
import com.konyaco.fluent.background.Layer
5454
import com.konyaco.fluent.component.CalendarDatePickerState.ChooseType
55-
import com.konyaco.fluent.icons.Icons
56-
import com.konyaco.fluent.icons.filled.CaretDown
57-
import com.konyaco.fluent.icons.filled.CaretUp
5855
import com.konyaco.fluent.scheme.PentaVisualScheme
5956
import com.konyaco.fluent.scheme.collectVisualState
6057
import kotlinx.datetime.Clock
@@ -375,16 +372,17 @@ private fun PaginationButton(
375372
) {
376373
Box(Modifier.requiredSize(40.dp), Alignment.Center) {
377374
SubtleButton(modifier = Modifier.height(30.dp), onClick = onClick, iconOnly = true) {
378-
if (up) Icon(
379-
modifier = Modifier.size(12.dp),
380-
imageVector = Icons.Filled.CaretUp,
381-
contentDescription = "Up"
382-
)
383-
else Icon(
384-
modifier = Modifier.size(12.dp),
385-
imageVector = Icons.Filled.CaretDown,
386-
contentDescription = "Down"
387-
)
375+
if (up) {
376+
FontIconSolid8(
377+
type = FontIconPrimitive.CaretUp,
378+
contentDescription = "Up",
379+
)
380+
} else {
381+
FontIconSolid8(
382+
type = FontIconPrimitive.CaretDown,
383+
contentDescription = "Down",
384+
)
385+
}
388386
}
389387
}
390388
}

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CheckBox.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ import com.konyaco.fluent.animation.FluentDuration
3030
import com.konyaco.fluent.animation.FluentEasing
3131
import com.konyaco.fluent.background.BackgroundSizing
3232
import com.konyaco.fluent.background.Layer
33-
import com.konyaco.fluent.icons.Icons
34-
import com.konyaco.fluent.icons.regular.Checkmark
3533
import com.konyaco.fluent.scheme.PentaVisualScheme
3634
import com.konyaco.fluent.scheme.VisualStateScheme
3735
import com.konyaco.fluent.scheme.collectVisualState
@@ -84,10 +82,10 @@ fun CheckBox(
8482
)
8583
) {
8684
Box(Modifier.fillMaxSize(), Alignment.Center) {
87-
Icon(
88-
modifier = Modifier.size(16.dp),
89-
imageVector = Icons.Default.Checkmark,
90-
contentDescription = null
85+
FontIcon(
86+
type = FontIconPrimitive.Accept,
87+
contentDescription = null,
88+
size = FontIconSize.Small
9189
)
9290
}
9391
}

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/ColorPicker.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ import com.konyaco.fluent.FluentTheme
5858
import com.konyaco.fluent.LocalContentColor
5959
import com.konyaco.fluent.background.BackgroundSizing
6060
import com.konyaco.fluent.background.Layer
61-
import com.konyaco.fluent.icons.Icons
62-
import com.konyaco.fluent.icons.regular.ChevronDown
63-
import com.konyaco.fluent.icons.regular.ChevronUp
6461
import kotlinx.coroutines.flow.collectLatest
6562
import kotlin.math.PI
6663
import kotlin.math.atan2
@@ -199,10 +196,15 @@ fun ColorPicker(
199196
verticalAlignment = Alignment.CenterVertically
200197
) {
201198
Text(text = text)
202-
Icon(
203-
imageVector = if (!expanded) Icons.Default.ChevronDown else Icons.Default.ChevronUp,
199+
FontIcon(
200+
type = if (!expanded) {
201+
FontIconPrimitive.ChevronDown
202+
} else {
203+
FontIconPrimitive.ChevronUp
204+
205+
},
204206
contentDescription = text,
205-
modifier = Modifier.size(12.dp)
207+
size = FontIconSize.Small
206208
)
207209
}
208210
},

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/CommandBar.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ import com.konyaco.fluent.animation.FluentDuration
3333
import com.konyaco.fluent.animation.FluentEasing
3434
import com.konyaco.fluent.background.BackgroundSizing
3535
import com.konyaco.fluent.background.Layer
36-
import com.konyaco.fluent.icons.Icons
37-
import com.konyaco.fluent.icons.filled.MoreHorizontal
3836
import com.konyaco.fluent.layout.alignLast
3937
import com.konyaco.fluent.layout.overflow.OverflowActionScope
4038
import com.konyaco.fluent.layout.overflow.OverflowRow
@@ -229,11 +227,7 @@ internal fun CommandBarMoreButton(isLarge: Boolean, onClick: () -> Unit) {
229227
onClick = onClick,
230228
iconOnly = true,
231229
content = {
232-
FontIcon(
233-
glyph = '\uE712',
234-
vector = Icons.Filled.MoreHorizontal,
235-
contentDescription = null,
236-
)
230+
FontIcon(type = FontIconPrimitive.More, contentDescription = null)
237231
},
238232
modifier = if (isLarge) {
239233
Modifier.sizeIn(

fluent/src/commonMain/kotlin/com/konyaco/fluent/component/Expander.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ import com.konyaco.fluent.animation.FluentDuration
3737
import com.konyaco.fluent.animation.FluentEasing
3838
import com.konyaco.fluent.background.BackgroundSizing
3939
import com.konyaco.fluent.background.Layer
40-
import com.konyaco.fluent.icons.Icons
41-
import com.konyaco.fluent.icons.regular.ChevronDown
4240
import com.konyaco.fluent.scheme.PentaVisualScheme
4341
import com.konyaco.fluent.scheme.VisualStateScheme
4442
import com.konyaco.fluent.scheme.collectVisualState
@@ -81,8 +79,8 @@ fun Expander(
8179
onClick = { onExpandedChanged(!expanded) },
8280
content = {
8381
val degrees by animateFloatAsState(if (expanded) 180f else 0f)
84-
Icon(
85-
imageVector = Icons.Default.ChevronDown,
82+
FontIcon(
83+
type = FontIconPrimitive.ChevronDown,
8684
contentDescription = null,
8785
modifier = Modifier.graphicsLayer { rotationZ = degrees }
8886
)

0 commit comments

Comments
 (0)