Skip to content

chore(react): Storybook Patterns cleanup — casing + App shell & Filters#4725

Merged
desiree-np merged 1 commit into
mainfrom
chore/f0-storybook-patterns
Jul 20, 2026
Merged

chore(react): Storybook Patterns cleanup — casing + App shell & Filters#4725
desiree-np merged 1 commit into
mainfrom
chore/f0-storybook-patterns

Conversation

@desiree-np

Copy link
Copy Markdown
Collaborator

What & why

PR 2 of the Storybook reorg series. Cleans up the Patterns section: fixes a casing bug and introduces two coherent groups. All changes are title-only.

Changes

  • Casing fix: normalize Data collectionData Collection. Inconsistent casing (24 vs 6 stories/docs) was splitting OneDataCollection into two sidebar nodes.
  • App shell: ApplicationFrame now sits under Patterns/App shell, alongside the layouts (it is the app shell).
  • Filters: FilterPicker, FilterPickerContent and DateNavigator grouped under Patterns/Filters (DateNavigator is a temporal navigation filter).

Scope & stacking

Stacked on #4723 (base branch = chore/f0-storybook-reorder). Merge #4723 first, then this rebases onto main.

Deferred to later PRs (need cross-section folder moves or the Internal/Deprecated dissolution): Tabs → Components, Box → Components, dissolve Internal & Deprecated into badges, then functional subgroups.

Test plan

Verified in Storybook via /index.json:

  • Patterns 2nd level: App shell · Filters · Data Collection · AnalyticsDashboard · Graph · Co-creation · CRUD patterns · Dialog · Forms · Navigation · …
  • Single Data Collection node (no lowercase duplicate).
  • No DateNavigator / FilterPicker / FilterPickerContent as separate top nodes (now under Filters).
  • 0 title collisions.

🤖 Generated with Claude Code

@github-actions github-actions Bot added chore react Changes affect packages/react labels Jul 16, 2026
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

📦 Alpha Package Version Published

Use pnpm i github:factorialco/f0#npm/alpha-pr-4725 to install the package

Use pnpm i github:factorialco/f0#f4a94dd05f3c27990fc0b2bd4b74d52e1f551356 to install this specific commit

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

🔍 Visual review for your branch is published 🔍

Here are the links to:

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Coverage Report for packages/react

Status Category Percentage Covered / Total
🔵 Lines 59.34% 20795 / 35039
🔵 Statements 58.39% 21805 / 37341
🔵 Functions 51.52% 4834 / 9382
🔵 Branches 52.09% 15025 / 28841
File CoverageNo changed files found.
Generated in workflow #15775 for commit 9ca72d3 by the Vitest Coverage Report Action

@desiree-np
desiree-np marked this pull request as ready for review July 16, 2026 17:09
@desiree-np
desiree-np requested a review from a team as a code owner July 16, 2026 17:09

@eliseo-juan eliseo-juan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@desiree-np
desiree-np force-pushed the chore/f0-storybook-patterns branch from fa88a5d to 2d097e5 Compare July 17, 2026 09:38
desiree-np added a commit that referenced this pull request Jul 17, 2026
'ui/' is no longer a top-level '🔒 Internal' bucket. Its stories route to
their altitude:
- internal primitives -> Components/Primitives (Card, Select, Dialog, Spinner,
  Toast, DatePickerPopup, OverflowList, IconBadge, Action, Counter, ...)
- standalone widgets  -> Components (Wizard, ButtonCopy, Pagination,
  ValueDisplay, ButtonGroup, Shortcut, OnePreset)
- Kanban / Lane       -> Patterns/Kanban
- OneRestrictComponent -> Resources
- Omnibutton          -> Components (carries the 'deprecated' badge)

'internal' is now purely an informational badge (not public API): removed the
sidebar filter that HID internal-tagged stories in the public build, so
primitives stay visible to contributors in every build — matching the lifecycle
('primitives have a page so DS contributors can find and reuse it').

Verified in Storybook: no '🔒 Internal' root; 0 title collisions.

