Skip to content

objectui run's temporary app restates the components @theme token-for-token; the new plugin sheets make it only partly removable #6404

Description

@claude

What was observed

objectui run's temporary app (packages/cli/src/utils/app-generator.ts, the @theme block around line 335 and the @source list documented just above it) declares the ObjectUI theme token for token — the in-source comment says so outright, "Token-for-token the set packages/components/src/index.css declares" — and then scans ../node_modules/@object-ui/*/dist/**/*.js to recover the library's utilities.

That is the one place in this repository that implements published-state rendering for plugins, and it is the shape the guides deliberately do not teach (objectui#4858 retired exactly this advice for hand-written consumers).

Why it is worth a card now

Follow-up to #4929 / PR #6403, which gave @object-ui/plugin-grid and @object-ui/plugin-kanban a published style.css built in the @object-ui/fields subtraction shape. With those two sheets, the restatement is partly replaceable by imports:

@import 'tailwindcss';
@import '@object-ui/components/style.css';
@import '@object-ui/fields/style.css';
@import '@object-ui/plugin-grid/style.css';
@import '@object-ui/plugin-kanban/style.css';

It is not fully replaceable, and that is the whole question. The temporary app is generated for whatever the user's app uses, and the other @object-ui/plugin-* packages (charts, gantt, calendar, map, editor, view, form, …) still publish no stylesheet. Drop the @theme restatement and the scan today and those plugins lose their themed utilities in objectui run — the same defect #4929 fixed, moved.

So the options are a judgement call, not a mechanical edit:

  1. leave it as is until every plugin ships a sheet;
  2. import the sheets that exist and keep the restatement + scan as the fallback for the ones that do not (largest sheet, but correct everywhere);
  3. give the remaining plugins the same build step first, then remove the restatement in one stroke.

Deliberately not touched in PR #6403, whose ruling scoped it to two packages.

Evidence

Filed unassigned, as an observation from the #4929 implementation. No change is proposed here.


Generated by Claude Code


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:on-hold

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions