mcpField
S
syncfusion-javascript-popups

syncfusion-javascript-popups

github.com/syncfusion開発073 回インストール1 週間前に更新
リポジトリ

syncfusion-javascript-popups について

syncfusion-javascript-popups は、Syncfusion EJ2 のポップアップ UI コンポーネントを使う JavaScript・TypeScript 開発者向けのスキルです。ダイアログ、定義済みダイアログ、ツールチップの利用方法とアクセシビリティを扱います。

主な機能

  1. 01モーダル・モードレスダイアログ
  2. 02アラート、確認、入力ダイアログ
  3. 03ホバー、フォーカス、クリックで開くツールチップ
  4. 04アニメーション、ドラッグ、サイズ変更
  5. 05キーボード操作とアクセシビリティ
  6. 06複数のテーマスタイル

活用シーン

  1. 01操作に確認や通知を追加
  2. 02フォーム項目へのフォーカス時にガイダンスを表示
  3. 03ページ要素に関連情報を表示

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-popups

インストール後、Claude Code で/syncfusion-javascript-popupsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
dialog-accessibility.md
dialog-api.md
dialog-dialog-utility.md
dialog-events.md
dialog-features.md
dialog-getting-started.md
dialog-how-to.md
dialog-templates.md
predefineddialog-animation.md
predefineddialog-api.md
predefineddialog-customization.md
predefineddialog-dimension.md
predefineddialog-draggable.md
predefineddialog-getting-started.md
predefineddialog-position.md
tooltip-accessibility.md
tooltip-animation.md
tooltip-api.md
tooltip-content.md
tooltip-customization.md
tooltip-getting-started.md
tooltip-how-to.md
tooltip-open-mode.md
tooltip-position.md

詳細

Syncfusion EJ2 JavaScript Popups

概要

Syncfusion EJ2 JavaScript Popups ライブラリは、インタラクティブなオーバーレイコンテンツを構築するための3つの基本的な UI コンポーネントを提供します。各コンポーネントには、TypeScript/JavaScript のサンプル、アクセシビリティガイドライン、一般的な使用パターンが詳しく記載されています。

すべてのコンポーネントが以下に対応しています。

  • アクセシビリティ: WCAG 2.2 Level AA、Section 508、ADA に準拠
  • テーマ: Material 3、Bootstrap 5、Fluent、Tailwind 3、Fabric
  • API: イベントを完全にサポートする命令型 TypeScript/JavaScript
  • キーボード: キーボードによる完全なナビゲーションと操作

コンポーネントの概要

クイックナビゲーション
コンポーネント目的パッケージファイル数
Dialogテンプレートを使用できるモーダル/モードレスダイアログej2-popups8
Predefined DialogDialogUtility による Alert/Confirm/Promptej2-popups7
Tooltipホバー/フォーカス/クリック時に表示するコンテキストポップアップej2-popups9

パッケージ: @syncfusion/ej2-popups


Dialog コンポーネント

目的: メインページの上にコンテンツをオーバーレイ表示します。モーダル/モードレスモード、カスタムテンプレート、アクションボタン、アニメーション、ドラッグ、サイズ変更のほか、組み込みのユーティリティダイアログ(Alert/Confirm)に対応しています。

パッケージ: @syncfusion/ej2-popups

クイックサンプル
import { Dialog } from '@syncfusion/ej2-popups';
import { enableRipple } from '@syncfusion/ej2-base';

enableRipple(true);

let dialog: Dialog = new Dialog({
  header: 'Welcome',
  content: 'This is a simple dialog.',
  showCloseIcon: true,
  width: '350px',
  target: document.body,
  buttons: [
    {
      buttonModel: { content: 'OK', isPrimary: true },
      click: () => { dialog.hide(); }
    }
  ]
});
dialog.appendTo('#dialog');
ドキュメント

Predefined Dialog コンポーネント

目的: DialogUtility クラスを使って開く、命令型の Alert、Confirm、Prompt ダイアログです。コンポーネントのインスタンスは不要なため、簡単な通知やユーザーへの確認に最適です。

パッケージ: @syncfusion/ej2-popups

クイックサンプル - Alert
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Low Battery',
  content: '10% of battery remaining',
  width: '250px',
  okButton: { click: () => dialogObj.hide() }
});
クイックサンプル - Confirm
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Delete File',
  content: 'Are you sure you want to delete this file?',
  okButton: { 
    text: 'Delete',
    click: () => { /* delete logic */ dialogObj.hide(); }
  },
  cancelButton: { 
    text: 'Cancel',
    click: () => dialogObj.hide() 
  }
});
クイックサンプル - Prompt
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Enter Name',
  content: '<input id="nameInput" class="e-input" placeholder="Your name" />',
  okButton: {
    text: 'Submit',
    click: () => {
      const name: string = (document.getElementById('nameInput') as HTMLInputElement).value;
      console.log('Name:', name);
      dialogObj.hide();
    }
  }
});
ドキュメント

Tooltip コンポーネント

