Skip to content

feat(InputRating): new component (upstream nuxt/ui#5757) #220

Description

@IgorShevchik

Context

Upstream nuxt/ui shipped cba2c2c4feat(InputRating): new component (#5757) — a brand-new InputRating component (star/emoji rating input). It's a 17-file / +1,979-line change.

Decision in the sync stream — SKIPPED (no-op)

Recorded as a skip in the ledger (cursor advanced, no source change) per maintainer decision, mirroring how the Calendar month/year feature was handled (#194). Rationale: this is a net-new component, not a 1:1 port — its theme is built on nuxt/ui's options.theme.colors loops + semantic tokens, whereas b24ui's themes are air-design-token based with no theme.colors. It needs a deliberate air-design pass (how the rating items, hover/active/selected states and sizes look in b24ui), plus the full component registration surface — not a mechanical translation.

Scope of this issue (port the component, adapted to air design)

  • src/runtime/components/InputRating.vue — port the component (reka-ui primitive if used; uib24ui prop, icons via dictionary/icons / icon-map.json, IconComponent typing).
  • src/theme/input-rating.ts — design + apply the theme in air tokens (item/active/hover/selected states, sizes/colors), consistent with existing b24ui components — not upstream's theme.colors model.
  • Registration: src/theme/index.ts (export input-rating), src/theme/icons.ts (rating icons), src/runtime/types/index.ts (re-export InputRating.vue), src/runtime/composables/useComponentProps.ts if needed.
  • Tests: test/components/InputRating.spec.ts + renderEach snapshots (nuxt + vue), and any test/utils/form.ts helper the form integration needs.
  • Docs: docs/content/docs/2.components/input-rating.md, playground playgrounds/nuxt/app/pages/components/input-rating.vue + useNavigation.ts entry, FormExampleElements.vue, screenshots — adapted to b24ui (B24-namespaced, air examples).
  • Regenerate snapshots.

Upstream file list (17 files, +1,979)

src/runtime/components/InputRating.vue (new), src/theme/input-rating.ts (new), src/theme/index.ts, src/theme/icons.ts, src/runtime/types/index.ts, src/runtime/composables/useComponentProps.ts, test/components/InputRating.spec.ts (new) + snapshot, test/utils/form.ts, docs input-rating.md (new) + screenshots, playground input-rating.vue (new) + useNavigation.ts, docs/app/utils/theme.ts, FormExampleElements.vue.

References

No behaviour change has been made by the sync stream; this is deferred to a focused, design-aware implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions