パスワードグループPasswordGroupExperimental

パスワード入力、要件、強度、エラー、無効化理由を1つの入力グループとして扱います。

プレビュー

状態とバリエーション

要件と強度付き

パスワード入力、要件、強度を1つの field として扱います。

要件、強度、エラーを1つの入力グループとして表示します。

パスワード強度改善が必要
  • 12文字以上
  • 大文字を含む
  • 数字を含む

無効化理由付き

変更できない理由をツールチップで伝えます。

無効化理由は入力欄の hover / focus で確認できます。

プロパティ

表は横にスクロールできます
プロパティ初期値説明
value / defaultValue / onValueChangestring / (value) => void-パスワード値の制御または初期値です。
requirementsPasswordRequirement[]-表示する要件リストです。検証はアプリ側で行います。
strengthScorenumber-強度メーターに渡すスコアです。
disabledReasonReactNode-無効化理由としてツールチップに表示します。

使い方

import * as React from "react";
import { PasswordGroup } from "@gunjo/ui";

export function PasswordGroupDemo() {
  const [value, setValue] = React.useState("GunjoUI2026");

  return (
    <PasswordGroup
      value={value}
      onValueChange={setValue}
      label="新しいパスワード"
      strengthScore={3}
      strengthLabel="パスワード強度"
      strengthValueLabel="強い"
      requirements={[
        { id: "length", label: "12文字以上", met: value.length >= 12 },
        { id: "uppercase", label: "大文字を含む", met: /[A-Z]/.test(value) },
        { id: "number", label: "数字を含む", met: /\d/.test(value) },
      ]}
    />
  );
}