storybook 10.1.0-beta.2 → 10.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/_browser-chunks/{chunk-L4RMQ7D7.js → chunk-BRX2HXH7.js} +75 -5
  2. package/dist/_node-chunks/{builder-manager-DE5CZGPU.js → builder-manager-T3A7QLUO.js} +26 -593
  3. package/dist/_node-chunks/{camelcase-3GPWEIYB.js → camelcase-WMMYRUH4.js} +7 -7
  4. package/dist/_node-chunks/{chunk-ZH4F5JWQ.js → chunk-3MVB5IZX.js} +28 -24
  5. package/dist/_node-chunks/{chunk-RZEXP6OF.js → chunk-5DEFF2GB.js} +7 -7
  6. package/dist/_node-chunks/{chunk-3GUEJ3O3.js → chunk-67VVNDJJ.js} +6 -6
  7. package/dist/_node-chunks/{chunk-RSFKUYLE.js → chunk-C6RLDV2P.js} +8 -8
  8. package/dist/_node-chunks/{chunk-77QRXLGA.js → chunk-CM44JL5Z.js} +6 -6
  9. package/dist/_node-chunks/{chunk-HGDN3STX.js → chunk-CSFSQ2I4.js} +7 -7
  10. package/dist/_node-chunks/{chunk-45XWOXXM.js → chunk-EFN4RLWH.js} +7 -7
  11. package/dist/_node-chunks/{chunk-D2CQN4LQ.js → chunk-EFTR6VSG.js} +9 -9
  12. package/dist/_node-chunks/{chunk-UWKUW2OJ.js → chunk-EJPOXNSG.js} +15 -15
  13. package/dist/_node-chunks/{chunk-6T6VTXDE.js → chunk-HDMHX5QM.js} +7 -7
  14. package/dist/_node-chunks/{chunk-EXJNST6P.js → chunk-HT32VUX7.js} +7 -7
  15. package/dist/_node-chunks/chunk-IQFN7VY4.js +23 -0
  16. package/dist/_node-chunks/{chunk-YZEOU7D5.js → chunk-JYAXWHGH.js} +9 -9
  17. package/dist/_node-chunks/chunk-K7U3BSTR.js +61 -0
  18. package/dist/_node-chunks/{chunk-NOLZUVQN.js → chunk-KAVR7KJP.js} +287 -281
  19. package/dist/_node-chunks/{chunk-HFPMBHAF.js → chunk-KI6KY2ZN.js} +13 -13
  20. package/dist/_node-chunks/{chunk-Z7F5CZXW.js → chunk-NORFPLB6.js} +7 -7
  21. package/dist/_node-chunks/{chunk-ODJGHT54.js → chunk-PMZEJJNX.js} +7 -7
  22. package/dist/_node-chunks/{chunk-F4HHDWJV.js → chunk-RSJK2D7X.js} +6 -6
  23. package/dist/_node-chunks/{chunk-PQF6TGKN.js → chunk-TBYOSPAV.js} +6 -6
  24. package/dist/_node-chunks/{chunk-KIW5GZKQ.js → chunk-TC7X5DN2.js} +10 -10
  25. package/dist/_node-chunks/{chunk-43AQPYQJ.js → chunk-TCLOOFNE.js} +7 -7
  26. package/dist/_node-chunks/{chunk-QAX2QIAO.js → chunk-VN7SAKM4.js} +6 -6
  27. package/dist/_node-chunks/{chunk-3FVKDIQ7.js → chunk-VW25O2YM.js} +6 -6
  28. package/dist/_node-chunks/{chunk-4CHMPSHM.js → chunk-WGBDDI6W.js} +642 -639
  29. package/dist/_node-chunks/chunk-YN3C74EA.js +18 -0
  30. package/dist/_node-chunks/{chunk-INMOMYVB.js → chunk-YTTOTUWC.js} +6 -6
  31. package/dist/_node-chunks/{chunk-PJAOEV2K.js → chunk-YZ3XRP4N.js} +6 -6
  32. package/dist/_node-chunks/{dist-RFQRGJD5.js → dist-L6XLFQOU.js} +9 -9
  33. package/dist/_node-chunks/{globby-WIMKMN5Q.js → globby-7IXLXFEA.js} +9 -9
  34. package/dist/_node-chunks/{lib-OBEY3MUM.js → lib-T5L2ZSAG.js} +7 -7
  35. package/dist/_node-chunks/{mdx-N42X6CFJ-7XA7LOVG.js → mdx-N42X6CFJ-GOOKUTSA.js} +8 -8
  36. package/dist/_node-chunks/{p-limit-VII3MYEU.js → p-limit-7GKATDEW.js} +7 -7
  37. package/dist/babel/index.js +10 -10
  38. package/dist/bin/core.js +12 -12
  39. package/dist/bin/dispatcher.js +11 -11
  40. package/dist/bin/loader.js +9 -9
  41. package/dist/cli/index.d.ts +1 -2
  42. package/dist/cli/index.js +18 -18
  43. package/dist/common/index.d.ts +553 -560
  44. package/dist/common/index.js +19 -21
  45. package/dist/components/index.js +35 -29
  46. package/dist/core-server/index.js +33 -33
  47. package/dist/core-server/presets/common-manager.js +74 -108
  48. package/dist/core-server/presets/common-override-preset.js +9 -9
  49. package/dist/core-server/presets/common-preset.js +25 -25
  50. package/dist/csf-tools/index.js +9 -9
  51. package/dist/manager/globals-runtime.js +142 -65
  52. package/dist/manager/runtime.js +139 -115
  53. package/dist/manager-api/index.js +1 -1
  54. package/dist/mocking-utils/index.js +8 -8
  55. package/dist/node-logger/index.d.ts +3 -1
  56. package/dist/node-logger/index.js +9 -9
  57. package/dist/preview-api/index.d.ts +68 -67
  58. package/dist/server-errors.js +11 -11
  59. package/dist/telemetry/index.js +23 -23
  60. package/dist/theming/create.d.ts +1 -1
  61. package/dist/theming/create.js +1 -1
  62. package/dist/theming/index.d.ts +65 -2
  63. package/dist/theming/index.js +6 -3
  64. package/dist/types/index.d.ts +1 -1
  65. package/package.json +2 -3
  66. package/dist/_node-chunks/chunk-CEFT3TLW.js +0 -18
  67. package/dist/_node-chunks/chunk-HG5BSY5V.js +0 -23
  68. package/dist/_node-chunks/chunk-Y35QWPHB.js +0 -61
