UNPKG

storybook

Version:

Storybook: Develop, document, and test UI components in isolation

167 lines (155 loc) • 6.31 kB
import CJS_COMPAT_NODE_URL_qjinduibsyq from 'node:url'; import CJS_COMPAT_NODE_PATH_qjinduibsyq from 'node:path'; import CJS_COMPAT_NODE_MODULE_qjinduibsyq from "node:module"; var __filename = CJS_COMPAT_NODE_URL_qjinduibsyq.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_qjinduibsyq.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_qjinduibsyq.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import { getService } from "./chunk-UAW7LJY2.js"; import { importModule } from "./chunk-5G6TGQDE.js"; // src/cli/skills/addon-a11y.ts async function isAddonA11yEnabled(options) { try { return await options.presets.apply("isAddonA11yEnabled", !1); } catch { return !1; } } // src/cli/skills/addon-vitest.ts async function isAddonVitestEnabled(options) { try { return await options.presets.apply("isAddonVitestEnabled", !1); } catch { return !1; } } // src/cli/skills/manifest-status.ts var hasComponentManifestFeature = (features) => !!(features?.componentsManifest ?? features?.experimentalComponentsManifest), isDocgenServerMode = (features) => !!(features?.experimentalDocgenServer && features?.componentsManifest), getManifestStatus = async (options) => { let [ features, manifests, // Added for backwards compatibility with Storybook versions prior to v10.2.0-alpha.10 // Should be removed once support for Storybook version < 10.2.0 is dropped legacyComponentManifestGenerator ] = await Promise.all([ options.presets.apply("features"), options.presets.apply("experimental_manifests", void 0, { manifestEntries: [] }), options.presets.apply("experimental_componentManifestGenerator") ]), hasFeatureFlag = hasComponentManifestFeature(features), docgenServer = isDocgenServerMode(features), hasManifests = docgenServer || manifests && "components" in manifests || !!legacyComponentManifestGenerator; return { available: hasFeatureFlag && hasManifests, hasManifests, hasFeatureFlag, docgenServer }; }; // src/cli/skills/review-status.ts var getReviewStatus = async (options, { features } = {}) => { let resolvedFeatures = features ?? await options.presets.apply("features", {}), hasFeatureFlag = !!resolvedFeatures?.experimentalReview, changeDetection = !!resolvedFeatures?.changeDetection; return { // Review is opt-in via `experimentalReview` for direct MCP clients and // builds on the change-detection pipeline, so it needs both flags. available: hasFeatureFlag && changeDetection, availableForCli: resolvedFeatures?.experimentalReview !== !1 && changeDetection, hasFeatureFlag }; }; // src/cli/skills/availability.ts function getEffectiveToolAvailability(availability, { multiSource = !1 } = {}) { return multiSource ? { ...availability, docsEnabled: !0, docsEnabledForCli: !0, docsHasManifests: !0, docsFeatureEnabled: !0 } : availability; } async function isModuleGraphSupported() { try { return getService("core/module-graph", { internal: !0 }) !== void 0; } catch { return !1; } } async function isModuleGraphSupportedByBuilder(options) { let builder = (await options.presets.apply("core", {}))?.builder, builderName = typeof builder == "string" ? builder : builder?.name; if (!builderName) return !1; try { return typeof (await importModule(builderName)).changeDetectionAdapter == "function"; } catch { return !1; } } async function getToolAvailability(options, { features, moduleGraphSupported: moduleGraphSupportedOverride } = {}) { let resolvedFeatures = features ?? await options.presets.apply("features", {}), [moduleGraphSupported, reviewStatus, manifestStatus, addonVitestEnabled, a11yEnabled] = await Promise.all([ moduleGraphSupportedOverride ?? isModuleGraphSupported(), getReviewStatus(options, { features: resolvedFeatures }), getManifestStatus(options), isAddonVitestEnabled(options), isAddonA11yEnabled(options) ]); return { moduleGraphSupported, changeDetectionEnabled: resolvedFeatures?.changeDetection ?? !1, reviewEnabled: reviewStatus.available, reviewEnabledForCli: reviewStatus.availableForCli, docsEnabled: manifestStatus.available, docsEnabledForCli: manifestStatus.hasManifests, docsHasManifests: manifestStatus.hasManifests, docsFeatureEnabled: manifestStatus.hasFeatureFlag, testSupported: addonVitestEnabled, a11yEnabled, docgenServer: manifestStatus.docgenServer }; } // src/cli/skills/content/framework-renderer.ts var frameworkToRendererMap = { "@storybook/react-vite": "@storybook/react", "@storybook/react-webpack5": "@storybook/react", "@storybook/nextjs": "@storybook/react", "@storybook/nextjs-vite": "@storybook/react", "@storybook/react-native-web-vite": "@storybook/react", "@storybook/vue3-vite": "@storybook/vue3", "@nuxtjs/storybook": "@storybook/vue3", "@storybook/angular": "@storybook/angular", "@storybook/angular-vite": "@storybook/angular", "@storybook/svelte-vite": "@storybook/svelte", "@storybook/sveltekit": "@storybook/svelte", "@storybook/preact-vite": "@storybook/preact", "@storybook/web-components-vite": "@storybook/web-components", "@storybook/html-vite": "@storybook/html" }; // src/cli/skills/inputs.ts async function resolveSkillInputs(options, opts = {}) { let [availability, frameworkPreset] = await Promise.all([ getToolAvailability(options, opts), options.presets.apply("framework") ]), framework = typeof frameworkPreset == "string" ? frameworkPreset : frameworkPreset?.name ?? ""; return { ...availability, framework, renderer: frameworkToRendererMap[framework] }; } // src/shared/utils/agent-environment.ts function isClaudePreviewLaunch(env = process.env) { return !!env.CLAUDE_AGENT_SDK_VERSION && !env.AI_AGENT; } export { isClaudePreviewLaunch, isAddonA11yEnabled, isAddonVitestEnabled, getManifestStatus, getReviewStatus, getEffectiveToolAvailability, isModuleGraphSupported, isModuleGraphSupportedByBuilder, getToolAvailability, frameworkToRendererMap, resolveSkillInputs };