Skip to content

[WIP] Enhance UI components for forms and layouts - #12

Merged
huangyiirene merged 3 commits into
mainfrom
copilot/complete-ui-component-setup
Jan 13, 2026
Merged

[WIP] Enhance UI components for forms and layouts#12
huangyiirene merged 3 commits into
mainfrom
copilot/complete-ui-component-setup

Conversation

CopilotAI commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

Plan: Complete Component Library

Based on the problem statement, I need to implement/enhance the following components:

Forms Components

  • Input - Already implemented
  • Select - Already implemented
  • Checkbox - Already implemented
  • Radio - Already implemented (radio-group)
  • DatePicker - Implemented with calendar and input trigger
  • File Upload - Implemented with file selection and preview

Data Components

  • Table - Already implemented
  • List - Implemented ordered and unordered lists
  • Card - Already implemented
  • Tree View - Implemented collapsible tree structure

Layout Components

  • Grid - Implemented responsive grid layout
  • Flex - Implemented flexible box layout
  • Container - Implemented max-width container
  • Tabs - Already implemented

Feedback Components

  • Alerts - Already implemented
  • Toasts - Already implemented (toaster)
  • Dialogs - Already implemented (alert-dialog, dialog)
  • Loading States - Implemented loading spinner component

Implementation Complete

✅ All components have been implemented
✅ Added date-fns dependency for date formatting
✅ Updated index files to export new components
✅ Build successful
✅ Tests added and passing (9/9 tests)

Original prompt

完善组件 Forms: Input, Select, Checkbox, Radio, DatePicker, File Upload
Data: Table, List, Card, Tree View
Layout: Grid, Flex, Container, Tabs
Feedback: Alerts, Toasts, Dialogs, Loading States


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits January 13, 2026 18:40
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
@huangyiirene
huangyiirene marked this pull request as ready for review January 13, 2026 18:44
@huangyiirene
huangyiirene merged commit c4637f4 into mainJan 13, 2026
Copilot stopped work on behalf of huangyiirene due to an error January 13, 2026 18:44
@github-actionsgithub-actionsBot mentioned this pull request Aug 3, 2026
akarma-synetal pushed a commit to akarma-synetal/objectui that referenced this pull request Aug 3, 2026
…ce (objectstack-ai#3232) (objectstack-ai#3244)
The widget resolved its fullscreen affordance through a four-way `??` chain:
a `mobileFullscreen` (camelCase) prop, `field.mobile_fullscreen`, a
`mobile_fullscreen` prop, and `schema.mobile_fullscreen`. Three of the four
were permanently `undefined`:
- `mobileFullscreen` had no producer anywhere in the repo — the only two
occurrences of that spelling were this widget's own read and the destructure
that kept it off the DOM spread. The doc comment claimed "the host form
passes `mobileFullscreen`", so it documented a contract that never held.
- `mobile_fullscreen` as a prop cannot arrive: `stripRegisteredFieldProps`
(components/src/renderers/form/form.tsx) removes it, and `fullscreen`, from
the props forwarded to registered field widgets.
- `schema.mobile_fullscreen` restates the object `field || schema` already
resolves into `textareaField`.
What is left is the one live source: the field metadata flag ObjectForm stamps
onto long-text fields from `ObjectFormSchema.mobile.fullscreenLongText`. The
doc comment now describes that, names the producer, and records why there is
deliberately no host-override prop.
No behaviour change. The metadata path is pinned by new tests covering the
button, the dialog and the committed edit, so the cleanup cannot have removed
the working affordance; the retired spellings are pinned inert at compile time
(they are not on the closed `FieldWidgetComponentProps`, objectstack-ai#3221) and at runtime.
The built-in (unregistered) `textarea` branch of the form renderer, which reads
`mobile_fullscreen || fullscreen` off the form-field props and renders its own
`FullscreenTextarea`, is a separate live path and is untouched.
Per AGENTS.md #0.1 and Prime Directive objectstack-ai#12: divergence converges at the
producer, not by accumulating tolerance at the consumer.
Fixesobjectstack-ai#3232
Claude-Session: https://claude.ai/code/session_01NVPjPzmmAJ2Ngtvgg5MSRa
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@huangyiirene