UNPKG

@storybook/html

Version:

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

55 lines (51 loc) 1.8 kB
import { __name } from "./_browser-chunks/chunk-JFJ5UJ7Q.js"; // src/entry-preview-docs.ts import { SourceType as SourceType2 } from "storybook/internal/docs-tools"; // src/docs/sourceDecorator.ts import { SourceType } from "storybook/internal/docs-tools"; import { emitTransformCode, useEffect, useRef } from "storybook/preview-api"; function skipSourceRender(context) { const sourceParams = context?.parameters.docs?.source; const isArgsStory = context?.parameters.__isArgsStory; if (sourceParams?.type === SourceType.DYNAMIC) { return false; } return !isArgsStory || sourceParams?.code || sourceParams?.type === SourceType.CODE; } __name(skipSourceRender, "skipSourceRender"); var sourceDecorator = /* @__PURE__ */ __name((storyFn, context) => { const source = useRef(void 0); const story = storyFn(); useEffect(() => { const renderedForSource = context?.parameters.docs?.source?.excludeDecorators ? context.originalStoryFn(context.args, context) : story; if (!skipSourceRender(context)) { if (typeof renderedForSource === "string" && source.current !== renderedForSource) { emitTransformCode(renderedForSource, context); source.current = renderedForSource; } else if (renderedForSource instanceof Element && source.current !== renderedForSource.outerHTML) { emitTransformCode(renderedForSource.outerHTML, context); source.current = renderedForSource.outerHTML; } } }); return story; }, "sourceDecorator"); // src/entry-preview-docs.ts var decorators = [sourceDecorator]; var parameters = { docs: { story: { inline: true }, source: { type: SourceType2.DYNAMIC, language: "html", code: void 0, excludeDecorators: void 0 } } }; export { decorators, parameters };