@storybook/csf 0.0.2-next.7 → 0.0.2-next.9

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.d.ts CHANGED
@@ -4,42 +4,42 @@ interface SBBaseType {
4
4
  required?: boolean;
5
5
  raw?: string;
6
6
  }
7
- declare type SBScalarType = SBBaseType & {
7
+ type SBScalarType = SBBaseType & {
8
8
  name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
9
9
  };
10
- declare type SBArrayType = SBBaseType & {
10
+ type SBArrayType = SBBaseType & {
11
11
  name: 'array';
12
12
  value: SBType;
13
13
  };
14
- declare type SBObjectType = SBBaseType & {
14
+ type SBObjectType = SBBaseType & {
15
15
  name: 'object';
16
16
  value: Record<string, SBType>;
17
17
  };
18
- declare type SBEnumType = SBBaseType & {
18
+ type SBEnumType = SBBaseType & {
19
19
  name: 'enum';
20
20
  value: (string | number)[];
21
21
  };
22
- declare type SBIntersectionType = SBBaseType & {
22
+ type SBIntersectionType = SBBaseType & {
23
23
  name: 'intersection';
24
24
  value: SBType[];
25
25
  };
26
- declare type SBUnionType = SBBaseType & {
26
+ type SBUnionType = SBBaseType & {
27
27
  name: 'union';
28
28
  value: SBType[];
29
29
  };
30
- declare type SBOtherType = SBBaseType & {
30
+ type SBOtherType = SBBaseType & {
31
31
  name: 'other';
32
32
  value: string;
33
33
  };
34
- declare type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
34
+ type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
35
35
 
36
- declare type StoryId = string;
37
- declare type ComponentId = string;
38
- declare type ComponentTitle = string;
39
- declare type StoryName = string;
36
+ type StoryId = string;
37
+ type ComponentId = string;
38
+ type ComponentTitle = string;
39
+ type StoryName = string;
40
40
  /** @deprecated */
41
- declare type StoryKind = ComponentTitle;
42
- declare type Tag = string;
41
+ type StoryKind = ComponentTitle;
42
+ type Tag = string;
43
43
  interface StoryIdentifier {
44
44
  componentId: ComponentId;
45
45
  title: ComponentTitle;
@@ -57,7 +57,7 @@ interface Parameters {
57
57
  interface StrictParameters {
58
58
  [name: string]: unknown;
59
59
  }
60
- declare type ConditionalTest = {
60
+ type ConditionalTest = {
61
61
  truthy?: boolean;
62
62
  } | {
63
63
  exists: boolean;
@@ -66,12 +66,12 @@ declare type ConditionalTest = {
66
66
  } | {
67
67
  neq: any;
68
68
  };
69
- declare type ConditionalValue = {
69
+ type ConditionalValue = {
70
70
  arg: string;
71
71
  } | {
72
72
  global: string;
73
73
  };
74
- declare type Conditional = ConditionalValue & ConditionalTest;
74
+ type Conditional = ConditionalValue & ConditionalTest;
75
75
  interface InputType {
76
76
  name?: string;
77
77
  description?: string;
@@ -90,22 +90,22 @@ interface Args {
90
90
  interface StrictArgs {
91
91
  [name: string]: unknown;
92
92
  }
93
- declare type ArgTypes<TArgs = Args> = {
93
+ type ArgTypes<TArgs = Args> = {
94
94
  [name in keyof TArgs]: InputType;
95
95
  };
96
- declare type StrictArgTypes<TArgs = Args> = {
96
+ type StrictArgTypes<TArgs = Args> = {
97
97
  [name in keyof TArgs]: StrictInputType;
98
98
  };
99
- declare type Globals = {
99
+ type Globals = {
100
100
  [name: string]: any;
101
101
  };
102
- declare type GlobalTypes = {
102
+ type GlobalTypes = {
103
103
  [name: string]: InputType;
104
104
  };
105
- declare type StrictGlobalTypes = {
105
+ type StrictGlobalTypes = {
106
106
  [name: string]: StrictInputType;
107
107
  };
108
- declare type Renderer = {
108
+ type Renderer = {
109
109
  /** What is the type of the `component` annotation in this renderer? */
110
110
  component: unknown;
111
111
  /** What does the story function return in this renderer? */
@@ -115,8 +115,8 @@ declare type Renderer = {
115
115
  T?: unknown;
116
116
  };
117
117
  /** @deprecated - use `Renderer` */
118
- declare type AnyFramework = Renderer;
119
- declare type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryIdentifier & {
118
+ type AnyFramework = Renderer;
119
+ type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryIdentifier & {
120
120
  component?: (TRenderer & {
121
121
  T: any;
122
122
  })['component'];
@@ -127,43 +127,43 @@ declare type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TAr
127
127
  initialArgs: TArgs;
128
128
  argTypes: StrictArgTypes<TArgs>;
129
129
  };
130
- declare type ArgsEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForEnhancers<TRenderer, TArgs>) => TArgs;
131
- declare type ArgTypesEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = ((context: StoryContextForEnhancers<TRenderer, TArgs>) => StrictArgTypes<TArgs>) & {
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>) & {
132
132
  secondPass?: boolean;
133
133
  };
134
- declare type StoryContextUpdate<TArgs = Args> = {
134
+ type StoryContextUpdate<TArgs = Args> = {
135
135
  args?: TArgs;
136
136
  globals?: Globals;
137
137
  [key: string]: any;
138
138
  };
139
- declare type ViewMode = 'story' | 'docs';
140
- declare type StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForEnhancers<TRenderer, TArgs> & Required<StoryContextUpdate<TArgs>> & {
139
+ type ViewMode = 'story' | 'docs';
140
+ type StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForEnhancers<TRenderer, TArgs> & Required<StoryContextUpdate<TArgs>> & {
141
141
  hooks: unknown;
142
142
  viewMode: ViewMode;
143
143
  originalStoryFn: StoryFn<TRenderer>;
144
144
  };
145
- declare type LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any>>;
146
- declare type StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForLoaders<TRenderer, TArgs> & {
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> & {
147
147
  loaded: Record<string, any>;
148
148
  abortSignal: AbortSignal;
149
149
  canvasElement: TRenderer['canvasElement'];
150
150
  };
151
- declare type StepLabel = string;
152
- declare type StepFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>) => Promise<void> | void;
153
- declare type PlayFunctionContext<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContext<TRenderer, TArgs> & {
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
154
  step: StepFunction<TRenderer, TArgs>;
155
155
  };
156
- declare type PlayFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void> | void;
157
- declare type PartialStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (update?: StoryContextUpdate<Partial<TArgs>>) => TRenderer['storyResult'];
158
- declare type LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
159
- declare type ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (args: TArgs, context: StoryContext<TRenderer, TArgs>) => (TRenderer & {
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 & {
160
160
  T: TArgs;
161
161
  })['storyResult'];
162
- declare type StoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyStoryFn<TRenderer, TArgs> | ArgsStoryFn<TRenderer, TArgs>;
163
- declare type DecoratorFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (fn: PartialStoryFn<TRenderer, TArgs>, c: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
164
- declare type DecoratorApplicator<TRenderer extends Renderer = Renderer, TArgs = Args> = (storyFn: LegacyStoryFn<TRenderer, TArgs>, decorators: DecoratorFunction<TRenderer, TArgs>[]) => LegacyStoryFn<TRenderer, TArgs>;
165
- declare type StepRunner<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>, context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void>;
166
- declare type BaseAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> = {
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> = {
167
167
  /**
168
168
  * Wrapper components or Storybook decorators that wrap a story.
169
169
  *
@@ -196,7 +196,7 @@ declare type BaseAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args
196
196
  */
197
197
  render?: ArgsStoryFn<TRenderer, TArgs>;
198
198
  };
199
- declare type ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> = BaseAnnotations<TRenderer, TArgs> & {
199
+ type ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> = BaseAnnotations<TRenderer, TArgs> & {
200
200
  argsEnhancers?: ArgsEnhancer<TRenderer, Args>[];
201
201
  argTypesEnhancers?: ArgTypesEnhancer<TRenderer, Args>[];
202
202
  globals?: Globals;
@@ -204,7 +204,7 @@ declare type ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = A
204
204
  applyDecorators?: DecoratorApplicator<TRenderer, Args>;
205
205
  runStep?: StepRunner<TRenderer, TArgs>;
206
206
  };
207
- declare type StoryDescriptor$1 = string[] | RegExp;
207
+ type StoryDescriptor$1 = string[] | RegExp;
208
208
  interface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {
209
209
  /**
210
210
  * Title of the component which will be presented in the navigation. **Should be unique.**
@@ -254,7 +254,7 @@ interface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Ar
254
254
  * Used by addons for automatic prop table generation and display of other component metadata.
255
255
  */
256
256
  component?: (TRenderer & {
257
- T: Args extends TArgs ? any : TArgs;
257
+ T: Record<string, unknown> extends Required<TArgs> ? any : TArgs;
258
258
  })['component'];
259
259
  /**
260
260
  * Auxiliary subcomponents that are part of the stories.
@@ -281,7 +281,7 @@ interface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Ar
281
281
  */
282
282
  tags?: Tag[];
283
283
  }
284
- declare type StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args, TRequiredArgs = Partial<TArgs>> = BaseAnnotations<TRenderer, TArgs> & {
284
+ type StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args, TRequiredArgs = Partial<TArgs>> = BaseAnnotations<TRenderer, TArgs> & {
285
285
  /**
286
286
  * Override the display name in the UI (CSF v3)
287
287
  */
@@ -305,23 +305,23 @@ declare type StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Arg
305
305
  } : {
306
306
  args: TRequiredArgs;
307
307
  });
308
- declare type LegacyAnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
309
- declare type LegacyStoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyAnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
310
- declare type AnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = ArgsStoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;
311
- declare type StoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = AnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;
312
- declare type ArgsFromMeta<TRenderer extends Renderer, Meta> = Meta extends {
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
313
  render?: ArgsStoryFn<TRenderer, infer RArgs>;
314
314
  loaders?: (infer Loaders)[];
315
315
  decorators?: (infer Decorators)[];
316
316
  } ? Simplify<RemoveIndexSignature<RArgs & DecoratorsArgs<TRenderer, Decorators> & LoaderArgs<TRenderer, Loaders>>> : unknown;
317
- declare type DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown>;
318
- declare type LoaderArgs<TRenderer extends Renderer, Loaders> = UnionToIntersection<Loaders extends LoaderFunction<TRenderer, infer TArgs> ? TArgs : 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>;
319
319
 
320
320
  /**
321
321
  * Helper function to include/exclude an arg based on the value of other other args
322
322
  * aka "conditional args"
323
323
  */
324
- declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => boolean;
324
+ declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => any;
325
325
 
326
326
  /**
327
327
  * Remove punctuation and illegal characters from a story ID.
@@ -337,7 +337,7 @@ declare const toId: (kind: string, name?: string) => string;
337
337
  * Transform a CSF named export into a readable story name
338
338
  */
339
339
  declare const storyNameFromExport: (key: string) => string;
340
- declare type StoryDescriptor = string[] | RegExp;
340
+ type StoryDescriptor = string[] | RegExp;
341
341
  interface IncludeExcludeOptions {
342
342
  includeStories?: StoryDescriptor;
343
343
  excludeStories?: StoryDescriptor;
package/dist/index.js CHANGED
@@ -1,109 +1,10 @@
1
- "use strict";
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
- // src/index.ts
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=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var E=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of C(r))!w.call(e,a)&&a!==n&&R(e,a,{get:()=>r[a],enumerable:!(o=b(r,a))||o.enumerable});return e};var P=(e,r,n)=>(n=e!=null?B(h(e)):{},E(r||!e||!e.__esModule?R(n,"default",{value:e,enumerable:!0}):n,e));var x=I(T=>{Object.defineProperty(T,"__esModule",{value:!0}),T.isEqual=function(){var e=Object.prototype.toString,r=Object.getPrototypeOf,n=Object.getOwnPropertySymbols?function(o){return Object.keys(o).concat(Object.getOwnPropertySymbols(o))}:Object.keys;return function(o,a){return function i(t,s,d){var y,g,p,A=e.call(t),F=e.call(s);if(t===s)return !0;if(t==null||s==null)return !1;if(d.indexOf(t)>-1&&d.indexOf(s)>-1)return !0;if(d.push(t,s),A!=F||(y=n(t),g=n(s),y.length!=g.length||y.some(function(l){return !i(t[l],s[l],d)})))return !1;switch(A.slice(8,-1)){case"Symbol":return t.valueOf()==s.valueOf();case"Date":case"Number":return +t==+s||+t!=+t&&+s!=+s;case"RegExp":case"Function":case"String":case"Boolean":return ""+t==""+s;case"Set":case"Map":y=t.entries(),g=s.entries();do if(!i((p=y.next()).value,g.next().value,d))return !1;while(!p.done);return !0;case"ArrayBuffer":t=new Uint8Array(t),s=new Uint8Array(s);case"DataView":t=new Uint8Array(t.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(t.length!=s.length)return !1;for(p=0;p<t.length;p++)if((p in t||p in s)&&(p in t!=p in s||!i(t[p],s[p],d)))return !1;return !0;case"Object":return i(r(t),r(s),d);default:return !1}}(o,a,[])}}();});function u(e){return e.replace(/_/g," ").replace(/-/g," ").replace(/([a-z])([A-Z])/g,(r,n,o)=>`${n} ${o}`).replace(/([a-z])([0-9])/gi,(r,n,o)=>`${n} ${o}`).replace(/(\s|^)(\w)/g,(r,n,o)=>n+o.toUpperCase()).trim()}var c=P(x()),S=e=>e.map(r=>typeof r<"u").filter(Boolean).length,O=(e,r)=>{let{exists:n,eq:o,neq:a,truthy:i}=e;if(S([n,o,a,i])>1)throw new Error(`Invalid conditional test ${JSON.stringify({exists:n,eq:o,neq:a})}`);if(typeof o<"u")return (0, c.isEqual)(r,o);if(typeof a<"u")return !(0, c.isEqual)(r,a);if(typeof n<"u"){let s=typeof r<"u";return n?s:!s}return (typeof i>"u"?!0:i)?!!r:!r},v=(e,r,n)=>{if(!e.if)return !0;let{arg:o,global:a}=e.if;if(S([o,a])!==1)throw new Error(`Invalid conditional value ${JSON.stringify({arg:o,global:a})}`);let i=o?r[o]:n[a];return O(e.if,i)};var L=e=>e.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),m=(e,r)=>{let n=L(e);if(n==="")throw new Error(`Invalid ${r} '${e}', must include alphanumeric characters`);return n},N=(e,r)=>`${m(e,"kind")}${r?`--${m(r,"name")}`:""}`,M=e=>u(e);function f(e,r){return Array.isArray(r)?r.includes(e):e.match(r)}function G(e,{includeStories:r,excludeStories:n}){return e!=="__esModule"&&(!r||f(e,r))&&(!n||!f(e,n))}var V=(e,{rootSeparator:r,groupSeparator:n})=>{let[o,a]=e.split(r,2),i=(a||e).split(n).filter(t=>!!t);return {root:a?o:null,groups:i}};
38
4
 
39
- // src/includeConditionalArg.ts
40
- var import_isEqual = __toESM(require("lodash/isEqual"));
41
- var count = (vals) => vals.map((v) => typeof v !== "undefined").filter(Boolean).length;
42
- var testValue = (cond, value) => {
43
- const { exists, eq, neq, truthy } = cond;
44
- if (count([exists, eq, neq, truthy]) > 1) {
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 = V;
8
+ exports.sanitize = L;
9
+ exports.storyNameFromExport = M;
10
+ exports.toId = N;
package/dist/index.mjs CHANGED
@@ -1,73 +1,3 @@
1
- // src/index.ts
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=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var E=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of C(r))!w.call(e,a)&&a!==n&&R(e,a,{get:()=>r[a],enumerable:!(o=b(r,a))||o.enumerable});return e};var P=(e,r,n)=>(n=e!=null?B(h(e)):{},E(r||!e||!e.__esModule?R(n,"default",{value:e,enumerable:!0}):n,e));var x=I(T=>{Object.defineProperty(T,"__esModule",{value:!0}),T.isEqual=function(){var e=Object.prototype.toString,r=Object.getPrototypeOf,n=Object.getOwnPropertySymbols?function(o){return Object.keys(o).concat(Object.getOwnPropertySymbols(o))}:Object.keys;return function(o,a){return function i(t,s,d){var y,g,p,A=e.call(t),F=e.call(s);if(t===s)return !0;if(t==null||s==null)return !1;if(d.indexOf(t)>-1&&d.indexOf(s)>-1)return !0;if(d.push(t,s),A!=F||(y=n(t),g=n(s),y.length!=g.length||y.some(function(l){return !i(t[l],s[l],d)})))return !1;switch(A.slice(8,-1)){case"Symbol":return t.valueOf()==s.valueOf();case"Date":case"Number":return +t==+s||+t!=+t&&+s!=+s;case"RegExp":case"Function":case"String":case"Boolean":return ""+t==""+s;case"Set":case"Map":y=t.entries(),g=s.entries();do if(!i((p=y.next()).value,g.next().value,d))return !1;while(!p.done);return !0;case"ArrayBuffer":t=new Uint8Array(t),s=new Uint8Array(s);case"DataView":t=new Uint8Array(t.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(t.length!=s.length)return !1;for(p=0;p<t.length;p++)if((p in t||p in s)&&(p in t!=p in s||!i(t[p],s[p],d)))return !1;return !0;case"Object":return i(r(t),r(s),d);default:return !1}}(o,a,[])}}();});function u(e){return e.replace(/_/g," ").replace(/-/g," ").replace(/([a-z])([A-Z])/g,(r,n,o)=>`${n} ${o}`).replace(/([a-z])([0-9])/gi,(r,n,o)=>`${n} ${o}`).replace(/(\s|^)(\w)/g,(r,n,o)=>n+o.toUpperCase()).trim()}var c=P(x()),S=e=>e.map(r=>typeof r<"u").filter(Boolean).length,O=(e,r)=>{let{exists:n,eq:o,neq:a,truthy:i}=e;if(S([n,o,a,i])>1)throw new Error(`Invalid conditional test ${JSON.stringify({exists:n,eq:o,neq:a})}`);if(typeof o<"u")return (0, c.isEqual)(r,o);if(typeof a<"u")return !(0, c.isEqual)(r,a);if(typeof n<"u"){let s=typeof r<"u";return n?s:!s}return (typeof i>"u"?!0:i)?!!r:!r},v=(e,r,n)=>{if(!e.if)return !0;let{arg:o,global:a}=e.if;if(S([o,a])!==1)throw new Error(`Invalid conditional value ${JSON.stringify({arg:o,global:a})}`);let i=o?r[o]:n[a];return O(e.if,i)};var L=e=>e.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),m=(e,r)=>{let n=L(e);if(n==="")throw new Error(`Invalid ${r} '${e}', must include alphanumeric characters`);return n},N=(e,r)=>`${m(e,"kind")}${r?`--${m(r,"name")}`:""}`,M=e=>u(e);function f(e,r){return Array.isArray(r)?r.includes(e):e.match(r)}function G(e,{includeStories:r,excludeStories:n}){return e!=="__esModule"&&(!r||f(e,r))&&(!n||!f(e,n))}var V=(e,{rootSeparator:r,groupSeparator:n})=>{let[o,a]=e.split(r,2),i=(a||e).split(n).filter(t=>!!t);return {root:a?o:null,groups:i}};
3
2
 
4
- // src/includeConditionalArg.ts
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, V 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.7",
3
+ "version": "0.0.2-next.9",
4
4
  "description": "Component Story Format (CSF) utilities",
5
5
  "keywords": [
6
6
  "storybook",
@@ -17,32 +17,33 @@
17
17
  "url": "https://github.com/ComponentDriven/csf.git"
18
18
  },
19
19
  "license": "MIT",
20
- "files": [
21
- "dist/**/*",
22
- "README.md",
23
- "*.js",
24
- "*.d.ts"
25
- ],
26
20
  "exports": {
27
21
  ".": {
28
22
  "import": "./dist/index.mjs",
29
- "require": "./dist/index.js"
23
+ "require": "./dist/index.js",
24
+ "browser": "./dist/index.mjs",
25
+ "node": "./dist/index.js",
26
+ "types": "./dist/index.d.ts"
30
27
  }
31
28
  },
32
29
  "main": "dist/index.js",
33
30
  "module": "dist/index.mjs",
34
31
  "types": "dist/index.d.ts",
32
+ "files": [
33
+ "dist/**/*",
34
+ "README.md",
35
+ "*.js",
36
+ "*.d.ts"
37
+ ],
35
38
  "scripts": {
36
- "build": "tsup ./src/index.ts --format esm,cjs --dts",
39
+ "build": "tsup ./src/index.ts --format esm,cjs --dts --treeshake --minify",
37
40
  "check": "tsc",
38
41
  "lint": "eslint src --ext .ts",
39
- "test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest",
40
- "release": "yarn build && auto shipit"
42
+ "release": "yarn build && auto shipit",
43
+ "test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest"
41
44
  },
45
+ "prettier": "@storybook/linter-config/prettier.config",
42
46
  "eslintConfig": {
43
- "extends": [
44
- "@storybook/eslint-config-storybook"
45
- ],
46
47
  "parserOptions": {
47
48
  "project": [
48
49
  "./tsconfig.json"
@@ -57,6 +58,9 @@
57
58
  }
58
59
  }
59
60
  },
61
+ "extends": [
62
+ "@storybook/eslint-config-storybook"
63
+ ],
60
64
  "rules": {
61
65
  "import/no-unresolved": "error",
62
66
  "jest/expect-expect": [
@@ -70,15 +74,18 @@
70
74
  ]
71
75
  }
72
76
  },
73
- "prettier": "@storybook/linter-config/prettier.config",
74
77
  "jest": {
75
- "preset": "ts-jest/presets/default-esm",
76
78
  "extensionsToTreatAsEsm": [
77
79
  ".ts"
78
80
  ],
79
81
  "moduleNameMapper": {
80
82
  "^(\\.{1,2}/.*)\\.js$": "$1"
81
83
  },
84
+ "preset": "ts-jest/presets/default-esm",
85
+ "roots": [
86
+ "<rootDir>/src"
87
+ ],
88
+ "testEnvironment": "node",
82
89
  "transform": {
83
90
  "^.+\\.tsx?$": [
84
91
  "ts-jest",
@@ -86,22 +93,16 @@
86
93
  "useESM": true
87
94
  }
88
95
  ]
89
- },
90
- "testEnvironment": "node",
91
- "roots": [
92
- "<rootDir>/src"
93
- ]
96
+ }
94
97
  },
95
98
  "dependencies": {
96
- "expect-type": "^0.14.2",
97
- "lodash": "^4.17.15",
98
99
  "type-fest": "^2.19.0"
99
100
  },
100
101
  "devDependencies": {
101
102
  "@auto-it/released": "^10.37.6",
103
+ "@ngard/tiny-isequal": "^1.1.0",
102
104
  "@storybook/eslint-config-storybook": "^3.1.2",
103
105
  "@types/jest": "^29.2.0",
104
- "@types/lodash": "^4.14.149",
105
106
  "@types/node": "^18.11.0",
106
107
  "@typescript-eslint/eslint-plugin": "^5.42.1",
107
108
  "@typescript-eslint/parser": "^5.42.1",
@@ -111,19 +112,20 @@
111
112
  "eslint-import-resolver-typescript": "^3.5.2",
112
113
  "eslint-plugin-import": "^2.26.0",
113
114
  "eslint-plugin-jest": "^27.1.4",
115
+ "expect-type": "^0.14.2",
114
116
  "jest": "^29.3.1",
115
117
  "prettier": "^2.7.1",
116
118
  "ts-jest": "^29.0.3",
117
119
  "tsup": "^6.4.0",
118
120
  "typescript": "^4.8.4"
119
121
  },
122
+ "publishConfig": {
123
+ "access": "public"
124
+ },
120
125
  "auto": {
121
126
  "plugins": [
122
127
  "npm",
123
128
  "released"
124
129
  ]
125
- },
126
- "publishConfig": {
127
- "access": "public"
128
130
  }
129
131
  }