Skip to content

Commit 5ee66ae

Browse files
committed
refactor: move arrow button examples to icon button page
1 parent 8d6599c commit 5ee66ae

2 files changed

Lines changed: 88 additions & 92 deletions

File tree

sample/src/commonMain/kotlin/io/github/kdroidfilter/nucleus/ui/apple/macos/sample/pages/ButtonPage.kt

Lines changed: 1 addition & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.width
2323
import androidx.compose.foundation.shape.CircleShape
2424
import androidx.compose.foundation.shape.RoundedCornerShape
2525
import androidx.compose.ui.graphics.Color
26-
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.ArrowButton
2726
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.PushButton
2827
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.PushButtonColors
2928
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.PushButtonDefaults
@@ -63,7 +62,6 @@ private fun ButtonPreview() {
6362
PushButton(text = "Neutral", onClick = {}, style = PushButtonStyle.Neutral)
6463
PushButton(text = "Borderless", onClick = {}, style = PushButtonStyle.Borderless)
6564
PushButton(text = "Bezel", onClick = {}, style = PushButtonStyle.BorderlessBezel)
66-
ArrowButton(onClick = {})
6765
}
6866
}
6967
}
@@ -380,83 +378,6 @@ fun ButtonSurfaceExample() {
380378
}
381379
}
382380