@@ -293,9 +293,9 @@ var require_memoizerific = __commonJS({
293
293
  module3.exports = function(limit) {
294
294
  var cache = new MapOrSimilar(!1), lru = [];
295
295
  return function(fn) {
296
- var memoizerific2 = function() {
296
+ var memoizerific3 = function() {
297
297
  var currentCache = cache, newMap, fnResult, argsLengthMinusOne = arguments.length - 1, lruPath = Array(argsLengthMinusOne + 1), isMemoized = !0, i2;
298
- if ((memoizerific2.numArgs || memoizerific2.numArgs === 0) && memoizerific2.numArgs !== argsLengthMinusOne + 1)
298
+ if ((memoizerific3.numArgs || memoizerific3.numArgs === 0) && memoizerific3.numArgs !== argsLengthMinusOne + 1)
299
299
  throw new Error("Memoizerific functions should always be called with the same number of arguments");
300
300
  for (i2 = 0; i2 < argsLengthMinusOne; i2++) {
301
301
  if (lruPath[i2] = {
@@ -310,9 +310,9 @@ var require_memoizerific = __commonJS({
310
310
  return isMemoized && (currentCache.has(arguments[argsLengthMinusOne]) ? fnResult = currentCache.get(arguments[argsLengthMinusOne]) : isMemoized = !1), isMemoized || (fnResult = fn.apply(null, arguments), currentCache.set(arguments[argsLengthMinusOne], fnResult)), limit > 0 && (lruPath[argsLengthMinusOne] = {
311
311
  cacheItem: currentCache,
312
312
  arg: arguments[argsLengthMinusOne]
313
- }, isMemoized ? moveToMostRecentLru(lru, lruPath) : lru.push(lruPath), lru.length > limit && removeCachedResult(lru.shift())), memoizerific2.wasMemoized = isMemoized, memoizerific2.numArgs = argsLengthMinusOne + 1, fnResult;
313
+ }, isMemoized ? moveToMostRecentLru(lru, lruPath) : lru.push(lruPath), lru.length > limit && removeCachedResult(lru.shift())), memoizerific3.wasMemoized = isMemoized, memoizerific3.numArgs = argsLengthMinusOne + 1, fnResult;
314
314
  };
315
- return memoizerific2.limit = limit, memoizerific2.wasMemoized = !1, memoizerific2.cache = cache, memoizerific2.lru = lru, memoizerific2;
315
+ return memoizerific3.limit = limit, memoizerific3.wasMemoized = !1, memoizerific3.cache = cache, memoizerific3.lru = lru, memoizerific3;
316
316
  };
317
317
  };
318
318
  function moveToMostRecentLru(lru, lruPath) {
@@ -2259,7 +2259,7 @@ var icons_default = __STORYBOOK_ICONS__, { AccessibilityAltIcon, AccessibilityIc
2259
2259
  var manager_api_default = __STORYBOOK_API__, { ActiveTabs, Consumer, ManagerContext, Provider, RequestResponseError, addons, combineParameters, controlOrMetaKey, controlOrMetaSymbol, eventMatchesShortcut, eventToShortcut, experimental_MockUniversalStore, experimental_UniversalStore, experimental_getStatusStore, experimental_getTestProviderStore, experimental_requestResponse, experimental_useStatusStore, experimental_useTestProviderStore, experimental_useUniversalStore, internal_checklistStore, internal_fullStatusStore, internal_fullTestProviderStore, internal_universalChecklistStore, internal_universalStatusStore, internal_universalTestProviderStore, isMacLike, isShortcutTaken, keyToSymbol, merge, mockChannel, optionOrAltSymbol, shortcutMatchesShortcut, shortcutToAriaKeyshortcuts, shortcutToHumanString, types, useAddonState, useArgTypes, useArgs, useChannel, useGlobalTypes, useGlobals, useParameter, useSharedState, useStoryPrepared, useStorybookApi, useStorybookState } = __STORYBOOK_API__;
2260
2260
 
2261
2261
  // global-externals:storybook/theming
2262
- var theming_default = __STORYBOOK_THEMING__, { CacheProvider, ClassNames, Global, ThemeProvider, background, color, convert, create, createCache, createGlobal, createReset, css, darken, ensure, getPreferredColorScheme, ignoreSsrWarning, isPropValid, jsx, keyframes, lighten, styled, themes, typography, useTheme, withTheme } = __STORYBOOK_THEMING__;
2262
+ var theming_default = __STORYBOOK_THEMING__, { CacheProvider, ClassNames, Global, ThemeProvider, background, color, convert, create, createCache, createGlobal, createReset, css, darken, ensure, getPreferredColorScheme, ignoreSsrWarning, isPropValid, jsx, keyframes, lighten, styled, themes, tokens, typography, useTheme, withTheme } = __STORYBOOK_THEMING__;
2263
2263
 
2264
2264
  // global-externals:storybook/internal/components
2265
2265
  var components_default = __STORYBOOK_COMPONENTS__, { A, AbstractToolbar, ActionBar, AddonPanel, Badge, Bar, Blockquote, Button, Card, ClipboardCode, Code, Collapsible, DL, Div, DocumentWrapper, EmptyTabContent, ErrorFormatter, FlexBar, Form, H1, H2, H3, H4, H5, H6, HR, IconButton, Img, LI, Link, ListItem, Listbox, Loader, Modal, ModalDecorator, OL, P, Placeholder, Popover, PopoverProvider, Pre, ProgressSpinner, ResetWrapper, ScrollArea, Select, Separator, Spaced, Span, StatelessTab, StatelessTabList, StatelessTabPanel, StatelessTabsView, StorybookIcon: StorybookIcon2, StorybookLogo, SyntaxHighlighter, TT, TabBar, TabButton, TabList, TabPanel, TabWrapper, Table, Tabs, TabsState, TabsView, ToggleButton, Toolbar, Tooltip, TooltipLinkList, TooltipMessage, TooltipNote, TooltipProvider, UL, WithTooltip, WithTooltipPure, Zoom, codeCommon, components, convertToReactAriaPlacement, createCopyToClipboardFunction, getStoryHref, interleaveSeparators, nameSpaceClassNames, resetComponents, useTabsState, withReset } = __STORYBOOK_COMPONENTS__;
@@ -6537,6 +6537,19 @@ var storeOptions = {
6537
6537
  };
6538
6538
  var STORE_CHANNEL_EVENT_NAME = `UNIVERSAL_STORE:${storeOptions.id}`;
6539
6539
 
6540
+ // src/cli/AddonVitestService.constants.ts
6541
+ var SUPPORTED_FRAMEWORKS = [
6542
+ "html-vite" /* HTML_VITE */,
6543
+ "nextjs-vite" /* NEXTJS_VITE */,
6544
+ "preact-vite" /* PREACT_VITE */,
6545
+ "react-native-web-vite" /* REACT_NATIVE_WEB_VITE */,
6546
+ "react-vite" /* REACT_VITE */,
6547
+ "svelte-vite" /* SVELTE_VITE */,
6548
+ "sveltekit" /* SVELTEKIT */,
6549
+ "vue3-vite" /* VUE3_VITE */,
6550
+ "web-components-vite" /* WEB_COMPONENTS_VITE */
6551
+ ];
6552
+
6540
6553
  // src/docs-tools/shared.ts
6541
6554
  var ADDON_ID5 = "storybook/docs", PANEL_ID3 = `${ADDON_ID5}/panel`;
6542
6555
  var SNIPPET_RENDERED = `${ADDON_ID5}/snippet-rendered`;
@@ -10652,8 +10665,13 @@ var CodeWrapper = styled.div(({ theme }) => ({
10652
10665
  ".linenumber": {
10653
10666
  opacity: 0.5
10654
10667
  }
10655
- })), CodeSnippet = (props) => react_default.createElement(ThemeProvider, { theme: convert(themes.dark) }, react_default.createElement(CodeWrapper, null, react_default.createElement(SyntaxHighlighter, { ...props }))), subscribeToIndex = (condition) => ({ api, done }) => {
10656
- let check = () => condition(api.getIndex()?.entries || {});
10668
+ })), CodeSnippet = (props) => react_default.createElement(ThemeProvider, { theme: convert(themes.dark) }, react_default.createElement(CodeWrapper, null, react_default.createElement(SyntaxHighlighter, { ...props }))), isExample = (id) => id.startsWith("example-") || id.startsWith("configure-your-project--"), subscribeToIndex = (condition) => ({ api, done }) => {
10669
+ let check = () => condition(
10670
+ Object.entries(api.getIndex()?.entries || {}).reduce(
10671
+ (acc, [id, entry]) => isExample(entry.id) ? acc : Object.assign(acc, { [id]: entry }),
10672
+ {}
10673
+ )
10674
+ );
10657
10675
  if (check())
10658
10676
  done();
10659
10677
  else
@@ -10699,7 +10717,10 @@ var CodeWrapper = styled.div(({ theme }) => ({
10699
10717
  id: "renderComponent",
10700
10718
  label: "Render a component",
10701
10719
  criteria: "A story finished rendering successfully",
10702
- subscribe: ({ api, done }) => api.on(STORY_FINISHED, ({ status }) => status === "success" && done()),
10720
+ subscribe: ({ api, done }) => api.on(
10721
+ STORY_FINISHED,
10722
+ ({ storyId, status }) => status === "success" && !isExample(storyId) && done()
10723
+ ),
10703
10724
  content: ({ api }) => react_default.createElement(react_default.Fragment, null, react_default.createElement("p", null, "Storybook renders your components in isolation, using stories. That allows you to work on the bit of UI you need, without worrying about the rest of the app."), react_default.createElement("p", null, "Rendering your components can often require", " ", react_default.createElement(
10704
10725
  Link,
10705
10726
  {
@@ -10786,7 +10807,7 @@ export const Primary: Story = {
10786
10807
  criteria: "At least 5 components exist in the index",
10787
10808
  subscribe: subscribeToIndex((entries) => {
10788
10809
  let stories = Object.values(entries).filter(
10789
- (entry) => entry.type === "story" && !entry.id.startsWith("example-")
10810
+ (entry) => entry.type === "story"
10790
10811
  );
10791
10812
  return new Set(stories.map(({ title: title2 }) => title2)).size >= 5;
10792
10813
  })
@@ -10819,7 +10840,7 @@ export const Primary: Story = {
10819
10840
  ))),
10820
10841
  criteria: "At least 20 stories exist in the index",
10821
10842
  subscribe: subscribeToIndex((entries) => Object.values(entries).filter(
10822
- (entry) => entry.type === "story" && !entry.id.startsWith("example-")
10843
+ (entry) => entry.type === "story"
10823
10844
  ).length >= 20)
10824
10845
  },
10825
10846
  {
@@ -10943,8 +10964,7 @@ export default {
10943
10964
  id: "installVitest",
10944
10965
  label: "Install Vitest addon",
10945
10966
  afterCompletion: "unavailable",
10946
- available: () => !0,
10947
- // TODO check for compatibility with the project
10967
+ available: () => !!globalThis.STORYBOOK_FRAMEWORK && SUPPORTED_FRAMEWORKS.includes(globalThis.STORYBOOK_FRAMEWORK),
10948
10968
  criteria: "@storybook/addon-vitest registered in .storybook/main.js|ts",
10949
10969
  subscribe: ({ done }) => {
10950
10970
  addons.experimental_getRegisteredAddons().includes(ADDON_ID4) && done();
@@ -11047,7 +11067,7 @@ export default {
11047
11067
  criteria: "At least one story with a play or test function",
11048
11068
  subscribe: subscribeToIndex(
11049
11069
  (entries) => Object.values(entries).some(
11050
- ({ id, tags }) => !id.startsWith("example-") && (tags?.includes("play-fn") || tags?.includes("test-fn"))
11070
+ (entry) => entry.tags?.includes("play-fn") || entry.tags?.includes("test-fn")
11051
11071
  )
11052
11072
  ),
11053
11073
  content: ({ api }) => react_default.createElement(react_default.Fragment, null, react_default.createElement("p", null, "When you need to test non-visual or particularly complex behavior of a component, add a play function."), react_default.createElement(CodeSnippet, { language: "typescript" }, `// Button.stories.ts
@@ -11319,16 +11339,16 @@ export const Disabled: Story = {
11319
11339
  label: "Automatically document your components",
11320
11340
  criteria: "At least one component with the autodocs tag applied",
11321
11341
  subscribe: subscribeToIndex(
11322
- (entries) => Object.values(entries).some(
11323
- ({ id, tags }) => !id.startsWith("example-") && tags?.includes("autodocs")
11324
- )
11342
+ (entries) => Object.values(entries).some((entry) => entry.tags?.includes("autodocs"))
11325
11343
  ),
11326
- content: ({ api }) => react_default.createElement(react_default.Fragment, null, react_default.createElement("p", null, "Add the autodocs tag to a component's meta to automatically generate documentation for that component, complete with examples, source code, an API table, and a description."), react_default.createElement(CodeSnippet, { language: "typescript" }, `// Button.stories.ts
11344
+ content: ({ api }) => react_default.createElement(react_default.Fragment, null, react_default.createElement("p", null, "Add the autodocs tag to a component's meta to automatically generate documentation for that component, complete with examples, source code, an API table, and a description."), react_default.createElement(CodeSnippet, { language: "typescript" }, `// Button.stories.js
11327
11345
 
11328
- export default {
11346
+ const meta = {
11329
11347
  component: Button,
11330
11348
  tags: ['autodocs'], // \u{1F448} Add this tag
11331
- }`), react_default.createElement("p", null, "That tag can also be applied in ", react_default.createElement("code", null, ".storybook/preview.ts"), ", to generate documentation for ", react_default.createElement("em", null, "all"), " components."), react_default.createElement(
11349
+ }
11350
+
11351
+ export default meta;`), react_default.createElement("p", null, "That tag can also be applied in ", react_default.createElement("code", null, ".storybook/preview.ts"), ", to generate documentation for ", react_default.createElement("em", null, "all"), " components."), react_default.createElement(
11332
11352
  "img",
11333
11353
  {
11334
11354
  src: api.getDocsUrl({
@@ -11356,9 +11376,7 @@ export default {
11356
11376
  label: "Custom content with MDX",
11357
11377
  criteria: "At least one MDX page",
11358
11378
  subscribe: subscribeToIndex(
11359
- (entries) => Object.values(entries).some(
11360
- ({ id, type }) => type === "docs" && !id.startsWith("example-")
11361
- )
11379
+ (entries) => Object.values(entries).some((entry) => entry.type === "docs")
11362
11380
  ),
11363
11381
  content: ({ api }) => react_default.createElement(react_default.Fragment, null, react_default.createElement("p", null, "You can use MDX (markdown + React components) to provide an introduction to your project, document things like design tokens, or go beyond the automatic documentation for your components."), react_default.createElement("p", null, "For a start, create an ", react_default.createElement("code", null, "introduction.mdx"), " file and (using markdown and Storybook's", " ", react_default.createElement(
11364
11382
  Link,
@@ -13919,6 +13937,9 @@ var { document: document4, window: globalWindow3 } = scope, IndicatorPlacement =
13919
13937
  return react_default.createElement(Message, { href: "https://storybook.js.org/docs/sharing/storybook-composition?ref=ui" }, react_default.createElement(LightningIcon, { color: theme.color.gold }), react_default.createElement("div", null, react_default.createElement(MessageTitle, null, "Reduce lag"), react_default.createElement("div", null, "Learn how to speed up Composition performance.")));
13920
13938
  };
13921
13939
 
13940
+ // src/manager/utils/status.tsx
13941
+ var import_memoizerific3 = __toESM(require_memoizerific(), 1);
13942
+
13922
13943
  // src/manager/components/sidebar/IconSymbols.tsx
13923
13944
  var Svg2 = styled.svg`
13924
13945
  position: absolute;
@@ -14015,7 +14036,7 @@ var SmallIcons = styled(CircleIcon)({
14015
14036
  "status-value:success",
14016
14037
  "status-value:warning",
14017
14038
  "status-value:error"
14018
- ], statusMapping = {
14039
+ ], getStatus = (0, import_memoizerific3.default)(5)((theme, status) => ({
14019
14040
  "status-value:unknown": [null, null],
14020
14041
  "status-value:pending": [react_default.createElement(LoadingIcons, { key: "icon" }), "currentColor"],
14021
14042
  "status-value:success": [
@@ -14024,13 +14045,13 @@ var SmallIcons = styled(CircleIcon)({
14024
14045
  ],
14025
14046
  "status-value:warning": [
14026
14047
  react_default.createElement("svg", { key: "icon", viewBox: "0 0 14 14", width: "14", height: "14" }, react_default.createElement(UseSymbol, { type: "warning" })),
14027
- "#A15C20"
14048
+ theme.fgColor.warning
14028
14049
  ],
14029
14050
  "status-value:error": [
14030
14051
  react_default.createElement("svg", { key: "icon", viewBox: "0 0 14 14", width: "14", height: "14" }, react_default.createElement(UseSymbol, { type: "error" })),
14031
- "#D43900"
14052
+ theme.fgColor.negative
14032
14053
  ]
14033
- }, getMostCriticalStatusValue = (statusValues) => statusPriority.reduce(
14054
+ })[status]), getMostCriticalStatusValue = (statusValues) => statusPriority.reduce(
14034
14055
  (acc, value) => statusValues.includes(value) ? value : acc,
14035
14056
  "status-value:unknown"
14036
14057
  );
@@ -14101,6 +14122,9 @@ var withStatusColor = ({ theme, status }) => {
14101
14122
  ), StatusButton = forwardRef((props, ref) => react_default.createElement(StyledButton, { variant: "ghost", padding: "small", ...props, ref }));
14102
14123
  StatusButton.displayName = "StatusButton";
14103
14124
 
14125
+ // src/manager/components/sidebar/StatusContext.tsx
14126
+ var StatusContext = createContext({});
14127
+
14104
14128
  // src/manager/components/sidebar/ContextMenu.tsx
14105
14129
  var empty = {
14106
14130
  onMouseEnter: () => {
@@ -14116,7 +14140,7 @@ var empty = {
14116
14140
  outlineOffset: -2
14117
14141
  }
14118
14142
  }), useContextMenu = (context, links, api) => {
14119
- let [hoverCount, setHoverCount] = useState(0), [isOpen, setIsOpen] = useState(!1), [copyText, setCopyText] = react_default.useState("Copy story name"), shortcutKeys = api.getShortcutKeys(), enableShortcuts = !!shortcutKeys, topLinks = useMemo(() => {
14143
+ let [hoverCount, setHoverCount] = useState(0), [isOpen, setIsOpen] = useState(!1), [copyText, setCopyText] = react_default.useState("Copy story name"), { allStatuses, groupStatus } = useContext(StatusContext), shortcutKeys = api.getShortcutKeys(), enableShortcuts = !!shortcutKeys, topLinks = useMemo(() => {
14120
14144
  let defaultLinks = [];
14121
14145
  return context && "importPath" in context && defaultLinks.push({
14122
14146
  id: "open-in-editor",
@@ -14143,7 +14167,7 @@ var empty = {
14143
14167
  }, 2e3);
14144
14168
  }
14145
14169
  }), defaultLinks;
14146
- }, [context, copyText, enableShortcuts, shortcutKeys]), handlers = useMemo(() => ({
14170
+ }, [api, context, copyText, enableShortcuts, shortcutKeys]), handlers = useMemo(() => ({
14147
14171
  onMouseEnter: () => {
14148
14172
  setHoverCount((c2) => c2 + 1);
14149
14173
  },
@@ -14156,7 +14180,20 @@ var empty = {
14156
14180
  }), []), providerLinks = useMemo(() => {
14157
14181
  let registeredTestProviders = api.getElements(Addon_TypesEnum.experimental_TEST_PROVIDER);
14158
14182
  return hoverCount ? generateTestProviderLinks(registeredTestProviders, context) : [];
14159
- }, [api, context, hoverCount]), shouldRender = !context.refId && (providerLinks.length > 0 || links.length > 0 || topLinks.length > 0);
14183
+ }, [api, context, hoverCount]), shouldRender = !context.refId && (providerLinks.length > 0 || links.length > 0 || topLinks.length > 0), isLeafNode = context.type === "story" || context.type === "docs", itemStatus = useMemo(() => {
14184
+ let status = "status-value:unknown";
14185
+ if (!context)
14186
+ return status;
14187
+ if (isLeafNode) {
14188
+ let values = Object.values(allStatuses?.[context.id] || {}).map((s2) => s2.value);
14189
+ status = getMostCriticalStatusValue(values);
14190
+ }
14191
+ if (!isLeafNode) {
14192
+ let groupValue = groupStatus && groupStatus[context.id];
14193
+ status = groupValue === "status-value:success" || groupValue === void 0 ? "status-value:unknown" : groupValue;
14194
+ }
14195
+ return status;
14196
+ }, [allStatuses, groupStatus, context, isLeafNode]), MenuIcon2 = useMemo(() => context.type !== "story" && context.type !== "docs" ? itemStatus !== "status-value:success" && itemStatus !== "status-value:unknown" ? react_default.createElement("svg", { key: "icon", viewBox: "0 0 6 6", width: "6", height: "6" }, react_default.createElement(UseSymbol, { type: "dot" })) : react_default.createElement(EllipsisIcon, null) : itemStatus === "status-value:error" ? react_default.createElement("svg", { key: "icon", viewBox: "0 0 14 14", width: "14", height: "14" }, react_default.createElement(UseSymbol, { type: "error" })) : itemStatus === "status-value:warning" ? react_default.createElement("svg", { key: "icon", viewBox: "0 0 14 14", width: "14", height: "14" }, react_default.createElement(UseSymbol, { type: "warning" })) : itemStatus === "status-value:success" ? react_default.createElement("svg", { key: "icon", viewBox: "0 0 14 14", width: "14", height: "14" }, react_default.createElement(UseSymbol, { type: "success" })) : react_default.createElement(EllipsisIcon, null), [itemStatus, context.type]);
14160
14197
  return useMemo(() => globalThis.CONFIG_TYPE !== "DEVELOPMENT" ? empty : {
14161
14198
  onMouseEnter: handlers.onMouseEnter,
14162
14199
  node: shouldRender ? react_default.createElement(
@@ -14177,13 +14214,13 @@ var empty = {
14177
14214
  "data-testid": "context-menu",
14178
14215
  ariaLabel: "Open context menu",
14179
14216
  type: "button",
14180
- status: "status-value:pending",
14217
+ status: itemStatus,
14181
14218
  onClick: handlers.onOpen
14182
14219
  },
14183
- react_default.createElement(EllipsisIcon, null)
14220
+ MenuIcon2
14184
14221
  )
14185
14222
  ) : null
14186
- }, [context, handlers, isOpen, shouldRender, links, topLinks]);
14223
+ }, [context, handlers, isOpen, shouldRender, links, topLinks, itemStatus, MenuIcon2]);
14187
14224
  }, LiveContextMenu = ({
14188
14225
  context,
14189
14226
  links,
@@ -14206,33 +14243,6 @@ function generateTestProviderLinks(registeredTestProviders, context) {
14206
14243
  }).filter(Boolean);
14207
14244
  }
14208
14245
 
14209
- // src/manager/components/sidebar/StatusContext.tsx
14210
- var StatusContext = createContext({}), useStatusSummary = (item) => {
14211
- let { data, allStatuses, groupStatus } = useContext(StatusContext), summary = {
14212
- counts: {
14213
- "status-value:pending": 0,
14214
- "status-value:success": 0,
14215
- "status-value:error": 0,
14216
- "status-value:warning": 0,
14217
- "status-value:unknown": 0
14218
- },
14219
- statusesByValue: {
14220
- "status-value:pending": {},
14221
- "status-value:success": {},
14222
- "status-value:error": {},
14223
- "status-value:warning": {},
14224
- "status-value:unknown": {}
14225
- }
14226
- };
14227
- if (data && allStatuses && groupStatus && ["status-value:pending", "status-value:warning", "status-value:error"].includes(
14228
- groupStatus[item.id]
14229
- ))
14230
- for (let storyId of getDescendantIds(data, item.id, !1))
14231
- for (let status of Object.values(allStatuses[storyId] ?? {}))
14232
- summary.counts[status.value]++, summary.statusesByValue[status.value][storyId] ??= [], summary.statusesByValue[status.value][storyId].push(status);
14233
- return summary;
14234
- };
14235
-
14236
14246
  // src/manager/components/sidebar/components/CollapseIcon.tsx
14237
14247
  var CollapseIconWrapper = styled.div(({ theme, isExpanded }) => ({
14238
14248
  width: 8,
@@ -14575,48 +14585,66 @@ var statusOrder = [
14575
14585
  setExpanded,
14576
14586
  onSelectStoryId,
14577
14587
  api
14578
- } = props, { isDesktop, isMobile: isMobile2, setMobileMenuOpen } = useLayout(), { counts, statusesByValue } = useStatusSummary(item);
14588
+ } = props, theme = useTheme(), { isDesktop, isMobile: isMobile2, setMobileMenuOpen } = useLayout();
14579
14589
  if (!isDisplayed)
14580
14590
  return null;
14581
- let statusLinks = useMemo(() => {
14582
- if (item.type === "story" || item.type === "docs")
14583
- return Object.entries(statuses).filter(([, status]) => status.sidebarContextMenu !== !1).sort((a2, b2) => statusOrder.indexOf(a2[1].value) - statusOrder.indexOf(b2[1].value)).map(([typeId, status]) => ({
14584
- id: typeId,
14585
- title: status.title,
14586
- description: status.description,
14587
- "aria-label": `Test status for ${status.title}: ${status.value}`,
14588
- icon: StatusIconMap[status.value],
14589
- onClick: () => {
14590
- onSelectStoryId(item.id), internal_fullStatusStore.selectStatuses([status]);
14591
- }
14592
- }));
14593
- if (item.type === "component" || item.type === "group") {
14594
- let links = [], errorCount = counts["status-value:error"], warningCount = counts["status-value:warning"];
14595
- return errorCount && links.push({
14596
- id: "errors",
14597
- icon: StatusIconMap["status-value:error"],
14598
- title: `${errorCount} ${errorCount === 1 ? "story" : "stories"} with errors`,
14599
- onClick: () => {
14600
- let [firstStoryId] = Object.entries(statusesByValue["status-value:error"])[0];
14601
- onSelectStoryId(firstStoryId);
14602
- let errorStatuses = Object.values(statusesByValue["status-value:error"]).flat();
14603
- internal_fullStatusStore.selectStatuses(errorStatuses);
14604
- }
14605
- }), warningCount && links.push({
14606
- id: "warnings",
14607
- icon: StatusIconMap["status-value:warning"],
14608
- title: `${warningCount} ${warningCount === 1 ? "story" : "stories"} with warnings`,
14609
- onClick: () => {
14610
- let [firstStoryId] = Object.entries(statusesByValue["status-value:warning"])[0];
14611
- onSelectStoryId(firstStoryId);
14612
- let warningStatuses = Object.values(statusesByValue["status-value:warning"]).flat();
14613
- internal_fullStatusStore.selectStatuses(warningStatuses);
14614
- }
14615
- }), links;
14591
+ let statusLinks = useMemo(() => item.type === "story" || item.type === "docs" ? Object.entries(statuses).filter(([, status]) => status.sidebarContextMenu !== !1).sort((a2, b2) => statusOrder.indexOf(a2[1].value) - statusOrder.indexOf(b2[1].value)).map(([typeId, status]) => ({
14592
+ id: typeId,
14593
+ title: status.title,
14594
+ description: status.description,
14595
+ "aria-label": `Test status for ${status.title}: ${status.value}`,
14596
+ icon: StatusIconMap[status.value],
14597
+ onClick: () => {
14598
+ onSelectStoryId(item.id), internal_fullStatusStore.selectStatuses([status]);
14616
14599
  }
14617
- return [];
14618
- }, [counts, item.id, item.type, onSelectStoryId, statuses, statusesByValue]), id = createId(item.id, refId), contextMenu = refId === "storybook_internal" ? useContextMenu(item, statusLinks, api) : { node: null, onMouseEnter: () => {
14600
+ })) : [], [item.id, item.type, onSelectStoryId, statuses]), id = createId(item.id, refId), contextMenu = refId === "storybook_internal" ? useContextMenu(item, statusLinks, api) : { node: null, onMouseEnter: () => {
14619
14601
  } };
14602
+ if (item.type === "story" && !("children" in item && item.children) && (!("subtype" in item) || item.subtype !== "test") || item.type === "docs") {
14603
+ let LeafNode3 = item.type === "docs" ? DocumentNode : StoryNode, statusValue = getMostCriticalStatusValue(
14604
+ Object.values(statuses || {}).map((s2) => s2.value)
14605
+ ), [icon, textColor] = getStatus(theme, statusValue);
14606
+ return react_default.createElement(
14607
+ LeafNodeStyleWrapper,
14608
+ {
14609
+ key: id,
14610
+ className: "sidebar-item",
14611
+ "data-selected": isSelected,
14612
+ "data-ref-id": refId,
14613
+ "data-item-id": item.id,
14614
+ "data-parent-id": item.parent,
14615
+ "data-nodetype": item.type === "docs" ? "document" : "story",
14616
+ "data-highlightable": isDisplayed,
14617
+ onMouseEnter: contextMenu.onMouseEnter
14618
+ },
14619
+ react_default.createElement(
14620
+ LeafNode3,
14621
+ {
14622
+ style: isSelected ? {} : { color: textColor },
14623
+ href: getLink(item, refId),
14624
+ id,
14625
+ depth: isOrphan ? item.depth : item.depth - 1,
14626
+ onClick: (event) => {
14627
+ event.preventDefault(), onSelectStoryId(item.id), isMobile2 && setMobileMenuOpen(!1);
14628
+ },
14629
+ ...item.type === "docs" && { docsMode }
14630
+ },
14631
+ item.renderLabel?.(item, api) || item.name
14632
+ ),
14633
+ isSelected && react_default.createElement(SkipToContentLink, { asChild: !0, ariaLabel: !1 }, react_default.createElement("a", { href: "#storybook-preview-wrapper" }, "Skip to canvas")),
14634
+ contextMenu.node,
14635
+ icon ? react_default.createElement(
14636
+ StatusButton,
14637
+ {
14638
+ ariaLabel: `Test status: ${statusValue.replace("status-value:", "")}`,
14639
+ "data-testid": "tree-status-button",
14640
+ type: "button",
14641
+ status: statusValue,
14642
+ selectedItem: isSelected
14643
+ },
14644
+ icon
14645
+ ) : null
14646
+ );
14647
+ }
14620
14648
  if (item.type === "root")
14621
14649
  return react_default.createElement(
14622
14650
  RootNode,
@@ -14658,7 +14686,7 @@ var statusOrder = [
14658
14686
  isFullyExpanded ? react_default.createElement(CollapseIcon, null) : react_default.createElement(ExpandAltIcon, null)
14659
14687
  )
14660
14688
  );
14661
- let itemStatus = getMostCriticalStatusValue(Object.values(statuses || {}).map((s2) => s2.value)), [itemIcon, itemColor] = statusMapping[itemStatus], itemStatusButton = itemIcon ? react_default.createElement(
14689
+ let itemStatus = getMostCriticalStatusValue(Object.values(statuses || {}).map((s2) => s2.value)), [itemIcon, itemColor] = getStatus(theme, itemStatus), itemStatusButton = itemIcon ? react_default.createElement(
14662
14690
  StatusButton,
14663
14691
  {
14664
14692
  ariaLabel: `Test status: ${itemStatus.replace("status-value:", "")}`,
@@ -14671,7 +14699,7 @@ var statusOrder = [
14671
14699
  itemIcon
14672
14700
  ) : null;
14673
14701
  if (item.type === "component" || item.type === "group" || item.type === "story" && "children" in item && item.children) {
14674
- let { children = [] } = item, BranchNode2 = { component: ComponentNode, group: GroupNode, story: StoryNode }[item.type], status = getMostCriticalStatusValue([itemStatus, groupStatus?.[item.id]]), color2 = status ? statusMapping[status][1] : null, showBranchStatus = status === "status-value:error" || status === "status-value:warning";
14702
+ let { children = [] } = item, BranchNode2 = { component: ComponentNode, group: GroupNode, story: StoryNode }[item.type], status = getMostCriticalStatusValue([itemStatus, groupStatus?.[item.id]]), color2 = status ? getStatus(theme, status)[1] : null, showBranchStatus = status === "status-value:error" || status === "status-value:warning";
14675
14703
  return react_default.createElement(
14676
14704
  LeafNodeStyleWrapper,
14677
14705
  {
@@ -14745,8 +14773,7 @@ var statusOrder = [
14745
14773
  depth: isOrphan ? item.depth : item.depth - 1,
14746
14774
  onClick: (event) => {
14747
14775
  event.preventDefault(), onSelectStoryId(item.id), isMobile2 && setMobileMenuOpen(!1);
14748
- },
14749
- ...item.type === "docs" && { docsMode }
14776
+ }
14750
14777
  },
14751
14778
  item.renderLabel?.(item, api) || item.name
14752
14779
  ),
@@ -17581,13 +17608,13 @@ var { document: document7 } = scope, DEFAULT_MAX_SEARCH_RESULTS = 50, options =
17581
17608
  openMenu,
17582
17609
  closeMenu,
17583
17610
  inputValue,
17584
- clearSelection,
17585
17611
  getInputProps,
17586
17612
  getItemProps,
17587
17613
  getLabelProps,
17588
17614
  getMenuProps,
17589
17615
  getRootProps,
17590
- highlightedIndex
17616
+ highlightedIndex,
17617
+ reset
17591
17618
  }) => {
17592
17619
  let input = inputValue ? inputValue.trim() : "", results = input ? getResults(input) : [], lastViewed = !input && getLastViewed();
17593
17620
  lastViewed && lastViewed.length && (results = lastViewed.reduce((acc, { storyId, refId }) => {
@@ -17630,7 +17657,9 @@ var { document: document7 } = scope, DEFAULT_MAX_SEARCH_RESULTS = 50, options =
17630
17657
  padding: "small",
17631
17658
  variant: "ghost",
17632
17659
  ariaLabel: "Clear search",
17633
- onClick: () => clearSelection()
17660
+ onClick: () => {
17661
+ reset({ inputValue: "" }), closeMenu();
17662
+ }
17634
17663
  },
17635
17664
  react_default.createElement(CloseIcon, null)
17636
17665
  ), searchFieldContent)
@@ -17745,7 +17774,7 @@ var { document: document8 } = scope, ResultsList = styled.ol({
17745
17774
  }
17746
17775
  }
17747
17776
  })), Result = react_default.memo(function({ item, matches, onClick, ...props }) {
17748
- let click = useCallback(
17777
+ let theme = useTheme(), click = useCallback(
17749
17778
  (event) => {
17750
17779
  event.preventDefault(), onClick?.(event);
17751
17780
  },
@@ -17753,8 +17782,8 @@ var { document: document8 } = scope, ResultsList = styled.ol({
17753
17782
  ), api = useStorybookApi();
17754
17783
  useEffect(() => {
17755
17784
  api && props.isHighlighted && item.type === "component" && api.emit(PRELOAD_ENTRIES, { ids: [item.children[0]] }, { options: { target: item.refId } });
17756
- }, [props.isHighlighted, item]);
17757
- let nameMatch = matches.find((match) => match.key === "name"), pathMatches = matches.filter((match) => match.key === "path"), [icon] = item.status ? statusMapping[item.status] : [];
17785
+ }, [api, props.isHighlighted, item]);
17786
+ let nameMatch = matches.find((match) => match.key === "name"), pathMatches = matches.filter((match) => match.key === "path"), [icon] = item.status ? getStatus(theme, item.status) : [];
17758
17787
  return react_default.createElement(ResultRow, { ...props, onClick: click }, react_default.createElement(IconWrapper2, null, item.type === "component" && react_default.createElement(TypeIcon2, { viewBox: "0 0 14 14", width: "14", height: "14", type: "component" }, react_default.createElement(UseSymbol, { type: "component" })), item.type === "story" && react_default.createElement(TypeIcon2, { viewBox: "0 0 14 14", width: "14", height: "14", type: item.subtype }, react_default.createElement(UseSymbol, { type: item.subtype })), !(item.type === "component" || item.type === "story") && react_default.createElement(TypeIcon2, { viewBox: "0 0 14 14", width: "14", height: "14", type: "document" }, react_default.createElement(UseSymbol, { type: "document" }))), react_default.createElement(ResultRowContent, { className: "search-result-item--label" }, react_default.createElement(Title, null, react_default.createElement(Highlight, { match: nameMatch }, item.name)), react_default.createElement(Path, null, item.path.map((group, index) => react_default.createElement("span", { key: index }, react_default.createElement(Highlight, { match: pathMatches.find((match) => match.arrayIndex === index) }, group))))), item.status ? react_default.createElement(StatusLabel, { status: item.status }, icon) : null);
17759
17788
  }), SearchResults = react_default.memo(function({
17760
17789
  query,
@@ -19069,14 +19098,9 @@ var Sections = styled.ol(({ theme }) => ({
19069
19098
  return { id, title: title2, items, progress };
19070
19099
  }),
19071
19100
  [itemsById, sectionsById]
19072
- ), next = useMemo(
19073
- () => Object.values(sections).findIndex(
19074
- ({ items }) => items.some((item) => item.isOpen && item.isAvailable)
19075
- ),
19076
- [sections]
19077
19101
  );
19078
- return react_default.createElement(Sections, null, sections.map(({ id, title: title2, items, progress }, index) => {
19079
- let collapsed = !items.some((item) => item.id === locationHash) && (progress === 0 || progress === 100) && next !== index;
19102
+ return react_default.createElement(Sections, null, sections.map(({ id, title: title2, items, progress }) => {
19103
+ let collapsed = progress === 100 && items.every((item) => item.id !== locationHash);
19080
19104
  return react_default.createElement("li", { key: id }, react_default.createElement(Focus.Proxy, { targetId: `toggle-${id}` }, react_default.createElement(
19081
19105
  Collapsible,
19082
19106
  {
@@ -19114,7 +19138,7 @@ var Sections = styled.ol(({ theme }) => ({
19114
19138
  isSkipped,
19115
19139
  ...item
19116
19140
  }) => {
19117
- let isChecked = isAccepted || isDone, isCollapsed = isChecked && item.id !== locationHash, isLocked = !!isLockedBy, itemContent = content?.({ api });
19141
+ let isChecked = isAccepted || isDone, isCollapsed = item.id !== locationHash, isLocked = !!isLockedBy, itemContent = content?.({ api });
19118
19142
  return react_default.createElement(Listbox.Item, { as: "li", key: item.id }, react_default.createElement(
19119
19143
  Focus.Target,
19120
19144
  {
@@ -2329,7 +2329,7 @@ import { global as global8 } from "@storybook/global";
2329
2329
  import semver from "semver";
2330
2330
 
2331
2331
  // src/manager-api/version.ts
2332
- var version = "10.1.0-beta.2";
2332
+ var version = "10.1.0-beta.4";
2333
2333
 
2334
2334
  // src/manager-api/modules/versions.ts
2335
2335
  var { VERSIONCHECK } = global8, getVersionCheckData = (0, import_memoizerific2.default)(1)(() => {
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_hgecnnw0nrt from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_hgecnnw0nrt from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_hgecnnw0nrt from "node:module";
1
+ import CJS_COMPAT_NODE_URL_a6gceaz3qeh from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_a6gceaz3qeh from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_a6gceaz3qeh from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_hgecnnw0nrt.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_hgecnnw0nrt.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_hgecnnw0nrt.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_a6gceaz3qeh.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_a6gceaz3qeh.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_a6gceaz3qeh.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -16,8 +16,8 @@ import {
16
16
  join,
17
17
  normalize,
18
18
  resolve
19
- } from "../_node-chunks/chunk-PQF6TGKN.js";
20
- import "../_node-chunks/chunk-3FVKDIQ7.js";
19
+ } from "../_node-chunks/chunk-TBYOSPAV.js";
20
+ import "../_node-chunks/chunk-VW25O2YM.js";
21
21
 
22
22
  // ../node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
23
23
  var comma = 44, semicolon = 59, chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", intToChar = new Uint8Array(64), charToInt = new Uint8Array(128);
@@ -8,6 +8,7 @@ interface CommonOptions {
8
8
  input?: Readable;
9
9
  output?: Writable;
10
10
  signal?: AbortSignal;
11
+ withGuide?: boolean;
11
12
  }
12
13
 
13
14
  type BoxAlignment = 'left' | 'center' | 'right';
@@ -18,7 +19,6 @@ interface BoxOptions extends CommonOptions {
18
19
  titlePadding?: number;
19
20
  contentPadding?: number;
20
21
  rounded?: boolean;
21
- includePrefix?: boolean;
22
22
  formatBorder?: (text: string) => string;
23
23
  }
24
24
 
@@ -160,6 +160,8 @@ interface PromptOptions {
160
160
  interface SpinnerInstance {
161
161
  start: (message?: string) => void;
162
162
  stop: (message?: string) => void;
163
+ cancel: (message?: string) => void;
164
+ error: (message?: string) => void;
163
165
  message: (text: string) => void;
164
166
  }
165
167
  interface TaskLogInstance {
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_hgecnnw0nrt from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_hgecnnw0nrt from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_hgecnnw0nrt from "node:module";
1
+ import CJS_COMPAT_NODE_URL_a6gceaz3qeh from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_a6gceaz3qeh from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_a6gceaz3qeh from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_hgecnnw0nrt.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_hgecnnw0nrt.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_hgecnnw0nrt.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_a6gceaz3qeh.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_a6gceaz3qeh.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_a6gceaz3qeh.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -22,9 +22,9 @@ import {
22
22
  once,
23
23
  prompt,
24
24
  protectUrls
25
- } from "../_node-chunks/chunk-4CHMPSHM.js";
26
- import "../_node-chunks/chunk-43AQPYQJ.js";
27
- import "../_node-chunks/chunk-3FVKDIQ7.js";
25
+ } from "../_node-chunks/chunk-WGBDDI6W.js";
26
+ import "../_node-chunks/chunk-TCLOOFNE.js";
27
+ import "../_node-chunks/chunk-VW25O2YM.js";
28
28
  var export_instance = import_npmlog.default;
29
29
  export {
30
30
  CLI_COLORS,