diff --git a/docs/INDEX.md b/docs/INDEX.md index e13f54187..186b6c485 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -48,6 +48,7 @@ Detailed implementation documentation: - **[Prisma Implementation](./implementation/PRISMA_IMPLEMENTATION_COMPLETE.md)** - ORM setup - **[TypeScript Enhancements](./implementation/TYPESCRIPT_DBAL_ENHANCEMENTS.md)** - Type system improvements - **[Nerd Mode IDE](./implementation/NERD_MODE_IDE.md)** - Package templates and zip exports +- **[Codegen Studio Export](./codegen-studio.md)** - Zip generation service for package starters ### 🔄 [Refactoring](./refactoring/) Refactoring guides and tracking: diff --git a/docs/todo/6-PACKAGES-TODO.md b/docs/todo/6-PACKAGES-TODO.md index df4ef82a9..954f5fc8e 100644 --- a/docs/todo/6-PACKAGES-TODO.md +++ b/docs/todo/6-PACKAGES-TODO.md @@ -8,7 +8,7 @@ - [ ] Implement package version management - [ ] Create package installation/uninstallation API - [ ] Add package compatibility validation -- [ ] Add API-backed package export/snapshot endpoints to remove client DB reads (`frontends/nextjs/src/components/PackageImportExport.tsx`) +- [x] Add API-backed package export/snapshot endpoints to remove client DB reads (`frontends/nextjs/src/app/api/codegen/studio/route.ts` + docs/codegen-studio.md) - [ ] Add tests for packages API routes (`frontends/nextjs/src/app/api/packages/*`) ## Admin Dialog Package diff --git a/packages/stream_cast/seed/components.json b/packages/stream_cast/seed/components.json index 8d4d2cb4e..91bb148f8 100644 --- a/packages/stream_cast/seed/components.json +++ b/packages/stream_cast/seed/components.json @@ -301,6 +301,70 @@ } ] }, + { + "id": "stream_cast_mod_tools", + "type": "Card", + "props": { + "className": "p-6" + }, + "children": [ + { + "id": "stream_cast_mod_tools_title", + "type": "Heading", + "props": { + "children": "Moderation controls", + "level": "3", + "className": "text-xl font-semibold" + }, + "children": [] + }, + { + "id": "stream_cast_mod_tools_text", + "type": "Text", + "props": { + "children": "Quick actions for crowd spikes and highlight moments.", + "className": "text-sm text-muted-foreground" + }, + "children": [] + }, + { + "id": "stream_cast_mod_tools_actions", + "type": "Flex", + "props": { + "className": "flex flex-wrap gap-2" + }, + "children": [ + { + "id": "stream_cast_mod_tools_slow", + "type": "Button", + "props": { + "children": "Enable slow mode", + "variant": "outline" + }, + "children": [] + }, + { + "id": "stream_cast_mod_tools_pin", + "type": "Button", + "props": { + "children": "Pin message", + "variant": "outline" + }, + "children": [] + }, + { + "id": "stream_cast_mod_tools_clip", + "type": "Button", + "props": { + "children": "Highlight clip", + "variant": "default" + }, + "children": [] + } + ] + } + ] + }, { "id": "stream_cast_pulse", "type": "Card",