dify/web/app/components/workflow/skill/start-tab
yyh ea88bcfbd2
feat: add ZIP skill import with client-side extraction
Add import skill modal that accepts .zip files via drag-and-drop or
file picker, extracts them client-side using fflate, validates structure
and security constraints, then batch uploads via presigned URLs.

- Add fflate dependency for browser-side ZIP decompression
- Create zip-extract.ts with fflate filter API for validation
- Create zip-to-upload-tree.ts for BatchUploadNodeInput tree building
- Create import-skill-modal.tsx with drag-and-drop support
- Lazy-load ImportSkillModal via next/dynamic for bundle optimization
- Add en-US and zh-Hans i18n keys for import modal
2026-01-30 21:54:00 +08:00
..
templates fix: use kebab-case in skills 2026-01-30 16:18:33 +08:00
action-card.tsx refactor(skill): remove React.FC type annotations from all components 2026-01-28 23:34:08 +08:00
create-blank-skill-modal.tsx fix(skill): use Dialog initialFocus to focus input on modal open 2026-01-30 16:10:19 +08:00
create-import-section.tsx feat: add ZIP skill import with client-side extraction 2026-01-30 21:54:00 +08:00
import-skill-modal.tsx feat: add ZIP skill import with client-side extraction 2026-01-30 21:54:00 +08:00
index.tsx refactor(skill): remove React.FC type annotations from all components 2026-01-28 23:34:08 +08:00
section-header.tsx refactor(skill): remove React.FC type annotations from all components 2026-01-28 23:34:08 +08:00
skill-templates-section.tsx fix(skill): restore flex spacer to keep search input right-aligned 2026-01-30 17:18:18 +08:00
template-card.tsx refactor(skill): remove tags/icons/categories, use kebab-case folder names 2026-01-30 16:10:19 +08:00
template-search.tsx fix(skill): use SearchInput with debounce and align card to Figma 2026-01-30 16:10:18 +08:00