383-
// ===========================================================================
384-
// Arrow Button — Sizes
385-
// ===========================================================================
386-
387-
@GalleryExample("Button", "Arrow")
388-
@Composable
389-
fun ButtonArrowExample() {
390-
Column(verticalArrangement = Arrangement.spacedBy(12.dp)) {
391-
for (size in ControlSize.entries) {
392-
ControlSize(size) {
393-
Row(
394-
horizontalArrangement = Arrangement.spacedBy(8.dp),
395-
verticalAlignment = Alignment.CenterVertically,
396-
) {
397-
Text(
398-
text = size.name,
399-
style = MacosTheme.typography.caption1,
400-
color = MacosTheme.colorScheme.textSecondary,
401-
modifier = Modifier.widthIn(min = 72.dp),
402-
)
403-
ArrowButton(onClick = {})
404-
ArrowButton(onClick = {}, enabled = false)
405-
}
406-
}
407-
}
408-
}
409-
}
410-
411-
// ===========================================================================
412-
// Arrow Button — Surface Appearance (Content Area vs Over Glass)
413-
// ===========================================================================
414-
415-
@GalleryExample("Button", "Arrow Surface")
416-
@Composable
417-
fun ButtonArrowSurfaceExample() {
418-
Row(
419-
horizontalArrangement = Arrangement.spacedBy(24.dp),
420-
modifier = Modifier.fillMaxWidth(),
421-
) {
422-
Column(
423-
verticalArrangement = Arrangement.spacedBy(8.dp),
424-
horizontalAlignment = Alignment.CenterHorizontally,
425-
modifier = Modifier.weight(1f),
426-
) {
427-
Text(
428-
text = "Content Area",
429-
style = MacosTheme.typography.caption1,
430-
color = MacosTheme.colorScheme.textSecondary,
431-
)
432-
Surface(Surface.ContentArea) {
433-
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
434-
ArrowButton(onClick = {})
435-
ArrowButton(onClick = {}, enabled = false)
436-
}
437-
}
438-
}
439-
440-
Column(
441-
verticalArrangement = Arrangement.spacedBy(8.dp),
442-
horizontalAlignment = Alignment.CenterHorizontally,
443-
modifier = Modifier.weight(1f),
444-
) {
445-
Text(
446-
text = "Over Glass",
447-
style = MacosTheme.typography.caption1,
448-
color = MacosTheme.colorScheme.textSecondary,
449-
)
450-
Surface(Surface.OverGlass) {
451-
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
452-
ArrowButton(onClick = {})
453-
ArrowButton(onClick = {}, enabled = false)
454-
}
455-
}
456-
}
457-
}
458-
}
459-
460381
// ===========================================================================
461382
// Custom Colors
462383
// ===========================================================================
@@ -602,7 +523,7 @@ fun ButtonCustomTextContentExample() {
602523

603524
@Composable
604525
internal fun ButtonPage() {
605-
GalleryPage("Button", "Push buttons and arrow buttons — macOS 26 Liquid Glass style.") {
526+
GalleryPage("Button", "Push buttons — macOS 26 Liquid Glass style.") {
606527
PreviewContainer { ButtonPreview() }
607528

608529
SectionHeader("Sizes")
@@ -696,17 +617,5 @@ internal fun ButtonPage() {
696617
sourceCode = GallerySources.ButtonSurfaceExample,
697618
) { ButtonSurfaceExample() }
698619

699-
SectionHeader("Arrow Button")
700-
ExampleCard(
701-
title = "Arrow Button — Sizes",
702-
description = "Circular popup chevron button at each ControlSize",
703-
sourceCode = GallerySources.ButtonArrowExample,
704-
) { ButtonArrowExample() }
705-
706-
ExampleCard(
707-
title = "Arrow Button — Surface",
708-
description = "Arrow button adapts disabled opacity per surface",
709-
sourceCode = GallerySources.ButtonArrowSurfaceExample,
710-
) { ButtonArrowSurfaceExample() }
711620
}
712621
}

sample/src/commonMain/kotlin/io/github/kdroidfilter/nucleus/ui/apple/macos/sample/pages/IconButtonPage.kt

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@ import androidx.compose.runtime.Composable
77
import androidx.compose.ui.Alignment
88
import androidx.compose.ui.unit.dp
99
import androidx.compose.ui.graphics.Color
10+
import androidx.compose.foundation.layout.fillMaxWidth
11+
import androidx.compose.foundation.layout.widthIn
12+
import androidx.compose.ui.Modifier
13+
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.ArrowButton
1014
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.IconButton
1115
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.IconButtonDefaults
1216
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.IconButtonRole
1317
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.IconButtonStyle
1418
import io.github.kdroidfilter.nucleus.ui.apple.macos.components.Text
1519
import io.github.kdroidfilter.nucleus.ui.apple.macos.icons.Icons
20+
import io.github.kdroidfilter.nucleus.ui.apple.macos.theme.Surface
1621
import io.github.kdroidfilter.nucleus.ui.apple.macos.gallery.GalleryExample
1722
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.gallery.CodeBlock
1823
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.gallery.ExampleCard
@@ -150,6 +155,75 @@ fun IconButtonCustomColorsExample() {
150155
}
151156
}
152157

158+
@GalleryExample("IconButton", "Arrow")
159+
@Composable
160+
fun IconButtonArrowExample() {
161+
Column(verticalArrangement = Arrangement.spacedBy(12.dp)) {
162+
for (size in ControlSize.entries) {
163+
ControlSize(size) {
164+
Row(
165+
horizontalArrangement = Arrangement.spacedBy(8.dp),
166+
verticalAlignment = Alignment.CenterVertically,
167+
) {
168+
Text(
169+
text = size.name,
170+
style = MacosTheme.typography.caption1,
171+
color = MacosTheme.colorScheme.textSecondary,
172+
modifier = Modifier.widthIn(min = 72.dp),
173+
)
174+
ArrowButton(onClick = {})
175+
ArrowButton(onClick = {}, enabled = false)
176+
}
177+
}
178+
}
179+
}
180+
}
181+
182+
@GalleryExample("IconButton", "Arrow Surface")
183+
@Composable
184+
fun IconButtonArrowSurfaceExample() {
185+
Row(
186+
horizontalArrangement = Arrangement.spacedBy(24.dp),
187+
modifier = Modifier.fillMaxWidth(),
188+
) {
189+
Column(
190+
verticalArrangement = Arrangement.spacedBy(8.dp),
191+
horizontalAlignment = Alignment.CenterHorizontally,
192+
modifier = Modifier.weight(1f),
193+
) {
194+
Text(
195+
text = "Content Area",
196+
style = MacosTheme.typography.caption1,
197+
color = MacosTheme.colorScheme.textSecondary,
198+
)
199+
Surface(Surface.ContentArea) {
200+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
201+
ArrowButton(onClick = {})
202+
ArrowButton(onClick = {}, enabled = false)
203+
}
204+
}
205+
}
206+
207+
Column(
208+
verticalArrangement = Arrangement.spacedBy(8.dp),
209+
horizontalAlignment = Alignment.CenterHorizontally,
210+
modifier = Modifier.weight(1f),
211+
) {
212+
Text(
213+
text = "Over Glass",
214+
style = MacosTheme.typography.caption1,
215+
color = MacosTheme.colorScheme.textSecondary,
216+
)
217+
Surface(Surface.OverGlass) {
218+
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
219+
ArrowButton(onClick = {})
220+
ArrowButton(onClick = {}, enabled = false)
221+
}
222+
}
223+
}
224+
}
225+
}
226+
153227
@Composable
154228
internal fun IconButtonPage() {
155229
GalleryPage("Icon Button", "Circular icon-only buttons for toolbar and content area actions.") {
@@ -185,5 +259,18 @@ IconButton(icon = Icons.Trash2, onClick = {}, role = IconButtonRole.Destructive)
185259
description = "Icon buttons with fully custom background and icon colors",
186260
sourceCode = GallerySources.IconButtonCustomColorsExample,
187261
) { IconButtonCustomColorsExample() }
262+
263+
SectionHeader("Arrow Button")
264+
ExampleCard(
265+
title = "Arrow Button — Sizes",
266+
description = "Circular popup chevron button at each ControlSize",
267+
sourceCode = GallerySources.IconButtonArrowExample,
268+
) { IconButtonArrowExample() }
269+
270+
ExampleCard(
271+
title = "Arrow Button — Surface",
272+
description = "Arrow button adapts disabled opacity per surface",
273+
sourceCode = GallerySources.IconButtonArrowSurfaceExample,
274+
) { IconButtonArrowSurfaceExample() }
188275
}
189276
}

0 commit comments

Comments
 (0)