Skip to content

Release v4.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:26
5de6dde

Icon libraries are now packages a UI profile can select, icons are stored as library-qualified references instead of CSS classes, and icon overrides on template instances are checked against the libraries the profile actually has.

Added

  • IconReference ({ library, key, variant? }) in @cratis/scene.model and Cratis.Scene.Model.Icons, with text form, parsing and equality shared between C# and TypeScript. (#52)
  • PackageKind.IconLibrary and ScenePackage.iconLibrary for declaring an icon library's variants, supported renderers and attribution, plus IconEntry for renderer-neutral catalog records. (#52)
  • resolveIconLibraries and EffectiveIconCatalog in @cratis/scene.engine: active icon libraries with provenance, on-demand catalogs, search by text, category, library and variant, and diagnostics for missing library, icon or variant, incompatible version and unavailable catalog. (#52)
  • EditingContext.iconCatalog (optional): setting an icon as a template instance, or adding or editing a collection item's icon, is refused when the library, icon or variant is missing or the library version is incompatible. inspect and diagnoseIcons report stored icons that no longer resolve as warnings and keep the values. (#52)
  • analyzeIconImpact and collectIconUsages report which stored icon references, including instance overrides and collection-item icons, a library removal or upgrade would break, and list legacy icon strings with migration candidates, without rewriting anything. (#52)
  • SceneIcon, IconAdapter, IconAdapterRegistry and IconAdapterProvider in @cratis/scene.react draw a reference through the adapter for its library with size, color and accessible label, loading artwork per icon. core:navigationBar draws item icons through them. (#52)
  • ScenePackageBundle.iconLibrary and mergeIconAdapters; validatePackageBundle checks an icon-library bundle against its manifest. (#52)
  • Documentation for packaging an icon library, looking up and rendering icons, icons in editing, migrating existing icon values and the reasoning behind library-qualified references. (#52)

Changed

  • There is a single IconReference type in @cratis/scene.model, now with format, parse and equality helpers. (#52)