import { useState } from "react"; import { Banner } from "@godxjp/ui/feedback"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display"; import { Button } from "@godxjp/ui/general"; import { Flex, PageContainer } from "@godxjp/ui/layout"; /** * Banner · full-bleed page/shell attention strip — the Alert * primitive with the structural axis fixed to variant="banner". Persistent, * page/shell-scoped, at most one per surface. tone owns colour + icon + * live-region politeness; onDismiss renders the built-in dismiss (last in focus * order); actions wrap onto their own full-width line below the 640px step so a * 390px viewport wraps instead of clipping. */ export default function Demo() { const [dismissed, setDismissed] = useState(false); return ( Canonical shell notices · every tone The strip runs edge-to-edge with square corners and a single tone-coloured hairline on the block-end edge. Geometry is owned by the --banner-* tokens, never consumer CSS. destructive and warning announce assertively (role=alert); the rest politely (role=status). お支払いが確認できていません サービスの停止を避けるため、お支払い方法を更新してください。 サポートセッションが進行中です 担当者(田中)がお客様の組織を閲覧しています。 一部のサービスで障害が発生しています 復旧状況はステータスページをご確認ください。 お支払いを確認しました すべての機能が再び利用可能になりました。 8月24日 02:00〜04:00 に定期メンテナンスを行います 作業中は一部の操作が制限されます。 この組織はアーカイブ済みです 閲覧のみ可能で、変更はできません。 Dismissible · built-in control, focus order onDismiss renders the localized dismiss button pinned top/inline-end and LAST in DOM order: keyboard focus reaches content, then actions, then dismiss. Never hand-roll an × inside Banner.Actions. {dismissed ? ( 通知を閉じました このデモでは再表示できます。 ) : ( setDismissed(true)}> 新しい管理コンソールをお試しいただけます 設定画面からいつでも元の表示に戻せます。 )} Long JA / EN / VI copy · 390px wrapping The text column wraps inside min-width 0 and actions drop onto their own full-width wrapping line below the 640px step. Narrow this frame to 390px: nothing clips, nothing overflows horizontally. ご契約中のプランのお支払い期限が過ぎています。未払いの状態が続く場合、組織内のすべてのサービスが自動的に停止されます 請求書番号 INV-2026-08-0042 のお支払いが確認できていません。お支払い方法の更新、または経理担当者への再送をお願いします。 A scheduled maintenance window will interrupt single sign-on for all connected services this weekend Between Saturday 22:00 and Sunday 02:00 (JST), sign-in and token refresh will be unavailable. Active sessions continue to work. Phiên hỗ trợ từ xa đang hoạt động. Nhân viên hỗ trợ hiện có thể xem toàn bộ dữ liệu tổ chức của bạn cho đến khi phiên kết thúc Nếu bạn không yêu cầu phiên hỗ trợ này, hãy kết thúc ngay và đổi mật khẩu quản trị của tổ chức. ); }