import { useState } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display"; import { ColorPicker, FormField } from "@godxjp/ui/data-entry"; import { Text } from "@godxjp/ui/general"; import { Flex, PageContainer } from "@godxjp/ui/layout"; /** * ColorPicker — hex color swatch + optional editable hex input. * Always initialize state to a valid 3- or 6-digit hex string. * Use controlled mode (value + onValueChange); no uncontrolled path. * Composed only from real @godxjp/ui components. */ export default function Demo() { const [brandColor, setBrandColor] = useState("#2563eb"); const [accentColor, setAccentColor] = useState("#16a34a"); const [categoryColor, setCategoryColor] = useState("#dc2626"); const [validatedColor, setValidatedColor] = useState("#9333ea"); return ( ブランドカラー設定 FormField と組み合わせてラベル・バリデーションを付与。 アクセントカラー(Hex入力付き) showHexInput={"{true}"} — デフォルト。Hex 文字列を直接編集可能。 勘定科目カテゴリカラー(スウォッチのみ) showHexInput={"{false}"} — テーブルセルやサイドバーのコンパクト表示向け。 選択中: {categoryColor} Hex バリデーションと確定動作 Hex 入力は blur または Enter で確定。確定時に #RGB / #RRGGBB 形式でなければ、直前の有効な値へ自動的に巻き戻る。 無効状態 disabled · スウォッチと Hex 入力の両方が無効化される。 ); }