Skip to content

Structure experiments#972

Draft
LowGinWee wants to merge 2473 commits into
LifeSG:structure-experimentsfrom
LowGinWee:structure-experiments
Draft

Structure experiments#972
LowGinWee wants to merge 2473 commits into
LifeSG: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
[CCUBE-1683][JON]Enhance DS unordered TextList component to accept custom bullet type
qroll and others added 30 commits March 19, 2026 21:29
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
…ense support

- Component descriptions and @example moved from *Props interface to exported component function in .tsx
- Consumers hovering a component in their IDE now see the description
- types.ts files unchanged; @Keywords remain on *Props for catalog compatibility
- Updated generate-component-jsdoc prompt to encode the new placement rule
- 54 components migrated; 26 deferred (safe re-migration needed)
All 78 components with a matching .tsx file now have a JSDoc block on
their exported function/const/namespace for IntelliSense support.
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