Skip to content

Components library: /components page, component thing kind, 1000-component catalog - #291

Open
lopugit wants to merge 18 commits into
developfrom
claude/schema-drawer-components-lib-441b3b
Open

Components library: /components page, component thing kind, 1000-component catalog#291
lopugit wants to merge 18 commits into
developfrom
claude/schema-drawer-components-lib-441b3b

Conversation

@lopugit

@lopugit lopugit commented Aug 17, 2026

Copy link
Copy Markdown
Owner

What

  • Drawer restructure: Schemas moves out of Search's submenu into its own top-level item (💎), and a new top-level Components item (🧩, /components) lands beside it. Direct loads of /components highlight Components (cross-link ordering audited against the drawer's pathname-sync scan).
  • New first-class component thing kind: registry schema + sanitizeComponentCrystal (bounded arg descriptors, scalar savedArgs snapshots, render template through the existing schema render gate), component- reserved shareId prefix in sanitizeShareId, projection pin-test entry. Not protected: users create versions through the unified things path; searchable/browsable/deletable like schema.
  • /components page (ComponentsBrowsePage): every card renders its component live from the stored template via the sanitising allowlist renderers; an args tester (string/text/number/boolean/enum/color inputs) drives re-renders through a tiny template DSL ({token} interpolation + ttArg/ttMap/ttIf/ttMerge/ttRepeat, resolved client-side pre-render; $-free keys so the server render gate stores them); a hidden "Schema" expander reveals inherits/args/on-create/thingtime-adds chips + the raw definition; "Save version" stores the tester snapshot as a user-owned component thing (private by default, public toggle), linked by componentKey/forkOf. React + Add-to-library ride the existing things endpoints, optimistic with reconcile.
  • API (all 3 registration places): GET /api/v1/components/browse (newest/oldest/popular/q via hardened searchThings, lib=/category= filters on no-q pages, cursor pagination, reaction/saved/usage decoration) and admin POST/GET /api/v1/admin/components/seed (idempotent, self-healing system seed mirroring seed-builtin-schemas: ownerId system, storageClass control, acl [tt:all], uniqueKeys, anti-squat; fail-closed rate limit). Docs entries auto-generate the -docs twins + 4 smoke tests.
  • 1000-component catalog: components-db/ folder database (one JSON per component + manifest), generated deterministically by scripts/components-db/generate.mjs from 25 archetype builders × 8 library token sets (Ant Design, Bootstrap, MUI, shadcn/ui, Untitled UI, daisyUI, React Flow, Thingtime) × 5 variants. Validator mirrors both renderer and server caps (incl. raw-JSON node accounting that caught the server's 600-node cap). scripts/components-db/seed.mjs seeds via the real API only — 1000/1000 seeded into the dev DB as system things (re-run converges: 992 unchanged / 8 created after a template slim-down).
  • Kind renderer for component things (savedArgs-over-defaults resolution) so they render across /things and other RenderThing surfaces.

Validation

  • remix/scripts/verify-components.mjs (new): 23/23 passing against the live worktree stack — browse + filters + docs twin, admin gate (401/403), render-required 400, reserved-prefix 400, save-version → mine=1 + savedArgs snapshot + componentKey usage counts, react/save decoration, library scope.
  • builtinSchemaProjection pin tests: 54/54 (component entry added). test:things: 6/6. Targeted ESLint clean on every changed file.
  • Live browser (desktop + 375px mobile): drawer items, live rendering, args tester (enum flip re-renders the tracking timeline), schema expander, save-version toast + Mine scope, no horizontal overflow. TESTING.md gains a Components checklist; FUNDAMENTALS §3, README (fork-safe seeding), and remix/CHANGELOG.md updated.

Note: graphify-out/ was left untouched (local graphify update produces full-rebuild version-drift churn, ~854k lines — the established practice is source-only commits with the graph refreshed by the canonical environment).

🤖 Generated with Claude Code

…ponent catalog

- Drawer: Schemas moves out of Search into its own top-level item; new
  top-level Components item (🧩, /components).
- New first-class `component` thing kind: registry schema + sanitizer
  (arg descriptors, savedArgs snapshots, render template reusing the schema
  render gate), reserved `component-` shareId prefix, projection pin.
- /components (ComponentsBrowsePage): live template rendering through the
  sanitising allowlist renderers, per-card args tester (ttArg/ttMap/ttIf/
  ttMerge/ttRepeat DSL resolved client-side), hidden Schema expander, react/
  save decoration, and "Save version" → user-owned component thing.
- API: GET /api/v1/components/browse (newest/oldest/popular/q + lib/category
  filters, cursor pagination) and admin POST/GET /api/v1/admin/components/seed
  (idempotent, self-healing system seed; fail-closed rate limit), registered
  in route file + import map + apiEndpointDocs.
- components-db/: 1000-component folder database (25 archetypes × 8 libraries
  × 5 variants — Ant Design, Bootstrap, MUI, shadcn/ui, Untitled UI, daisyUI,
  React Flow, Thingtime), deterministic generator + validator + API seeder
  under scripts/components-db/.
- Kind renderer for component things; verify-components.mjs (23 checks);
  FUNDAMENTALS §3 + TESTING.md + README + CHANGELOG updates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
thingtime Ready Ready Preview Aug 18, 2026 6:05am
thingtime (develop) Ready Ready Preview Aug 18, 2026 6:05am

Request Review

@github-actions
github-actions Bot temporarily deployed to develop-pr-291 August 17, 2026 09:34 Destroyed
@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

✅ Develop S3 preview ready

The alias passed the develop bucket CORS preflight and a final live PR/SHA fence.

Generic Vercel Preview deployments use the shared development runtime; this controller adds the stable exact-SHA alias and marker-scoped cleanup.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions
github-actions Bot temporarily deployed to develop-pr-291 August 17, 2026 09:35 Destroyed
…mmand (+120 → 1120)

Catalog grows past the initial 1000: 3 new archetypes × 8 libraries × 5
variants, layered calc-clip star ratings, terminal/diff/kbd code blocks,
and command-palette/search surfaces. Loop runbook in
scripts/components-db/README.md; tranche accounting in catalog.mjs.
Seeded: census 1120.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions
github-actions Bot temporarily deployed to develop-pr-291 August 17, 2026 09:44 Destroyed
… (+120 → 1240)

Messaging bubbles/threads/composer/typing/contact rows, audio/video/mini
player chrome with playlist + volume clusters, and calendar/date-input/
time-picker/range/countdown temporals. Seeded: census 1240.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…a-viz (+120 → 1360)

Product cards/cart/checkout/promo/payment rows, profile headers/user
cards/follower rows/achievements/stat bands, and svg mini-charts (bar,
line, donut, gauge, heatmap). Seeded: census 1360.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dow-chrome (+120 → 1480)

File rows/folder grids/upload zones/storage meters/toolbars, welcome/
tour/checklist/progress/invite onboarding surfaces, and browser/phone/
window/tab-strip/dock app-frame mockups. Seeded: census 1480.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, designs click-through

Owner feedback: library renditions read as duplicates. Every component now
carries crystal.familyKey; /components groups one card per family with a
designs pill row (server group=family aggregation, client collapse for
q-search, family= roster fetch); cards' Docs buttons open the new
/components/:key + /components/:key/docs detail pages (design switcher,
args tester, deep links, API snippet, definition). Self-healing reseed
stamped familyKey across the catalog; tranche-2 batch 5 (kanban,
forms-advanced, gamification) rode along — census 1600.
verify-components.mjs now 30 checks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…0 → 1720)

