Skip to content

chore: sync destyler@0.2.7 Phase 3 HARD (presence + default*) - #7

Merged
elonehoo merged 2 commits into
nextfrom
chore/destyler-0.2.7-controllable-phase3
Sep 21, 2026
Merged

elonehoo merged 2 commits into
nextfrom
chore/destyler-0.2.7-controllable-phase3

Conversation

@elonehoo

@elonehoo elonehoo commented Sep 20, 2026 •

Copy link
Copy Markdown
Member

Summary

Breaking sync with destyler@0.2.7 Phase 3 HARD controllable API (destyler#118 / #103):

  • Controllability is prop presence + default* only — no more *.controlled flags.
  • Bump all host @destyler/* pins from ^0.2.0 → ^0.2.7 (dialog, react, select, splitter, vanilla, vue) and refresh the lockfile.
  • Migrate playground shell Splitter from live size: getInitialSizes() → defaultSize: getInitialSizes() so panel resize remains uncontrolled (live size would be presence-controlled and would stop updating without parent sync).

Controllable sweep

  • Searched playground source / templates / fixtures for '*.controlled', open.controlled, openControlled, and live open/value/checked seeds that should be default*.
  • No REPL template migrations needed — headless demos only call checkbox.machine({ id }) with no value seeds; Destyler UI checkbox demos pass no controlled props.
  • Only host fix: src/components/ui/Splitter.tsx.

Destyler vs Destyler UI layer

  • Layer switch unchanged: Destyler layer pins @destyler/* to the selected version (now includes 0.2.7 via npm); Destyler UI layer pins @destyler-ui/* and leaves headless on latest.
  • @destyler-ui/* is still on 0.0.1-beta.16 and catalogs @destyler/* at ^0.2.6. UI hooks still inject 'open.controlled' / 'edit.controlled' / 'value.controlled' in many places. Flags are ignored at runtime on core 0.2.7, but UI still needs its own migration (presence + default*, stop writing flags) before bumping its catalog to 0.2.7. Playground does not pin @destyler-ui in package.json (CDN-only).

Test plan

  • pnpm install resolves @destyler/*@0.2.7
  • pnpm exec eslint src/components/ui/Splitter.tsx clean
  • pnpm dlx tsx --test tests/*.test.ts — 23 passed (plain pnpm test still fails on Node 20 without TS loader — pre-existing)
  • CI green on this PR
  • Manual: Destyler layer → version 0.2.7 → checkbox toggles; splitter drag persists sizes
  • Manual: Destyler UI layer still loads (note residual UI/core mismatch risk above)

Do not merge until told or CI green per owner preference.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Bump host @destyler/* pins to ^0.2.7 and migrate the playground
Splitter seed from live `size` to `defaultSize` so resize stays
uncontrolled under presence-based ownership (no more *.controlled).

BREAKING CHANGE: consumes destyler@0.2.7 controllable contract.
@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

🧹 PR Preview has been removed

The Zeabur preview service for this PR has been deleted.

Leave the PREBUILT service in place by default when waitForPreview times
out so the dashboard still shows the failed service for inspection. Log
the prepare deployment URL on create/update, and only delete when
ZEABUR_PREVIEW_ROLLBACK_ON_FAILURE=1.
@elonehoo
elonehoo merged commit 2a27ab3 into next Sep 21, 2026
2 checks passed
@elonehoo
elonehoo deleted the chore/destyler-0.2.7-controllable-phase3 branch September 21, 2026 00:57
Sign up for free to 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.

1 participant