Tooltip

Basic

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

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

// Basic shows a tooltip on hover/focus of a Button trigger.
component Basic() {
	<ui.Tooltip>
		<ui.Button
			variant="outline"
			data-gsxui-slot-tooltip-trigger
		>
			Hover me
		</ui.Button>
		<ui.TooltipContent>Add to library</ui.TooltipContent>
	</ui.Tooltip>
}

Custom width

package tooltip

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

// Wide overrides TooltipContent's default w-fit with a caller class,
// proving tailwind-merge wins over the base utility.
component Wide() {
	<ui.Tooltip>
		<ui.Button
			variant="outline"
			data-gsxui-slot-tooltip-trigger
		>
			Info
		</ui.Button>
		<ui.TooltipContent class="w-64 text-center">
			Deploys automatically when you push to the main branch.
		</ui.TooltipContent>
	</ui.Tooltip>
}

RTL

package tooltip

import "github.com/gsxhq/gsxui/ui"

// Rtl mirrors shadcn's own tooltip-rtl demo's translated trigger/content
// pair, wrapped in dir="rtl". shadcn's rtl demo also sweeps every
// side ("left"/"top"/"bottom"/"right"/"inline-start"/"inline-end") across
// six Tooltip instances; this port's ui.TooltipContent has no side prop at
// all — its placement is fixed to top (see ui/tooltip.gsx's own doc
// comment: "its arrow is static because placement is always top") — so
// only the single Basic-shaped trigger/content pair is reproduced here
// (DEVIATION, no side sweep).
component Rtl() {
	<div dir="rtl" lang="ar">
		<ui.Tooltip>
			<ui.Button
				variant="outline"
				data-gsxui-slot-tooltip-trigger
			>
				حوم فوقي
			</ui.Button>
			<ui.TooltipContent>إضافة إلى المكتبة</ui.TooltipContent>
		</ui.Tooltip>
	</div>
}