@storybook/react-native-ui 9.0.0-beta.9 → 9.0.0-rc.5

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 CHANGED
@@ -1,23 +1,22 @@
1
1
  import * as _storybook_react_native_theming from '@storybook/react-native-theming';
2
+ import { useTheme } from '@storybook/react-native-theming';
2
3
  import * as react_native from 'react-native';
3
- import { View, PressableProps, TouchableOpacityProps } from 'react-native';
4
- import * as React$1 from 'react';
5
- import React__default, { FC, ComponentProps, ReactElement, PropsWithChildren, ReactNode } from 'react';
6
- import { State, StoriesHash, API } from 'storybook/internal/manager-api';
7
- import { StatusesByStoryIdAndTypeId, StatusValue, API_LoadedRefData, API_IndexHash, StoryContext, Args, API_PreparedStoryIndex, StoryIndexV2, StoryIndexV3, API_Provider, DocsOptions } from 'storybook/internal/types';
8
- import * as Fuse from 'fuse.js';
4
+ import { View } from 'react-native';
5
+ import React, { FC, ComponentProps, ReactNode } from 'react';
6
+ import { State, StoriesHash } from 'storybook/internal/manager-api';
7
+ import { Item, ExpandAction, CombinedDataset, Selection, SBUI } from '@storybook/react-native-ui-common';
8
+ import { API_LoadedRefData, API_IndexHash } from 'storybook/internal/types';
9
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
10
- import { SvgProps } from 'react-native-svg';
11
10
  import { ReactRenderer } from '@storybook/react';
12
11
 
13
12
  interface NodeProps$1 {
14
- children: React__default.ReactNode | React__default.ReactNode[];
13
+ children: React.ReactNode | React.ReactNode[];
15
14
  isExpandable?: boolean;
16
15
  isExpanded?: boolean;
17
16
  }
18
- declare const BranchNode: _storybook_react_native_theming.StyledComponent<react_native.TouchableOpacityProps & React__default.RefAttributes<View> & {
19
- theme?: _storybook_react_native_theming.Theme;
20
- as?: React__default.ElementType;
17
+ declare const BranchNode: _storybook_react_native_theming.StyledComponent<react_native.TouchableOpacityProps & React.RefAttributes<View> & {
18
+ theme?: useTheme;
19
+ as?: React.ElementType;
21
20
  } & {
22
21
  depth?: number;
23
22
  isExpandable?: boolean;
@@ -25,79 +24,22 @@ declare const BranchNode: _storybook_react_native_theming.StyledComponent<react_
25
24
  isComponent?: boolean;
26
25
  isSelected?: boolean;
27
26
  }, {}, {
28
- ref?: React__default.Ref<any>;
27
+ ref?: React.Ref<any>;
29
28
  }>;
30
29
  declare const GroupNode: FC<ComponentProps<typeof BranchNode> & {
31
30
  isExpanded?: boolean;
32
31
  isExpandable?: boolean;
33
32
  }>;
34
33
  declare const ComponentNode: FC<ComponentProps<typeof BranchNode>>;
35
- declare const StoryNode: React__default.NamedExoticComponent<Omit<react_native.TouchableOpacityProps & React__default.RefAttributes<View> & {
36
- theme?: _storybook_react_native_theming.Theme;
37
- as?: React__default.ElementType;
34
+ declare const StoryNode: React.NamedExoticComponent<Omit<react_native.TouchableOpacityProps & React.RefAttributes<View> & {
35
+ theme?: useTheme;
36
+ as?: React.ElementType;
38
37
  } & {
39
38
  depth?: number;
40
39
  selected?: boolean;
41
40
  } & {
42
- ref?: React__default.Ref<any>;
43
- }, "ref"> & React__default.RefAttributes<View>>;
44
-
45
- type Refs = State['refs'];
46
- type RefType = Refs[keyof Refs] & {
47
- allStatuses?: StatusesByStoryIdAndTypeId;
48
- };
49
- type Item = StoriesHash[keyof StoriesHash];
50
- type Dataset = Record<string, Item>;
51
- interface CombinedDataset {
52
- hash: Refs;
53
- entries: [string, RefType][];
54
- }
55
- interface ItemRef {
56
- itemId: string;
57
- refId: string;
58
- }
59
- interface StoryRef {
60
- storyId: string;
61
- refId: string;
62
- }
63
- type Highlight = ItemRef | null;
64
- type Selection = StoryRef | null;
65
- declare function isExpandType(x: any): x is ExpandType;
66
- interface ExpandType {
67
- showAll: () => void;
68
- totalCount: number;
69
- moreCount: number;
70
- }
71
- type SearchItem = Item & {
72
- refId: string;
73
- path: string[];
74
- status?: StatusValue;
75
- showAll?: () => void;
76
- };
77
- type SearchResult = Fuse.FuseResult<SearchItem>;
78
- type SearchResultProps = SearchResult & {
79
- icon: string;
80
- isHighlighted: boolean;
81
- onPress: PressableProps['onPress'];
82
- };
83
- type GetSearchItemProps = (args: {
84
- item: SearchResult;
85
- index: number;
86
- key: string;
87
- }) => SearchResultProps;
88
- type SearchChildrenFn = (args: {
89
- query: string;
90
- results: SearchResult[];
91
- isBrowsing: boolean;
92
- closeMenu: (cb?: () => void) => void;
93
- getItemProps: GetSearchItemProps;
94
- highlightedIndex: number | null;
95
- }) => React.ReactNode;
96
-
97
- interface ExpandAction {
98
- ids: string[];
99
- value: boolean;
100
- }
41
+ ref?: React.Ref<any>;
42
+ }, "ref"> & React.RefAttributes<View>>;
101
43
 
102
44
  interface NodeProps {
103
45
  item: Item;
@@ -114,26 +56,26 @@ interface NodeProps {
114
56
  onSelectStoryId: (itemId: string) => void;
115
57
  status: State['status'][keyof State['status']];
116
58
  }
117
- declare const Node: React__default.NamedExoticComponent<NodeProps>;
59
+ declare const Node: React.NamedExoticComponent<NodeProps>;
118
60
  declare const LeafNodeStyleWrapper: _storybook_react_native_theming.StyledComponent<react_native.ViewProps & {
119
- theme?: _storybook_react_native_theming.Theme;
120
- as?: React__default.ElementType;
61
+ theme?: Theme$1;
62
+ as?: React.ElementType;
121
63
  }, {}, {
122
- ref?: React__default.Ref<View>;
64
+ ref?: React.Ref<View>;
123
65
  }>;
124
66
  declare const RootNode: _storybook_react_native_theming.StyledComponent<react_native.ViewProps & {
125
- theme?: _storybook_react_native_theming.Theme;
126
- as?: React__default.ElementType;
67
+ theme?: Theme$1;
68
+ as?: React.ElementType;
127
69
  }, {}, {
128
- ref?: React__default.Ref<View>;
70
+ ref?: React.Ref<View>;
129
71
  }>;
130
72
  declare const RootNodeText: _storybook_react_native_theming.StyledComponent<react_native.TextProps & {
131
- theme?: _storybook_react_native_theming.Theme;
132
- as?: React__default.ElementType;
73
+ theme?: Theme$1;
74
+ as?: React.ElementType;
133
75
  }, {}, {
134
- ref?: React__default.Ref<react_native.Text>;
76
+ ref?: React.Ref<react_native.Text>;
135
77
  }>;
136
- declare const Tree: React__default.NamedExoticComponent<{
78
+ declare const Tree: React.NamedExoticComponent<{
137
79
  isBrowsing: boolean;
138
80
  isMain: boolean;
139
81
  status?: State["status"];
@@ -144,42 +86,6 @@ declare const Tree: React__default.NamedExoticComponent<{
144
86
  onSelectStoryId: (storyId: string) => void;
145
87
  }>;
146
88
 
147
- interface ButtonProps extends TouchableOpacityProps {
148
- asChild?: boolean;
149
- size?: 'small' | 'medium';
150
- padding?: 'small' | 'medium';
151
- variant?: 'outline' | 'solid' | 'ghost';
152
- disabled?: boolean;
153
- active?: boolean;
154
- animation?: 'none' | 'rotate360' | 'glow' | 'jiggle';
155
- text?: string;
156
- Icon?: (props: SvgProps) => ReactElement;
157
- }
158
- declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<any>>;
159
- declare const ButtonText: _storybook_react_native_theming.StyledComponent<react_native.TextProps & {
160
- theme?: _storybook_react_native_theming.Theme;
161
- as?: React.ElementType;
162
- } & {
163
- variant: ButtonProps["variant"];
164
- active: ButtonProps["active"];
165
- }, {}, {
166
- ref?: React$1.Ref<react_native.Text>;
167
- }>;
168
- declare const ButtonIcon: ({ Icon, active, variant, }: {
169
- Icon: (props: SvgProps) => ReactElement;
170
- variant: ButtonProps["variant"];
171
- active: ButtonProps["active"];
172
- }) => react_jsx_runtime.JSX.Element;
173
-
174
- declare const IconButton: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<unknown>>;
175
-
176
- type LayoutContextType = {
177
- isDesktop: boolean;
178
- isMobile: boolean;
179
- };
180
- declare const LayoutProvider: FC<PropsWithChildren>;
181
- declare const useLayout: () => LayoutContextType;
182
-
183
89
  interface ExplorerProps {
184
90
  isLoading: boolean;
185
91
  isBrowsing: boolean;
@@ -198,31 +104,332 @@ interface SidebarProps extends API_LoadedRefData {
198
104
  menuHighlighted?: boolean;
199
105
  setSelection: (selection: Selection) => void;
200
106
  }
201
- declare const Sidebar: React__default.NamedExoticComponent<SidebarProps>;
107
+ declare const Sidebar: React.NamedExoticComponent<SidebarProps>;
108
+
109
+ declare global {
110
+ interface SymbolConstructor {
111
+ readonly observable: symbol;
112
+ }
113
+ }
202
114
 
115
+ interface SBBaseType {
116
+ required?: boolean;
117
+ raw?: string;
118
+ }
119
+ type SBScalarType = SBBaseType & {
120
+ name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
121
+ };
122
+ type SBArrayType = SBBaseType & {
123
+ name: 'array';
124
+ value: SBType;
125
+ };
126
+ type SBObjectType = SBBaseType & {
127
+ name: 'object';
128
+ value: Record<string, SBType>;
129
+ };
130
+ type SBEnumType = SBBaseType & {
131
+ name: 'enum';
132
+ value: (string | number)[];
133
+ };
134
+ type SBIntersectionType = SBBaseType & {
135
+ name: 'intersection';
136
+ value: SBType[];
137
+ };
138
+ type SBUnionType = SBBaseType & {
139
+ name: 'union';
140
+ value: SBType[];
141
+ };
142
+ type SBOtherType = SBBaseType & {
143
+ name: 'other';
144
+ value: string;
145
+ };
146
+ type SBType =
147
+ | SBScalarType
148
+ | SBEnumType
149
+ | SBArrayType
150
+ | SBObjectType
151
+ | SBIntersectionType
152
+ | SBUnionType
153
+ | SBOtherType;
154
+
155
+ type StoryId = string;
156
+ type ComponentId = string;
157
+ type ComponentTitle = string;
158
+ type StoryName = string;
159
+ type Tag = string;
160
+ interface StoryIdentifier {
161
+ componentId: ComponentId;
162
+ title: ComponentTitle;
163
+ /** @deprecated */
164
+ kind: ComponentTitle;
165
+ id: StoryId;
166
+ name: StoryName;
167
+ /** @deprecated */
168
+ story: StoryName;
169
+ tags: Tag[];
170
+ }
171
+ interface Parameters {
172
+ [name: string]: any;
173
+ }
174
+ type ControlType =
175
+ | 'object'
176
+ | 'boolean'
177
+ | 'check'
178
+ | 'inline-check'
179
+ | 'radio'
180
+ | 'inline-radio'
181
+ | 'select'
182
+ | 'multi-select'
183
+ | 'number'
184
+ | 'range'
185
+ | 'file'
186
+ | 'color'
187
+ | 'date'
188
+ | 'text';
189
+ type ConditionalTest =
190
+ | {
191
+ truthy?: boolean;
192
+ }
193
+ | {
194
+ exists: boolean;
195
+ }
196
+ | {
197
+ eq: any;
198
+ }
199
+ | {
200
+ neq: any;
201
+ };
202
+ type ConditionalValue =
203
+ | {
204
+ arg: string;
205
+ }
206
+ | {
207
+ global: string;
208
+ };
209
+ type Conditional = ConditionalValue & ConditionalTest;
210
+ interface ControlBase {
211
+ [key: string]: any;
212
+ /**
213
+ * @see https://storybook.js.org/docs/api/arg-types#controltype
214
+ */
215
+ type?: ControlType;
216
+ disable?: boolean;
217
+ }
218
+ interface Report {
219
+ type: string;
220
+ version?: number;
221
+ result: unknown;
222
+ status: 'failed' | 'passed' | 'warning';
223
+ }
224
+ interface ReportingAPI {
225
+ reports: Report[];
226
+ addReport: (report: Report) => void;
227
+ }
228
+ type Control =
229
+ | ControlType
230
+ | false
231
+ | (ControlBase &
232
+ (
233
+ | ControlBase
234
+ | {
235
+ type: 'color';
236
+ /**
237
+ * @see https://storybook.js.org/docs/api/arg-types#controlpresetcolors
238
+ */
239
+ presetColors?: string[];
240
+ }
241
+ | {
242
+ type: 'file';
243
+ /**
244
+ * @see https://storybook.js.org/docs/api/arg-types#controlaccept
245
+ */
246
+ accept?: string;
247
+ }
248
+ | {
249
+ type: 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select';
250
+ /**
251
+ * @see https://storybook.js.org/docs/api/arg-types#controllabels
252
+ */
253
+ labels?: {
254
+ [options: string]: string;
255
+ };
256
+ }
257
+ | {
258
+ type: 'number' | 'range';
259
+ /**
260
+ * @see https://storybook.js.org/docs/api/arg-types#controlmax
261
+ */
262
+ max?: number;
263
+ /**
264
+ * @see https://storybook.js.org/docs/api/arg-types#controlmin
265
+ */
266
+ min?: number;
267
+ /**
268
+ * @see https://storybook.js.org/docs/api/arg-types#controlstep
269
+ */
270
+ step?: number;
271
+ }
272
+ ));
273
+ interface InputType {
274
+ /**
275
+ * @see https://storybook.js.org/docs/api/arg-types#control
276
+ */
277
+ control?: Control;
278
+ /**
279
+ * @see https://storybook.js.org/docs/api/arg-types#description
280
+ */
281
+ description?: string;
282
+ /**
283
+ * @see https://storybook.js.org/docs/api/arg-types#if
284
+ */
285
+ if?: Conditional;
286
+ /**
287
+ * @see https://storybook.js.org/docs/api/arg-types#mapping
288
+ */
289
+ mapping?: {
290
+ [key: string]: any;
291
+ };
292
+ /**
293
+ * @see https://storybook.js.org/docs/api/arg-types#name
294
+ */
295
+ name?: string;
296
+ /**
297
+ * @see https://storybook.js.org/docs/api/arg-types#options
298
+ */
299
+ options?: readonly any[];
300
+ /**
301
+ * @see https://storybook.js.org/docs/api/arg-types#table
302
+ */
303
+ table?: {
304
+ [key: string]: unknown;
305
+ /**
306
+ * @see https://storybook.js.org/docs/api/arg-types#tablecategory
307
+ */
308
+ category?: string;
309
+ /**
310
+ * @see https://storybook.js.org/docs/api/arg-types#tabledefaultvalue
311
+ */
312
+ defaultValue?: {
313
+ summary?: string;
314
+ detail?: string;
315
+ };
316
+ /**
317
+ * @see https://storybook.js.org/docs/api/arg-types#tabledisable
318
+ */
319
+ disable?: boolean;
320
+ /**
321
+ * @see https://storybook.js.org/docs/api/arg-types#tablesubcategory
322
+ */
323
+ subcategory?: string;
324
+ /**
325
+ * @see https://storybook.js.org/docs/api/arg-types#tabletype
326
+ */
327
+ type?: {
328
+ summary?: string;
329
+ detail?: string;
330
+ };
331
+ };
332
+ /**
333
+ * @see https://storybook.js.org/docs/api/arg-types#type
334
+ */
335
+ type?: SBType | SBScalarType['name'];
336
+ /**
337
+ * @see https://storybook.js.org/docs/api/arg-types#defaultvalue
338
+ *
339
+ * @deprecated Use `table.defaultValue.summary` instead.
340
+ */
341
+ defaultValue?: any;
342
+ [key: string]: any;
343
+ }
344
+ interface StrictInputType extends InputType {
345
+ name: string;
346
+ type?: SBType;
347
+ }
348
+ interface Args {
349
+ [name: string]: any;
350
+ }
351
+ type StrictArgTypes<TArgs = Args> = {
352
+ [name in keyof TArgs]: StrictInputType;
353
+ };
354
+ interface Globals {
355
+ [name: string]: any;
356
+ }
357
+ interface Renderer {
358
+ /** What is the type of the `component` annotation in this renderer? */
359
+ component: unknown;
360
+ /** What does the story function return in this renderer? */
361
+ storyResult: unknown;
362
+ /** What type of element does this renderer render to? */
363
+ canvasElement: unknown;
364
+ mount(): Promise<Canvas>;
365
+ T?: unknown;
366
+ }
367
+ interface StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args>
368
+ extends StoryIdentifier {
369
+ component?: (TRenderer & {
370
+ T: any;
371
+ })['component'];
372
+ subcomponents?: Record<
373
+ string,
374
+ (TRenderer & {
375
+ T: any;
376
+ })['component']
377
+ >;
378
+ parameters: Parameters;
379
+ initialArgs: TArgs;
380
+ argTypes: StrictArgTypes<TArgs>;
381
+ }
382
+ interface StoryContextUpdate<TArgs = Args> {
383
+ args?: TArgs;
384
+ globals?: Globals;
385
+ [key: string]: any;
386
+ }
387
+ type ViewMode = 'story' | 'docs';
388
+ interface Canvas {}
389
+ interface StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args>
390
+ extends StoryContextForEnhancers<TRenderer, TArgs>,
391
+ Required<StoryContextUpdate<TArgs>> {
392
+ loaded: Record<string, any>;
393
+ abortSignal: AbortSignal;
394
+ canvasElement: TRenderer['canvasElement'];
395
+ hooks: unknown;
396
+ originalStoryFn: StoryFn<TRenderer>;
397
+ viewMode: ViewMode;
398
+ step: StepFunction<TRenderer, TArgs>;
399
+ context: this;
400
+ canvas: Canvas;
401
+ mount: TRenderer['mount'];
402
+ reporting: ReportingAPI;
403
+ }
404
+ /** @deprecated Use {@link StoryContext} instead. */
405
+ interface PlayFunctionContext<TRenderer extends Renderer = Renderer, TArgs = Args>
406
+ extends StoryContext<TRenderer, TArgs> {}
407
+ type StepLabel = string;
408
+ type StepFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (
409
+ label: StepLabel,
410
+ play: PlayFunction<TRenderer, TArgs>
411
+ ) => Promise<void> | void;
412
+ type PlayFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (
413
+ context: PlayFunctionContext<TRenderer, TArgs>
414
+ ) => Promise<void> | void;
415
+ type LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (
416
+ context: StoryContext<TRenderer, TArgs>
417
+ ) => TRenderer['storyResult'];
418
+ type ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (
419
+ args: TArgs,
420
+ context: StoryContext<TRenderer, TArgs>
421
+ ) => (TRenderer & {
422
+ T: TArgs;
423
+ })['storyResult'];
424
+ type StoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> =
425
+ | LegacyStoryFn<TRenderer, TArgs>
426
+ | ArgsStoryFn<TRenderer, TArgs>;
427
+
428
+ declare const FullUI: SBUI;
203
429
  declare const Layout: ({ storyHash, story, children, }: {
204
430
  storyHash: API_IndexHash | undefined;
205
431
  story?: StoryContext<ReactRenderer, Args>;
206
432
  children: ReactNode | ReactNode[];
207
433
  }) => react_jsx_runtime.JSX.Element;
208
434
 
209
- type ToStoriesHashOptions = {
210
- provider: API_Provider<API>;
211
- docsOptions: DocsOptions;
212
- filters: State['filters'];
213
- status: State['status'];
214
- };
215
- declare const transformStoryIndexToStoriesHash: (input: API_PreparedStoryIndex | StoryIndexV2 | StoryIndexV3, { provider, docsOptions, filters, status }: ToStoriesHashOptions) => API_IndexHash | any;
216
- declare const transformStoryIndexV2toV3: (index: StoryIndexV2) => StoryIndexV3;
217
- declare const transformStoryIndexV3toV4: (index: StoryIndexV3) => API_PreparedStoryIndex;
218
-
219
- interface Storage {
220
- getItem: (key: string) => Promise<string | null>;
221
- setItem: (key: string, value: string) => Promise<void>;
222
- }
223
- declare const StorageProvider: FC<PropsWithChildren<{
224
- storage: Storage;
225
- }>>;
226
- declare const useStorage: () => Storage;
227
-
228
- export { Button, ButtonIcon, ButtonProps, ButtonText, CombinedDataset, ComponentNode, Dataset, ExpandType, Explorer, ExplorerProps, GetSearchItemProps, GroupNode, Highlight, IconButton, Item, ItemRef, Layout, LayoutProvider, LeafNodeStyleWrapper, Node, NodeProps$1 as NodeProps, RefType, Refs, RootNode, RootNodeText, SearchChildrenFn, SearchItem, SearchResult, SearchResultProps, Selection, Sidebar, SidebarProps, StorageProvider, StoryNode, StoryRef, Tree, isExpandType, transformStoryIndexToStoriesHash, transformStoryIndexV2toV3, transformStoryIndexV3toV4, useCombination, useLayout, useStorage };
435
+ export { ComponentNode, Explorer, ExplorerProps, FullUI, GroupNode, Layout, LeafNodeStyleWrapper, Node, NodeProps$1 as NodeProps, RootNode, RootNodeText, Sidebar, SidebarProps, StoryNode, Tree, useCombination };