gsxui

Toggle

Basic

// Package toggle holds the site's example gsx components for ui/toggle.
package toggle

import (
	"github.com/gsxhq/gsxui/ui"
	"github.com/gsxhq/gsxui/ui/icon"
)

// Basic rounds up shadcn's own scattered toggle-*.tsx examples (toggle-demo,
// -outline, -lg, -disabled) into one row: default variant with an icon +
// label (mirrors toggle-demo's Bookmark+"Bookmark" shape, swapped for a
// Bold text-formatting glyph — ui/icon has no Bookmark), an outline-variant
// icon-only toggle, sm/lg sizes, one server-rendered already-pressed
// (pressed={true}), and one disabled.
component Basic() {
	<div class="flex flex-wrap items-center gap-4">
		<ui.Toggle aria-label="Toggle bold">
			<icon.Bold/>
			Bold
		</ui.Toggle>
		<ui.Toggle variant="outline" aria-label="Toggle italic">
			<icon.Italic/>
		</ui.Toggle>
		<ui.Toggle size="sm" aria-label="Toggle underline (small)">
			<icon.Underline/>
		</ui.Toggle>
		<ui.Toggle size="lg" aria-label="Toggle underline (large)">
			<icon.Underline/>
		</ui.Toggle>
		<ui.Toggle pressed={true} aria-label="Toggle bold (pressed)">
			<icon.Bold/>
		</ui.Toggle>
		<ui.Toggle disabled aria-label="Toggle bold (disabled)">
			<icon.Bold/>
		</ui.Toggle>
	</div>
}