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.