Scope: PR 3a. Follow-ups: dissolve Deprecated (3b); cross-section moves
Tabs/Box/Reactions -> Components; internal-badge tag consistency on primitives.
Stacked on #4725.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Base automatically changed from chore/f0-storybook-reorder to main July 20, 2026 11:57
@desiree-np
desiree-np requested review from a team as code owners July 20, 2026 11:57
…rs groups

- Normalize 'Data collection' -> 'Data Collection' (inconsistent casing was
  splitting OneDataCollection into two sidebar nodes; 24 vs 6 stories/docs).
- Group ApplicationFrame under Patterns/App shell (alongside the layouts).
- Group FilterPicker, FilterPickerContent and DateNavigator under
  Patterns/Filters (DateNavigator is a temporal filter).

Title-only changes; verified in Storybook: single 'Data Collection' node,
new 'App shell' and 'Filters' groups, 0 title collisions.

Scope: PR 2 of the Storybook reorg series. Stacked on #4723 (base branch).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@desiree-np
desiree-np force-pushed the chore/f0-storybook-patterns branch from 2d097e5 to 9ca72d3 Compare July 20, 2026 12:01
@github-actions

Copy link
Copy Markdown
Contributor

✅ No New Circular Dependencies

No new circular dependencies detected. Current count: 0

@github-actions

Copy link
Copy Markdown
Contributor

✅ No breaking public API changes

No public exports were removed, renamed, or had existing props/types changed in a breaking way compared to main.

Comparing f0, experimental and ai against main. Adding components, types, or optional props is safe. This check is non-blocking.

⚠️ Could not analyze component-status (no-base) — a build may have failed; results may be incomplete.

desiree-np added a commit that referenced this pull request Jul 20, 2026
'ui/' is no longer a top-level '🔒 Internal' bucket. Its stories route to
their altitude:
- internal primitives -> Components/Primitives (Card, Select, Dialog, Spinner,
  Toast, DatePickerPopup, OverflowList, IconBadge, Action, Counter, ...)
- standalone widgets  -> Components (Wizard, ButtonCopy, Pagination,
  ValueDisplay, ButtonGroup, Shortcut, OnePreset)
- Kanban / Lane       -> Patterns/Kanban
- OneRestrictComponent -> Resources
- Omnibutton          -> Components (carries the 'deprecated' badge)

'internal' is now purely an informational badge (not public API): removed the
sidebar filter that HID internal-tagged stories in the public build, so
primitives stay visible to contributors in every build — matching the lifecycle
('primitives have a page so DS contributors can find and reuse it').

Verified in Storybook: no '🔒 Internal' root; 0 title collisions.

Scope: PR 3a. Follow-ups: dissolve Deprecated (3b); cross-section moves
Tabs/Box/Reactions -> Components; internal-badge tag consistency on primitives.
Stacked on #4725.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@desiree-np
desiree-np merged commit f22869e into main Jul 20, 2026
24 of 28 checks passed
@desiree-np
desiree-np deleted the chore/f0-storybook-patterns branch July 20, 2026 13:50
desiree-np added a commit that referenced this pull request Jul 20, 2026
'ui/' is no longer a top-level '🔒 Internal' bucket. Its stories route to
their altitude:
- internal primitives -> Components/Primitives (Card, Select, Dialog, Spinner,
  Toast, DatePickerPopup, OverflowList, IconBadge, Action, Counter, ...)
- standalone widgets  -> Components (Wizard, ButtonCopy, Pagination,
  ValueDisplay, ButtonGroup, Shortcut, OnePreset)
- Kanban / Lane       -> Patterns/Kanban
- OneRestrictComponent -> Resources
- Omnibutton          -> Components (carries the 'deprecated' badge)

'internal' is now purely an informational badge (not public API): removed the
sidebar filter that HID internal-tagged stories in the public build, so
primitives stay visible to contributors in every build — matching the lifecycle
('primitives have a page so DS contributors can find and reuse it').

Verified in Storybook: no '🔒 Internal' root; 0 title collisions.

Scope: PR 3a. Follow-ups: dissolve Deprecated (3b); cross-section moves
Tabs/Box/Reactions -> Components; internal-badge tag consistency on primitives.
Stacked on #4725.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore react Changes affect packages/react

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants