Skip to content

Structure experiments#972

Draft
LowGinWee wants to merge 2470 commits intoLifeSG:structure-experimentsfrom
LowGinWee:structure-experiments
Draft

Structure experiments#972
LowGinWee wants to merge 2470 commits intoLifeSG:structure-experimentsfrom
LowGinWee:structure-experiments

Conversation

@LowGinWee
Copy link
Copy Markdown
Contributor

Please go to the Preview tab and select the appropriate sub-template:

benjaminLeongSK and others added 30 commits February 10, 2026 10:52
qroll and others added 30 commits March 18, 2026 11:28
Fix incorrect text colour for tab item
FullscreenImageCarousel accessibility LifeSG#888
…ity-fix

Bug fix - Fix interaction for slider on android talkback
# Conflicts:
#	.eslintrc
#	.storybook/main.js
#	.storybook/preview.js
#	package-lock.json
#	package.json
#	src/accordion/types.ts
#	src/alert/types.ts
#	src/box-container/types.ts
#	src/breadcrumb/types.ts
#	src/button/types.ts
#	src/calendar/types.ts
#	src/countdown-timer/types.ts
#	src/divider/types.ts
#	src/filter/types.ts
#	src/form/types.ts
#	src/fullscreen-image-carousel/types.ts
#	src/histogram-slider/types.ts
#	src/input-group/input-group-list-addon.tsx
#	src/input-group/types.ts
#	src/input-multi-select/types.ts
#	src/input-nested-multi-select/types.ts
#	src/input-nested-select/types.ts
#	src/input-range-select/input-range-select.tsx
#	src/input-range-select/types.ts
#	src/input-range-slider/types.ts
#	src/input-select/input-select.tsx
#	src/input-select/types.ts
#	src/input-textarea/types.ts
#	src/input/types.ts
#	src/layout/types.ts
#	src/link-list/types.ts
#	src/masked-input/types.ts
#	src/masonry/types.ts
#	src/modal/types.ts
#	src/navbar/types.ts
#	src/notification-banner/types.ts
#	src/otp-input/types.ts
#	src/overlay/types.ts
#	src/popover-v2/types.ts
#	src/popover/types.ts
#	src/predictive-text-input/types.ts
#	src/radio-button/types.ts
#	src/shared/dropdown-list/dropdown-list.tsx
#	src/shared/nested-dropdown-list/nested-dropdown-list.tsx
#	src/sidenav/types.ts
#	src/tab/types.ts
#	src/tag/types.ts
#	src/text-list/types.ts
#	src/time-range-picker/types.ts
#	src/time-slot-bar/types.ts
#	src/timeline/types.ts
#	src/timepicker/types.ts
#	src/toast/types.ts
#	src/tooltip/types.ts
#	src/uneditable-section/types.ts
#	src/unit-number/types.ts
#	src/v2_text/types.ts
#	stories/alert/alert.stories.tsx
#	stories/alert/props-table.tsx
#	stories/animation/2-animations-customisable.stories.tsx
#	stories/breadcrumb/breadcrumb.stories.tsx
#	stories/button/button.mdx
#	stories/card/card.stories.tsx
#	stories/countdown-timer/countdown-timer.stories.tsx
#	stories/data-table/data-table.mdx
#	stories/data-table/props-table.tsx
#	stories/divider/divider.stories.tsx
#	stories/error-display/error-display.stories.tsx
#	stories/filter/filter-addons.stories.tsx
#	stories/filter/filter.mdx
#	stories/filter/filter.stories.tsx
#	stories/filter/props-table.tsx
#	stories/footer/footer.stories.tsx
#	stories/form/form-input-group/form-input-group.stories.tsx
#	stories/form/form-masked-input/form-masked-input.stories.tsx
#	stories/form/form-select/form-select.stories.tsx
#	stories/icon-button/icon-button.stories.tsx
#	stories/layout/layout.stories.tsx
#	stories/link-list/link-list.stories.tsx
#	stories/masonry/masonry.stories.tsx
#	stories/masonry/props-table.tsx
#	stories/masthead/masthead.stories.tsx
#	stories/modal/props-table.tsx
#	stories/navbar/navbar.stories.tsx
#	stories/notification-banner/notification-banner.stories.tsx
#	stories/otp-input/otp-input.stories.tsx
#	stories/overlay/props-table.tsx
#	stories/popover-v2/popover.stories.tsx
#	stories/popover/props-table.tsx
#	stories/radio-button/props-table.tsx
#	stories/storybook-common/text.style.tsx
#	stories/tab/tab.stories.tsx
#	stories/text-list/props-table.tsx
#	stories/text-list/text-list.stories.tsx
#	stories/time-slot-bar-week/time-slot-bar-week.stories.tsx
#	stories/time-slot-bar/time-slot-bar.stories.tsx
#	stories/time-slot-week-view/time-slot-week-view.stories.tsx
#	stories/timeline/timeline.stories.tsx
#	stories/toggle/toggle.stories.tsx
#	stories/tooltip/props-table.tsx
#	stories/uneditable-section/uneditable-section.stories.tsx
#	stories/v2_color/color.stories.tsx
#	stories/v2_layout/col-div.stories.tsx
#	stories/v2_text/a-intro.stories.tsx
… MDX @storybook/blocks path, upgrade React to 18
- Add scripts/generate-props-data.js: TS compiler API script to generate stories/*/generated-props.ts
- Add scripts/props-data-config.json: config mapping 41 components with sub-interfaces
- Add npm scripts: props:generate and props:generate:config
- Generate stories/*/generated-props.ts for all 41 components with sub-interfaces
- Rewrite all stories/*/props-table.tsx to export PropsTableTabs
- Create props-table.tsx for 21 components that previously had none
- Update all MDX files to use PropsTableTabs instead of PropsTable
- Update storybook prompt to document the new generation workflow
…pography

- Filter out HTML-inherited properties in generate-props-data.js:
  only props declared in the component's own types.ts are shown
- Include primary interface in config and generated-props.ts for all components
- Switch ALL props-table.tsx tabs from ArgTypes to ApiTable with generated data
- Two tabs for Typography: TypographyProps + TypographyLinkProps
- Add scripts/props-data-config.json to .gitignore (auto-generated, not to commit)
- Update storybook prompt to reflect: no ArgTypes, primary interface included,
  HTML props filtered automatically
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants