Skip to content

Searchable categorized icon-picker popout with centered labeled tiles #359

Description

@einari

Outcome

Provide a reusable icon chooser that opens as a popout from an icon property control. Replace a permanently expanded small icon grid with a searchable, categorized catalog.

Interaction and appearance

  • The closed control shows the selected icon and its name.
  • Opening shows a clear title, search field, categories and a close action. Browse compact category groups with Show all, or filter to a category.
  • Each selectable tile has a visible border, an icon centered horizontally and vertically in a consistent icon area, and its readable name centered beneath it. Selection/focus are distinct; neither relies on color alone.
  • Search names and supplied aliases/tags, case-insensitively. State the active category/library filter; support clearing search and show a useful no-results state.
  • When several libraries are supplied, allow browsing/filtering by library and identify the provider so duplicate icon names are distinguishable.
  • Selecting updates the controlled value, closes the popout and returns focus to its trigger. Escape, close and outside dismissal cancel without changing the current selection.
  • Place the popout relative to its trigger, flipping/shifting at viewport edges. A narrow viewport can use a contained sheet; do not clip it inside an inspector or obscure required controls.
  • Support keyboard opening, search, category navigation, tile selection, dismissal and focus return, plus touch targets and long/localized labels.

Public contract and boundaries

Receive the effective icon catalog from the host: qualified stable identity, display name, category/tags, library provenance, optional variants and renderable previews. Emit the selected qualified identity, not raw SVG, a CSS class, a display name or an array index. Do not hardcode a single icon provider or resolve application package dependencies in the picker.

Expose controlled selected value, allowed choices, read-only/disabled state, pending/error/empty catalog state, validation feedback and callbacks. Component-specific configuration editors can reuse it. A template may expose or restrict an icon property; the host enforces the effective exposure and supplies the allowed catalog.

Large libraries need efficient browsing/search and lazy preview rendering. Preserve accessible navigation and stable selection during incremental catalog loading. Missing/deprecated selections remain visible with diagnostics; never silently replace an icon with a same-named entry from another provider.

Display provider/attribution information when supplied by the catalog. Styling, localization and icon rendering use public extension contracts. This issue does not require an Images tab or a general image asset browser.

Acceptance criteria

  • Bordered tiles have centered icons and always-visible centered names.
  • Popout search, categories, Show all, provider filtering and selection work with a host-supplied catalog.
  • Duplicate names across providers preserve distinct qualified identities.
  • Keyboard/touch, edge placement, outside/Escape cancellation and focus return are covered.
  • Loading, empty/no-results, missing selected icon and provider failure states are demonstrated.
  • Read-only/restricted fields cannot emit unauthorized changes.
  • An independently authored example uses synthetic icon libraries and identifiers, with no consuming-product data.
  • Public documentation covers host catalog adapters, controlled values, accessibility and styling.
  • The reusable configuration editors in Headed toolbar drawers and reusable component configuration editors #358 use this picker rather than maintaining another icon grid.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions