From d2445aadffb52cfe82616ce7a7709b2cea05ffb4 Mon Sep 17 00:00:00 2001 From: Ly Tempel Date: Wed, 7 Oct 2026 12:19:09 +0300 Subject: [PATCH 1/7] feat(file-upload): add new TEDI-Ready component #752 --- skills/tedi-angular/references/components.md | 30 + skills/tedi-angular/references/forms.md | 1 + .../form/_field-surface-mixins.scss | 50 +- .../file-upload/file-upload.component.html | 144 +++ .../file-upload/file-upload.component.scss | 142 +++ .../file-upload/file-upload.component.spec.ts | 1079 +++++++++++++++++ .../form/file-upload/file-upload.component.ts | 681 +++++++++++ .../form/file-upload/file-upload.stories.ts | 545 +++++++++ .../form/file-upload/file-upload.types.ts | 31 + src/tedi/components/form/file-upload/index.ts | 2 + src/tedi/components/form/index.ts | 1 + .../form/text-field/text-field.stories.ts | 4 +- .../components/tags/tag/tag.component.scss | 6 +- src/tedi/services/translation/translations.ts | 37 + src/tedi/utils/file.util.ts | 18 + src/tedi/utils/index.ts | 1 + 16 files changed, 2749 insertions(+), 23 deletions(-) create mode 100644 src/tedi/components/form/file-upload/file-upload.component.html create mode 100644 src/tedi/components/form/file-upload/file-upload.component.scss create mode 100644 src/tedi/components/form/file-upload/file-upload.component.spec.ts create mode 100644 src/tedi/components/form/file-upload/file-upload.component.ts create mode 100644 src/tedi/components/form/file-upload/file-upload.stories.ts create mode 100644 src/tedi/components/form/file-upload/file-upload.types.ts create mode 100644 src/tedi/components/form/file-upload/index.ts create mode 100644 src/tedi/utils/file.util.ts diff --git a/skills/tedi-angular/references/components.md b/skills/tedi-angular/references/components.md index 5b36a2b83..feafb1d6f 100644 --- a/skills/tedi-angular/references/components.md +++ b/skills/tedi-angular/references/components.md @@ -201,6 +201,36 @@ Both entry points declare `[tedi-floating-button]`. The Community component is content. It is decorative and `aria-hidden`, which means the projected text is the whole accessible name — if the icon carries meaning the text doesn't, compose a heading and an icon yourself. +### File upload + +- **`tedi-file-upload`'s `inputId` names the hidden file input, but the add button is the control.** + Bind `