目的: ユーザーが対象要素にホバー、フォーカス、またはクリックしたときに、コンテキストに応じたポップアップ情報を表示します。12種類の位置、複数の表示モード、アニメーション、カスタムコンテンツ、完全なアクセシビリティに対応しています。

パッケージ: @syncfusion/ej2-popups

クイックサンプル
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'Tooltip Content',
  position: 'TopCenter'
});
tooltip.appendTo('#target');
クイックサンプル - 複数の対象
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  target: '.e-info',
  position: 'RightCenter'
});
tooltip.appendTo('#container');

HTML:

<div id="container">
  <input type="text" class="e-info" title="Please enter your name" />
  <input type="email" class="e-info" title="Enter a valid email address" />
</div>
ドキュメント

インストールとセットアップ

パッケージをインストールする
npm install @syncfusion/[email protected] --save
npm audit
CSS テーマをインポートする
/* src/styles.css */
@import '../node_modules/@syncfusion/ej2-base/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-buttons/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-popups/styles/tailwind3.css';

その他の利用可能なテーマ:material.css、bootstrap5.css、fluent.css、fabric.css


一般的なパターン

確認機能付きモーダルダイアログ
import { Dialog } from '@syncfusion/ej2-popups';

let dialog: Dialog = new Dialog({
  header: 'Confirm Action',
  content: 'Are you sure you want to proceed?',
  isModal: true,
  showCloseIcon: true,
  width: '400px',
  target: document.body,
  buttons: [
    { buttonModel: { content: 'Yes', isPrimary: true }, click: () => { /* action */ dialog.hide(); } },
    { buttonModel: { content: 'No', cssClass: 'e-flat' }, click: () => dialog.hide() }
  ]
});
dialog.appendTo('#dialog');
クイックアラート通知
import { DialogUtility } from '@syncfusion/ej2-popups';

DialogUtility.alert('Operation completed successfully!');
フォーム検証ツールチップ
import { Tooltip } from '@syncfusion/ej2-popups';

let emailTooltip: Tooltip = new Tooltip({
  content: 'Please enter a valid email address',
  position: 'RightCenter',
  opensOn: 'Focus'
});
emailTooltip.appendTo('#email');
ドラッグ可能なダイアログ
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Draggable',
  content: 'Drag me by the header',
  isDraggable: true,
  okButton: { click: () => dialogObj.hide() }
});
無効化された要素上のツールチップ
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'This feature is currently disabled',
  position: 'TopCenter'
});
tooltip.appendTo('#disabled-wrapper');

HTML:

<span id="disabled-wrapper" style="display: inline-block;">
  <button class="e-btn" disabled>Disabled</button>
</span>

テーマのサポート

すべてのポップアップコンポーネントは、次のテーマをサポートしています。

テーマCSS ファイル
Material 3material.css
Bootstrap 5bootstrap5.css
Fluentfluent.css
Tailwind 3tailwind3.css
Fabricfabric.css

アクセシビリティ

すべてのポップアップコンポーネントは、WCAG 2.2 レベル AA、Section 508、ADA の基準に準拠しています。

ダイアログのアクセシビリティ
  • WAI-ARIA のロールと属性
  • キーボード操作(Tab、Enter、Escape)
  • フォーカス管理
  • スクリーンリーダーのサポート
定義済みダイアログのアクセシビリティ
  • ダイアログのアクセシビリティ機能を継承
  • アラート、確認、プロンプトのパターンは ARIA のベストプラクティスに準拠
  • すべてのボタンでキーボード操作が可能
ツールチップのアクセシビリティ
  • aria-describedby を指定した role="tooltip"
  • 表示状態を示す aria-hidden
  • キーボード操作(Escape で閉じる、フォーカスで開く)
  • スクリーンリーダーへの通知
  • prefers-reduced-motion に対応

ブラウザーのサポート

  • Chrome(最新版)
  • Firefox(最新版)
  • Safari(最新版)
  • Edge(最新版)
  • Internet Explorer 11(ポリフィルが必要)

バージョンの互換性

Syncfusion EJ2 バージョンステータス
33.x.x現行(推奨)
32.x.xサポート対象
31.x.xサポート対象
< 30.x.xレガシー

クイックリファレンス

必要な機能コンポーネントメソッド/プロパティ
モーダルダイアログDialogisModal: true
ドラッグ可能なダイアログDialogallowDragging: true
サイズ変更可能なダイアログDialogenableResize: true
クイックアラートPredefined DialogDialogUtility.alert()
クイック確認Predefined DialogDialogUtility.confirm()
入力プロンプトPredefined Dialog<input> を指定した DialogUtility.confirm()
ホバー時のツールチップTooltipopensOn: 'Hover'
フォーカス時のツールチップTooltipopensOn: 'Focus'
固定ツールチップTooltipisSticky: true
複数のツールチップTooltiptarget: '.class-selector'

ステータス: ✅ 本番環境で利用可能
品質評価: 9+/10(プロフェッショナルグレード)
カバレッジ: 3 コンポーネント、24 のリファレンスファイル

コメント