@storybook/csf 0.0.2-next.1 → 0.0.2-next.10
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.
- package/dist/index.d.ts +95 -83
- package/dist/index.js +8 -107
- package/dist/index.mjs +2 -72
- package/package.json +67 -24
    
        package/dist/index.d.ts
    CHANGED
    
    | @@ -1,45 +1,45 @@ | |
| 1 | 
            -
            import { Simplify, UnionToIntersection } from 'type-fest';
         | 
| 1 | 
            +
            import { Simplify, RemoveIndexSignature, UnionToIntersection } from 'type-fest';
         | 
| 2 2 |  | 
| 3 3 | 
             
            interface SBBaseType {
         | 
| 4 4 | 
             
                required?: boolean;
         | 
| 5 5 | 
             
                raw?: string;
         | 
| 6 6 | 
             
            }
         | 
| 7 | 
            -
             | 
| 7 | 
            +
            type SBScalarType = SBBaseType & {
         | 
| 8 8 | 
             
                name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
         | 
| 9 9 | 
             
            };
         | 
| 10 | 
            -
             | 
| 10 | 
            +
            type SBArrayType = SBBaseType & {
         | 
| 11 11 | 
             
                name: 'array';
         | 
| 12 12 | 
             
                value: SBType;
         | 
| 13 13 | 
             
            };
         | 
| 14 | 
            -
             | 
| 14 | 
            +
            type SBObjectType = SBBaseType & {
         | 
| 15 15 | 
             
                name: 'object';
         | 
| 16 16 | 
             
                value: Record<string, SBType>;
         | 
| 17 17 | 
             
            };
         | 
| 18 | 
            -
             | 
| 18 | 
            +
            type SBEnumType = SBBaseType & {
         | 
| 19 19 | 
             
                name: 'enum';
         | 
| 20 20 | 
             
                value: (string | number)[];
         | 
| 21 21 | 
             
            };
         | 
| 22 | 
            -
             | 
| 22 | 
            +
            type SBIntersectionType = SBBaseType & {
         | 
| 23 23 | 
             
                name: 'intersection';
         | 
| 24 24 | 
             
                value: SBType[];
         | 
| 25 25 | 
             
            };
         | 
| 26 | 
            -
             | 
| 26 | 
            +
            type SBUnionType = SBBaseType & {
         | 
| 27 27 | 
             
                name: 'union';
         | 
| 28 28 | 
             
                value: SBType[];
         | 
| 29 29 | 
             
            };
         | 
| 30 | 
            -
             | 
| 30 | 
            +
            type SBOtherType = SBBaseType & {
         | 
| 31 31 | 
             
                name: 'other';
         | 
| 32 32 | 
             
                value: string;
         | 
| 33 33 | 
             
            };
         | 
| 34 | 
            -
             | 
| 34 | 
            +
            type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
         | 
| 35 35 |  | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 36 | 
            +
            type StoryId = string;
         | 
| 37 | 
            +
            type ComponentId = string;
         | 
| 38 | 
            +
            type ComponentTitle = string;
         | 
| 39 | 
            +
            type StoryName = string;
         | 
| 40 40 | 
             
            /** @deprecated */
         | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 41 | 
            +
            type StoryKind = ComponentTitle;
         | 
| 42 | 
            +
            type Tag = string;
         | 
| 43 43 | 
             
            interface StoryIdentifier {
         | 
| 44 44 | 
             
                componentId: ComponentId;
         | 
| 45 45 | 
             
                title: ComponentTitle;
         | 
| @@ -51,10 +51,13 @@ interface StoryIdentifier { | |
| 51 51 | 
             
                story: StoryName;
         | 
| 52 52 | 
             
                tags: Tag[];
         | 
| 53 53 | 
             
            }
         | 
| 54 | 
            -
             | 
| 54 | 
            +
            interface Parameters {
         | 
| 55 55 | 
             
                [name: string]: any;
         | 
| 56 | 
            -
            } | 
| 57 | 
            -
             | 
| 56 | 
            +
            }
         | 
| 57 | 
            +
            interface StrictParameters {
         | 
| 58 | 
            +
                [name: string]: unknown;
         | 
| 59 | 
            +
            }
         | 
| 60 | 
            +
            type ConditionalTest = {
         | 
| 58 61 | 
             
                truthy?: boolean;
         | 
| 59 62 | 
             
            } | {
         | 
| 60 63 | 
             
                exists: boolean;
         | 
| @@ -63,12 +66,12 @@ declare type ConditionalTest = { | |
| 63 66 | 
             
            } | {
         | 
| 64 67 | 
             
                neq: any;
         | 
| 65 68 | 
             
            };
         | 
| 66 | 
            -
             | 
| 69 | 
            +
            type ConditionalValue = {
         | 
| 67 70 | 
             
                arg: string;
         | 
| 68 71 | 
             
            } | {
         | 
| 69 72 | 
             
                global: string;
         | 
| 70 73 | 
             
            };
         | 
| 71 | 
            -
             | 
| 74 | 
            +
            type Conditional = ConditionalValue & ConditionalTest;
         | 
| 72 75 | 
             
            interface InputType {
         | 
| 73 76 | 
             
                name?: string;
         | 
| 74 77 | 
             
                description?: string;
         | 
| @@ -81,84 +84,93 @@ interface StrictInputType extends InputType { | |
| 81 84 | 
             
                name: string;
         | 
| 82 85 | 
             
                type?: SBType;
         | 
| 83 86 | 
             
            }
         | 
| 84 | 
            -
             | 
| 87 | 
            +
            interface Args {
         | 
| 85 88 | 
             
                [name: string]: any;
         | 
| 86 | 
            -
            } | 
| 87 | 
            -
             | 
| 89 | 
            +
            }
         | 
| 90 | 
            +
            interface StrictArgs {
         | 
| 91 | 
            +
                [name: string]: unknown;
         | 
| 92 | 
            +
            }
         | 
| 93 | 
            +
            type ArgTypes<TArgs = Args> = {
         | 
| 88 94 | 
             
                [name in keyof TArgs]: InputType;
         | 
| 89 95 | 
             
            };
         | 
| 90 | 
            -
             | 
| 96 | 
            +
            type StrictArgTypes<TArgs = Args> = {
         | 
| 91 97 | 
             
                [name in keyof TArgs]: StrictInputType;
         | 
| 92 98 | 
             
            };
         | 
| 93 | 
            -
             | 
| 99 | 
            +
            type Globals = {
         | 
| 94 100 | 
             
                [name: string]: any;
         | 
| 95 101 | 
             
            };
         | 
| 96 | 
            -
             | 
| 102 | 
            +
            type GlobalTypes = {
         | 
| 97 103 | 
             
                [name: string]: InputType;
         | 
| 98 104 | 
             
            };
         | 
| 99 | 
            -
             | 
| 105 | 
            +
            type StrictGlobalTypes = {
         | 
| 100 106 | 
             
                [name: string]: StrictInputType;
         | 
| 101 107 | 
             
            };
         | 
| 102 | 
            -
             | 
| 108 | 
            +
            type Renderer = {
         | 
| 109 | 
            +
                /** What is the type of the `component` annotation in this renderer? */
         | 
| 103 110 | 
             
                component: unknown;
         | 
| 111 | 
            +
                /** What does the story function return in this renderer? */
         | 
| 104 112 | 
             
                storyResult: unknown;
         | 
| 113 | 
            +
                /** What type of element does this renderer render to? */
         | 
| 114 | 
            +
                canvasElement: unknown;
         | 
| 105 115 | 
             
                T?: unknown;
         | 
| 106 116 | 
             
            };
         | 
| 107 | 
            -
             | 
| 108 | 
            -
             | 
| 117 | 
            +
            /** @deprecated - use `Renderer` */
         | 
| 118 | 
            +
            type AnyFramework = Renderer;
         | 
| 119 | 
            +
            type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryIdentifier & {
         | 
| 120 | 
            +
                component?: (TRenderer & {
         | 
| 109 121 | 
             
                    T: any;
         | 
| 110 122 | 
             
                })['component'];
         | 
| 111 | 
            -
                subcomponents?: Record<string, ( | 
| 123 | 
            +
                subcomponents?: Record<string, (TRenderer & {
         | 
| 112 124 | 
             
                    T: any;
         | 
| 113 125 | 
             
                })['component']>;
         | 
| 114 126 | 
             
                parameters: Parameters;
         | 
| 115 127 | 
             
                initialArgs: TArgs;
         | 
| 116 128 | 
             
                argTypes: StrictArgTypes<TArgs>;
         | 
| 117 129 | 
             
            };
         | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 130 | 
            +
            type ArgsEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForEnhancers<TRenderer, TArgs>) => TArgs;
         | 
| 131 | 
            +
            type ArgTypesEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = ((context: StoryContextForEnhancers<TRenderer, TArgs>) => StrictArgTypes<TArgs>) & {
         | 
| 120 132 | 
             
                secondPass?: boolean;
         | 
| 121 133 | 
             
            };
         | 
| 122 | 
            -
             | 
| 134 | 
            +
            type StoryContextUpdate<TArgs = Args> = {
         | 
| 123 135 | 
             
                args?: TArgs;
         | 
| 124 136 | 
             
                globals?: Globals;
         | 
| 125 137 | 
             
                [key: string]: any;
         | 
| 126 138 | 
             
            };
         | 
| 127 | 
            -
             | 
| 128 | 
            -
             | 
| 139 | 
            +
            type ViewMode = 'story' | 'docs';
         | 
| 140 | 
            +
            type StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForEnhancers<TRenderer, TArgs> & Required<StoryContextUpdate<TArgs>> & {
         | 
| 129 141 | 
             
                hooks: unknown;
         | 
| 130 142 | 
             
                viewMode: ViewMode;
         | 
| 131 | 
            -
                originalStoryFn: StoryFn< | 
| 143 | 
            +
                originalStoryFn: StoryFn<TRenderer>;
         | 
| 132 144 | 
             
            };
         | 
| 133 | 
            -
             | 
| 134 | 
            -
             | 
| 145 | 
            +
            type LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any>>;
         | 
| 146 | 
            +
            type StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForLoaders<TRenderer, TArgs> & {
         | 
| 135 147 | 
             
                loaded: Record<string, any>;
         | 
| 136 148 | 
             
                abortSignal: AbortSignal;
         | 
| 137 | 
            -
                canvasElement:  | 
| 149 | 
            +
                canvasElement: TRenderer['canvasElement'];
         | 
| 138 150 | 
             
            };
         | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
                step: StepFunction< | 
| 151 | 
            +
            type StepLabel = string;
         | 
| 152 | 
            +
            type StepFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>) => Promise<void> | void;
         | 
| 153 | 
            +
            type PlayFunctionContext<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContext<TRenderer, TArgs> & {
         | 
| 154 | 
            +
                step: StepFunction<TRenderer, TArgs>;
         | 
| 143 155 | 
             
            };
         | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 156 | 
            +
            type PlayFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void> | void;
         | 
| 157 | 
            +
            type PartialStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (update?: StoryContextUpdate<Partial<TArgs>>) => TRenderer['storyResult'];
         | 
| 158 | 
            +
            type LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
         | 
| 159 | 
            +
            type ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (args: TArgs, context: StoryContext<TRenderer, TArgs>) => (TRenderer & {
         | 
| 148 160 | 
             
                T: TArgs;
         | 
| 149 161 | 
             
            })['storyResult'];
         | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 162 | 
            +
            type StoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyStoryFn<TRenderer, TArgs> | ArgsStoryFn<TRenderer, TArgs>;
         | 
| 163 | 
            +
            type DecoratorFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (fn: PartialStoryFn<TRenderer, TArgs>, c: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
         | 
| 164 | 
            +
            type DecoratorApplicator<TRenderer extends Renderer = Renderer, TArgs = Args> = (storyFn: LegacyStoryFn<TRenderer, TArgs>, decorators: DecoratorFunction<TRenderer, TArgs>[]) => LegacyStoryFn<TRenderer, TArgs>;
         | 
| 165 | 
            +
            type StepRunner<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>, context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void>;
         | 
| 166 | 
            +
            type BaseAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> = {
         | 
| 155 167 | 
             
                /**
         | 
| 156 168 | 
             
                 * Wrapper components or Storybook decorators that wrap a story.
         | 
| 157 169 | 
             
                 *
         | 
| 158 170 | 
             
                 * Decorators defined in Meta will be applied to every story variation.
         | 
| 159 171 | 
             
                 * @see [Decorators](https://storybook.js.org/docs/addons/introduction/#1-decorators)
         | 
| 160 172 | 
             
                 */
         | 
| 161 | 
            -
                decorators?: DecoratorFunction< | 
| 173 | 
            +
                decorators?: DecoratorFunction<TRenderer, TArgs>[];
         | 
| 162 174 | 
             
                /**
         | 
| 163 175 | 
             
                 * Custom metadata for a story.
         | 
| 164 176 | 
             
                 * @see [Parameters](https://storybook.js.org/docs/basics/writing-stories/#parameters)
         | 
| @@ -178,22 +190,22 @@ declare type BaseAnnotations<TFramework extends AnyFramework = AnyFramework, TAr | |
| 178 190 | 
             
                 * Asynchronous functions which provide data for a story.
         | 
| 179 191 | 
             
                 * @see [Loaders](https://storybook.js.org/docs/react/writing-stories/loaders)
         | 
| 180 192 | 
             
                 */
         | 
| 181 | 
            -
                loaders?: LoaderFunction< | 
| 193 | 
            +
                loaders?: LoaderFunction<TRenderer, TArgs>[];
         | 
| 182 194 | 
             
                /**
         | 
| 183 | 
            -
                 * Define a custom render function for the story(ies). If not passed, a default render function by the  | 
| 195 | 
            +
                 * Define a custom render function for the story(ies). If not passed, a default render function by the renderer will be used.
         | 
| 184 196 | 
             
                 */
         | 
| 185 | 
            -
                render?: ArgsStoryFn< | 
| 197 | 
            +
                render?: ArgsStoryFn<TRenderer, TArgs>;
         | 
| 186 198 | 
             
            };
         | 
| 187 | 
            -
             | 
| 188 | 
            -
                argsEnhancers?: ArgsEnhancer< | 
| 189 | 
            -
                argTypesEnhancers?: ArgTypesEnhancer< | 
| 199 | 
            +
            type ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> = BaseAnnotations<TRenderer, TArgs> & {
         | 
| 200 | 
            +
                argsEnhancers?: ArgsEnhancer<TRenderer, Args>[];
         | 
| 201 | 
            +
                argTypesEnhancers?: ArgTypesEnhancer<TRenderer, Args>[];
         | 
| 190 202 | 
             
                globals?: Globals;
         | 
| 191 203 | 
             
                globalTypes?: GlobalTypes;
         | 
| 192 | 
            -
                applyDecorators?: DecoratorApplicator< | 
| 193 | 
            -
                runStep?: StepRunner< | 
| 204 | 
            +
                applyDecorators?: DecoratorApplicator<TRenderer, Args>;
         | 
| 205 | 
            +
                runStep?: StepRunner<TRenderer, TArgs>;
         | 
| 194 206 | 
             
            };
         | 
| 195 | 
            -
             | 
| 196 | 
            -
            interface ComponentAnnotations< | 
| 207 | 
            +
            type StoryDescriptor$1 = string[] | RegExp;
         | 
| 208 | 
            +
            interface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {
         | 
| 197 209 | 
             
                /**
         | 
| 198 210 | 
             
                 * Title of the component which will be presented in the navigation. **Should be unique.**
         | 
| 199 211 | 
             
                 *
         | 
| @@ -241,8 +253,8 @@ interface ComponentAnnotations<TFramework extends AnyFramework = AnyFramework, T | |
| 241 253 | 
             
                 *
         | 
| 242 254 | 
             
                 * Used by addons for automatic prop table generation and display of other component metadata.
         | 
| 243 255 | 
             
                 */
         | 
| 244 | 
            -
                component?: ( | 
| 245 | 
            -
                    T:  | 
| 256 | 
            +
                component?: (TRenderer & {
         | 
| 257 | 
            +
                    T: Record<string, unknown> extends Required<TArgs> ? any : TArgs;
         | 
| 246 258 | 
             
                })['component'];
         | 
| 247 259 | 
             
                /**
         | 
| 248 260 | 
             
                 * Auxiliary subcomponents that are part of the stories.
         | 
| @@ -259,17 +271,17 @@ interface ComponentAnnotations<TFramework extends AnyFramework = AnyFramework, T | |
| 259 271 | 
             
                 *
         | 
| 260 272 | 
             
                 * By defining them each component will have its tab in the args table.
         | 
| 261 273 | 
             
                 */
         | 
| 262 | 
            -
                subcomponents?: Record<string,  | 
| 274 | 
            +
                subcomponents?: Record<string, TRenderer['component']>;
         | 
| 263 275 | 
             
                /**
         | 
| 264 276 | 
             
                 * Function that is executed after the story is rendered.
         | 
| 265 277 | 
             
                 */
         | 
| 266 | 
            -
                play?: PlayFunction< | 
| 278 | 
            +
                play?: PlayFunction<TRenderer, TArgs>;
         | 
| 267 279 | 
             
                /**
         | 
| 268 280 | 
             
                 * Named tags for a story, used to filter stories in different contexts.
         | 
| 269 281 | 
             
                 */
         | 
| 270 282 | 
             
                tags?: Tag[];
         | 
| 271 283 | 
             
            }
         | 
| 272 | 
            -
             | 
| 284 | 
            +
            type StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args, TRequiredArgs = Partial<TArgs>> = BaseAnnotations<TRenderer, TArgs> & {
         | 
| 273 285 | 
             
                /**
         | 
| 274 286 | 
             
                 * Override the display name in the UI (CSF v3)
         | 
| 275 287 | 
             
                 */
         | 
| @@ -281,35 +293,35 @@ declare type StoryAnnotations<TFramework extends AnyFramework = AnyFramework, TA | |
| 281 293 | 
             
                /**
         | 
| 282 294 | 
             
                 * Function that is executed after the story is rendered.
         | 
| 283 295 | 
             
                 */
         | 
| 284 | 
            -
                play?: PlayFunction< | 
| 296 | 
            +
                play?: PlayFunction<TRenderer, TArgs>;
         | 
| 285 297 | 
             
                /**
         | 
| 286 298 | 
             
                 * Named tags for a story, used to filter stories in different contexts.
         | 
| 287 299 | 
             
                 */
         | 
| 288 300 | 
             
                tags?: Tag[];
         | 
| 289 301 | 
             
                /** @deprecated */
         | 
| 290 | 
            -
                story?: Omit<StoryAnnotations< | 
| 302 | 
            +
                story?: Omit<StoryAnnotations<TRenderer, TArgs>, 'story'>;
         | 
| 291 303 | 
             
            } & ({} extends TRequiredArgs ? {
         | 
| 292 304 | 
             
                args?: TRequiredArgs;
         | 
| 293 305 | 
             
            } : {
         | 
| 294 306 | 
             
                args: TRequiredArgs;
         | 
| 295 307 | 
             
            });
         | 
| 296 | 
            -
             | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 299 | 
            -
             | 
| 300 | 
            -
             | 
| 301 | 
            -
                render?: ArgsStoryFn< | 
| 308 | 
            +
            type LegacyAnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
         | 
| 309 | 
            +
            type LegacyStoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyAnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
         | 
| 310 | 
            +
            type AnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = ArgsStoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
         | 
| 311 | 
            +
            type StoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = AnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
         | 
| 312 | 
            +
            type ArgsFromMeta<TRenderer extends Renderer, Meta> = Meta extends {
         | 
| 313 | 
            +
                render?: ArgsStoryFn<TRenderer, infer RArgs>;
         | 
| 302 314 | 
             
                loaders?: (infer Loaders)[];
         | 
| 303 315 | 
             
                decorators?: (infer Decorators)[];
         | 
| 304 | 
            -
            } ? Simplify<RArgs & DecoratorsArgs< | 
| 305 | 
            -
             | 
| 306 | 
            -
             | 
| 316 | 
            +
            } ? Simplify<RemoveIndexSignature<RArgs & DecoratorsArgs<TRenderer, Decorators> & LoaderArgs<TRenderer, Loaders>>> : unknown;
         | 
| 317 | 
            +
            type DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown>;
         | 
| 318 | 
            +
            type LoaderArgs<TRenderer extends Renderer, Loaders> = UnionToIntersection<Loaders extends LoaderFunction<TRenderer, infer TArgs> ? TArgs : unknown>;
         | 
| 307 319 |  | 
| 308 320 | 
             
            /**
         | 
| 309 321 | 
             
             * Helper function to include/exclude an arg based on the value of other other args
         | 
| 310 322 | 
             
             * aka "conditional args"
         | 
| 311 323 | 
             
             */
         | 
| 312 | 
            -
            declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) =>  | 
| 324 | 
            +
            declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => any;
         | 
| 313 325 |  | 
| 314 326 | 
             
            /**
         | 
| 315 327 | 
             
             * Remove punctuation and illegal characters from a story ID.
         | 
| @@ -325,7 +337,7 @@ declare const toId: (kind: string, name?: string) => string; | |
| 325 337 | 
             
             * Transform a CSF named export into a readable story name
         | 
| 326 338 | 
             
             */
         | 
| 327 339 | 
             
            declare const storyNameFromExport: (key: string) => string;
         | 
| 328 | 
            -
             | 
| 340 | 
            +
            type StoryDescriptor = string[] | RegExp;
         | 
| 329 341 | 
             
            interface IncludeExcludeOptions {
         | 
| 330 342 | 
             
                includeStories?: StoryDescriptor;
         | 
| 331 343 | 
             
                excludeStories?: StoryDescriptor;
         | 
| @@ -346,4 +358,4 @@ declare const parseKind: (kind: string, { rootSeparator, groupSeparator }: Separ | |
| 346 358 | 
             
                groups: string[];
         | 
| 347 359 | 
             
            };
         | 
| 348 360 |  | 
| 349 | 
            -
            export { AnnotatedStoryFn, AnyFramework, ArgTypes, ArgTypesEnhancer, Args, ArgsEnhancer, ArgsFromMeta, ArgsStoryFn, BaseAnnotations, ComponentAnnotations, ComponentId, ComponentTitle, Conditional, DecoratorApplicator, DecoratorFunction, GlobalTypes, Globals, IncludeExcludeOptions, InputType, LegacyAnnotatedStoryFn, LegacyStoryAnnotationsOrFn, LegacyStoryFn, LoaderFunction, Parameters, PartialStoryFn, PlayFunction, PlayFunctionContext, ProjectAnnotations, SBArrayType, SBEnumType, SBIntersectionType, SBObjectType, SBOtherType, SBScalarType, SBType, SBUnionType, SeparatorOptions, StepFunction, StepLabel, StepRunner, StoryAnnotations, StoryAnnotationsOrFn, StoryContext, StoryContextForEnhancers, StoryContextForLoaders, StoryContextUpdate, StoryFn, StoryId, StoryIdentifier, StoryKind, StoryName, StrictArgTypes, StrictGlobalTypes, StrictInputType, Tag, ViewMode, includeConditionalArg, isExportStory, parseKind, sanitize, storyNameFromExport, toId };
         | 
| 361 | 
            +
            export { AnnotatedStoryFn, AnyFramework, ArgTypes, ArgTypesEnhancer, Args, ArgsEnhancer, ArgsFromMeta, ArgsStoryFn, BaseAnnotations, ComponentAnnotations, ComponentId, ComponentTitle, Conditional, DecoratorApplicator, DecoratorFunction, GlobalTypes, Globals, IncludeExcludeOptions, InputType, LegacyAnnotatedStoryFn, LegacyStoryAnnotationsOrFn, LegacyStoryFn, LoaderFunction, Parameters, PartialStoryFn, PlayFunction, PlayFunctionContext, ProjectAnnotations, Renderer, SBArrayType, SBEnumType, SBIntersectionType, SBObjectType, SBOtherType, SBScalarType, SBType, SBUnionType, SeparatorOptions, StepFunction, StepLabel, StepRunner, StoryAnnotations, StoryAnnotationsOrFn, StoryContext, StoryContextForEnhancers, StoryContextForLoaders, StoryContextUpdate, StoryFn, StoryId, StoryIdentifier, StoryKind, StoryName, StrictArgTypes, StrictArgs, StrictGlobalTypes, StrictInputType, StrictParameters, Tag, ViewMode, includeConditionalArg, isExportStory, parseKind, sanitize, storyNameFromExport, toId };
         | 
    
        package/dist/index.js
    CHANGED
    
    | @@ -1,109 +1,10 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            var __create = Object.create;
         | 
| 3 | 
            -
            var __defProp = Object.defineProperty;
         | 
| 4 | 
            -
            var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
         | 
| 5 | 
            -
            var __getOwnPropNames = Object.getOwnPropertyNames;
         | 
| 6 | 
            -
            var __getProtoOf = Object.getPrototypeOf;
         | 
| 7 | 
            -
            var __hasOwnProp = Object.prototype.hasOwnProperty;
         | 
| 8 | 
            -
            var __export = (target, all) => {
         | 
| 9 | 
            -
              for (var name in all)
         | 
| 10 | 
            -
                __defProp(target, name, { get: all[name], enumerable: true });
         | 
| 11 | 
            -
            };
         | 
| 12 | 
            -
            var __copyProps = (to, from, except, desc) => {
         | 
| 13 | 
            -
              if (from && typeof from === "object" || typeof from === "function") {
         | 
| 14 | 
            -
                for (let key of __getOwnPropNames(from))
         | 
| 15 | 
            -
                  if (!__hasOwnProp.call(to, key) && key !== except)
         | 
| 16 | 
            -
                    __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
         | 
| 17 | 
            -
              }
         | 
| 18 | 
            -
              return to;
         | 
| 19 | 
            -
            };
         | 
| 20 | 
            -
            var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
         | 
| 21 | 
            -
              isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
         | 
| 22 | 
            -
              mod
         | 
| 23 | 
            -
            ));
         | 
| 24 | 
            -
            var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
         | 
| 1 | 
            +
            'use strict';
         | 
| 25 2 |  | 
| 26 | 
            -
             | 
| 27 | 
            -
            var src_exports = {};
         | 
| 28 | 
            -
            __export(src_exports, {
         | 
| 29 | 
            -
              includeConditionalArg: () => includeConditionalArg,
         | 
| 30 | 
            -
              isExportStory: () => isExportStory,
         | 
| 31 | 
            -
              parseKind: () => parseKind,
         | 
| 32 | 
            -
              sanitize: () => sanitize,
         | 
| 33 | 
            -
              storyNameFromExport: () => storyNameFromExport,
         | 
| 34 | 
            -
              toId: () => toId
         | 
| 35 | 
            -
            });
         | 
| 36 | 
            -
            module.exports = __toCommonJS(src_exports);
         | 
| 37 | 
            -
            var import_startCase = __toESM(require("lodash/startCase"));
         | 
| 3 | 
            +
            var B=Object.create;var R=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var E=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of C(e))!w.call(r,a)&&a!==t&&R(r,a,{get:()=>e[a],enumerable:!(n=b(e,a))||n.enumerable});return r};var P=(r,e,t)=>(t=r!=null?B(h(r)):{},E(e||!r||!r.__esModule?R(t,"default",{value:r,enumerable:!0}):t,r));var x=I(T=>{Object.defineProperty(T,"__esModule",{value:!0}),T.isEqual=function(){var r=Object.prototype.toString,e=Object.getPrototypeOf,t=Object.getOwnPropertySymbols?function(n){return Object.keys(n).concat(Object.getOwnPropertySymbols(n))}:Object.keys;return function(n,a){return function i(o,s,d){var y,g,p,A=r.call(o),F=r.call(s);if(o===s)return !0;if(o==null||s==null)return !1;if(d.indexOf(o)>-1&&d.indexOf(s)>-1)return !0;if(d.push(o,s),A!=F||(y=t(o),g=t(s),y.length!=g.length||y.some(function(l){return !i(o[l],s[l],d)})))return !1;switch(A.slice(8,-1)){case"Symbol":return o.valueOf()==s.valueOf();case"Date":case"Number":return +o==+s||+o!=+o&&+s!=+s;case"RegExp":case"Function":case"String":case"Boolean":return ""+o==""+s;case"Set":case"Map":y=o.entries(),g=s.entries();do if(!i((p=y.next()).value,g.next().value,d))return !1;while(!p.done);return !0;case"ArrayBuffer":o=new Uint8Array(o),s=new Uint8Array(s);case"DataView":o=new Uint8Array(o.buffer),s=new Uint8Array(s.buffer);case"Float32Array":case"Float64Array":case"Int8Array":case"Int16Array":case"Int32Array":case"Uint8Array":case"Uint16Array":case"Uint32Array":case"Uint8ClampedArray":case"Arguments":case"Array":if(o.length!=s.length)return !1;for(p=0;p<o.length;p++)if((p in o||p in s)&&(p in o!=p in s||!i(o[p],s[p],d)))return !1;return !0;case"Object":return i(e(o),e(s),d);default:return !1}}(n,a,[])}}();});function u(r){return r.replace(/_/g," ").replace(/-/g," ").replace(/\./g," ").replace(/([^\n])([A-Z])([a-z])/g,(e,t,n,a)=>`${t} ${n}${a}`).replace(/([a-z])([A-Z])/g,(e,t,n)=>`${t} ${n}`).replace(/([a-z])([0-9])/gi,(e,t,n)=>`${t} ${n}`).replace(/([0-9])([a-z])/gi,(e,t,n)=>`${t} ${n}`).replace(/(\s|^)(\w)/g,(e,t,n)=>`${t}${n.toUpperCase()}`).replace(/ +/g," ").trim()}var c=P(x()),S=r=>r.map(e=>typeof e<"u").filter(Boolean).length,O=(r,e)=>{let{exists:t,eq:n,neq:a,truthy:i}=r;if(S([t,n,a,i])>1)throw new Error(`Invalid conditional test ${JSON.stringify({exists:t,eq:n,neq:a})}`);if(typeof n<"u")return (0, c.isEqual)(e,n);if(typeof a<"u")return !(0, c.isEqual)(e,a);if(typeof t<"u"){let s=typeof e<"u";return t?s:!s}return (typeof i>"u"?!0:i)?!!e:!e},v=(r,e,t)=>{if(!r.if)return !0;let{arg:n,global:a}=r.if;if(S([n,a])!==1)throw new Error(`Invalid conditional value ${JSON.stringify({arg:n,global:a})}`);let i=n?e[n]:t[a];return O(r.if,i)};var L=r=>r.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),m=(r,e)=>{let t=L(r);if(t==="")throw new Error(`Invalid ${e} '${r}', must include alphanumeric characters`);return t},N=(r,e)=>`${m(r,"kind")}${e?`--${m(e,"name")}`:""}`,M=r=>u(r);function f(r,e){return Array.isArray(e)?e.includes(r):r.match(e)}function G(r,{includeStories:e,excludeStories:t}){return r!=="__esModule"&&(!e||f(r,e))&&(!t||!f(r,t))}var z=(r,{rootSeparator:e,groupSeparator:t})=>{let[n,a]=r.split(e,2),i=(a||r).split(t).filter(o=>!!o);return {root:a?n:null,groups:i}};
         | 
| 38 4 |  | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                throw new Error(`Invalid conditional test ${JSON.stringify({ exists, eq, neq })}`);
         | 
| 46 | 
            -
              }
         | 
| 47 | 
            -
              if (typeof eq !== "undefined") {
         | 
| 48 | 
            -
                return (0, import_isEqual.default)(value, eq);
         | 
| 49 | 
            -
              }
         | 
| 50 | 
            -
              if (typeof neq !== "undefined") {
         | 
| 51 | 
            -
                return !(0, import_isEqual.default)(value, neq);
         | 
| 52 | 
            -
              }
         | 
| 53 | 
            -
              if (typeof exists !== "undefined") {
         | 
| 54 | 
            -
                const valueExists = typeof value !== "undefined";
         | 
| 55 | 
            -
                return exists ? valueExists : !valueExists;
         | 
| 56 | 
            -
              }
         | 
| 57 | 
            -
              const shouldBeTruthy = typeof truthy === "undefined" ? true : truthy;
         | 
| 58 | 
            -
              return shouldBeTruthy ? !!value : !value;
         | 
| 59 | 
            -
            };
         | 
| 60 | 
            -
            var includeConditionalArg = (argType, args, globals) => {
         | 
| 61 | 
            -
              if (!argType.if)
         | 
| 62 | 
            -
                return true;
         | 
| 63 | 
            -
              const { arg, global } = argType.if;
         | 
| 64 | 
            -
              if (count([arg, global]) !== 1) {
         | 
| 65 | 
            -
                throw new Error(`Invalid conditional value ${JSON.stringify({ arg, global })}`);
         | 
| 66 | 
            -
              }
         | 
| 67 | 
            -
              const value = arg ? args[arg] : globals[global];
         | 
| 68 | 
            -
              return testValue(argType.if, value);
         | 
| 69 | 
            -
            };
         | 
| 70 | 
            -
             | 
| 71 | 
            -
            // src/index.ts
         | 
| 72 | 
            -
            var sanitize = (string) => {
         | 
| 73 | 
            -
              return string.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "-").replace(/-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
         | 
| 74 | 
            -
            };
         | 
| 75 | 
            -
            var sanitizeSafe = (string, part) => {
         | 
| 76 | 
            -
              const sanitized = sanitize(string);
         | 
| 77 | 
            -
              if (sanitized === "") {
         | 
| 78 | 
            -
                throw new Error(`Invalid ${part} '${string}', must include alphanumeric characters`);
         | 
| 79 | 
            -
              }
         | 
| 80 | 
            -
              return sanitized;
         | 
| 81 | 
            -
            };
         | 
| 82 | 
            -
            var toId = (kind, name) => `${sanitizeSafe(kind, "kind")}${name ? `--${sanitizeSafe(name, "name")}` : ""}`;
         | 
| 83 | 
            -
            var storyNameFromExport = (key) => (0, import_startCase.default)(key);
         | 
| 84 | 
            -
            function matches(storyKey, arrayOrRegex) {
         | 
| 85 | 
            -
              if (Array.isArray(arrayOrRegex)) {
         | 
| 86 | 
            -
                return arrayOrRegex.includes(storyKey);
         | 
| 87 | 
            -
              }
         | 
| 88 | 
            -
              return storyKey.match(arrayOrRegex);
         | 
| 89 | 
            -
            }
         | 
| 90 | 
            -
            function isExportStory(key, { includeStories, excludeStories }) {
         | 
| 91 | 
            -
              return key !== "__esModule" && (!includeStories || matches(key, includeStories)) && (!excludeStories || !matches(key, excludeStories));
         | 
| 92 | 
            -
            }
         | 
| 93 | 
            -
            var parseKind = (kind, { rootSeparator, groupSeparator }) => {
         | 
| 94 | 
            -
              const [root, remainder] = kind.split(rootSeparator, 2);
         | 
| 95 | 
            -
              const groups = (remainder || kind).split(groupSeparator).filter((i) => !!i);
         | 
| 96 | 
            -
              return {
         | 
| 97 | 
            -
                root: remainder ? root : null,
         | 
| 98 | 
            -
                groups
         | 
| 99 | 
            -
              };
         | 
| 100 | 
            -
            };
         | 
| 101 | 
            -
            // Annotate the CommonJS export names for ESM import in node:
         | 
| 102 | 
            -
            0 && (module.exports = {
         | 
| 103 | 
            -
              includeConditionalArg,
         | 
| 104 | 
            -
              isExportStory,
         | 
| 105 | 
            -
              parseKind,
         | 
| 106 | 
            -
              sanitize,
         | 
| 107 | 
            -
              storyNameFromExport,
         | 
| 108 | 
            -
              toId
         | 
| 109 | 
            -
            });
         | 
| 5 | 
            +
            exports.includeConditionalArg = v;
         | 
| 6 | 
            +
            exports.isExportStory = G;
         | 
| 7 | 
            +
            exports.parseKind = z;
         | 
| 8 | 
            +
            exports.sanitize = L;
         | 
| 9 | 
            +
            exports.storyNameFromExport = M;
         | 
| 10 | 
            +
            exports.toId = N;
         | 
    
        package/dist/index.mjs
    CHANGED
    
    | @@ -1,73 +1,3 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            import startCase from "lodash/startCase";
         | 
| 1 | 
            +
            var B=Object.create;var R=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var E=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of C(e))!w.call(r,a)&&a!==t&&R(r,a,{get:()=>e[a],enumerable:!(n=b(e,a))||n.enumerable});return r};var P=(r,e,t)=>(t=r!=null?B(h(r)):{},E(e||!r||!r.__esModule?R(t,"default",{value:r,enumerable:!0}):t,r));var x=I(T=>{Object.defineProperty(T,"__esModule",{value:!0}),T.isEqual=function(){var r=Object.prototype.toString,e=Object.getPrototypeOf,t=Object.getOwnPropertySymbols?function(n){return Object.keys(n).concat(Object.getOwnPropertySymbols(n))}:Object.keys;return function(n,a){return function i(o,s,d){var y,g,p,A=r.call(o),F=r.call(s);if(o===s)return !0;if(o==null||s==null)return !1;if(d.indexOf(o)>-1&&d.indexOf(s)>-1)return !0;if(d.push(o,s),A!=F||(y=t(o),g=t(s),y.length!=g.length||y.some(function(l){return !i(o[l],s[l],d)})))return !1;switch(A.slice(8,-1)){case"Symbol":return o.valueOf()==s.valueOf();case"Date":case"Number":return +o==+s||+o!=+o&&+s!=+s;case"RegExp":case"Function":case"String":case"Boolean":return ""+o==""+s;case"Set":case"Map":y=o.entries(),g=s.entries();do if(!i((p=y.next()).value,g.next().value,d))return !1;while(!p.done);return !0;case"ArrayBuffer":o=new Uint8Array(o),s=new Uint8Array(s);case"DataView":o=new Uint8Array(o.buffer),s=new Uint8Array(s.buffer);case"Float32Array":case"Float64Array":case"Int8Array":case"Int16Array":case"Int32Array":case"Uint8Array":case"Uint16Array":case"Uint32Array":case"Uint8ClampedArray":case"Arguments":case"Array":if(o.length!=s.length)return !1;for(p=0;p<o.length;p++)if((p in o||p in s)&&(p in o!=p in s||!i(o[p],s[p],d)))return !1;return !0;case"Object":return i(e(o),e(s),d);default:return !1}}(n,a,[])}}();});function u(r){return r.replace(/_/g," ").replace(/-/g," ").replace(/\./g," ").replace(/([^\n])([A-Z])([a-z])/g,(e,t,n,a)=>`${t} ${n}${a}`).replace(/([a-z])([A-Z])/g,(e,t,n)=>`${t} ${n}`).replace(/([a-z])([0-9])/gi,(e,t,n)=>`${t} ${n}`).replace(/([0-9])([a-z])/gi,(e,t,n)=>`${t} ${n}`).replace(/(\s|^)(\w)/g,(e,t,n)=>`${t}${n.toUpperCase()}`).replace(/ +/g," ").trim()}var c=P(x()),S=r=>r.map(e=>typeof e<"u").filter(Boolean).length,O=(r,e)=>{let{exists:t,eq:n,neq:a,truthy:i}=r;if(S([t,n,a,i])>1)throw new Error(`Invalid conditional test ${JSON.stringify({exists:t,eq:n,neq:a})}`);if(typeof n<"u")return (0, c.isEqual)(e,n);if(typeof a<"u")return !(0, c.isEqual)(e,a);if(typeof t<"u"){let s=typeof e<"u";return t?s:!s}return (typeof i>"u"?!0:i)?!!e:!e},v=(r,e,t)=>{if(!r.if)return !0;let{arg:n,global:a}=r.if;if(S([n,a])!==1)throw new Error(`Invalid conditional value ${JSON.stringify({arg:n,global:a})}`);let i=n?e[n]:t[a];return O(r.if,i)};var L=r=>r.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),m=(r,e)=>{let t=L(r);if(t==="")throw new Error(`Invalid ${e} '${r}', must include alphanumeric characters`);return t},N=(r,e)=>`${m(r,"kind")}${e?`--${m(e,"name")}`:""}`,M=r=>u(r);function f(r,e){return Array.isArray(e)?e.includes(r):r.match(e)}function G(r,{includeStories:e,excludeStories:t}){return r!=="__esModule"&&(!e||f(r,e))&&(!t||!f(r,t))}var z=(r,{rootSeparator:e,groupSeparator:t})=>{let[n,a]=r.split(e,2),i=(a||r).split(t).filter(o=>!!o);return {root:a?n:null,groups:i}};
         | 
| 3 2 |  | 
| 4 | 
            -
             | 
| 5 | 
            -
            import isEqual from "lodash/isEqual";
         | 
