feat(F0Select): add inline variant - #5095
Conversation
Implemented-with: factorial-dev-workflow/frontend
🔍 Review policy: FeatureThe PR title starts with Required approvals
How this was decided
Policy source: |
✅ No New Circular DependenciesNo new circular dependencies detected. Current count: 0 |
🔍 Visual review for your branch is published 🔍Here are the links to: |
📦 Alpha Package Version PublishedUse Use |
✅ No breaking public API changesNo public exports were removed, renamed, or had existing props/types changed in a breaking way compared to Comparing ➕ Additive changes (safe) — 4
|
♿ Accessibility (axe) — components changed in this PR16 issues across 16 stories — all non-blocking (
Scope: only stories in the files/component folders this PR changed. It can't yet flag downstream ripple from shared-code/token changes, or diff against |
|
Good catch on focusSelectedItem, it feels both natural and optimal to place the containment guard there, and good UX improvement. I was also concerned about this from yesterday when i've noticed strange autofocus behaviours. I tested out your changes but that old setTimeout(50) in F0SearchInput is now unnecessary due to your new fix. That's because effects run child before parent, and thus, the input should just take the focus on mount. Like: |
|
Here's my follow-up PR: #5194 |
Implemented-with: factorial-f0 Implemented-with: factorial-dev-workflow/frontend
sauldom102
left a comment
There was a problem hiding this comment.
We seem to be introducing another mdx file for the Select component instead of introducing that in existing docs, now we can't access https://66a7a8d7d124220c363457cc-icfinfcjuh.chromatic.com/?path=/docs/components-select--documentation
You can compare it with https://f0.factorial.dev/?path=/docs/components-select--documentation
✅ Storybook docs — no pages lostEvery page reachable on ➕ 6 added · ✏️ 45 updated ➕ Added (6)
✏️ Updated — 45 page(s)/story/stories across 1 file(s)The source file behind each of these changed. Detection is per file, so editing one story flags its siblings too.
🔇 Added but not in the sidebar — 1Expected for snapshot-only and internal stories (
Links point at this PR's Storybook build — browse the full Storybook. Snapshot of the Storybook index (docs pages + stories) compared against |
Implemented-with: factorial-f0
✅ No untranslated copy addedEvery user-visible string in this PR comes from the i18n layer. Codebase total unchanged at 133. |

Description
Adds a compact, borderless inline variant to F0Select for row-level role and access controls. Inline uses one fixed 32px trigger aligned with F0 typography, icon, and radius tokens; its popup, option rows, selection indicator, and action footer reuse the existing F0Select implementation, leaving the field variant and Dropdown unchanged. Footer actions also honor their existing disabled state in both select variants.
Type of change
Screenshots (if applicable)
Components/Select/InlineOpen, Dark Mode, and Snapshot stories.Implementation details
variant="inline"for single, non-clearable row controlssizeexclusive to the field variant instead of redefining the field size scale for inlinefitContentWidth=falseoverrideKnown accessibility debt
The Open and Snapshot stories keep axe running in
todomode for the shared popup's existingaria-hidden-focusviolation. This PR adds no accessibility skip and does not change the shared popup implementation.Context