Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[feat]: Create `<pf-v6-multiple-file-upload>` element

Aberta
#3,023 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
typescript

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

1:1 for dev priority: medium

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-core MultipleFileUpload
  • 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; isDragActive state
  • Per-file status item: filename, file size, progress bar, remove button, success/error icon
  • onFileDrop / onFileInputChange events bubble the full FileList
  • Upload progress managed externally (consumer tracks progress per file and updates props)
  • isHorizontal layout variant
  • FACE: formAssociated may not apply here (multi-file forms typically use FormData manually); evaluate whether ElementInternals helps
  • Remove button per file: fires onFileRemove event with filename

Checklist

Implementation
  • API per .claude/ADVICE.md
  • CSS uses v6 tokens, logical properties, nesting
  • @summary and 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)
  • a11ySnapshot assertions
Reviews
  • /review-api passes
  • /review-demos passes
  • /review-a11y passes
  • eslint and stylelint pass
Ship
  • Add changeset
  • PR targets staging/pfv6 (NOT main)
Linguagem predominante
TypeScript
Estrelas
395
Forks
107
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de patternfly/patternfly-elements

Todas as issues de patternfly/patternfly-elements

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.