@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 +4 -4
- package/dist/V6.js +159 -75
- package/dist/{View-8eae84cb.d.ts → View-7a09870e.d.ts} +2 -1
- package/dist/{index.d-680e82dc.d.ts → index.d-82fc9196.d.ts} +11 -11
- package/dist/index.d.ts +4 -4
- package/dist/index.js +157 -73
- package/dist/preview.d.ts +4 -3
- package/dist/preview.js +2 -2
- package/package.json +15 -15
- package/scripts/__snapshots__/generate.test.js.snap +4 -4
- package/scripts/generate.js +1 -1
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-
|
|
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-
|
|
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-
|
|
6
|
-
export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-
|
|
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
|
|
76
|
-
var
|
|
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
|
|
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)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
211
|
+
if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
|
|
205
212
|
return prevAtomState;
|
|
206
213
|
}
|
|
207
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
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 = !
|
|
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 (!
|
|
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
|
|
487
|
-
|
|
488
|
-
|
|
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
|
-
|
|
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
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
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
|
|
2206
|
+
const channel = new import_channels2.Channel({ async: true });
|
|
2123
2207
|
import_manager_api3.addons.setChannel(channel);
|
|
2124
|
-
channel.emit(
|
|
2125
|
-
const clientApi2 = import_global.global?.__STORYBOOK_CLIENT_API__ || new
|
|
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,
|
|
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(
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
-
export { a as ArgTypes, A as Args, P as Parameters, S as StoryContext } from './index.d-
|
|
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
|
|
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
|
|
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)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
204
|
+
if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {
|
|
198
205
|
return prevAtomState;
|
|
199
206
|
}
|
|
200
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
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 = !
|
|
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 (!
|
|
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
|
|
480
|
-
|
|
481
|
-
|
|
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
|
-
|
|
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
|
-
(
|
|
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
|
-
|
|
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
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
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,
|
|
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,
|
|
2199
|
+
const channel = (0, import_channels2.createBrowserChannel)({ page: "preview" });
|
|
2116
2200
|
import_manager_api3.addons.setChannel(channel);
|
|
2117
|
-
|
|
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,
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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.
|
|
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.
|
|
55
|
-
"@storybook/channels": "7.6.
|
|
56
|
-
"@storybook/client-logger": "7.6.
|
|
57
|
-
"@storybook/core-client": "7.6.
|
|
58
|
-
"@storybook/core-common": "7.6.
|
|
59
|
-
"@storybook/core-events": "7.6.
|
|
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.
|
|
61
|
+
"@storybook/docs-tools": "7.6.8",
|
|
62
62
|
"@storybook/global": "^5.0.0",
|
|
63
|
-
"@storybook/manager-api": "7.6.
|
|
64
|
-
"@storybook/preview-api": "7.6.
|
|
65
|
-
"@storybook/preview-web": "7.6.
|
|
66
|
-
"@storybook/react": "7.6.
|
|
67
|
-
"@storybook/react-native-theming": "^7.
|
|
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.
|
|
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": "
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
117
|
+
annotations: [require("@storybook/react-native/dist/preview"), require('@storybook/addon-actions/preview')],
|
|
118
118
|
storyEntries: normalizedStories
|
|
119
119
|
});
|
|
120
120
|
"
|
package/scripts/generate.js
CHANGED
|
@@ -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/
|
|
56
|
+
? "require('@storybook/addon-actions/preview')"
|
|
57
57
|
: '';
|
|
58
58
|
|
|
59
59
|
const previewExists = getPreviewExists({ configPath });
|