Skip to content

Migrate docs to kolay + @universal-ember/docs-support - #19

Merged
NullVoxPopuli merged 1 commit into
universal-ember:mainfrom
NullVoxPopuli-ai-agent:docs-support-migration
Jul 20, 2026
Merged

NullVoxPopuli merged 1 commit into
universal-ember:mainfrom
NullVoxPopuli-ai-agent:docs-support-migration

Conversation

@NullVoxPopuli-ai-agent

Copy link
Copy Markdown
Contributor

Replaces the @crowdstrike/ember-oss-docs + docfy docs stack with the universal-ember org's docs setup, following ember-primitives and @universal-ember/table. Verified locally: full turbo build lint test typecheck green across the workspace, and the built site was loaded in a real browser — landing page, kolay nav, shiki-highlighted code, and live demos all work (the yup demo renders validation errors with correct aria on submit; the custom-control demo's id/label wiring and value prefill work).

docs-app

  • Now a strict-resolver vite app: @embroider/vite's ember() on (rolldown-)vite 8, ember-source 7, ember-strict-application-resolver, kolay for routing/markdown, @universal-ember/docs-support 0.9.11 for the Shell/PageLayout/IndexPage chrome.
  • No tailwind: docs-support ≥0.9.3 dropped its /tailwind export and ships its own styles (this is the ember-primitives shape; table is still on 0.9.2 + tailwind). A ~60-line utility block in app.css covers the demo markup's classes.
  • All content ported from docs/ (docfy markdown + separate demo/ folders) into docs-app/src/templates/**/*.gjs.md, with every docfy two-fence demo (hbs template + js component) rewritten as a single live-rendered gjs component. Package names updated throughout (ember-headless-form → @universal-ember/form & friends).
  • The ember-changeset demo uses plain validator functions + lookupValidator from validated-changeset — ember-changeset-validations is a v1 addon and can't load in a vite app (prose still points at it for classic apps).
  • The docs/ directory is removed; glint-name-error.png moved to public/.

Workspace fallout fixed along the way

  • @glimmer/component v1 is fully gone (packages' devDeps → v2; peer ranges already allowed it since Migrate test-app to vite (ember.nvp-style), scenario-test via @embroider/try, drop TS 5.9 #18). Its mere presence in the workspace made pnpm's .pnpm/node_modules fallback hand glint's invokability augmentation a different copy of @glimmer/component than consumers resolve → 18 [Invoke]-missing errors in the addon's own typecheck once docs-app's copy was the last v1. With v1 gone the identity is unambiguous everywhere.
  • input.gts/field.gts constructors now type owner as Owner (gc2's constructor signature).
  • @babel/plugin-syntax-dynamic-import was a phantom dependency of the packages' rollup builds — provided transitively by the removed crowdstrike/docfy tree; now declared where used.
  • docs-app's babel wires @warp-drive/build-config's setConfig (ember-data enters the graph via ember-changeset v5), same as test-app.
  • Dropped the now-unneeded @glint/environment-ember-loose peer-ignore rule; added an allowedVersions rule for @glint/template (ember-primitives/ember-repl pin an exact version).

Notes for review

  • The Cloudflare Pages projectName is still ember-headless-form — say the word if you want it repointed at a differently-named project.
  • pnpm start in docs-app gives the vite dev server; there is no test suite for docs-app (same as table's docs-app effectively — its testem setup was vestigial here).

🤖 Generated with Claude Code

Replaces the @crowdstrike/ember-oss-docs + docfy docs stack with the
universal-ember org's docs setup, as used by ember-primitives and
@universal-ember/table:

- docs-app is now a strict-resolver vite app (@embroider/vite's ember()
  on vite 8, ember-source 7, no tailwind — docs-support 0.9.11 is
  self-styled; a tiny utility-class block covers the demos)
- all doc content moved from docs/ (docfy markdown + separate demo
  folders) into docs-app/src/templates/**/*.gjs.md (kolay), with every
  docfy demo rewritten as a single live-rendered gjs component
- package names updated throughout (ember-headless-form ->
  @universal-ember/form and friends)
- the ember-changeset demo now uses plain validator functions with
  lookupValidator from validated-changeset: ember-changeset-validations
  is a v1 addon and cannot load in a vite app
- verified in a real browser: landing page, nav, prose, shiki
  highlighting, and the live demos (yup validation errors render with
  correct aria; custom-control id/label wiring and prefill work)

Fallout fixed along the way:
- @glimmer/component v1 is gone from the workspace (packages' devDeps
  now v2): its presence made pnpm's .pnpm/node_modules fallback hand
  glint's invokability augmentation a different copy than consumers use
- input/field constructors type owner as Owner (gc2 signature)
- @babel/plugin-syntax-dynamic-import was a phantom dependency of the
  packages' rollup builds, provided transitively by the removed docs
  stack — now declared
- babel needs @warp-drive/build-config setConfig (ember-data enters the
  docs-app graph via ember-changeset v5)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@NullVoxPopuli
NullVoxPopuli merged commit aeb1ddb into universal-ember:main Jul 20, 2026
12 checks passed
@NullVoxPopuli NullVoxPopuli added the documentation Improvements or additions to documentation label Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants