@storybook/react-native 7.0.0-alpha.8 → 7.6.8-alpha.0

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/V6.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { P as Params, R as ReactNativeFramework } from './View-8eae84cb.js';
3
- export { C as ComponentMeta, c as ComponentStory, a as ComponentStoryFn, b as ComponentStoryObj, M as Meta, f as Story, d as StoryFn, S as StoryFnReactReturnType, e as StoryObj } from './View-8eae84cb.js';
2
+ import { P as Params, R as ReactNativeFramework } from './View-7a09870e.js';
3
+ export { C as ComponentMeta, c as ComponentStory, a as ComponentStoryFn, b as ComponentStoryObj, M as Meta, f as Story, d as StoryFn, S as StoryFnReactReturnType, e as StoryObj } from './View-7a09870e.js';
4
4
  import { ClientApi } from '@storybook/preview-api';
5
- import { b as Addon_StoryApi } from './index.d-680e82dc.js';
6
- export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-680e82dc.js';
5
+ import { b as Addon_StoryApi } from './index.d-82fc9196.js';
6
+ export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-82fc9196.js';
7
7
  import { ReactNode } from 'react';
8
8
  export { Theme, darkTheme, theme } from '@storybook/react-native-theming';
9
9
  import '@storybook/csf';
package/dist/V6.js CHANGED
@@ -72,16 +72,17 @@ __export(V6_exports, {
72
72
  module.exports = __toCommonJS(V6_exports);
73
73
 
74
74
  // src/StartV6.tsx
75
- var import_channels = require("@storybook/channels");
76
- var import_core_events2 = __toESM(require("@storybook/core-events"));
75
+ var import_channels2 = require("@storybook/channels");
76
+ var import_core_events3 = __toESM(require("@storybook/core-events"));
77
77
  var import_global = require("@storybook/global");
78
78
  var import_manager_api3 = require("@storybook/manager-api");
79
- var import_preview_api = require("@storybook/preview-api");
79
+ var import_preview_api3 = require("@storybook/preview-api");
80
80
  var import_preview_web = require("@storybook/preview-web");
81
81
 
82
82
  // src/View.tsx
83
83
  var import_async_storage = __toESM(require("@react-native-async-storage/async-storage"));
84
84
  var import_csf = require("@storybook/csf");
85
+ var import_preview_api2 = require("@storybook/preview-api");
85
86
  var import_manager_api2 = require("@storybook/manager-api");
86
87
  var import_react_native_theming12 = require("@storybook/react-native-theming");
87
88
  var import_react16 = require("react");
@@ -102,11 +103,15 @@ function atom(read, write) {
102
103
  config.read = read;
103
104
  } else {
104
105
  config.init = read;
105
- config.read = (get) => get(config);
106
- config.write = (get, set, arg) => set(
107
- config,
108
- typeof arg === "function" ? arg(get(config)) : arg
109
- );
106
+ config.read = function(get) {
107
+ return get(this);
108
+ };
109
+ config.write = function(get, set, arg) {
110
+ return set(
111
+ this,
112
+ typeof arg === "function" ? arg(get(this)) : arg
113
+ );
114
+ };
110
115
  }
111
116
  if (write) {
112
117
  config.write = write;
@@ -137,9 +142,9 @@ var rejectPromise = (promise, e) => {
137
142
  promise.reason = e;
138
143
  };
139
144
  var isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === "function";
140
- var isEqualAtomValue = (a, b) => "v" in a && "v" in b && Object.is(a.v, b.v);
141
- var isEqualAtomError = (a, b) => "e" in a && "e" in b && Object.is(a.e, b.e);
142
- var hasPromiseAtomValue = (a) => "v" in a && a.v instanceof Promise;
145
+ var isEqualAtomValue = (a, b) => !!a && "v" in a && "v" in b && Object.is(a.v, b.v);
146
+ var isEqualAtomError = (a, b) => !!a && "e" in a && "e" in b && Object.is(a.e, b.e);
147
+ var hasPromiseAtomValue = (a) => !!a && "v" in a && a.v instanceof Promise;
143
148
  var isEqualPromiseAtomValue = (a, b) => "v" in a && "v" in b && a.v.orig && a.v.orig === b.v.orig;
144
149
  var returnAtomValue = (atomState) => {
145
150
  if ("e" in atomState) {
@@ -167,9 +172,11 @@ var createStore = () => {
167
172
  if (!pendingMap.has(atom2)) {
168
173
  pendingMap.set(atom2, prevAtomState);
169
174
  }
170
- if (prevAtomState && hasPromiseAtomValue(prevAtomState)) {
175
+ if (hasPromiseAtomValue(prevAtomState)) {
171
176
  const next = "v" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);
172
- cancelPromise(prevAtomState.v, next);
177
+ if (prevAtomState.v !== next) {
178
+ cancelPromise(prevAtomState.v, next);
179
+ }
173
180
  }
174
181
  };
175
182
  const updateDependencies = (atom2, nextAtomState, nextDependencies) => {
@@ -201,10 +208,10 @@ var createStore = () => {
201
208
  if (nextDependencies) {
202
209
  updateDependencies(atom2, nextAtomState, nextDependencies);
203
210
  }
204
- if (prevAtomState && isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
211
+ if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
205
212
  return prevAtomState;
206
213
  }
207
- if (prevAtomState && hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {
214
+ if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {
208
215
  if (prevAtomState.d === nextAtomState.d) {
209
216
  return prevAtomState;
210
217
  } else {
@@ -217,39 +224,37 @@ var createStore = () => {
217
224
  const setAtomValueOrPromise = (atom2, valueOrPromise, nextDependencies, abortPromise) => {
218
225
  if (isPromiseLike(valueOrPromise)) {
219
226
  let continuePromise;
227
+ const updatePromiseDependencies = () => {
228
+ const prevAtomState = getAtomState(atom2);
229
+ if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {
230
+ return;
231
+ }
232
+ const nextAtomState = setAtomValue(
233
+ atom2,
234
+ promise,
235
+ nextDependencies
236
+ );
237
+ if (mountedMap.has(atom2) && prevAtomState.d !== nextAtomState.d) {
238
+ mountDependencies(atom2, nextAtomState, prevAtomState.d);
239
+ }
240
+ };
220
241
  const promise = new Promise((resolve, reject) => {
221
242
  let settled = false;
222
243
  valueOrPromise.then(
223
244
  (v) => {
224
245
  if (!settled) {
225
246
  settled = true;
226
- const prevAtomState = getAtomState(atom2);
227
- const nextAtomState = setAtomValue(
228
- atom2,
229
- promise,
230
- nextDependencies
231
- );
232
247
  resolvePromise(promise, v);
233
248
  resolve(v);
234
- if ((prevAtomState == null ? void 0 : prevAtomState.d) !== nextAtomState.d) {
235
- mountDependencies(atom2, nextAtomState, prevAtomState == null ? void 0 : prevAtomState.d);
236
- }
249
+ updatePromiseDependencies();
237
250
  }
238
251
  },
239
252
  (e) => {
240
253
  if (!settled) {
241
254
  settled = true;
242
- const prevAtomState = getAtomState(atom2);
243
- const nextAtomState = setAtomValue(
244
- atom2,
245
- promise,
246
- nextDependencies
247
- );
248
255
  rejectPromise(promise, e);
249
256
  reject(e);
250
- if ((prevAtomState == null ? void 0 : prevAtomState.d) !== nextAtomState.d) {
251
- mountDependencies(atom2, nextAtomState, prevAtomState == null ? void 0 : prevAtomState.d);
252
- }
257
+ updatePromiseDependencies();
253
258
  }
254
259
  }
255
260
  );
@@ -285,7 +290,7 @@ var createStore = () => {
285
290
  if (nextDependencies) {
286
291
  updateDependencies(atom2, nextAtomState, nextDependencies);
287
292
  }
288
- if (prevAtomState && isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
293
+ if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
289
294
  return prevAtomState;
290
295
  }
291
296
  setAtomState(atom2, nextAtomState);
@@ -297,9 +302,13 @@ var createStore = () => {
297
302
  if (mountedMap.has(atom2)) {
298
303
  return atomState;
299
304
  }
300
- if (Array.from(atomState.d).every(
301
- ([a, s]) => a === atom2 || readAtomState(a) === s
302
- )) {
305
+ if (Array.from(atomState.d).every(([a, s]) => {
306
+ if (a === atom2) {
307
+ return true;
308
+ }
309
+ const aState = readAtomState(a);
310
+ return aState === s || isEqualAtomValue(aState, s);
311
+ })) {
303
312
  return atomState;
304
313
  }
305
314
  }
@@ -380,9 +389,19 @@ var createStore = () => {
380
389
  const recomputeDependents = (atom2) => {
381
390
  const dependencyMap = /* @__PURE__ */ new Map();
382
391
  const dirtyMap = /* @__PURE__ */ new WeakMap();
392
+ const getDependents = (a) => {
393
+ var _a;
394
+ const dependents = new Set((_a = mountedMap.get(a)) == null ? void 0 : _a.t);
395
+ pendingMap.forEach((_, pendingAtom) => {
396
+ var _a2;
397
+ if ((_a2 = getAtomState(pendingAtom)) == null ? void 0 : _a2.d.has(a)) {
398
+ dependents.add(pendingAtom);
399
+ }
400
+ });
401
+ return dependents;
402
+ };
383
403
  const loop1 = (a) => {
384
- const mounted = mountedMap.get(a);
385
- mounted == null ? void 0 : mounted.t.forEach((dependent) => {
404
+ getDependents(a).forEach((dependent) => {
386
405
  if (dependent !== a) {
387
406
  dependencyMap.set(
388
407
  dependent,
@@ -395,8 +414,7 @@ var createStore = () => {
395
414
  };
396
415
  loop1(atom2);
397
416
  const loop2 = (a) => {
398
- const mounted = mountedMap.get(a);
399
- mounted == null ? void 0 : mounted.t.forEach((dependent) => {
417
+ getDependents(a).forEach((dependent) => {
400
418
  var _a;
401
419
  if (dependent !== a) {
402
420
  let dirtyCount = dirtyMap.get(dependent);
@@ -408,7 +426,7 @@ var createStore = () => {
408
426
  if (isChanged) {
409
427
  const prevAtomState = getAtomState(dependent);
410
428
  const nextAtomState = readAtomState(dependent, true);
411
- isChanged = !prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState);
429
+ isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);
412
430
  }
413
431
  if (!isChanged) {
414
432
  dependencyMap.forEach((s) => s.delete(dependent));
@@ -431,7 +449,7 @@ var createStore = () => {
431
449
  }
432
450
  const prevAtomState = getAtomState(a);
433
451
  const nextAtomState = setAtomValueOrPromise(a, args2[0]);
434
- if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {
452
+ if (!isEqualAtomValue(prevAtomState, nextAtomState)) {
435
453
  recomputeDependents(a);
436
454
  }
437
455
  } else {
@@ -461,15 +479,16 @@ var createStore = () => {
461
479
  }
462
480
  return result;
463
481
  };
464
- const mountAtom = (atom2, initialDependent) => {
482
+ const mountAtom = (atom2, initialDependent, onMountQueue) => {
465
483
  var _a;
484
+ const queue = onMountQueue || [];
466
485
  (_a = getAtomState(atom2)) == null ? void 0 : _a.d.forEach((_, a) => {
467
486
  const aMounted = mountedMap.get(a);
468
487
  if (aMounted) {
469
488
  aMounted.t.add(atom2);
470
489
  } else {
471
490
  if (a !== atom2) {
472
- mountAtom(a, atom2);
491
+ mountAtom(a, atom2, queue);
473
492
  }
474
493
  }
475
494
  });
@@ -483,10 +502,16 @@ var createStore = () => {
483
502
  mountedAtoms.add(atom2);
484
503
  }
485
504
  if (isActuallyWritableAtom(atom2) && atom2.onMount) {
486
- const onUnmount = atom2.onMount((...args) => writeAtom(atom2, ...args));
487
- if (onUnmount) {
488
- mounted.u = onUnmount;
489
- }
505
+ const { onMount } = atom2;
506
+ queue.push(() => {
507
+ const onUnmount = onMount((...args) => writeAtom(atom2, ...args));
508
+ if (onUnmount) {
509
+ mounted.u = onUnmount;
510
+ }
511
+ });
512
+ }
513
+ if (!onMountQueue) {
514
+ queue.forEach((f) => f());
490
515
  }
491
516
  return mounted;
492
517
  };
@@ -555,13 +580,13 @@ var createStore = () => {
555
580
  pending.forEach(([atom2, prevAtomState]) => {
556
581
  const atomState = getAtomState(atom2);
557
582
  if (atomState) {
558
- if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {
583
+ const mounted = mountedMap.get(atom2);
584
+ if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {
559
585
  mountDependencies(atom2, atomState, prevAtomState == null ? void 0 : prevAtomState.d);
560
586
  }
561
- const mounted = mountedMap.get(atom2);
562
587
  if (mounted && !// TODO This seems pretty hacky. Hope to fix it.
563
588
  // Maybe we could `mountDependencies` in `setAtomState`?
564
- (prevAtomState && !hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {
589
+ (!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {
565
590
  mounted.l.forEach((listener) => listener());
566
591
  if ((import_meta.env ? import_meta.env.MODE : void 0) !== "production") {
567
592
  flushed.add(atom2);
@@ -964,6 +989,7 @@ var findFirstChildStory = (story) => {
964
989
  };
965
990
 
966
991
  // src/components/StoryListView/StoryListView.tsx
992
+ var import_preview_api = require("@storybook/preview-api");
967
993
  var import_jsx_runtime2 = require("react/jsx-runtime");
968
994
  var SectionHeaderText = import_react_native_theming.styled.Text(({ theme: theme3 }) => ({
969
995
  fontSize: theme3.storyList.fontSize,
@@ -1178,7 +1204,8 @@ var StoryListView = ({ storyIndex }) => {
1178
1204
  setData(filterNestedStories(originalData, query));
1179
1205
  };
1180
1206
  const changeStory = (storyId) => {
1181
- global.__STORYBOOK_ADDONS_CHANNEL__.emit(import_core_events.default.SET_CURRENT_STORY, { storyId });
1207
+ const channel = import_preview_api.addons.getChannel();
1208
+ channel.emit(import_core_events.default.SET_CURRENT_STORY, { storyId });
1182
1209
  };
1183
1210
  const renderItem = import_react3.default.useCallback(({ item }) => {
1184
1211
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderItem, { item, changeStory });
@@ -1923,8 +1950,57 @@ var OnDeviceUI = ({
1923
1950
  var OnDeviceUI_default = import_react15.default.memo(OnDeviceUI);
1924
1951
 
1925
1952
  // src/View.tsx
1953
+ var import_channels = require("@storybook/channels");
1954
+ var import_core_events2 = __toESM(require("@storybook/core-events"));
1926
1955
  var import_deepmerge = __toESM(require("deepmerge"));
1927
1956
  var import_react_native16 = require("react-native");
1957
+
1958
+ // src/rn-host-detect.js
1959
+ function getByRemoteConfig(hostname) {
1960
+ var remoteModuleConfig = window?.__fbBatchedBridgeConfig?.remoteModuleConfig;
1961
+ if (!Array.isArray(remoteModuleConfig) || hostname !== "localhost" && hostname !== "127.0.0.1") {
1962
+ return { hostname, passed: false };
1963
+ }
1964
+ var constants = (remoteModuleConfig.find(getConstants) || [])[1];
1965
+ if (constants) {
1966
+ var serverHost = constants.ServerHost || hostname;
1967
+ return { hostname: serverHost.split(":")[0], passed: true };
1968
+ }
1969
+ return { hostname, passed: false };
1970
+ }
1971
+ function getConstants(config) {
1972
+ return config && (config[0] === "AndroidConstants" || config[0] === "PlatformConstants");
1973
+ }
1974
+ function getByRNRequirePolyfill(hostname) {
1975
+ var NativeModules;
1976
+ var PlatformConstants;
1977
+ var AndroidConstants;
1978
+ if (typeof window === "undefined" || !window.__DEV__ || typeof window.require !== "function" || // RN >= 0.56
1979
+ // TODO: Get NativeModules for RN >= 0.56
1980
+ window.require.name === "metroRequire") {
1981
+ return hostname;
1982
+ }
1983
+ NativeModules = window.require("NativeModules");
1984
+ if (!NativeModules || !NativeModules.PlatformConstants && !NativeModules.AndroidConstants) {
1985
+ return hostname;
1986
+ }
1987
+ PlatformConstants = NativeModules.PlatformConstants;
1988
+ AndroidConstants = NativeModules.AndroidConstants;
1989
+ var serverHost = (PlatformConstants ? PlatformConstants.ServerHost : AndroidConstants.ServerHost) || hostname;
1990
+ return serverHost.split(":")[0];
1991
+ }
1992
+ function getHost(hostname) {
1993
+ if (typeof __fbBatchedBridge !== "object" || hostname !== "localhost" && hostname !== "127.0.0.1") {
1994
+ return hostname;
1995
+ }
1996
+ var result = getByRemoteConfig(hostname);
1997
+ if (result.passed) {
1998
+ return result.hostname;
1999
+ }
2000
+ return getByRNRequirePolyfill(hostname);
2001
+ }
2002
+
2003
+ // src/View.tsx
1928
2004
  var import_jsx_runtime16 = require("react/jsx-runtime");
1929
2005
  var STORAGE_KEY = "lastOpenedStory";
1930
2006
  var View10 = class {
@@ -1972,25 +2048,33 @@ var View10 = class {
1972
2048
  }
1973
2049
  return { storySpecifier: "*", viewMode: "story" };
1974
2050
  };
1975
- // _getServerChannel = (params: Partial<Params> = {}) => {
1976
- // const host = getHost(params.host || 'localhost');
1977
- // const port = `:${params.port || 7007}`;
1978
- // const query = params.query || '';
1979
- // const websocketType = params.secured ? 'wss' : 'ws';
1980
- // const url = `${websocketType}://${host}${port}/${query}`;
1981
- // return createWebSocketChannel({
1982
- // url,
1983
- // async: true,
1984
- // onError: async () => {},
1985
- // });
1986
- // };
2051
+ _getServerChannel = (params = {}) => {
2052
+ const host = getHost(params.host || "localhost");
2053
+ const port = `:${params.port || 7007}`;
2054
+ const query = params.query || "";
2055
+ const websocketType = params.secured ? "wss" : "ws";
2056
+ const url = `${websocketType}://${host}${port}/${query}`;
2057
+ return (0, import_channels.createWebSocketChannel)({
2058
+ url,
2059
+ async: true,
2060
+ onError: async () => {
2061
+ }
2062
+ });
2063
+ };
1987
2064
  getStorybookUI = (params = {}) => {
1988
- const {
1989
- shouldPersistSelection = true,
1990
- onDeviceUI = true
1991
- /* enableWebsockets = false */
1992
- } = params;
2065
+ const { shouldPersistSelection = true, onDeviceUI = true, enableWebsockets = false } = params;
1993
2066
  const initialStory = this._getInitialStory(params);
2067
+ if (enableWebsockets) {
2068
+ console.log("websockets enabled");
2069
+ const channel = this._getServerChannel(params);
2070
+ import_manager_api2.addons.setChannel(channel);
2071
+ import_preview_api2.addons.setChannel(channel);
2072
+ this._channel = channel;
2073
+ this._preview.channel = channel;
2074
+ this._preview.setupListeners();
2075
+ channel.emit(import_core_events2.default.CHANNEL_CREATED);
2076
+ this._preview.initializeWithStoryIndex(this._storyIndex);
2077
+ }
1994
2078
  import_manager_api2.addons.loadAddons({
1995
2079
  store: () => ({
1996
2080
  fromId: (id) => this._preview.storyStore.getStoryContext(this._preview.storyStore.fromId(id)),
@@ -2119,10 +2203,10 @@ var render = (args, context) => {
2119
2203
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Component, { ...args });
2120
2204
  };
2121
2205
  function start() {
2122
- const channel = new import_channels.Channel({ async: true });
2206
+ const channel = new import_channels2.Channel({ async: true });
2123
2207
  import_manager_api3.addons.setChannel(channel);
2124
- channel.emit(import_core_events2.default.CHANNEL_CREATED);
2125
- const clientApi2 = import_global.global?.__STORYBOOK_CLIENT_API__ || new import_preview_api.ClientApi();
2208
+ channel.emit(import_core_events3.default.CHANNEL_CREATED);
2209
+ const clientApi2 = import_global.global?.__STORYBOOK_CLIENT_API__ || new import_preview_api3.ClientApi();
2126
2210
  const previewView = {
2127
2211
  prepareForStory: () => {
2128
2212
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, {});
@@ -2164,7 +2248,7 @@ function start() {
2164
2248
  import_global.global.__STORYBOOK_PREVIEW__ = preview;
2165
2249
  import_global.global.__STORYBOOK_STORY_STORE__ = preview.storyStore;
2166
2250
  }
2167
- (0, import_preview_api.setGlobalRender)(render);
2251
+ (0, import_preview_api3.setGlobalRender)(render);
2168
2252
  let initialized = false;
2169
2253
  function onStoriesChanged() {
2170
2254
  const storyIndex = clientApi2.getStoryIndex();
@@ -2174,7 +2258,7 @@ function start() {
2174
2258
  const view2 = new View10(preview, channel);
2175
2259
  return {
2176
2260
  view: view2,
2177
- forceReRender: () => channel.emit(import_core_events2.default.FORCE_RE_RENDER),
2261
+ forceReRender: () => channel.emit(import_core_events3.default.FORCE_RE_RENDER),
2178
2262
  clientApi: clientApi2,
2179
2263
  preview,
2180
2264
  // This gets called each time the user calls configure (i.e. once per HMR)
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Renderer, Args, ComponentAnnotations, AnnotatedStoryFn, StoryAnnotations, StoryContext } from '@storybook/csf';
3
3
  import { PreviewWithSelection } from '@storybook/preview-web';
4
4
  import { Theme } from '@storybook/react-native-theming';
5
- import { c as StoryIndex } from './index.d-680e82dc.js';
5
+ import { c as StoryIndex } from './index.d-82fc9196.js';
6
6
  import { ReactElement, ComponentType, JSXElementConstructor, ComponentProps } from 'react';
7
7
  import { Channel } from '@storybook/channels';
8
8
 
@@ -122,6 +122,7 @@ declare class View {
122
122
  storySpecifier: string;
123
123
  viewMode: string;
124
124
  }>;
125
+ _getServerChannel: (params?: Partial<Params>) => Channel;
125
126
  getStorybookUI: (params?: Partial<Params>) => () => react_jsx_runtime.JSX.Element;
126
127
  }
127
128
 
@@ -94,9 +94,9 @@ type ArgTypes<TArgs = Args> = {
94
94
  type StrictArgTypes<TArgs = Args> = {
95
95
  [name in keyof TArgs]: StrictInputType;
96
96
  };
97
- type Globals = {
97
+ interface Globals {
98
98
  [name: string]: any;
99
- };
99
+ }
100
100
  type Renderer = {
101
101
  /** What is the type of the `component` annotation in this renderer? */
102
102
  component: unknown;
@@ -106,7 +106,7 @@ type Renderer = {
106
106
  canvasElement: unknown;
107
107
  T?: unknown;
108
108
  };
109
- type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryIdentifier & {
109
+ interface StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryIdentifier {
110
110
  component?: (TRenderer & {
111
111
  T: any;
112
112
  })['component'];
@@ -116,24 +116,24 @@ type StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Arg
116
116
  parameters: Parameters;
117
117
  initialArgs: TArgs;
118
118
  argTypes: StrictArgTypes<TArgs>;
119
- };
120
- type StoryContextUpdate<TArgs = Args> = {
119
+ }
120
+ interface StoryContextUpdate<TArgs = Args> {
121
121
  args?: TArgs;
122
122
  globals?: Globals;
123
123
  [key: string]: any;
124
- };
124
+ }
125
125
  type ViewMode$1 = 'story' | 'docs';
126
- type StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForEnhancers<TRenderer, TArgs> & Required<StoryContextUpdate<TArgs>> & {
126
+ interface StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContextForEnhancers<TRenderer, TArgs>, Required<StoryContextUpdate<TArgs>> {
127
127
  hooks: unknown;
128
128
  viewMode: ViewMode$1;
129
129
  originalStoryFn: StoryFn<TRenderer>;
130
- };
131
- type LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any>>;
132
- type StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryContextForLoaders<TRenderer, TArgs> & {
130
+ }
131
+ type LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any> | void> | Record<string, any> | void;
132
+ interface StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContextForLoaders<TRenderer, TArgs> {
133
133
  loaded: Record<string, any>;
134
134
  abortSignal: AbortSignal;
135
135
  canvasElement: TRenderer['canvasElement'];
136
- };
136
+ }
137
137
  type PartialStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (update?: StoryContextUpdate<Partial<TArgs>>) => TRenderer['storyResult'];
138
138
  type LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];
139
139
  type ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (args: TArgs, context: StoryContext<TRenderer, TArgs>) => (TRenderer & {
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { V as View } from './View-8eae84cb.js';
2
- export { C as ComponentMeta, c as ComponentStory, a as ComponentStoryFn, b as ComponentStoryObj, M as Meta, R as ReactNativeFramework, f as Story, d as StoryFn, S as StoryFnReactReturnType, e as StoryObj } from './View-8eae84cb.js';
1
+ import { V as View } from './View-7a09870e.js';
2
+ export { C as ComponentMeta, c as ComponentStory, a as ComponentStoryFn, b as ComponentStoryObj, M as Meta, R as ReactNativeFramework, f as Story, d as StoryFn, S as StoryFnReactReturnType, e as StoryObj } from './View-7a09870e.js';
3
3
  export { Theme, darkTheme, theme } from '@storybook/react-native-theming';
4
- import { N as NormalizedStoriesSpecifier } from './index.d-680e82dc.js';
5
- export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-680e82dc.js';
4
+ import { N as NormalizedStoriesSpecifier } from './index.d-82fc9196.js';
5
+ export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-82fc9196.js';
6
6
  import 'react/jsx-runtime';
7
7
  import '@storybook/csf';
8
8
  import '@storybook/preview-web';
package/dist/index.js CHANGED
@@ -67,14 +67,15 @@ var import_react_native_theming13 = require("@storybook/react-native-theming");
67
67
 
68
68
  // src/Start.tsx
69
69
  var import_csf2 = require("@storybook/csf");
70
- var import_preview_api = require("@storybook/preview-api");
70
+ var import_preview_api3 = require("@storybook/preview-api");
71
71
  var import_manager_api3 = require("@storybook/manager-api");
72
72
  var import_preview_web = require("@storybook/preview-api/dist/preview-web");
73
- var import_channels = require("@storybook/channels");
73
+ var import_channels2 = require("@storybook/channels");
74
74
 
75
75
  // src/View.tsx
76
76
  var import_async_storage = __toESM(require("@react-native-async-storage/async-storage"));
77
77
  var import_csf = require("@storybook/csf");
78
+ var import_preview_api2 = require("@storybook/preview-api");
78
79
  var import_manager_api2 = require("@storybook/manager-api");
79
80
  var import_react_native_theming12 = require("@storybook/react-native-theming");
80
81
  var import_react16 = require("react");
@@ -95,11 +96,15 @@ function atom(read, write) {
95
96
  config.read = read;
96
97
  } else {
97
98
  config.init = read;
98
- config.read = (get) => get(config);
99
- config.write = (get, set, arg) => set(
100
- config,
101
- typeof arg === "function" ? arg(get(config)) : arg
102
- );
99
+ config.read = function(get) {
100
+ return get(this);
101
+ };
102
+ config.write = function(get, set, arg) {
103
+ return set(
104
+ this,
105
+ typeof arg === "function" ? arg(get(this)) : arg
106
+ );
107
+ };
103
108
  }
104
109
  if (write) {
105
110
  config.write = write;
@@ -130,9 +135,9 @@ var rejectPromise = (promise, e) => {
130
135
  promise.reason = e;
131
136
  };
132
137
  var isPromiseLike = (x) => typeof (x == null ? void 0 : x.then) === "function";
133
- var isEqualAtomValue = (a, b) => "v" in a && "v" in b && Object.is(a.v, b.v);
134
- var isEqualAtomError = (a, b) => "e" in a && "e" in b && Object.is(a.e, b.e);
135
- var hasPromiseAtomValue = (a) => "v" in a && a.v instanceof Promise;
138
+ var isEqualAtomValue = (a, b) => !!a && "v" in a && "v" in b && Object.is(a.v, b.v);
139
+ var isEqualAtomError = (a, b) => !!a && "e" in a && "e" in b && Object.is(a.e, b.e);
140
+ var hasPromiseAtomValue = (a) => !!a && "v" in a && a.v instanceof Promise;
136
141
  var isEqualPromiseAtomValue = (a, b) => "v" in a && "v" in b && a.v.orig && a.v.orig === b.v.orig;
137
142
  var returnAtomValue = (atomState) => {
138
143
  if ("e" in atomState) {
@@ -160,9 +165,11 @@ var createStore = () => {
160
165
  if (!pendingMap.has(atom2)) {
161
166
  pendingMap.set(atom2, prevAtomState);
162
167
  }
163
- if (prevAtomState && hasPromiseAtomValue(prevAtomState)) {
168
+ if (hasPromiseAtomValue(prevAtomState)) {
164
169
  const next = "v" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);
165
- cancelPromise(prevAtomState.v, next);
170
+ if (prevAtomState.v !== next) {
171
+ cancelPromise(prevAtomState.v, next);
172
+ }
166
173
  }
167
174
  };
168
175
  const updateDependencies = (atom2, nextAtomState, nextDependencies) => {
@@ -194,10 +201,10 @@ var createStore = () => {
194
201
  if (nextDependencies) {
195
202
  updateDependencies(atom2, nextAtomState, nextDependencies);
196
203
  }
197
- if (prevAtomState && isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
204
+ if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
198
205
  return prevAtomState;
199
206
  }
200
- if (prevAtomState && hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {
207
+ if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {
201
208
  if (prevAtomState.d === nextAtomState.d) {
202
209
  return prevAtomState;
203
210
  } else {
@@ -210,39 +217,37 @@ var createStore = () => {
210
217
  const setAtomValueOrPromise = (atom2, valueOrPromise, nextDependencies, abortPromise) => {
211
218
  if (isPromiseLike(valueOrPromise)) {
212
219
  let continuePromise;
220
+ const updatePromiseDependencies = () => {
221
+ const prevAtomState = getAtomState(atom2);
222
+ if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {
223
+ return;
224
+ }
225
+ const nextAtomState = setAtomValue(
226
+ atom2,
227
+ promise,
228
+ nextDependencies
229
+ );
230
+ if (mountedMap.has(atom2) && prevAtomState.d !== nextAtomState.d) {
231
+ mountDependencies(atom2, nextAtomState, prevAtomState.d);
232
+ }
233
+ };
213
234
  const promise = new Promise((resolve, reject) => {
214
235
  let settled = false;
215
236
  valueOrPromise.then(
216
237
  (v) => {
217
238
  if (!settled) {
218
239
  settled = true;
219
- const prevAtomState = getAtomState(atom2);
220
- const nextAtomState = setAtomValue(
221
- atom2,
222
- promise,
223
- nextDependencies
224
- );
225
240
  resolvePromise(promise, v);
226
241
  resolve(v);
227
- if ((prevAtomState == null ? void 0 : prevAtomState.d) !== nextAtomState.d) {
228
- mountDependencies(atom2, nextAtomState, prevAtomState == null ? void 0 : prevAtomState.d);
229
- }
242
+ updatePromiseDependencies();
230
243
  }
231
244
  },
232
245
  (e) => {
233
246
  if (!settled) {
234
247
  settled = true;
235
- const prevAtomState = getAtomState(atom2);
236
- const nextAtomState = setAtomValue(
237
- atom2,
238
- promise,
239
- nextDependencies
240
- );
241
248
  rejectPromise(promise, e);
242
249
  reject(e);
243
- if ((prevAtomState == null ? void 0 : prevAtomState.d) !== nextAtomState.d) {
244
- mountDependencies(atom2, nextAtomState, prevAtomState == null ? void 0 : prevAtomState.d);
245
- }
250
+ updatePromiseDependencies();
246
251
  }
247
252
  }
248
253
  );
@@ -278,7 +283,7 @@ var createStore = () => {
278
283
  if (nextDependencies) {
279
284
  updateDependencies(atom2, nextAtomState, nextDependencies);
280
285
  }
281
- if (prevAtomState && isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
286
+ if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
282
287
  return prevAtomState;
283
288
  }
284
289
  setAtomState(atom2, nextAtomState);
@@ -290,9 +295,13 @@ var createStore = () => {
290
295
  if (mountedMap.has(atom2)) {
291
296
  return atomState;
292
297
  }
293
- if (Array.from(atomState.d).every(
294
- ([a, s]) => a === atom2 || readAtomState(a) === s
295
- )) {
298
+ if (Array.from(atomState.d).every(([a, s]) => {
299
+ if (a === atom2) {
300
+ return true;
301
+ }
302
+ const aState = readAtomState(a);
303
+ return aState === s || isEqualAtomValue(aState, s);
304
+ })) {
296
305
  return atomState;
297
306
  }
298
307
  }
@@ -373,9 +382,19 @@ var createStore = () => {
373
382
  const recomputeDependents = (atom2) => {
374
383
  const dependencyMap = /* @__PURE__ */ new Map();
375
384
  const dirtyMap = /* @__PURE__ */ new WeakMap();
385
+ const getDependents = (a) => {
386
+ var _a;
387
+ const dependents = new Set((_a = mountedMap.get(a)) == null ? void 0 : _a.t);
388
+ pendingMap.forEach((_, pendingAtom) => {
389
+ var _a2;
390
+ if ((_a2 = getAtomState(pendingAtom)) == null ? void 0 : _a2.d.has(a)) {
391
+ dependents.add(pendingAtom);
392
+ }
393
+ });
394
+ return dependents;
395
+ };
376
396
  const loop1 = (a) => {
377
- const mounted = mountedMap.get(a);
378
- mounted == null ? void 0 : mounted.t.forEach((dependent) => {
397
+ getDependents(a).forEach((dependent) => {
379
398
  if (dependent !== a) {
380
399
  dependencyMap.set(
381
400
  dependent,
@@ -388,8 +407,7 @@ var createStore = () => {
388
407
  };
389
408
  loop1(atom2);
390
409
  const loop2 = (a) => {
391
- const mounted = mountedMap.get(a);
392
- mounted == null ? void 0 : mounted.t.forEach((dependent) => {
410
+ getDependents(a).forEach((dependent) => {
393
411
  var _a;
394
412
  if (dependent !== a) {
395
413
  let dirtyCount = dirtyMap.get(dependent);
@@ -401,7 +419,7 @@ var createStore = () => {
401
419
  if (isChanged) {
402
420
  const prevAtomState = getAtomState(dependent);
403
421
  const nextAtomState = readAtomState(dependent, true);
404
- isChanged = !prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState);
422
+ isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);
405
423
  }
406
424
  if (!isChanged) {
407
425
  dependencyMap.forEach((s) => s.delete(dependent));
@@ -424,7 +442,7 @@ var createStore = () => {
424
442
  }
425
443
  const prevAtomState = getAtomState(a);
426
444
  const nextAtomState = setAtomValueOrPromise(a, args2[0]);
427
- if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {
445
+ if (!isEqualAtomValue(prevAtomState, nextAtomState)) {
428
446
  recomputeDependents(a);
429
447
  }
430
448
  } else {
@@ -454,15 +472,16 @@ var createStore = () => {
454
472
  }
455
473
  return result;
456
474
  };
457
- const mountAtom = (atom2, initialDependent) => {
475
+ const mountAtom = (atom2, initialDependent, onMountQueue) => {
458
476
  var _a;
477
+ const queue = onMountQueue || [];
459
478
  (_a = getAtomState(atom2)) == null ? void 0 : _a.d.forEach((_, a) => {
460
479
  const aMounted = mountedMap.get(a);
461
480
  if (aMounted) {
462
481
  aMounted.t.add(atom2);
463
482
  } else {
464
483
  if (a !== atom2) {
465
- mountAtom(a, atom2);
484
+ mountAtom(a, atom2, queue);
466
485
  }
467
486
  }
468
487
  });
@@ -476,10 +495,16 @@ var createStore = () => {
476
495
  mountedAtoms.add(atom2);
477
496
  }
478
497
  if (isActuallyWritableAtom(atom2) && atom2.onMount) {
479
- const onUnmount = atom2.onMount((...args) => writeAtom(atom2, ...args));
480
- if (onUnmount) {
481
- mounted.u = onUnmount;
482
- }
498
+ const { onMount } = atom2;
499
+ queue.push(() => {
500
+ const onUnmount = onMount((...args) => writeAtom(atom2, ...args));
501
+ if (onUnmount) {
502
+ mounted.u = onUnmount;
503
+ }
504
+ });
505
+ }
506
+ if (!onMountQueue) {
507
+ queue.forEach((f) => f());
483
508
  }
484
509
  return mounted;
485
510
  };
@@ -548,13 +573,13 @@ var createStore = () => {
548
573
  pending.forEach(([atom2, prevAtomState]) => {
549
574
  const atomState = getAtomState(atom2);
550
575
  if (atomState) {
551
- if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {
576
+ const mounted = mountedMap.get(atom2);
577
+ if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {
552
578
  mountDependencies(atom2, atomState, prevAtomState == null ? void 0 : prevAtomState.d);
553
579
  }
554
- const mounted = mountedMap.get(atom2);
555
580
  if (mounted && !// TODO This seems pretty hacky. Hope to fix it.
556
581
  // Maybe we could `mountDependencies` in `setAtomState`?
557
- (prevAtomState && !hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {
582
+ (!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {
558
583
  mounted.l.forEach((listener) => listener());
559
584
  if ((import_meta.env ? import_meta.env.MODE : void 0) !== "production") {
560
585
  flushed.add(atom2);
@@ -957,6 +982,7 @@ var findFirstChildStory = (story) => {
957
982
  };
958
983
 
959
984
  // src/components/StoryListView/StoryListView.tsx
985
+ var import_preview_api = require("@storybook/preview-api");
960
986
  var import_jsx_runtime2 = require("react/jsx-runtime");
961
987
  var SectionHeaderText = import_react_native_theming.styled.Text(({ theme: theme3 }) => ({
962
988
  fontSize: theme3.storyList.fontSize,
@@ -1171,7 +1197,8 @@ var StoryListView = ({ storyIndex }) => {
1171
1197
  setData(filterNestedStories(originalData, query));
1172
1198
  };
1173
1199
  const changeStory = (storyId) => {
1174
- global.__STORYBOOK_ADDONS_CHANNEL__.emit(import_core_events.default.SET_CURRENT_STORY, { storyId });
1200
+ const channel = import_preview_api.addons.getChannel();
1201
+ channel.emit(import_core_events.default.SET_CURRENT_STORY, { storyId });
1175
1202
  };
1176
1203
  const renderItem = import_react3.default.useCallback(({ item }) => {
1177
1204
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderItem, { item, changeStory });
@@ -1916,8 +1943,57 @@ var OnDeviceUI = ({
1916
1943
  var OnDeviceUI_default = import_react15.default.memo(OnDeviceUI);
1917
1944
 
1918
1945
  // src/View.tsx
1946
+ var import_channels = require("@storybook/channels");
1947
+ var import_core_events2 = __toESM(require("@storybook/core-events"));
1919
1948
  var import_deepmerge = __toESM(require("deepmerge"));
1920
1949
  var import_react_native16 = require("react-native");
1950
+
1951
+ // src/rn-host-detect.js
1952
+ function getByRemoteConfig(hostname) {
1953
+ var remoteModuleConfig = window?.__fbBatchedBridgeConfig?.remoteModuleConfig;
1954
+ if (!Array.isArray(remoteModuleConfig) || hostname !== "localhost" && hostname !== "127.0.0.1") {
1955
+ return { hostname, passed: false };
1956
+ }
1957
+ var constants = (remoteModuleConfig.find(getConstants) || [])[1];
1958
+ if (constants) {
1959
+ var serverHost = constants.ServerHost || hostname;
1960
+ return { hostname: serverHost.split(":")[0], passed: true };
1961
+ }
1962
+ return { hostname, passed: false };
1963
+ }
1964
+ function getConstants(config) {
1965
+ return config && (config[0] === "AndroidConstants" || config[0] === "PlatformConstants");
1966
+ }
1967
+ function getByRNRequirePolyfill(hostname) {
1968
+ var NativeModules;
1969
+ var PlatformConstants;
1970
+ var AndroidConstants;
1971
+ if (typeof window === "undefined" || !window.__DEV__ || typeof window.require !== "function" || // RN >= 0.56
1972
+ // TODO: Get NativeModules for RN >= 0.56
1973
+ window.require.name === "metroRequire") {
1974
+ return hostname;
1975
+ }
1976
+ NativeModules = window.require("NativeModules");
1977
+ if (!NativeModules || !NativeModules.PlatformConstants && !NativeModules.AndroidConstants) {
1978
+ return hostname;
1979
+ }
1980
+ PlatformConstants = NativeModules.PlatformConstants;
1981
+ AndroidConstants = NativeModules.AndroidConstants;
1982
+ var serverHost = (PlatformConstants ? PlatformConstants.ServerHost : AndroidConstants.ServerHost) || hostname;
1983
+ return serverHost.split(":")[0];
1984
+ }
1985
+ function getHost(hostname) {
1986
+ if (typeof __fbBatchedBridge !== "object" || hostname !== "localhost" && hostname !== "127.0.0.1") {
1987
+ return hostname;
1988
+ }
1989
+ var result = getByRemoteConfig(hostname);
1990
+ if (result.passed) {
1991
+ return result.hostname;
1992
+ }
1993
+ return getByRNRequirePolyfill(hostname);
1994
+ }
1995
+
1996
+ // src/View.tsx
1921
1997
  var import_jsx_runtime16 = require("react/jsx-runtime");
1922
1998
  var STORAGE_KEY = "lastOpenedStory";
1923
1999
  var View10 = class {
@@ -1965,25 +2041,33 @@ var View10 = class {
1965
2041
  }
1966
2042
  return { storySpecifier: "*", viewMode: "story" };
1967
2043
  };
1968
- // _getServerChannel = (params: Partial<Params> = {}) => {
1969
- // const host = getHost(params.host || 'localhost');
1970
- // const port = `:${params.port || 7007}`;
1971
- // const query = params.query || '';
1972
- // const websocketType = params.secured ? 'wss' : 'ws';
1973
- // const url = `${websocketType}://${host}${port}/${query}`;
1974
- // return createWebSocketChannel({
1975
- // url,
1976
- // async: true,
1977
- // onError: async () => {},
1978
- // });
1979
- // };
2044
+ _getServerChannel = (params = {}) => {
2045
+ const host = getHost(params.host || "localhost");
2046
+ const port = `:${params.port || 7007}`;
2047
+ const query = params.query || "";
2048
+ const websocketType = params.secured ? "wss" : "ws";
2049
+ const url = `${websocketType}://${host}${port}/${query}`;
2050
+ return (0, import_channels.createWebSocketChannel)({
2051
+ url,
2052
+ async: true,
2053
+ onError: async () => {
2054
+ }
2055
+ });
2056
+ };
1980
2057
  getStorybookUI = (params = {}) => {
1981
- const {
1982
- shouldPersistSelection = true,
1983
- onDeviceUI = true
1984
- /* enableWebsockets = false */
1985
- } = params;
2058
+ const { shouldPersistSelection = true, onDeviceUI = true, enableWebsockets = false } = params;
1986
2059
  const initialStory = this._getInitialStory(params);
2060
+ if (enableWebsockets) {
2061
+ console.log("websockets enabled");
2062
+ const channel = this._getServerChannel(params);
2063
+ import_manager_api2.addons.setChannel(channel);
2064
+ import_preview_api2.addons.setChannel(channel);
2065
+ this._channel = channel;
2066
+ this._preview.channel = channel;
2067
+ this._preview.setupListeners();
2068
+ channel.emit(import_core_events2.default.CHANNEL_CREATED);
2069
+ this._preview.initializeWithStoryIndex(this._storyIndex);
2070
+ }
1987
2071
  import_manager_api2.addons.loadAddons({
1988
2072
  store: () => ({
1989
2073
  fromId: (id) => this._preview.storyStore.getStoryContext(this._preview.storyStore.fromId(id)),
@@ -2052,7 +2136,7 @@ function prepareStories({
2052
2136
  };
2053
2137
  let importMap = {};
2054
2138
  const makeTitle = (fileName, userTitle) => {
2055
- const title = (0, import_preview_api.userOrAutoTitle)(fileName, storyEntries, userTitle);
2139
+ const title = (0, import_preview_api3.userOrAutoTitle)(fileName, storyEntries, userTitle);
2056
2140
  if (title) {
2057
2141
  return title.replace("./", "");
2058
2142
  } else {
@@ -2112,9 +2196,9 @@ function start({
2112
2196
  storyEntries
2113
2197
  }) {
2114
2198
  const { index, importMap } = prepareStories({ storyEntries });
2115
- const channel = (0, import_channels.createBrowserChannel)({ page: "preview" });
2199
+ const channel = (0, import_channels2.createBrowserChannel)({ page: "preview" });
2116
2200
  import_manager_api3.addons.setChannel(channel);
2117
- import_preview_api.addons.setChannel(channel);
2201
+ import_preview_api3.addons.setChannel(channel);
2118
2202
  const previewView = {
2119
2203
  prepareForStory: () => {
2120
2204
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, {});
@@ -2155,7 +2239,7 @@ function start({
2155
2239
  global.__STORYBOOK_PREVIEW__ = preview;
2156
2240
  global.__STORYBOOK_STORY_STORE__ = preview.storyStore;
2157
2241
  }
2158
- const getProjectAnnotations = async () => (0, import_preview_api.composeConfigs)([
2242
+ const getProjectAnnotations = async () => (0, import_preview_api3.composeConfigs)([
2159
2243
  {
2160
2244
  renderToCanvas: (context) => {
2161
2245
  view._setStory(context.storyContext);
package/dist/preview.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { R as Renderer, d as StoryContextForEnhancers, e as StrictArgTypes, A as Args } from './index.d-680e82dc.js';
1
+ import * as _storybook_docs_tools from '@storybook/docs-tools';
2
+ import { R as Renderer, d as StoryContextForEnhancers, A as Args, e as StrictArgTypes } from './index.d-82fc9196.js';
2
3
 
3
4
  declare const _default: {
4
- argTypesEnhancers: (<TRenderer extends Renderer>(context: StoryContextForEnhancers<TRenderer>) => StrictArgTypes<Args>)[];
5
+ argTypesEnhancers: (<TRenderer extends Renderer>(context: StoryContextForEnhancers<TRenderer, Args>) => StrictArgTypes<Args>)[];
5
6
  parameters: {
6
7
  docs: {
7
- extractArgTypes: any;
8
+ extractArgTypes: _storybook_docs_tools.ArgTypesExtractor;
8
9
  };
9
10
  };
10
11
  };
package/dist/preview.js CHANGED
@@ -22,13 +22,13 @@ __export(preview_exports, {
22
22
  default: () => preview_default
23
23
  });
24
24
  module.exports = __toCommonJS(preview_exports);
25
- var import_config = require("@storybook/react/dist/config");
25
+ var import_entry_preview_docs = require("@storybook/react/dist/entry-preview-docs");
26
26
  var import_docs_tools = require("@storybook/docs-tools");
27
27
  var preview_default = {
28
28
  argTypesEnhancers: [import_docs_tools.enhanceArgTypes],
29
29
  parameters: {
30
30
  docs: {
31
- extractArgTypes: import_config.parameters?.docs?.extractArgTypes
31
+ extractArgTypes: import_entry_preview_docs.parameters.docs.extractArgTypes
32
32
  }
33
33
  }
34
34
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/react-native",
3
- "version": "7.0.0-alpha.8",
3
+ "version": "7.6.8-alpha.0",
4
4
  "description": "A better way to develop React Native Components for your app",
5
5
  "keywords": [
6
6
  "react",
@@ -51,20 +51,20 @@
51
51
  "preset": "react-native"
52
52
  },
53
53
  "dependencies": {
54
- "@storybook/channel-websocket": "7.6.0-alpha.2",
55
- "@storybook/channels": "7.6.0-alpha.2",
56
- "@storybook/client-logger": "7.6.0-alpha.2",
57
- "@storybook/core-client": "7.6.0-alpha.2",
58
- "@storybook/core-common": "7.6.0-alpha.2",
59
- "@storybook/core-events": "7.6.0-alpha.2",
54
+ "@storybook/channel-websocket": "7.6.8",
55
+ "@storybook/channels": "7.6.8",
56
+ "@storybook/client-logger": "7.6.8",
57
+ "@storybook/core-client": "7.6.8",
58
+ "@storybook/core-common": "7.6.8",
59
+ "@storybook/core-events": "7.6.8",
60
60
  "@storybook/csf": "^0.1.1",
61
- "@storybook/docs-tools": "7.6.0-alpha.2",
61
+ "@storybook/docs-tools": "7.6.8",
62
62
  "@storybook/global": "^5.0.0",
63
- "@storybook/manager-api": "7.6.0-alpha.2",
64
- "@storybook/preview-api": "7.6.0-alpha.2",
65
- "@storybook/preview-web": "7.6.0-alpha.2",
66
- "@storybook/react": "7.6.0-alpha.2",
67
- "@storybook/react-native-theming": "^7.0.0-alpha.8",
63
+ "@storybook/manager-api": "7.6.8",
64
+ "@storybook/preview-api": "7.6.8",
65
+ "@storybook/preview-web": "7.6.8",
66
+ "@storybook/react": "7.6.8",
67
+ "@storybook/react-native-theming": "^7.6.8-alpha.0",
68
68
  "chokidar": "^3.5.1",
69
69
  "commander": "^8.2.0",
70
70
  "deepmerge": "^4.3.0",
@@ -74,7 +74,7 @@
74
74
  "util": "^0.12.4"
75
75
  },
76
76
  "devDependencies": {
77
- "@storybook/types": "7.6.0-alpha.2",
77
+ "@storybook/types": "7.6.8",
78
78
  "@types/jest": "^29.4.3",
79
79
  "@types/react": "~18.2.14",
80
80
  "babel-jest": "^29.4.3",
@@ -97,5 +97,5 @@
97
97
  "publishConfig": {
98
98
  "access": "public"
99
99
  },
100
- "gitHead": "c3837299ea85337f08cba55abb896bec7eb6e4ab"
100
+ "gitHead": "1fd96da743fbaf0da60d5b1080892c877044d374"
101
101
  }
@@ -24,7 +24,7 @@ import "@storybook/addon-ondevice-actions/register";
24
24
  global.STORIES = normalizedStories;
25
25
 
26
26
  export const view = start({
27
- annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/dist/preview')],
27
+ annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/preview')],
28
28
  storyEntries: normalizedStories
29
29
  });
30
30
  "
@@ -54,7 +54,7 @@ import "@storybook/addon-ondevice-actions/register";
54
54
  global.STORIES = normalizedStories;
55
55
 
56
56
  export const view = start({
57
- annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/dist/preview')],
57
+ annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/preview')],
58
58
  storyEntries: normalizedStories
59
59
  });
60
60
  "
@@ -84,7 +84,7 @@ import "@storybook/addon-ondevice-actions/register";
84
84
  global.STORIES = normalizedStories;
85
85
 
86
86
  export const view = start({
87
- annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/dist/preview')],
87
+ annotations: [require('./preview'),require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/preview')],
88
88
  storyEntries: normalizedStories
89
89
  });
90
90
  "
@@ -114,7 +114,7 @@ import "@storybook/addon-ondevice-actions/register";
114
114
  global.STORIES = normalizedStories;
115
115
 
116
116
  export const view = start({
117
- annotations: [require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/dist/preview')],
117
+ annotations: [require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/preview')],
118
118
  storyEntries: normalizedStories
119
119
  });
120
120
  "
@@ -53,7 +53,7 @@ function generate({ configPath, absolute = false, useJs = false }) {
53
53
 
54
54
  // TODO: implement presets or something similar
55
55
  const enhancer = main.addons?.includes('@storybook/addon-ondevice-actions')
56
- ? "require('@storybook/addon-actions/dist/preview')"
56
+ ? "require('@storybook/addon-actions/preview')"
57
57
  : '';
58
58
 
59
59
  const previewExists = getPreviewExists({ configPath });