[feat]: Create `<pf-v6-multiple-file-upload>` element
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 38/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
- 領域
- accessibility, design, frontend, testing, web-dev
調査の方向性
Start by reading .claude/ADVICE.md and the dependent pf-v6-file-upload issue (#2693), then review the PatternFly v6 Multiple file upload design and the repository's existing element structure. Done means the component, demos, public API tests, accessibility snapshots, styling checks, review commands, changeset, and staging/pfv6 targeting satisfy the listed checklist.
索引モデルが issue の本文から書いたものです。
説明
Summary
Create a <pf-v6-multiple-file-upload> web component implementing the PatternFly v6 Multiple file upload component.
Multi-file upload with drag-and-drop, per-file progress indicators, and file list management.
Prior Art
| Source | Element | Status |
|---|---|---|
| PFE v4 | -- | -- |
| cem | -- | -- |
| cockpit | -- | -- |
| chickadee | -- | -- |
Requirements
- MUST implement PFv6 visual designs
- MUST provide end-user feature parity with
@patternfly/react-coreMultipleFileUpload - MAY adjust element API to leverage web platform strengths
- SHOULD maintain CSS custom property theming compatibility
- SHOULD expose useful CSS shadow parts
Element-specific considerations
- Depends on
pf-v6-file-upload(#2693) - port that first <input type="file" multiple>under the hood- Sub-components:
MultipleFileUploadMain(drop zone),MultipleFileUploadInfo(status text),MultipleFileUploadStatus(file list),MultipleFileUploadStatusItem - Drag-and-drop zone shared with single upload;
isDragActivestate - Per-file status item: filename, file size, progress bar, remove button, success/error icon
onFileDrop/onFileInputChangeevents bubble the fullFileList- Upload progress managed externally (consumer tracks progress per file and updates props)
isHorizontallayout variant- FACE:
formAssociatedmay not apply here (multi-file forms typically useFormDatamanually); evaluate whetherElementInternalshelps - Remove button per file: fires
onFileRemoveevent with filename
Checklist
Implementation
- API per
.claude/ADVICE.md - CSS uses v6 tokens, logical properties, nesting
-
@summaryand JSDoc on element class
Demos
- Demos match patternfly.org naming/structure
- CSS custom properties match computed styles from patternfly.org (Chrome MCP)
- Visual parity verified via Chrome MCP
Tests
- Public API covered (attributes, properties, events, slots)
-
a11ySnapshotassertions
Reviews
-
/review-apipasses -
/review-demospasses -
/review-a11ypasses -
eslintandstylelintpass
Ship
- Add changeset
- PR targets
staging/pfv6(NOTmain)
- 主要言語
- TypeScript
- スター
- 394
- フォーク
- 107
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
patternfly/patternfly-elements のほかの issue
-
bug
patternfly/patternfly-elements#3158 · 担当者 1 名 ·
-
patternfly/patternfly-elements#3136 · コメント 1 件 · 担当者 1 名 ·
-
docs
patternfly/patternfly-elements#3131 · 担当者 1 名 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
patternfly/patternfly-elements#3122 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
patternfly/patternfly-elements#3118 ·
patternfly/patternfly-elements の issue をすべて見る
似ている issue
-
clawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
ZCode 3.14.3 に対応する オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
supermomonga/zcode-acp#24 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
growthbook/growthbook#7100 ·
-
triage
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100