@storybook/html
Version:
Storybook HTML renderer: Develop, document, and test UI components in isolation
55 lines (51 loc) • 1.8 kB
JavaScript
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
};