Settings rows/sections/danger-zones/API-keys/notification matrices, mail
inbox/thread/compose/sidebar/attachment surfaces, and calendar-app views
(events, agendas, week grids, availability, booking). Seeded: census 1720.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…i (+120 → 1840)

Location/route/weather/itinerary/pin-cluster travel cards, balance/
transaction/transfer/credit-card/spending finance surfaces, and doc-site
headers/TOCs/callouts/references/version pickers. Seeded: census 1840.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…livery (+120 → 2080)

Commit diff-stats/CI pipelines/log viewers/env vars/PR cards, course
cards/curricula/quizzes/certificates/learning paths, and menu items/
order trackers/reservations/reviews/courier cards. Seeded: census 2080.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ts, support-help (+120 → 2200)

Price cards/candles/portfolios/swaps/order books, event cards/ticket
stubs/seat maps/lineups/on-sale banners, and support tickets/FAQs/chat
launchers/status banners/CSAT prompts. Seeded: census 2200.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…i-assistant (+120 → 2320)

Masonry/lightbox/album/editor/filmstrip photo surfaces, job cards/
applicant rows/interview slots/offers/hiring funnels, and AI prompt
bars/response cards/model pickers/usage meters/agent status. Batch
survived a mid-flight session-limit pause (2 modules recovered intact,
1 re-authored). Seeded: census 2320.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lopugit and others added 3 commits August 17, 2026 23:59
…ab, news-reading (+120 → 2440)

Listing cards/spec sheets/mortgage calcs/agent cards/tour schedulers,
multiplayer cursors/sticky notes/canvas toolbars/comment pins/zoom
clusters, and headline stacks/article cards/reader controls/newsletter
blocks/live blogs. Seeded: census 2440.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…oductivity-notes (+120 → 2560)

Vehicle cards/EV batteries/trip computers/parking/service reminders,
show posters/continue-watching/episode lists/audio-subs/watch parties,
and notes/todos/pomodoro rings/habit trackers/snippet cards.
Seeded: census 2560.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mmunity, form-flows (+120 → 2680)

2FA setup/vault rows/permission dialogs/audit logs/VPN cards, donation
pickers/fundraiser progress/volunteer shifts/impact bands/sponsor tiers,
and wizard shells/review summaries/conditional reveals/signature pads/
two-column sections. Seeded: census 2680.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…batch 15 (→ 2800)

- Seed stamps a provenance tag first on every catalog component so the
  per-definition tags can never squeeze it out; hand-built seed envelopes
  keep the display casing verbatim.
- Cards and detail pages surface thing-level tags, attribution chip first
  (filled + sparkle) ahead of topical tags.
- Batch 15 lands with it: logistics, sports-scores, accessibility (+120).
  The thingtime standings variant was over the 580-node render cap; cells
  now inherit fontSize/color/textAlign from their row instead of repeating
  them 30×.
- Reseed: 2680 refreshed + 120 created = 2800/2800 tagged, 0 untagged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

🤝 Merged develop into claude/schema-drawer-components-lib-441b3b — conflicts auto-resolved by the resolve-pr-conflicts workflow.

Conflicted files:

  • remix/CHANGELOG.md

Please review the merge commit before relying on it.

…olved conflicts)

Conflicted paths: remix/CHANGELOG.md

Resolved by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32104780935

Co-Authored-By: Claude <noreply@anthropic.com>
lopugit added a commit that referenced this pull request Aug 18, 2026
lopugit added a commit that referenced this pull request Aug 18, 2026
github-actions Bot added a commit that referenced this pull request Aug 18, 2026
github-actions Bot added a commit that referenced this pull request Aug 19, 2026
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