From ae1570aa814a561a28ef2c2e82058362af951ef8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:35:14 +0000 Subject: [PATCH 1/3] Initial plan From 7e2635d2c73f79483497366a6bd3b4bd9f34bbff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:48:08 +0000 Subject: [PATCH 2/3] Fix TypeScript errors: remove invalid list_views and form_views, fix PageView type conflict Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- apps/console/src/components/PageView.tsx | 2 +- examples/crm/src/objects/account.object.ts | 21 ------ examples/crm/src/objects/contact.object.ts | 23 ------- examples/crm/src/objects/event.object.ts | 14 ---- .../crm/src/objects/opportunity.object.ts | 24 ------- examples/crm/src/objects/order.object.ts | 12 ---- examples/crm/src/objects/product.object.ts | 19 ------ examples/crm/src/objects/project.object.ts | 26 -------- examples/crm/src/objects/user.object.ts | 6 -- .../src/objects/kitchen_sink.object.ts | 13 +--- .../src/objects/showcase.object.ts | 65 ------------------- 11 files changed, 2 insertions(+), 223 deletions(-) diff --git a/apps/console/src/components/PageView.tsx b/apps/console/src/components/PageView.tsx index 0e1543b6b..99ddabe80 100644 --- a/apps/console/src/components/PageView.tsx +++ b/apps/console/src/components/PageView.tsx @@ -47,8 +47,8 @@ export function PageView() { diff --git a/examples/crm/src/objects/account.object.ts b/examples/crm/src/objects/account.object.ts index eef5ff154..ab1bccf9f 100644 --- a/examples/crm/src/objects/account.object.ts +++ b/examples/crm/src/objects/account.object.ts @@ -18,26 +18,5 @@ export const AccountObject = ObjectSchema.create({ longitude: Field.number({ label: 'Longitude', scale: 6 }), owner: Field.lookup('user', { label: 'Owner' }), created_at: Field.datetime({ label: 'Created Date' }) - }, - list_views: { - all: { - label: 'All Accounts', - columns: ['name', 'industry', 'type', 'phone', 'website', 'employees', 'owner'] - }, - map_view: { - label: 'Map View', - type: 'map', - latitudeField: 'latitude', - longitudeField: 'longitude', - titleField: 'name', - descriptionField: 'billing_address', - zoom: 3, - center: [37.7749, -122.4194] // SF - } as any, - customers: { - label: 'Customers', - columns: ['name', 'industry', 'annual_revenue'], - filter: [['type', '=', 'Customer']] - } } }); diff --git a/examples/crm/src/objects/contact.object.ts b/examples/crm/src/objects/contact.object.ts index bfd39459a..49ff78cd7 100644 --- a/examples/crm/src/objects/contact.object.ts +++ b/examples/crm/src/objects/contact.object.ts @@ -20,28 +20,5 @@ export const ContactObject = ObjectSchema.create({ longitude: Field.number({ label: 'Longitude', scale: 6 }), is_active: Field.boolean({ label: 'Active', defaultValue: true }), notes: Field.textarea({ label: 'Notes' }) - }, - list_views: { - all: { - label: 'All Contacts', - type: 'grid', - columns: ['name', 'account', 'email', 'phone', 'title', 'status'] - }, - map_view: { - label: 'Map View', - type: 'map', - latitudeField: 'latitude', - longitudeField: 'longitude', - titleField: 'name', - descriptionField: 'title', - zoom: 12, - center: [-73.935242, 40.730610] // NYC - } as any, - mypending: { - label: 'My Pending Contacts', - type: 'grid', - columns: ['name', 'account', 'status', 'priority'], - filter: [['status', '!=', 'Active']] - } } }); diff --git a/examples/crm/src/objects/event.object.ts b/examples/crm/src/objects/event.object.ts index 51aab1f8e..bccb00ff4 100644 --- a/examples/crm/src/objects/event.object.ts +++ b/examples/crm/src/objects/event.object.ts @@ -12,19 +12,5 @@ export const EventObject = ObjectSchema.create({ description: Field.textarea({ label: 'Description' }), participants: Field.lookup('contact', { label: 'Participants', multiple: true }), type: Field.select(['Meeting', 'Call', 'Email', 'Other'], { label: 'Type' }) - }, - list_views: { - all: { - label: 'All Events', - columns: ['subject', 'start', 'end', 'location', 'type'] - }, - calendar: { - label: 'Calendar', - type: 'calendar', - startDateField: 'start', - endDateField: 'end', - titleField: 'subject', - defaultView: 'month' - } as any } }); diff --git a/examples/crm/src/objects/opportunity.object.ts b/examples/crm/src/objects/opportunity.object.ts index 8c6b29c65..2506d0a4a 100644 --- a/examples/crm/src/objects/opportunity.object.ts +++ b/examples/crm/src/objects/opportunity.object.ts @@ -16,29 +16,5 @@ export const OpportunityObject = ObjectSchema.create({ lead_source: Field.select(['Web', 'Phone', 'Partner', 'Referral', 'Other'], { label: 'Lead Source' }), next_step: Field.text({ label: 'Next Step' }), description: Field.textarea({ label: 'Description' }) - }, - list_views: { - all: { - label: 'All Opportunities', - columns: ['name', 'account', 'amount', 'stage', 'probability', 'close_date', 'type'] - }, - closing_soon: { - label: 'Closing Soon', - columns: ['name', 'amount', 'stage', 'close_date', 'next_step'], - sort: [['close_date', 'asc']] - }, - won: { - label: 'Won', - columns: ['name', 'amount', 'account', 'close_date'], - filter: [['stage', '=', 'Closed Won']] - }, - pipeline: { - label: 'Pipeline', - type: 'kanban', - columns: ['name', 'amount', 'account'], - groupField: 'stage', - titleField: 'name', - cardFields: ['amount', 'account', 'close_date', 'probability'] - } as any } }); diff --git a/examples/crm/src/objects/order.object.ts b/examples/crm/src/objects/order.object.ts index 56345b9f3..a3df29751 100644 --- a/examples/crm/src/objects/order.object.ts +++ b/examples/crm/src/objects/order.object.ts @@ -10,17 +10,5 @@ export const OrderObject = ObjectSchema.create({ amount: Field.currency({ label: 'Total Amount' }), status: Field.select(['Draft', 'Pending', 'Paid', 'Shipped', 'Delivered', 'Cancelled'], { label: 'Status', defaultValue: 'Draft' }), order_date: Field.date({ label: 'Order Date', defaultValue: 'now' }) - }, - list_views: { - all: { - label: 'All Orders', - columns: ['name', 'customer', 'amount', 'status', 'order_date'], - sort: [['order_date', 'desc']] - }, - pending: { - label: 'Pending Orders', - columns: ['name', 'customer', 'amount', 'order_date'], - filter: [['status', '=', 'Pending']] - } } }); diff --git a/examples/crm/src/objects/product.object.ts b/examples/crm/src/objects/product.object.ts index 7de4423a1..06aa8aa59 100644 --- a/examples/crm/src/objects/product.object.ts +++ b/examples/crm/src/objects/product.object.ts @@ -12,24 +12,5 @@ export const ProductObject = ObjectSchema.create({ stock: Field.number({ label: 'Stock' }), description: Field.textarea({ label: 'Description' }), image: Field.url({ label: 'Image URL' }) - }, - list_views: { - all: { - label: 'All Products', - columns: ['name', 'sku', 'category', 'price', 'stock'] - }, - low_stock: { - label: 'Low Stock', - columns: ['name', 'stock', 'price'], - filter: [['stock', '<', 10]] - }, - gallery: { - label: 'Product Gallery', - type: 'gallery', - columns: ['name', 'category', 'price'], - imageField: 'image', - titleField: 'name', - subtitleField: 'category' - } as any } }); diff --git a/examples/crm/src/objects/project.object.ts b/examples/crm/src/objects/project.object.ts index ce65cdf65..a4d518767 100644 --- a/examples/crm/src/objects/project.object.ts +++ b/examples/crm/src/objects/project.object.ts @@ -15,31 +15,5 @@ export const ProjectObject = ObjectSchema.create({ description: Field.textarea({ label: 'Description' }), color: Field.text({ label: 'Color' }), // For Gantt bar color dependencies: Field.text({ label: 'Dependencies' }), // Comma separated IDs - }, - list_views: { - all: { - label: 'All Tasks', - columns: ['name', 'status', 'progress', 'start_date', 'end_date', 'priority', 'manager'], - sort: [['start_date', 'asc']] - }, - gantt_view: { - label: 'Gantt View', - type: 'gantt', - columns: ['name', 'start_date', 'end_date', 'progress'], - // Standard Gantt configuration mapped to specific fields - startDateField: 'start_date', - endDateField: 'end_date', - titleField: 'name', - progressField: 'progress', - dependenciesField: 'dependencies', - colorField: 'color', - } as any, // Cast to allow extra properties if type definition is strict - timeline_view: { - label: 'Timeline', - type: 'timeline', - dateField: 'start_date', - titleField: 'name', - columns: ['status', 'priority'] - } as any } }); diff --git a/examples/crm/src/objects/user.object.ts b/examples/crm/src/objects/user.object.ts index c61a0a510..56e605761 100644 --- a/examples/crm/src/objects/user.object.ts +++ b/examples/crm/src/objects/user.object.ts @@ -11,11 +11,5 @@ export const UserObject = ObjectSchema.create({ role: Field.select(['admin', 'user', 'guest'], { label: 'Role' }), avatar: Field.url({ label: 'Avatar URL' }), active: Field.boolean({ label: 'Active', defaultValue: true }) - }, - list_views: { - all: { - label: 'All Users', - columns: ['name', 'username', 'email', 'role', 'active'] - } } }); diff --git a/examples/kitchen-sink/src/objects/kitchen_sink.object.ts b/examples/kitchen-sink/src/objects/kitchen_sink.object.ts index 631e1b76a..f7734f521 100644 --- a/examples/kitchen-sink/src/objects/kitchen_sink.object.ts +++ b/examples/kitchen-sink/src/objects/kitchen_sink.object.ts @@ -74,16 +74,5 @@ export const KitchenSinkObject = ObjectSchema.create({ label: 'Formula (Amount * Price)' }), auto_number: Field.autonumber({ label: 'Auto Number' }), - }, - list_views: { - all: { - label: 'All Records', - columns: ['name', 'category', 'amount', 'price', 'percent', 'rating', 'is_active', 'due_date', 'email'], - }, - active: { - label: 'Active Only', - columns: ['name', 'category', 'amount', 'rating', 'due_date'], - filter: [['is_active', '=', true]], - }, - }, + } }); diff --git a/examples/kitchen-sink/src/objects/showcase.object.ts b/examples/kitchen-sink/src/objects/showcase.object.ts index a76c65fde..651bb6f85 100644 --- a/examples/kitchen-sink/src/objects/showcase.object.ts +++ b/examples/kitchen-sink/src/objects/showcase.object.ts @@ -92,71 +92,6 @@ export const ShowcaseObject = ObjectSchema.create({ notes: Field.richtext({ label: 'Notes' }), }, - list_views: { - all: { - label: 'All Items', - columns: ['title', 'category', 'sub_category', 'priority', 'status', 'price', 'start_date'], - }, - active: { - label: 'Active Items', - columns: ['title', 'category', 'priority', 'price', 'owner_email'], - filter: [['status', '=', 'active']], - }, - featured: { - label: 'Featured', - columns: ['title', 'category', 'price', 'tags'], - filter: [['is_featured', '=', true]], - }, - }, - - form_views: { - default: { - label: 'Default Form', - type: 'simple', - sections: [ - { - label: 'Basic Information', - columns: 2, - fields: [ - { field: 'title', colSpan: 2 }, - { field: 'description', colSpan: 2 }, - { field: 'category' }, - // sub_category depends on category being selected - { field: 'sub_category', dependsOn: 'category' }, - { field: 'priority' }, - { field: 'status' }, - ], - }, - { - label: 'Pricing', - columns: 2, - fields: [ - // Price fields only visible when status is 'active' or 'review' - { field: 'price', visibleOn: "${data.status === 'active' || data.status === 'review'}" }, - { field: 'discount_percent', visibleOn: "${data.status === 'active' || data.status === 'review'}" }, - ], - }, - { - label: 'Schedule & Contact', - columns: 2, - fields: [ - { field: 'start_date' }, - { field: 'end_date', dependsOn: 'start_date' }, - { field: 'owner_email' }, - { field: 'is_featured' }, - ], - }, - { - label: 'Additional', - fields: [ - { field: 'tags' }, - { field: 'notes', colSpan: 2 }, - ], - }, - ], - }, - }, - actions: [ { name: 'assign_owner', From 9e8a5884c95ecd10fec33c5bd3674203140ff48e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:50:03 +0000 Subject: [PATCH 3/3] Remove unsupported 'actions' property from showcase object Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- .../src/objects/showcase.object.ts | 100 +----------------- 1 file changed, 1 insertion(+), 99 deletions(-) diff --git a/examples/kitchen-sink/src/objects/showcase.object.ts b/examples/kitchen-sink/src/objects/showcase.object.ts index 651bb6f85..eb612e0d6 100644 --- a/examples/kitchen-sink/src/objects/showcase.object.ts +++ b/examples/kitchen-sink/src/objects/showcase.object.ts @@ -90,103 +90,5 @@ export const ShowcaseObject = ObjectSchema.create({ // Notes — rich text notes: Field.richtext({ label: 'Notes' }), - }, - - actions: [ - { - name: 'assign_owner', - label: 'Assign Owner', - icon: 'user-plus', - type: 'api', - locations: ['list_toolbar', 'record_header'], - params: [ - { - name: 'owner_email', - label: 'Owner Email', - type: 'text', - required: true, - placeholder: 'owner@example.com', - helpText: 'Email address of the new owner', - }, - { - name: 'notify', - label: 'Send Notification', - type: 'boolean', - defaultValue: true, - helpText: 'Send an email notification to the new owner', - }, - ], - successMessage: 'Owner assigned successfully', - refreshAfter: true, - }, - { - name: 'change_status', - label: 'Change Status', - icon: 'arrow-right-circle', - type: 'api', - locations: ['list_item', 'record_header'], - params: [ - { - name: 'new_status', - label: 'New Status', - type: 'select', - required: true, - options: [ - { label: 'Draft', value: 'draft' }, - { label: 'Active', value: 'active' }, - { label: 'Review', value: 'review' }, - { label: 'Completed', value: 'completed' }, - { label: 'Archived', value: 'archived' }, - ], - }, - { - name: 'reason', - label: 'Reason for Change', - type: 'textarea', - placeholder: 'Describe why the status is changing...', - }, - ], - confirmText: 'Are you sure you want to change the status?', - successMessage: 'Status updated successfully', - refreshAfter: true, - }, - { - name: 'export_report', - label: 'Export Report', - icon: 'download', - type: 'api', - locations: ['list_toolbar'], - params: [ - { - name: 'format', - label: 'Export Format', - type: 'select', - required: true, - options: [ - { label: 'CSV', value: 'csv' }, - { label: 'Excel', value: 'xlsx' }, - { label: 'PDF', value: 'pdf' }, - ], - defaultValue: 'csv', - }, - { - name: 'include_archived', - label: 'Include Archived', - type: 'boolean', - defaultValue: false, - }, - { - name: 'date_range_start', - label: 'From Date', - type: 'date', - }, - { - name: 'date_range_end', - label: 'To Date', - type: 'date', - }, - ], - successMessage: 'Report exported successfully', - }, - ], + } });