From 7771d1fe308d6837e31a790339fbd5fc46a86bc1 Mon Sep 17 00:00:00 2001 From: Gert Hengeveld Date: Sat, 27 Dec 2025 10:38:17 +0100 Subject: [PATCH 1/3] Allow disabling Checklist widget through feature config --- .../src/core-server/presets/common-preset.ts | 1 + .../manager/components/sidebar/Sidebar.tsx | 4 ++- code/core/src/manager/settings/GuidePage.tsx | 34 +++++++++++-------- code/core/src/types/modules/core-common.ts | 7 ++++ 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/code/core/src/core-server/presets/common-preset.ts b/code/core/src/core-server/presets/common-preset.ts index bb9445809326..67a96cf4afa8 100644 --- a/code/core/src/core-server/presets/common-preset.ts +++ b/code/core/src/core-server/presets/common-preset.ts @@ -209,6 +209,7 @@ export const features: PresetProperty<'features'> = async (existing) => ({ backgrounds: true, outline: true, measure: true, + checklistWidget: true, }); export const csfIndexer: Indexer = { diff --git a/code/core/src/manager/components/sidebar/Sidebar.tsx b/code/core/src/manager/components/sidebar/Sidebar.tsx index d16b5b1a51b2..4ee18cec8694 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.tsx @@ -166,7 +166,9 @@ export const Sidebar = React.memo(function Sidebar({ isLoading={isLoading} onMenuClick={onMenuClick} /> - {!isLoading && global.CONFIG_TYPE === 'DEVELOPMENT' && } + {!isLoading && + global.CONFIG_TYPE === 'DEVELOPMENT' && + global.FEATURES?.checklistWidget && } {

- {checklist.openItems.length === 0 ? ( -
Your work here is done!
- ) : checklist.widget.disable || checklist.openItems.every((item) => item.isMuted) ? ( -
- Want to see this in the sidebar?{' '} - checklist.disable(false)}>Show in sidebar -
- ) : ( -
- Don't want to see this in the sidebar?{' '} - checklist.mute(checklist.allItems.map(({ id }) => id))}> - Remove from sidebar - -
+ {global.FEATURES?.checklistWidget && ( + <> + {checklist.openItems.length === 0 ? ( +
Your work here is done!
+ ) : checklist.widget.disable || checklist.openItems.every((item) => item.isMuted) ? ( +
+ Want to see this in the sidebar?{' '} + checklist.disable(false)}>Show in sidebar +
+ ) : ( +
+ Don't want to see this in the sidebar?{' '} + checklist.mute(checklist.allItems.map(({ id }) => id))}> + Remove from sidebar + +
+ )} + )} ); diff --git a/code/core/src/types/modules/core-common.ts b/code/core/src/types/modules/core-common.ts index 9a9514cd3707..941b9a7f2443 100644 --- a/code/core/src/types/modules/core-common.ts +++ b/code/core/src/types/modules/core-common.ts @@ -453,6 +453,13 @@ export interface StorybookConfigRaw { */ actions?: boolean; + /** + * Enable the onboarding checklist sidebar widget + * + * @default true + */ + checklistWidget?: boolean; + /** * @temporary This feature flag is a migration assistant, and is scheduled to be removed. * From 10787ac10710e1b484e5d0fb223bc71ec8f5e742 Mon Sep 17 00:00:00 2001 From: Gert Hengeveld Date: Sat, 27 Dec 2025 17:12:33 +0100 Subject: [PATCH 2/3] Add story for disabled checklist widget --- .../manager/components/sidebar/Sidebar.stories.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx index 25b623802eb7..601d261f3201 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx @@ -208,6 +208,19 @@ export const SimpleInProduction: Story = { }, }; +export const SimpleNoChecklist: Story = { + args: { + showCreateStoryButton: false, + }, + beforeEach: () => { + const features = global.FEATURES; + global.FEATURES = { ...features, checklistWidget: false }; + return () => { + global.FEATURES = features; + }; + }, +}; + export const Mobile: Story = { decorators: [mobileLayoutDecorator], globals: { sb_theme: 'light', viewport: { value: 'mobile1' } }, From 5818de8becca088cd38aa7e6faca9153db79b9fa Mon Sep 17 00:00:00 2001 From: Gert Hengeveld Date: Thu, 8 Jan 2026 13:51:55 +0100 Subject: [PATCH 3/3] Rename 'checklistWidget' feature to 'sidebarOnboardingChecklist' and handle feedback --- code/core/src/core-server/presets/common-preset.ts | 2 +- code/core/src/manager/components/sidebar/Sidebar.stories.tsx | 2 +- code/core/src/manager/components/sidebar/Sidebar.tsx | 2 +- code/core/src/manager/settings/GuidePage.tsx | 2 +- code/core/src/types/modules/core-common.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/core/src/core-server/presets/common-preset.ts b/code/core/src/core-server/presets/common-preset.ts index 67a96cf4afa8..86f706ca4c34 100644 --- a/code/core/src/core-server/presets/common-preset.ts +++ b/code/core/src/core-server/presets/common-preset.ts @@ -209,7 +209,7 @@ export const features: PresetProperty<'features'> = async (existing) => ({ backgrounds: true, outline: true, measure: true, - checklistWidget: true, + sidebarOnboardingChecklist: true, }); export const csfIndexer: Indexer = { diff --git a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx index 601d261f3201..25cbe035cf46 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx @@ -214,7 +214,7 @@ export const SimpleNoChecklist: Story = { }, beforeEach: () => { const features = global.FEATURES; - global.FEATURES = { ...features, checklistWidget: false }; + global.FEATURES = { ...features, sidebarOnboardingChecklist: false }; return () => { global.FEATURES = features; }; diff --git a/code/core/src/manager/components/sidebar/Sidebar.tsx b/code/core/src/manager/components/sidebar/Sidebar.tsx index 4ee18cec8694..46bf07a61b6b 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.tsx @@ -168,7 +168,7 @@ export const Sidebar = React.memo(function Sidebar({ /> {!isLoading && global.CONFIG_TYPE === 'DEVELOPMENT' && - global.FEATURES?.checklistWidget && } + global.FEATURES?.sidebarOnboardingChecklist !== false && } {

- {global.FEATURES?.checklistWidget && ( + {global.FEATURES?.sidebarOnboardingChecklist !== false && ( <> {checklist.openItems.length === 0 ? (
Your work here is done!
diff --git a/code/core/src/types/modules/core-common.ts b/code/core/src/types/modules/core-common.ts index 941b9a7f2443..78ebbab44917 100644 --- a/code/core/src/types/modules/core-common.ts +++ b/code/core/src/types/modules/core-common.ts @@ -458,7 +458,7 @@ export interface StorybookConfigRaw { * * @default true */ - checklistWidget?: boolean; + sidebarOnboardingChecklist?: boolean; /** * @temporary This feature flag is a migration assistant, and is scheduled to be removed.