Skip to content

v0.5.7

Choose a tag to compare

@markforster markforster released this 30 Mar 19:48
· 212 commits to main since this release
4777356

Release Notes — v0.5.7

Summary

This release introduces empty-library onboarding flows for both Assets and Stockpile, along with improvements to the colour picker input behaviour and minor app-shell updates.

The changes are focused on UX clarity and first-run guidance, with no changes to storage, schema, or import/export contracts.


Assets

Empty-library onboarding

When the asset library is truly empty (assets.length === 0):

  • Replaces the default empty state with a structured onboarding panel
  • Includes:
    • artwork pack download link
    • step-by-step setup instructions
    • GPT resource links

When the library is not empty but filtered/search results are empty:

  • Existing "No assets" message is preserved

Resources menu

  • Added a toolbar resources menu in the Assets panel
  • Provides persistent access to:
    • artwork download
    • GPT resource links
  • Uses shared resource configuration (assetsResources.ts)

Stockpile

Empty-library onboarding

When all of the following conditions are met:

  • filteredCards.length === 0
  • frame === "panel"
  • isPairMode === false
  • isLibraryEmpty === true
  • hasActiveNarrowing === false

The Stockpile panel renders onboarding content instead of the standard empty state.

Onboarding includes:

  • sample .hqcc library download
  • 4-step import instructions
  • direct Import library action

Import integration

  • Import button uses existing LibraryTransferContext (openImport)
  • Behaviour:
    • disabled when isBusy || isImporting
    • label reflects importing state

Exclusions

Onboarding is not shown:

  • in modal contexts
  • when filters/search/narrowing are active
  • when library contains cards or recently deleted entries

Colour Picker

Manual input support

  • Added reusable manual input field for colour values (hex)
  • Available in both inline and popover picker contexts

Behaviour improvements

  • Enter commits and normalizes the value
  • Escape cancels edit and restores previous value
  • Invalid input reverts to last valid value
  • Input stays synchronized with picker/swatch changes

Header

  • Added YouTube link to header navigation
  • Added localized tooltip (tooltip.socialYoutube)

UI Consistency

  • Onboarding actions use standard button classes:
    • btn btn-primary btn-sm
    • btn btn-outline-secondary btn-sm
  • Removed bespoke CTA styling from onboarding components

i18n

  • Added keys for Stockpile onboarding content
  • Added tooltip key for YouTube link
  • All new UI strings integrated into existing locale system

Tests

Added/updated coverage for:

  • Assets empty-state onboarding
  • Stockpile empty-state onboarding
  • Colour picker input behaviour
  • Header rendering (YouTube link)

Note:

  • MainHeader test suite may fail in some environments due to TransformStream dependency (non-functional regression)

Compatibility

  • No API changes
  • No schema changes
  • No migration required
  • Import/export formats unchanged