Skip to content

Add the Sole Vault Specs on Pret UI - #830

Open
richardhjtan wants to merge 5 commits into
mainfrom
cs-13562-b10-migrate-sole-vault-on-pret-ui
Open

richardhjtan wants to merge 5 commits into
mainfrom
cs-13562-b10-migrate-sole-vault-on-pret-ui

Conversation

@richardhjtan

@richardhjtan richardhjtan commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Background and Goal

The reusable Sole Vault blocks move from the matrix realm into the catalog on Pret UI (CS-13562). Cards only the Sole Vault app uses stay in the realm with the app, and the two that move under an app-prefixed name are renamed.

  • cards/collectibles/: Collectible Product, Collection Item, Acquisition (field), Completion Set, Authentication Record, Listing, Seller Profile, Marketplace Member (was Sole Vault Person) and Marketplace Offer (was Sole Vault Offer), plus money-format.
  • cards/collectibles/commands/: Add to Collection, Authenticate Item, Calculate Completion, Create Listing and Create Set.
  • components/: Collection Shell, Collection Panel and Collection Toolbar, which desk apps in several clusters use, with a Collection Example rendering all three.
  • cards/commerce/: Price and Product Review (they hang off a Plan or Service). cards/fulfilment/: Pick List and Product Return.
  • fields/provenance-vocabulary/: the Authorship and Publishing Metadata fields.

Each comes with its Spec and examples.

Where to start

  • cards/collectibles/collection-item.gts: Stat tiles for Paid and Worth now, StatePill badges, Money.
  • components/collection-toolbar.gts: FilterChips for the badge row and a Popover for the filters panel.
  • cards/collectibles/marketplace-member.gts: its isolated view is an exported generic class that Seller Profile extends.

Key decisions and non-obvious mechanics

  • Scope:
    • Sole Vault Order, Payment and Shipment, and the Place Order, Process Payment, Refund Order, Dispatch Shipment and Mark Delivered commands, are used only by the Sole Vault app, so they stay in the realm.
    • Sole Vault Person (Collection Item and Listing use it) and Sole Vault Offer (Listing uses it) move without the app prefix. "Person" and "Offer" are already catalog card names (PersonBase, HR Offer), so they become Marketplace Member and Marketplace Offer.
  • Move:
    • Views that declared @tracked inside static x = class are hoisted to named classes, which the type-check requires.
    • Create Listing refuses an item whose owner isn't a Seller Profile, or that isn't a Collectible Product, instead of writing a listing the schema can't hold.
    • Spec and code comments describe the blocks as they are; tracker and matrix bookkeeping is removed.
  • Pret UI pass:
    • boxel-ui Accordion, ProgressBar, Button and BoxelInput become their Pret UI equivalents, LoadingIndicator becomes Spinner, and ViewSelector becomes SegmentedControl, with text labels instead of icons.
    • The toolbar's badge row is FilterChips, and its filter dropdown is a Popover with a Pret Button trigger.
    • Badges are StatePills; Collection Item's Paid and Worth now are Stats (@roll={{false}}); template amounts render through Money; empty sections are compact EmptyStates.
    • 324 theme-token fallbacks are removed, and Product Review's stars use --warning.
  • Not adopted:
    • FittedCard stays: Pret UI has no fitted-layout equivalent.
    • Product Return's hex status hues stay: they feed the Fulfilment cluster's status chip, whose options carry hex hues across the cluster on main.
    • The Order step rail: Order stays in the realm with the app.

🤖 Generated with Claude Code

richardhjtan and others added 2 commits October 9, 2026 19:09
The Sole Vault marketplace and collection cards, their commands, the
shared collection components, and the Commerce and Fulfilment cards that
sat in the same realm closure, each with its Spec and examples.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Accordion, Spinner, ProgressBar, Button, Input, SegmentedControl,
FilterChips and Popover replace their boxel-ui counterparts; badges are
StatePills, empty sections compact EmptyStates, and styles read theme
tokens without fallbacks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@richardhjtan
richardhjtan requested a review from a team October 9, 2026 15:15
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Staging Submissions Preview

This PR's content is pushed to the staging submissions realm: https://realms-staging.stack.cards/submissions/

Changed folders:

  • Spec/
  • cards/
  • components/
  • fields/

Updated at 2026-10-09 16:56:19 UTC for commit a654c5f. Shared realm: only this PR's changed files are pushed; files touched by multiple PRs reflect whichever pushed last, and deleted files are not removed.

richardhjtan and others added 3 commits October 10, 2026 00:49
Order, Payment, Shipment and the five commands that move them are used
only by the Sole Vault app, so they stay in the matrix realm. Sole Vault
Person and Sole Vault Offer become Marketplace Member and Marketplace
Offer: Person and Offer are already catalog card names.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Collection Item's Paid and Worth now are Stats and its badges StatePills;
amounts in the collectibles templates render through Money.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
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