feat: App Creation & Editing Flow (Airtable Designer UX)#739
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Multi-step wizard for creating applications following the Airtable Interface Designer UX pattern with 4 steps: 1. Basic Info (name, title, description, icon, template, layout) 2. Object Selection (grid with search, toggle all/none) 3. Navigation Builder (auto-generated from objects, add/remove/reorder) 4. Branding (logo, primary color, favicon with preview) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…Designer, Dashboard Editor, Page Canvas Editor, Object View Configurator, Editor Mode Toggle) Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Add translated appDesigner keys for en, zh, ja, de, fr, es locales. Use English fallback values for ar, ru, pt, ko locales. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… components (85 new tests) Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…tion status Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…and add regex documentation Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR implements a complete App Creation & Editing Flow modeled after the Airtable Interface Designer UX. It delivers a comprehensive multi-step wizard and five specialized designer components for creating and configuring applications, following the @objectstack/spec protocol.
Changes:
- Added 6 new types and 2 utility functions (
isValidAppName,wizardDraftToAppSchema) to@object-ui/types - Implemented 6 new designer components in
@object-ui/plugin-designer: AppCreationWizard (4-step wizard), NavigationDesigner (recursive tree builder), EditorModeToggle, DashboardEditor, PageCanvasEditor, and ObjectViewConfigurator - Added 54 i18n keys to the
appDesignersection across all 10 locale files (en, zh, ja, de, fr, es, ar, ru, pt, ko) - Comprehensive test coverage with 103 new tests across 7 test files
- Updated ROADMAP.md to document the completion of P1.11 with detailed feature checklist
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/types/src/app.ts | Added AppWizardDraft, AppWizardStep, BrandingConfig, ObjectSelection, EditorMode types and utility functions for app name validation and draft-to-schema conversion |
| packages/types/src/index.ts | Exported new app creation types and utility functions |
| packages/types/src/tests/app-creation-types.test.ts | 9 comprehensive tests for type validation, schema conversion, and type shapes |
| packages/plugin-designer/src/AppCreationWizard.tsx | 931-line 4-step wizard component with Basic Info, Object Selection, Navigation Builder, and Branding steps |
| packages/plugin-designer/src/NavigationDesigner.tsx | Recursive navigation tree editor supporting all 7 nav types, inline editing, add/remove/reorder, and live preview |
| packages/plugin-designer/src/EditorModeToggle.tsx | Three-way Edit/Preview/Code mode toggle with proper accessibility (radiogroup role) |
| packages/plugin-designer/src/DashboardEditor.tsx | Dashboard widget grid editor supporting 6 widget types with property panel |
| packages/plugin-designer/src/PageCanvasEditor.tsx | Page component palette and editor with 7 component types and property panel |
| packages/plugin-designer/src/ObjectViewConfigurator.tsx | View configurator with 7 view type switcher, column visibility, toolbar toggles, and appearance settings |
| packages/plugin-designer/src/index.tsx | Registered all 5 new components in ComponentRegistry and exported types |
| packages/plugin-designer/src/tests/*.test.tsx | 103 comprehensive tests covering all components, callbacks, read-only modes, and edge cases |
| packages/i18n/src/locales/*.ts | Added 54 appDesigner i18n keys to all 10 locale files (translated for en/zh/ja/de/fr/es, English fallback for ar/ru/pt/ko) |
| ROADMAP.md | Updated to document P1.11 completion with detailed feature checklist, test counts, and component registry |
| TrendingUp, | ||
| Table2, | ||
| LayoutGrid, | ||
| Settings2, |
There was a problem hiding this comment.
The Settings2 icon is imported but never used in this file. This import should be removed to keep the codebase clean.
| Settings2, |
| ChevronRight, | ||
| ChevronUp, | ||
| FolderOpen, | ||
| Globe, |
There was a problem hiding this comment.
The Globe icon is imported but never used in this file. This import should be removed to keep the codebase clean.
| Globe, |
| */ | ||
|
|
||
| import React, { useState, useCallback, useMemo } from 'react'; | ||
| import type { NavigationItem } from '@object-ui/types'; |
There was a problem hiding this comment.
The NavigationItem type is imported but never used in this file. This import should be removed to keep the codebase clean.
| import type { NavigationItem } from '@object-ui/types'; |
| ChevronDown, | ||
| ChevronUp, | ||
| Filter, | ||
| ArrowUpDown, |
There was a problem hiding this comment.
The ArrowUpDown icon is imported but never used in this file. This import should be removed to keep the codebase clean.
| ArrowUpDown, |
| import React, { useState, useCallback } from 'react'; | ||
| import type { DashboardSchema, DashboardWidgetSchema } from '@object-ui/types'; | ||
| import { | ||
| Plus, |
There was a problem hiding this comment.
The Plus icon is imported but never used in this file. This import should be removed to keep the codebase clean.
| Plus, |
| GalleryHorizontalEnd, | ||
| BarChart3, | ||
| FileText, | ||
| Settings2, |
There was a problem hiding this comment.
The Settings2 icon is imported but never used in this file. This import should be removed to keep the codebase clean.
| Settings2, |
❌ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Complete app creation and editing experience modeled after Airtable Interface Designer — multi-step wizard, navigation tree builder, page/dashboard editors, view configurator, and edit/preview/code mode toggle.
Types (
@object-ui/types)AppWizardDraft,AppWizardStep,BrandingConfig,ObjectSelection,EditorModeisValidAppName()— snake_case validatorwizardDraftToAppSchema()— draft →AppSchemaconversionComponents (
@object-ui/plugin-designer)NavigationItem[]from selected objects. Step 1 validates snake_case name + required title.NavigationItem[]tree editor. All 7 nav types, inline label editing (double-click), add-child-to-group, deep reorder/remove, live preview sidebar.role="radiogroup"accessibility.All registered in
ComponentRegistry.i18n
54
appDesignerkeys added to all 10 locale files. Translated for en/zh/ja/de/fr/es; English fallback for ar/ru/pt/ko.Tests
103 new tests across 7 files covering all components, type validators, and read-only mode behavior.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.