chore(tabs): add @internal JSDoc tags to private and implementation-only properties#6328
chore(tabs): add @internal JSDoc tags to private and implementation-only properties#6328Rajdeepc wants to merge 3 commits into
Conversation
…nly properties Private backing fields (_density, _direction, _keyboardActivation), internal state (@State() selectionIndicatorStyle, shouldAnimate), cached collections (_tabs), the ResizeObserver instance, and the static INDICATOR_BASE_SIZE constant were all missing @internal tags. The CEM analyzer picked them up and surfaced them in the Storybook Controls panel as public API. Adding @internal ensures they are excluded from the generated manifest and no longer appear as consumer-facing controls. Co-authored-by: Cursor <cursoragent@cursor.com>
|
📚 Branch Preview Links🔍 First Generation Visual Regression Test ResultsWhen a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
Deployed to Azure Blob Storage: If the changes are expected, update the |
…nternal Both are implementation details that should not appear in the CEM manifest or Storybook Controls: shadowRootOptions configures shadow DOM setup, and updateSelectionIndicator is a protected method called automatically by lifecycle hooks. Co-authored-by: Cursor <cursoragent@cursor.com>


Description
Adds
@internalJSDoc tags to 8 properties inTabsBasethat were missing them. Without@internal, the CEM (Custom Elements Manifest) analyzer treats these as public API and Storybook surfaces them in the Controls panel alongside the real public properties.Properties tagged:
_keyboardActivationkeyboardActivationgetter_densitydensitygetter_directiondirectiongetterINDICATOR_BASE_SIZEselectionIndicatorStyle@state()protectedshouldAnimate@state()protected_tabs_resizeObserverMotivation and context
The Storybook playground for
swc-tabsdisplayed 20 controls, including internal implementation details prefixed with_. TypeScript'sprivatekeyword is compile-time only and does not prevent the CEM analyzer from emitting these fields. The@internalJSDoc tag is the standard mechanism to exclude them.After this change, only the 6 intended public properties remain in Controls:
keyboardActivation,density,direction,disabled,accessibleLabel, andselected.Author's checklist
Reviewer's checklist
patch,minor, ormajorfeaturesManual review test cases
_density,_direction,_keyboardActivation,_tabs,_resizeObserver,INDICATOR_BASE_SIZE,selectionIndicatorStyle, andshouldAnimateare not listedkeyboardActivation,density,direction,disabled,accessibleLabel, andselectedare listedDevice review
Accessibility testing checklist
Made with Cursor