| 6 | 
            -
            var count = (vals) => vals.map((v) => typeof v !== "undefined").filter(Boolean).length;
         | 
| 7 | 
            -
            var testValue = (cond, value) => {
         | 
| 8 | 
            -
              const { exists, eq, neq, truthy } = cond;
         | 
| 9 | 
            -
              if (count([exists, eq, neq, truthy]) > 1) {
         | 
| 10 | 
            -
                throw new Error(`Invalid conditional test ${JSON.stringify({ exists, eq, neq })}`);
         | 
| 11 | 
            -
              }
         | 
| 12 | 
            -
              if (typeof eq !== "undefined") {
         | 
| 13 | 
            -
                return isEqual(value, eq);
         | 
| 14 | 
            -
              }
         | 
| 15 | 
            -
              if (typeof neq !== "undefined") {
         | 
| 16 | 
            -
                return !isEqual(value, neq);
         | 
| 17 | 
            -
              }
         | 
| 18 | 
            -
              if (typeof exists !== "undefined") {
         | 
| 19 | 
            -
                const valueExists = typeof value !== "undefined";
         | 
| 20 | 
            -
                return exists ? valueExists : !valueExists;
         | 
| 21 | 
            -
              }
         | 
| 22 | 
            -
              const shouldBeTruthy = typeof truthy === "undefined" ? true : truthy;
         | 
| 23 | 
            -
              return shouldBeTruthy ? !!value : !value;
         | 
| 24 | 
            -
            };
         | 
| 25 | 
            -
            var includeConditionalArg = (argType, args, globals) => {
         | 
| 26 | 
            -
              if (!argType.if)
         | 
| 27 | 
            -
                return true;
         | 
| 28 | 
            -
              const { arg, global } = argType.if;
         | 
| 29 | 
            -
              if (count([arg, global]) !== 1) {
         | 
| 30 | 
            -
                throw new Error(`Invalid conditional value ${JSON.stringify({ arg, global })}`);
         | 
| 31 | 
            -
              }
         | 
| 32 | 
            -
              const value = arg ? args[arg] : globals[global];
         | 
| 33 | 
            -
              return testValue(argType.if, value);
         | 
| 34 | 
            -
            };
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            // src/index.ts
         | 
| 37 | 
            -
            var sanitize = (string) => {
         | 
| 38 | 
            -
              return string.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "-").replace(/-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
         | 
| 39 | 
            -
            };
         | 
| 40 | 
            -
            var sanitizeSafe = (string, part) => {
         | 
| 41 | 
            -
              const sanitized = sanitize(string);
         | 
| 42 | 
            -
              if (sanitized === "") {
         | 
| 43 | 
            -
                throw new Error(`Invalid ${part} '${string}', must include alphanumeric characters`);
         | 
| 44 | 
            -
              }
         | 
| 45 | 
            -
              return sanitized;
         | 
| 46 | 
            -
            };
         | 
| 47 | 
            -
            var toId = (kind, name) => `${sanitizeSafe(kind, "kind")}${name ? `--${sanitizeSafe(name, "name")}` : ""}`;
         | 
| 48 | 
            -
            var storyNameFromExport = (key) => startCase(key);
         | 
| 49 | 
            -
            function matches(storyKey, arrayOrRegex) {
         | 
| 50 | 
            -
              if (Array.isArray(arrayOrRegex)) {
         | 
| 51 | 
            -
                return arrayOrRegex.includes(storyKey);
         | 
| 52 | 
            -
              }
         | 
| 53 | 
            -
              return storyKey.match(arrayOrRegex);
         | 
| 54 | 
            -
            }
         | 
| 55 | 
            -
            function isExportStory(key, { includeStories, excludeStories }) {
         | 
| 56 | 
            -
              return key !== "__esModule" && (!includeStories || matches(key, includeStories)) && (!excludeStories || !matches(key, excludeStories));
         | 
| 57 | 
            -
            }
         | 
| 58 | 
            -
            var parseKind = (kind, { rootSeparator, groupSeparator }) => {
         | 
| 59 | 
            -
              const [root, remainder] = kind.split(rootSeparator, 2);
         | 
| 60 | 
            -
              const groups = (remainder || kind).split(groupSeparator).filter((i) => !!i);
         | 
| 61 | 
            -
              return {
         | 
| 62 | 
            -
                root: remainder ? root : null,
         | 
| 63 | 
            -
                groups
         | 
| 64 | 
            -
              };
         | 
| 65 | 
            -
            };
         | 
| 66 | 
            -
            export {
         | 
| 67 | 
            -
              includeConditionalArg,
         | 
| 68 | 
            -
              isExportStory,
         | 
| 69 | 
            -
              parseKind,
         | 
| 70 | 
            -
              sanitize,
         | 
| 71 | 
            -
              storyNameFromExport,
         | 
| 72 | 
            -
              toId
         | 
| 73 | 
            -
            };
         | 
| 3 | 
            +
            export { v as includeConditionalArg, G as isExportStory, z as parseKind, L as sanitize, M as storyNameFromExport, N as toId };
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "@storybook/csf",
         | 
| 3 | 
            -
              "version": "0.0.2-next. | 
| 3 | 
            +
              "version": "0.0.2-next.10",
         | 
| 4 4 | 
             
              "description": "Component Story Format (CSF) utilities",
         | 
| 5 5 | 
             
              "keywords": [
         | 
| 6 6 | 
             
                "storybook",
         | 
| @@ -17,27 +17,52 @@ | |
| 17 17 | 
             
                "url": "https://github.com/ComponentDriven/csf.git"
         | 
| 18 18 | 
             
              },
         | 
| 19 19 | 
             
              "license": "MIT",
         | 
| 20 | 
            +
              "exports": {
         | 
| 21 | 
            +
                ".": {
         | 
| 22 | 
            +
                  "import": "./dist/index.mjs",
         | 
| 23 | 
            +
                  "require": "./dist/index.js",
         | 
| 24 | 
            +
                  "browser": "./dist/index.mjs",
         | 
| 25 | 
            +
                  "node": "./dist/index.js",
         | 
| 26 | 
            +
                  "types": "./dist/index.d.ts"
         | 
| 27 | 
            +
                }
         | 
| 28 | 
            +
              },
         | 
| 29 | 
            +
              "main": "dist/index.js",
         | 
| 30 | 
            +
              "module": "dist/index.mjs",
         | 
| 31 | 
            +
              "types": "dist/index.d.ts",
         | 
| 20 32 | 
             
              "files": [
         | 
| 21 33 | 
             
                "dist/**/*",
         | 
| 22 34 | 
             
                "README.md",
         | 
| 23 35 | 
             
                "*.js",
         | 
| 24 36 | 
             
                "*.d.ts"
         | 
| 25 37 | 
             
              ],
         | 
| 26 | 
            -
              "main": "dist/index.js",
         | 
| 27 | 
            -
              "module": "dist/index.mjs",
         | 
| 28 | 
            -
              "types": "dist/index.d.ts",
         | 
