Skip to content

Commit 1678758

Browse files
committed
feat(sample): add showcase page demonstrating 30+ components
Add a new Showcase page with 8 interactive cards showcasing the design system: - Controls: buttons, toggles, checkboxes, radio buttons, segmented control, stepper - Data Input: text fields, date picker, sliders, circular sliders, color wells - Media Player: playback controls, progress, favorites, page control - Data Table: structured data with inline badges and avatar groups - FAQ: accordion with multiple expandable items - Project Status: progress bars, all badge variants, checklist - Tabs: tabbed navigation with content panels and icons - Skeleton: loading placeholders and loaded state comparison The page uses a responsive 2-column grid on desktop, single column on mobile. Registered in sidebar under GENERAL as "Showcase" with star icon.
1 parent 047509f commit 1678758

2 files changed

Lines changed: 916 additions & 0 deletions

File tree

  • sample/src/commonMain/kotlin/io/github/kdroidfilter/nucleus/ui/apple/macos/sample

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ import io.github.kdroidfilter.nucleus.ui.apple.macos.icons.LucideMoon
113113
import io.github.kdroidfilter.nucleus.ui.apple.macos.icons.LucideSettings
114114
import io.github.kdroidfilter.nucleus.ui.apple.macos.icons.LucideSun
115115
import io.github.kdroidfilter.nucleus.ui.apple.macos.icons.SystemIcon
116+
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.pages.ShowcasePage
116117
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.pages.AccordionPage
117118
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.pages.AddressBarPage
118119
import io.github.kdroidfilter.nucleus.ui.apple.macos.sample.pages.AlertPage
@@ -176,6 +177,7 @@ internal data class SidebarEntryDef(val id: String, val label: String, val group
176177
internal val sidebarEntryDefs = listOf(
177178
// General
178179
SidebarEntryDef("home", "Home", "GENERAL", Icons.Home),
180+
SidebarEntryDef("showcase", "Showcase", "GENERAL", SystemIcon("sparkles", Lucide.Star)),
179181
SidebarEntryDef("getting-started", "Getting Started", "GENERAL", SystemIcon("list.bullet.rectangle", Lucide.LayoutList)),
180182
SidebarEntryDef("license", "License", "GENERAL", Icons.Tag),
181183

@@ -259,6 +261,7 @@ private fun buildSidebarItems(onNavigate: (String) -> Unit): List<SidebarItem> {
259261

260262
return listOf(
261263
leaf("home"),
264+
leaf("showcase"),
262265
leaf("getting-started"),
263266
leaf("license"),
264267

@@ -632,6 +635,7 @@ private fun PageContent(
632635
toastState: io.github.kdroidfilter.nucleus.ui.apple.macos.components.ToastState,
633636
) {
634637
when (pageId) {
638+
"showcase" -> ShowcasePage()
635639
"getting-started" -> GettingStartedPage()
636640
"license" -> LicensePage()
637641
"button" -> ButtonPage()

0 commit comments

Comments
 (0)