| 29 38 | 
             
              "scripts": {
         | 
| 30 | 
            -
                "build": "tsup ./src/index.ts --format esm,cjs --dts",
         | 
| 39 | 
            +
                "build": "tsup ./src/index.ts --format esm,cjs --dts --treeshake --minify",
         | 
| 31 40 | 
             
                "check": "tsc",
         | 
| 32 41 | 
             
                "lint": "eslint src --ext .ts",
         | 
| 33 | 
            -
                " | 
| 34 | 
            -
                " | 
| 42 | 
            +
                "release": "yarn build && auto shipit",
         | 
| 43 | 
            +
                "test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest"
         | 
| 35 44 | 
             
              },
         | 
| 45 | 
            +
              "prettier": "@storybook/linter-config/prettier.config",
         | 
| 36 46 | 
             
              "eslintConfig": {
         | 
| 47 | 
            +
                "parserOptions": {
         | 
| 48 | 
            +
                  "project": [
         | 
| 49 | 
            +
                    "./tsconfig.json"
         | 
| 50 | 
            +
                  ]
         | 
| 51 | 
            +
                },
         | 
| 52 | 
            +
                "settings": {
         | 
| 53 | 
            +
                  "import/resolver": {
         | 
| 54 | 
            +
                    "typescript": {
         | 
| 55 | 
            +
                      "project": [
         | 
| 56 | 
            +
                        "./tsconfig.json"
         | 
| 57 | 
            +
                      ]
         | 
| 58 | 
            +
                    }
         | 
| 59 | 
            +
                  }
         | 
| 60 | 
            +
                },
         | 
| 37 61 | 
             
                "extends": [
         | 
| 38 62 | 
             
                  "@storybook/eslint-config-storybook"
         | 
| 39 63 | 
             
                ],
         | 
| 40 64 | 
             
                "rules": {
         | 
| 65 | 
            +
                  "import/no-unresolved": "error",
         | 
| 41 66 | 
             
                  "jest/expect-expect": [
         | 
| 42 67 | 
             
                    "warn",
         | 
| 43 68 | 
             
                    {
         | 
| @@ -49,42 +74,60 @@ | |
| 49 74 | 
             
                  ]
         | 
| 50 75 | 
             
                }
         | 
| 51 76 | 
             
              },
         | 
| 52 | 
            -
              "prettier": "@storybook/linter-config/prettier.config",
         | 
| 53 77 | 
             
              "jest": {
         | 
| 54 | 
            -
                " | 
| 55 | 
            -
             | 
| 78 | 
            +
                "extensionsToTreatAsEsm": [
         | 
| 79 | 
            +
                  ".ts"
         | 
| 80 | 
            +
                ],
         | 
| 81 | 
            +
                "moduleNameMapper": {
         | 
| 82 | 
            +
                  "^(\\.{1,2}/.*)\\.js$": "$1"
         | 
| 83 | 
            +
                },
         | 
| 84 | 
            +
                "preset": "ts-jest/presets/default-esm",
         | 
| 56 85 | 
             
                "roots": [
         | 
| 57 86 | 
             
                  "<rootDir>/src"
         | 
| 58 | 
            -
                ]
         | 
| 87 | 
            +
                ],
         | 
| 88 | 
            +
                "testEnvironment": "node",
         | 
| 89 | 
            +
                "transform": {
         | 
| 90 | 
            +
                  "^.+\\.tsx?$": [
         | 
| 91 | 
            +
                    "ts-jest",
         | 
| 92 | 
            +
                    {
         | 
| 93 | 
            +
                      "useESM": true
         | 
| 94 | 
            +
                    }
         | 
| 95 | 
            +
                  ]
         | 
| 96 | 
            +
                }
         | 
| 59 97 | 
             
              },
         | 
| 60 98 | 
             
              "dependencies": {
         | 
| 61 | 
            -
                "expect-type": "^0.14.2",
         | 
| 62 | 
            -
                "lodash": "^4.17.15",
         | 
| 63 99 | 
             
                "type-fest": "^2.19.0"
         | 
| 64 100 | 
             
              },
         | 
| 65 101 | 
             
              "devDependencies": {
         | 
| 66 | 
            -
                "@auto-it/released": "^10.37. | 
| 67 | 
            -
                "@ | 
| 102 | 
            +
                "@auto-it/released": "^10.37.6",
         | 
| 103 | 
            +
                "@ngard/tiny-isequal": "^1.1.0",
         | 
| 104 | 
            +
                "@storybook/eslint-config-storybook": "^3.1.2",
         | 
| 68 105 | 
             
                "@types/jest": "^29.2.0",
         | 
| 69 | 
            -
                "@types/lodash": "^4.14.149",
         | 
| 70 106 | 
             
                "@types/node": "^18.11.0",
         | 
| 71 | 
            -
                "@typescript-eslint/ | 
| 72 | 
            -
                " | 
| 107 | 
            +
                "@typescript-eslint/eslint-plugin": "^5.42.1",
         | 
| 108 | 
            +
                "@typescript-eslint/parser": "^5.42.1",
         | 
| 109 | 
            +
                "auto": "^10.37.6",
         | 
| 73 110 | 
             
                "common-tags": "^1.8.0",
         | 
| 74 | 
            -
                "eslint": "^ | 
| 75 | 
            -
                " | 
| 111 | 
            +
                "eslint": "^8.27.0",
         | 
| 112 | 
            +
                "eslint-import-resolver-typescript": "^3.5.2",
         | 
| 113 | 
            +
                "eslint-plugin-import": "^2.26.0",
         | 
| 114 | 
            +
                "eslint-plugin-jest": "^27.1.4",
         | 
| 115 | 
            +
                "expect-type": "^0.14.2",
         | 
| 116 | 
            +
                "jest": "^29.3.1",
         | 
| 117 | 
            +
                "lodash": "^4.17.21",
         | 
| 118 | 
            +
                "@types/lodash": "^4.14.191",
         | 
| 76 119 | 
             
                "prettier": "^2.7.1",
         | 
| 77 120 | 
             
                "ts-jest": "^29.0.3",
         | 
| 78 | 
            -
                "tsup": "^6. | 
| 121 | 
            +
                "tsup": "^6.4.0",
         | 
| 79 122 | 
             
                "typescript": "^4.8.4"
         | 
| 80 123 | 
             
              },
         | 
| 124 | 
            +
              "publishConfig": {
         | 
| 125 | 
            +
                "access": "public"
         | 
| 126 | 
            +
              },
         | 
| 81 127 | 
             
              "auto": {
         | 
| 82 128 | 
             
                "plugins": [
         | 
| 83 129 | 
             
                  "npm",
         | 
| 84 130 | 
             
                  "released"
         | 
| 85 131 | 
             
                ]
         | 
| 86 | 
            -
              },
         | 
| 87 | 
            -
              "publishConfig": {
         | 
| 88 | 
            -
                "access": "public"
         | 
| 89 132 | 
             
              }
         | 
| 90 133 | 
             
            }
         |