storybook 10.2.0-alpha.14 → 10.2.0-alpha.15
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/_browser-chunks/{chunk-3PJE6VLG.js → chunk-ASKQZAOS.js} +1 -12
- package/dist/_browser-chunks/{chunk-BGSDJMFM.js → chunk-NVLTWT3B.js} +18 -6
- package/dist/_node-chunks/{builder-manager-5XVPVHCY.js → builder-manager-SOKYB5NF.js} +12 -12
- package/dist/_node-chunks/{camelcase-FFGUJRYA.js → camelcase-SXQWF7PW.js} +7 -7
- package/dist/_node-chunks/{chunk-5QADKW4W.js → chunk-274OMYGE.js} +20 -20
- package/dist/_node-chunks/{chunk-CMIHYY2B.js → chunk-2BHD5YKF.js} +6 -6
- package/dist/_node-chunks/{chunk-GCGJVMS3.js → chunk-2FQAOAQ6.js} +12 -12
- package/dist/_node-chunks/{chunk-MBD6J24T.js → chunk-45UIB4YF.js} +7 -7
- package/dist/_node-chunks/{chunk-BVSGQAFJ.js → chunk-4GKVZO2T.js} +9 -9
- package/dist/_node-chunks/{chunk-E6HZLFOP.js → chunk-5KEIALUH.js} +6 -6
- package/dist/_node-chunks/{chunk-WSH26TMB.js → chunk-6SIUW3HU.js} +12 -12
- package/dist/_node-chunks/{chunk-OYPD7MWQ.js → chunk-AIIQJ6UR.js} +7 -7
- package/dist/_node-chunks/{chunk-GCZN63RS.js → chunk-BOY3TNPC.js} +9 -9
- package/dist/_node-chunks/{chunk-QMQVY3KQ.js → chunk-BRW7NFUP.js} +7 -7
- package/dist/_node-chunks/{chunk-AAS5TNPH.js → chunk-E3Y5MHXD.js} +7 -7
- package/dist/_node-chunks/{chunk-APXUJGPH.js → chunk-ENNDE4GC.js} +10 -10
- package/dist/_node-chunks/{chunk-AKBKA7MR.js → chunk-FKBWQGIF.js} +6 -6
- package/dist/_node-chunks/{chunk-HCZ44VWL.js → chunk-HFKM7JHQ.js} +6 -6
- package/dist/_node-chunks/{chunk-HMYS7PGR.js → chunk-K4YVLJRS.js} +6 -6
- package/dist/_node-chunks/{chunk-QIMAARKG.js → chunk-KNGN3UEO.js} +7 -7
- package/dist/_node-chunks/{chunk-YTUKBZV2.js → chunk-MD52RVZX.js} +7 -7
- package/dist/_node-chunks/chunk-MM7Z4SG7.js +23 -0
- package/dist/_node-chunks/{chunk-3VHD3RGW.js → chunk-MQZLLJRG.js} +8 -8
- package/dist/_node-chunks/{chunk-XDKXHH75.js → chunk-PI7P5HFH.js} +13 -13
- package/dist/_node-chunks/{chunk-NTVADDN6.js → chunk-Q6WUEJ4S.js} +6 -6
- package/dist/_node-chunks/{chunk-YUBIHW7G.js → chunk-QPKBPYOY.js} +7 -7
- package/dist/_node-chunks/{chunk-2YADPD4P.js → chunk-RGWB6DD7.js} +6 -6
- package/dist/_node-chunks/{chunk-TXHI4M3M.js → chunk-SZWIX5YC.js} +9 -9
- package/dist/_node-chunks/{chunk-6GTCCSGS.js → chunk-T57UCO67.js} +7 -7
- package/dist/_node-chunks/{chunk-JFZSVDUQ.js → chunk-TN3Q52LO.js} +6 -6
- package/dist/_node-chunks/chunk-TYSSQECX.js +61 -0
- package/dist/_node-chunks/chunk-YP34ARUD.js +18 -0
- package/dist/_node-chunks/{globby-WIEDAEV7.js → globby-LGQ5P2JB.js} +9 -9
- package/dist/_node-chunks/{lib-2RMM65EQ.js → lib-5LBLULG3.js} +7 -7
- package/dist/_node-chunks/{mdx-N42X6CFJ-AFWG3A6F.js → mdx-N42X6CFJ-TAPL5IEO.js} +8 -8
- package/dist/_node-chunks/{p-limit-JNVCICJD.js → p-limit-GTMOHYQF.js} +7 -7
- package/dist/babel/index.js +10 -10
- package/dist/bin/core.js +12 -12
- package/dist/bin/dispatcher.js +11 -11
- package/dist/bin/loader.js +9 -9
- package/dist/cli/index.d.ts +176 -176
- package/dist/cli/index.js +18 -18
- package/dist/common/index.js +19 -19
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +167 -166
- package/dist/core-events/index.d.ts +4 -4
- package/dist/core-server/index.d.ts +11 -1
- package/dist/core-server/index.js +217 -76
- package/dist/core-server/presets/common-manager.js +176 -134
- package/dist/core-server/presets/common-override-preset.js +9 -9
- package/dist/core-server/presets/common-preset.js +27 -26
- package/dist/csf/index.d.ts +8 -6
- package/dist/csf/index.js +1 -1
- package/dist/csf-tools/index.js +10 -10
- package/dist/docs-tools/index.d.ts +2 -2
- package/dist/manager/globals-runtime.js +97 -94
- package/dist/manager/runtime.js +1755 -985
- package/dist/manager-api/index.d.ts +1 -1
- package/dist/manager-api/index.js +10 -8
- package/dist/mocking-utils/index.js +8 -8
- package/dist/node-logger/index.js +9 -9
- package/dist/preview/runtime.js +18 -6
- package/dist/preview-api/index.d.ts +67 -68
- package/dist/preview-api/index.js +1 -1
- package/dist/server-errors.js +11 -11
- package/dist/telemetry/index.js +22 -22
- package/dist/types/index.d.ts +12 -6
- package/dist/viewport/index.d.ts +5 -3
- package/dist/viewport/index.js +12 -3
- package/package.json +2 -2
- package/dist/_node-chunks/chunk-N72VKZTH.js +0 -23
- package/dist/_node-chunks/chunk-NKHFAHA7.js +0 -18
- package/dist/_node-chunks/chunk-ZJ3OV7OO.js +0 -61
- package/dist/_node-chunks/dist-OBG2P3MZ.js +0 -121
|
@@ -442,7 +442,7 @@ interface SubAPI$4 {
|
|
|
442
442
|
* @param shortcuts The new shortcuts to set.
|
|
443
443
|
* @returns A promise that resolves to the new shortcuts.
|
|
444
444
|
*/
|
|
445
|
-
setShortcuts(shortcuts: API_Shortcuts): Promise<API_Shortcuts>;
|
|
445
|
+
setShortcuts(update: API_Shortcuts | ((shortcuts: API_Shortcuts) => API_Shortcuts)): Promise<API_Shortcuts>;
|
|
446
446
|
/**
|
|
447
447
|
* Sets the shortcut for the given action to the given value.
|
|
448
448
|
*
|
|
@@ -1502,22 +1502,24 @@ var init10 = ({ store: store2, fullAPI, provider }) => {
|
|
|
1502
1502
|
defaults[actionName] = defaultShortcut;
|
|
1503
1503
|
}), defaults;
|
|
1504
1504
|
},
|
|
1505
|
-
async setShortcuts(
|
|
1506
|
-
|
|
1505
|
+
async setShortcuts(update2) {
|
|
1506
|
+
let { shortcuts } = await store2.setState(
|
|
1507
|
+
(state2) => ({ shortcuts: typeof update2 == "function" ? update2(state2.shortcuts) : update2 }),
|
|
1508
|
+
{ persistence: "permanent" }
|
|
1509
|
+
);
|
|
1510
|
+
return shortcuts;
|
|
1507
1511
|
},
|
|
1508
1512
|
async restoreAllDefaultShortcuts() {
|
|
1509
1513
|
return api.setShortcuts(api.getDefaultShortcuts());
|
|
1510
1514
|
},
|
|
1511
1515
|
async setShortcut(action, value) {
|
|
1512
|
-
|
|
1513
|
-
return await api.setShortcuts({ ...shortcuts, [action]: value }), value;
|
|
1516
|
+
return await api.setShortcuts((shortcuts) => ({ ...shortcuts, [action]: value })), value;
|
|
1514
1517
|
},
|
|
1515
1518
|
async setAddonShortcut(addon, shortcut) {
|
|
1516
|
-
|
|
1517
|
-
return await api.setShortcuts({
|
|
1519
|
+
return await api.setShortcuts((shortcuts) => ({
|
|
1518
1520
|
...shortcuts,
|
|
1519
1521
|
[`${addon}-${shortcut.actionName}`]: shortcut.defaultShortcut
|
|
1520
|
-
}), addonsShortcuts[`${addon}-${shortcut.actionName}`] = shortcut, shortcut;
|
|
1522
|
+
})), addonsShortcuts[`${addon}-${shortcut.actionName}`] = shortcut, shortcut;
|
|
1521
1523
|
},
|
|
1522
1524
|
async restoreDefaultShortcut(action) {
|
|
1523
1525
|
let defaultShortcut = api.getDefaultShortcuts()[action];
|
|
@@ -2382,7 +2384,7 @@ import { global as global8 } from "@storybook/global";
|
|
|
2382
2384
|
import semver from "semver";
|
|
2383
2385
|
|
|
2384
2386
|
// src/manager-api/version.ts
|
|
2385
|
-
var version = "10.2.0-alpha.
|
|
2387
|
+
var version = "10.2.0-alpha.15";
|
|
2386
2388
|
|
|
2387
2389
|
// src/manager-api/modules/versions.ts
|
|
2388
2390
|
var { VERSIONCHECK } = global8, getVersionCheckData = (0, import_memoizerific2.default)(1)(() => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_ekkdwuux1sk from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_ekkdwuux1sk from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_ekkdwuux1sk from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_ekkdwuux1sk.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_ekkdwuux1sk.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_ekkdwuux1sk.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -16,8 +16,8 @@ import {
|
|
|
16
16
|
join,
|
|
17
17
|
normalize,
|
|
18
18
|
resolve
|
|
19
|
-
} from "../_node-chunks/chunk-
|
|
20
|
-
import "../_node-chunks/chunk-
|
|
19
|
+
} from "../_node-chunks/chunk-FKBWQGIF.js";
|
|
20
|
+
import "../_node-chunks/chunk-5KEIALUH.js";
|
|
21
21
|
|
|
22
22
|
// ../../node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
|
|
23
23
|
var comma = 44, semicolon = 59, chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", intToChar = new Uint8Array(64), charToInt = new Uint8Array(128);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_ekkdwuux1sk from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_ekkdwuux1sk from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_ekkdwuux1sk from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_ekkdwuux1sk.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_ekkdwuux1sk.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_ekkdwuux1sk.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
once,
|
|
23
23
|
prompt,
|
|
24
24
|
protectUrls
|
|
25
|
-
} from "../_node-chunks/chunk-
|
|
26
|
-
import "../_node-chunks/chunk-
|
|
27
|
-
import "../_node-chunks/chunk-
|
|
25
|
+
} from "../_node-chunks/chunk-MQZLLJRG.js";
|
|
26
|
+
import "../_node-chunks/chunk-T57UCO67.js";
|
|
27
|
+
import "../_node-chunks/chunk-5KEIALUH.js";
|
|
28
28
|
var export_instance = import_npmlog.default;
|
|
29
29
|
export {
|
|
30
30
|
CLI_COLORS,
|
package/dist/preview/runtime.js
CHANGED
|
@@ -16443,14 +16443,26 @@ function mountDestructured(playFunction) {
|
|
|
16443
16443
|
return playFunction != null && getUsedProps(playFunction).includes("mount");
|
|
16444
16444
|
}
|
|
16445
16445
|
function getUsedProps(fn3) {
|
|
16446
|
-
let
|
|
16447
|
-
if (!
|
|
16446
|
+
let [, args, body] = fn3.toString().match(/[^(]*\(([^)]+)\)(?:.*{([^]+)})?/) || [];
|
|
16447
|
+
if (!args)
|
|
16448
|
+
return [];
|
|
16449
|
+
let [firstArg] = splitByComma(args);
|
|
16450
|
+
if (!firstArg)
|
|
16448
16451
|
return [];
|
|
16449
|
-
let
|
|
16450
|
-
if (
|
|
16452
|
+
let [, destructuredProps] = firstArg.match(/^{([^]+)}$/) || [];
|
|
16453
|
+
if (destructuredProps)
|
|
16454
|
+
return splitByComma(stripComments(destructuredProps)).map(
|
|
16455
|
+
(prop) => prop.replace(/:.*|=.*/g, "").trim()
|
|
16456
|
+
);
|
|
16457
|
+
if (!firstArg.match(/^[a-z_$][0-9a-z_$]*$/i))
|
|
16451
16458
|
return [];
|
|
16452
|
-
let
|
|
16453
|
-
return
|
|
16459
|
+
let escapedArg = firstArg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), [, destructuredArg] = body?.trim()?.match(new RegExp(`^(?:const|let|var)\\s*{([^}]+)}\\s*=\\s*${escapedArg};`)) || [];
|
|
16460
|
+
return destructuredArg ? splitByComma(stripComments(destructuredArg)).map(
|
|
16461
|
+
(prop) => prop.replace(/:.*|=.*/g, "").trim()
|
|
16462
|
+
) : [];
|
|
16463
|
+
}
|
|
16464
|
+
function stripComments(s3) {
|
|
16465
|
+
return s3 = s3.replace(/\/\/.*$/gm, ""), s3 = s3.replace(/\/\*[\s\S]*?\*\//g, ""), s3;
|
|
16454
16466
|
}
|
|
16455
16467
|
function splitByComma(s3) {
|
|
16456
16468
|
let result = [], stack = [], start = 0;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Channel } from 'storybook/internal/channels';
|
|
2
2
|
import * as storybook_internal_types from 'storybook/internal/types';
|
|
3
3
|
import { Args, Renderer, StoryContext, DecoratorApplicator, StoryId, Addon_StoryWrapper, PreparedStory, Globals, GlobalTypes, StoryIndex, StoryName, ComponentTitle, IndexEntry, Path, StoryAnnotationsOrFn, NormalizedComponentAnnotations, NormalizedStoryAnnotations, ModuleExports, CSFFile, NormalizedProjectAnnotations, ModuleExport, PreparedMeta, ProjectAnnotations, StepRunner, ComposedStoryFn, Store_CSFExports, ComposeStoryFn, LegacyStoryAnnotationsOrFn, ComponentAnnotations, NamedOrDefaultProjectAnnotations, ModuleImportFn, StoryContextForEnhancers, Parameters, StrictArgTypes, ArgTypesEnhancer, LegacyStoryFn, DecoratorFunction, PartialStoryFn, StoryContextUpdate, NormalizedStoriesSpecifier, Addon_StorySortParameterV7, DocsContextProps, ResolvedModuleExportType, ResolvedModuleExportFromType, StoryRenderOptions, RenderContextCallbacks, RenderToCanvas, ViewMode } from 'storybook/internal/types';
|
|
4
|
-
import * as storybook_internal_csf from 'storybook/internal/csf';
|
|
5
4
|
import { Story, Meta, CleanupCallback, StoryContext as StoryContext$1, Args as Args$1 } from 'storybook/internal/csf';
|
|
6
5
|
import { RequestData, ArgTypesRequestPayload } from 'storybook/internal/core-events';
|
|
7
6
|
|
|
@@ -416,7 +415,7 @@ declare function createPlaywrightTest<TFixture extends {
|
|
|
416
415
|
}>(baseTest: TFixture): TFixture;
|
|
417
416
|
|
|
418
417
|
declare function getCsfFactoryAnnotations<TRenderer extends Renderer = Renderer, TArgs extends Args = Args>(story: LegacyStoryAnnotationsOrFn<TRenderer> | Story<Renderer>, meta?: ComponentAnnotations<TRenderer, TArgs> | Meta<Renderer>, projectAnnotations?: ProjectAnnotations<TRenderer>): {
|
|
419
|
-
story:
|
|
418
|
+
story: storybook_internal_types.StoryAnnotations<Renderer, unknown>;
|
|
420
419
|
meta: ComponentAnnotations<Renderer, unknown>;
|
|
421
420
|
preview: storybook_internal_types.NormalizedProjectAnnotations<Renderer>;
|
|
422
421
|
} | {
|
|
@@ -478,10 +477,10 @@ declare class StoryStore<TRenderer extends Renderer> {
|
|
|
478
477
|
getStoryContext(story: PreparedStory<TRenderer>, { forceInitialArgs }?: {
|
|
479
478
|
forceInitialArgs?: boolean | undefined;
|
|
480
479
|
}): {
|
|
481
|
-
args:
|
|
482
|
-
initialGlobals:
|
|
483
|
-
globalTypes: (
|
|
484
|
-
userGlobals:
|
|
480
|
+
args: storybook_internal_types.Args;
|
|
481
|
+
initialGlobals: storybook_internal_types.Globals;
|
|
482
|
+
globalTypes: (storybook_internal_types.GlobalTypes & storybook_internal_types.StrictGlobalTypes) | undefined;
|
|
483
|
+
userGlobals: storybook_internal_types.Globals;
|
|
485
484
|
reporting: ReporterAPI;
|
|
486
485
|
globals: {
|
|
487
486
|
[x: string]: any;
|
|
@@ -493,31 +492,31 @@ declare class StoryStore<TRenderer extends Renderer> {
|
|
|
493
492
|
subcomponents?: Record<string, (TRenderer & {
|
|
494
493
|
T: any;
|
|
495
494
|
})["component"]> | undefined;
|
|
496
|
-
parameters:
|
|
497
|
-
initialArgs:
|
|
498
|
-
argTypes:
|
|
499
|
-
componentId:
|
|
500
|
-
title:
|
|
501
|
-
kind:
|
|
495
|
+
parameters: storybook_internal_types.Parameters;
|
|
496
|
+
initialArgs: storybook_internal_types.Args;
|
|
497
|
+
argTypes: storybook_internal_types.StrictArgTypes<storybook_internal_types.Args>;
|
|
498
|
+
componentId: storybook_internal_types.ComponentId;
|
|
499
|
+
title: storybook_internal_types.ComponentTitle;
|
|
500
|
+
kind: storybook_internal_types.ComponentTitle;
|
|
502
501
|
id: StoryId;
|
|
503
|
-
name:
|
|
504
|
-
story:
|
|
505
|
-
tags:
|
|
502
|
+
name: storybook_internal_types.StoryName;
|
|
503
|
+
story: storybook_internal_types.StoryName;
|
|
504
|
+
tags: storybook_internal_types.Tag[];
|
|
506
505
|
moduleExport: storybook_internal_types.ModuleExport;
|
|
507
|
-
originalStoryFn:
|
|
508
|
-
undecoratedStoryFn:
|
|
509
|
-
unboundStoryFn:
|
|
510
|
-
applyLoaders: (context:
|
|
511
|
-
applyBeforeEach: (context:
|
|
512
|
-
applyAfterEach: (context:
|
|
513
|
-
playFunction?: ((context:
|
|
514
|
-
runStep:
|
|
515
|
-
mount: (context:
|
|
506
|
+
originalStoryFn: storybook_internal_types.ArgsStoryFn<TRenderer>;
|
|
507
|
+
undecoratedStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
508
|
+
unboundStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
509
|
+
applyLoaders: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<Record<string, any>>;
|
|
510
|
+
applyBeforeEach: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<CleanupCallback[]>;
|
|
511
|
+
applyAfterEach: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<void>;
|
|
512
|
+
playFunction?: ((context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<void> | void) | undefined;
|
|
513
|
+
runStep: storybook_internal_types.StepRunner<TRenderer>;
|
|
514
|
+
mount: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => () => Promise<storybook_internal_types.Canvas>;
|
|
516
515
|
testingLibraryRender?: (...args: never[]) => unknown;
|
|
517
516
|
renderToCanvas?: storybook_internal_types.RenderToCanvas<TRenderer> | undefined;
|
|
518
517
|
usesMount: boolean;
|
|
519
|
-
storyGlobals:
|
|
520
|
-
} & Pick<
|
|
518
|
+
storyGlobals: storybook_internal_types.Globals;
|
|
519
|
+
} & Pick<storybook_internal_types.StoryContextForLoaders<Renderer, storybook_internal_types.Args>, "allArgs" | "argsByTarget" | "unmappedArgs">;
|
|
521
520
|
addCleanupCallbacks(story: PreparedStory<TRenderer>, ...callbacks: CleanupCallback[]): void;
|
|
522
521
|
cleanupStory(story: PreparedStory<TRenderer>): Promise<void>;
|
|
523
522
|
extract(options?: {
|
|
@@ -533,7 +532,7 @@ declare class StoryStore<TRenderer extends Renderer> {
|
|
|
533
532
|
declare const combineParameters: (...parameterSets: (Parameters | undefined)[]) => Parameters;
|
|
534
533
|
|
|
535
534
|
type PropDescriptor = string[] | RegExp;
|
|
536
|
-
declare const filterArgTypes: (argTypes: StrictArgTypes, include?: PropDescriptor, exclude?: PropDescriptor) => Partial<StrictArgTypes<
|
|
535
|
+
declare const filterArgTypes: (argTypes: StrictArgTypes, include?: PropDescriptor, exclude?: PropDescriptor) => Partial<StrictArgTypes<storybook_internal_types.Args>>;
|
|
537
536
|
|
|
538
537
|
declare const inferControls: ArgTypesEnhancer<Renderer>;
|
|
539
538
|
|
|
@@ -583,10 +582,10 @@ declare class DocsContext<TRenderer extends Renderer> implements DocsContextProp
|
|
|
583
582
|
getStoryContext: (story: PreparedStory<TRenderer>) => {
|
|
584
583
|
loaded: {};
|
|
585
584
|
viewMode: string;
|
|
586
|
-
args:
|
|
587
|
-
initialGlobals:
|
|
588
|
-
globalTypes: (
|
|
589
|
-
userGlobals:
|
|
585
|
+
args: storybook_internal_types.Args;
|
|
586
|
+
initialGlobals: storybook_internal_types.Globals;
|
|
587
|
+
globalTypes: (storybook_internal_types.GlobalTypes & storybook_internal_types.StrictGlobalTypes) | undefined;
|
|
588
|
+
userGlobals: storybook_internal_types.Globals;
|
|
590
589
|
reporting: ReporterAPI;
|
|
591
590
|
globals: {
|
|
592
591
|
[x: string]: any;
|
|
@@ -598,30 +597,30 @@ declare class DocsContext<TRenderer extends Renderer> implements DocsContextProp
|
|
|
598
597
|
subcomponents?: Record<string, (TRenderer & {
|
|
599
598
|
T: any;
|
|
600
599
|
})["component"]> | undefined;
|
|
601
|
-
parameters:
|
|
602
|
-
initialArgs:
|
|
603
|
-
argTypes:
|
|
604
|
-
componentId:
|
|
605
|
-
title:
|
|
606
|
-
kind:
|
|
600
|
+
parameters: storybook_internal_types.Parameters;
|
|
601
|
+
initialArgs: storybook_internal_types.Args;
|
|
602
|
+
argTypes: storybook_internal_types.StrictArgTypes<storybook_internal_types.Args>;
|
|
603
|
+
componentId: storybook_internal_types.ComponentId;
|
|
604
|
+
title: storybook_internal_types.ComponentTitle;
|
|
605
|
+
kind: storybook_internal_types.ComponentTitle;
|
|
607
606
|
id: StoryId;
|
|
608
607
|
name: StoryName;
|
|
609
608
|
story: StoryName;
|
|
610
|
-
tags:
|
|
609
|
+
tags: storybook_internal_types.Tag[];
|
|
611
610
|
moduleExport: ModuleExport;
|
|
612
|
-
originalStoryFn:
|
|
613
|
-
undecoratedStoryFn:
|
|
614
|
-
unboundStoryFn:
|
|
615
|
-
applyLoaders: (context:
|
|
616
|
-
applyBeforeEach: (context:
|
|
617
|
-
applyAfterEach: (context:
|
|
618
|
-
playFunction?: ((context:
|
|
619
|
-
runStep:
|
|
620
|
-
mount: (context:
|
|
611
|
+
originalStoryFn: storybook_internal_types.ArgsStoryFn<TRenderer>;
|
|
612
|
+
undecoratedStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
613
|
+
unboundStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
614
|
+
applyLoaders: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<Record<string, any>>;
|
|
615
|
+
applyBeforeEach: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<storybook_internal_types.CleanupCallback[]>;
|
|
616
|
+
applyAfterEach: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<void>;
|
|
617
|
+
playFunction?: ((context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => Promise<void> | void) | undefined;
|
|
618
|
+
runStep: storybook_internal_types.StepRunner<TRenderer>;
|
|
619
|
+
mount: (context: storybook_internal_types.StoryContext<TRenderer, storybook_internal_types.Args>) => () => Promise<storybook_internal_types.Canvas>;
|
|
621
620
|
testingLibraryRender?: (...args: never[]) => unknown;
|
|
622
621
|
renderToCanvas?: storybook_internal_types.RenderToCanvas<TRenderer> | undefined;
|
|
623
622
|
usesMount: boolean;
|
|
624
|
-
storyGlobals:
|
|
623
|
+
storyGlobals: storybook_internal_types.Globals;
|
|
625
624
|
allArgs: any;
|
|
626
625
|
argsByTarget: any;
|
|
627
626
|
unmappedArgs: any;
|
|
@@ -843,7 +842,7 @@ declare class Preview<TRenderer extends Renderer> {
|
|
|
843
842
|
}): {
|
|
844
843
|
args: Args;
|
|
845
844
|
initialGlobals: Globals;
|
|
846
|
-
globalTypes: (
|
|
845
|
+
globalTypes: (storybook_internal_types.GlobalTypes & storybook_internal_types.StrictGlobalTypes) | undefined;
|
|
847
846
|
userGlobals: Globals;
|
|
848
847
|
reporting: ReporterAPI;
|
|
849
848
|
globals: {
|
|
@@ -856,34 +855,34 @@ declare class Preview<TRenderer extends Renderer> {
|
|
|
856
855
|
subcomponents?: Record<string, (TRenderer & {
|
|
857
856
|
T: any;
|
|
858
857
|
})["component"]> | undefined;
|
|
859
|
-
parameters:
|
|
858
|
+
parameters: storybook_internal_types.Parameters;
|
|
860
859
|
initialArgs: Args;
|
|
861
|
-
argTypes:
|
|
862
|
-
componentId:
|
|
863
|
-
title:
|
|
864
|
-
kind:
|
|
860
|
+
argTypes: storybook_internal_types.StrictArgTypes<Args>;
|
|
861
|
+
componentId: storybook_internal_types.ComponentId;
|
|
862
|
+
title: storybook_internal_types.ComponentTitle;
|
|
863
|
+
kind: storybook_internal_types.ComponentTitle;
|
|
865
864
|
id: StoryId;
|
|
866
|
-
name:
|
|
867
|
-
story:
|
|
868
|
-
tags:
|
|
865
|
+
name: storybook_internal_types.StoryName;
|
|
866
|
+
story: storybook_internal_types.StoryName;
|
|
867
|
+
tags: storybook_internal_types.Tag[];
|
|
869
868
|
moduleExport: storybook_internal_types.ModuleExport;
|
|
870
|
-
originalStoryFn:
|
|
871
|
-
undecoratedStoryFn:
|
|
872
|
-
unboundStoryFn:
|
|
873
|
-
applyLoaders: (context:
|
|
874
|
-
applyBeforeEach: (context:
|
|
875
|
-
applyAfterEach: (context:
|
|
876
|
-
playFunction?: ((context:
|
|
877
|
-
runStep:
|
|
878
|
-
mount: (context:
|
|
869
|
+
originalStoryFn: storybook_internal_types.ArgsStoryFn<TRenderer>;
|
|
870
|
+
undecoratedStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
871
|
+
unboundStoryFn: storybook_internal_types.LegacyStoryFn<TRenderer>;
|
|
872
|
+
applyLoaders: (context: storybook_internal_types.StoryContext<TRenderer, Args>) => Promise<Record<string, any>>;
|
|
873
|
+
applyBeforeEach: (context: storybook_internal_types.StoryContext<TRenderer, Args>) => Promise<CleanupCallback[]>;
|
|
874
|
+
applyAfterEach: (context: storybook_internal_types.StoryContext<TRenderer, Args>) => Promise<void>;
|
|
875
|
+
playFunction?: ((context: storybook_internal_types.StoryContext<TRenderer, Args>) => Promise<void> | void) | undefined;
|
|
876
|
+
runStep: storybook_internal_types.StepRunner<TRenderer>;
|
|
877
|
+
mount: (context: storybook_internal_types.StoryContext<TRenderer, Args>) => () => Promise<storybook_internal_types.Canvas>;
|
|
879
878
|
testingLibraryRender?: (...args: never[]) => unknown;
|
|
880
879
|
renderToCanvas?: RenderToCanvas<TRenderer> | undefined;
|
|
881
880
|
usesMount: boolean;
|
|
882
881
|
storyGlobals: Globals;
|
|
883
|
-
} & Pick<
|
|
882
|
+
} & Pick<storybook_internal_types.StoryContextForLoaders<Renderer, Args>, "allArgs" | "argsByTarget" | "unmappedArgs">;
|
|
884
883
|
extract(options?: {
|
|
885
884
|
includeDocsOnly: boolean;
|
|
886
|
-
}): Promise<Record<string,
|
|
885
|
+
}): Promise<Record<string, storybook_internal_types.StoryContextForEnhancers<TRenderer, Args>>>;
|
|
887
886
|
renderPreviewEntryError(reason: string, err: Error): void;
|
|
888
887
|
}
|
|
889
888
|
|
package/dist/server-errors.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_ekkdwuux1sk from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_ekkdwuux1sk from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_ekkdwuux1sk from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_ekkdwuux1sk.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_ekkdwuux1sk.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_ekkdwuux1sk.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -46,13 +46,13 @@ import {
|
|
|
46
46
|
WebpackCompilationError,
|
|
47
47
|
WebpackInvocationError,
|
|
48
48
|
WebpackMissingStatsError
|
|
49
|
-
} from "./_node-chunks/chunk-
|
|
49
|
+
} from "./_node-chunks/chunk-ENNDE4GC.js";
|
|
50
50
|
import {
|
|
51
51
|
StorybookError
|
|
52
|
-
} from "./_node-chunks/chunk-
|
|
53
|
-
import "./_node-chunks/chunk-
|
|
54
|
-
import "./_node-chunks/chunk-
|
|
55
|
-
import "./_node-chunks/chunk-
|
|
52
|
+
} from "./_node-chunks/chunk-TN3Q52LO.js";
|
|
53
|
+
import "./_node-chunks/chunk-QPKBPYOY.js";
|
|
54
|
+
import "./_node-chunks/chunk-T57UCO67.js";
|
|
55
|
+
import "./_node-chunks/chunk-5KEIALUH.js";
|
|
56
56
|
export {
|
|
57
57
|
AddonVitestPostinstallConfigUpdateError,
|
|
58
58
|
AddonVitestPostinstallError,
|
package/dist/telemetry/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import CJS_COMPAT_NODE_URL_ekkdwuux1sk from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_ekkdwuux1sk from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_ekkdwuux1sk from "node:module";
|
|
4
4
|
|
|
5
|
-
var __filename =
|
|
6
|
-
var __dirname =
|
|
7
|
-
var require =
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_ekkdwuux1sk.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_ekkdwuux1sk.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_ekkdwuux1sk.createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
// ------------------------------------------------------------
|
|
10
10
|
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
@@ -25,22 +25,22 @@ import {
|
|
|
25
25
|
sanitizeAddonName,
|
|
26
26
|
sanitizeError,
|
|
27
27
|
telemetry
|
|
28
|
-
} from "../_node-chunks/chunk-
|
|
29
|
-
import "../_node-chunks/chunk-
|
|
30
|
-
import "../_node-chunks/chunk-
|
|
31
|
-
import "../_node-chunks/chunk-
|
|
32
|
-
import "../_node-chunks/chunk-
|
|
33
|
-
import "../_node-chunks/chunk-
|
|
34
|
-
import "../_node-chunks/chunk-
|
|
35
|
-
import "../_node-chunks/chunk-
|
|
36
|
-
import "../_node-chunks/chunk-
|
|
37
|
-
import "../_node-chunks/chunk-
|
|
38
|
-
import "../_node-chunks/chunk-
|
|
39
|
-
import "../_node-chunks/chunk-
|
|
40
|
-
import "../_node-chunks/chunk-
|
|
41
|
-
import "../_node-chunks/chunk-
|
|
42
|
-
import "../_node-chunks/chunk-
|
|
43
|
-
import "../_node-chunks/chunk-
|
|
28
|
+
} from "../_node-chunks/chunk-6SIUW3HU.js";
|
|
29
|
+
import "../_node-chunks/chunk-YP34ARUD.js";
|
|
30
|
+
import "../_node-chunks/chunk-274OMYGE.js";
|
|
31
|
+
import "../_node-chunks/chunk-TYSSQECX.js";
|
|
32
|
+
import "../_node-chunks/chunk-AIIQJ6UR.js";
|
|
33
|
+
import "../_node-chunks/chunk-MQZLLJRG.js";
|
|
34
|
+
import "../_node-chunks/chunk-4GKVZO2T.js";
|
|
35
|
+
import "../_node-chunks/chunk-Q6WUEJ4S.js";
|
|
36
|
+
import "../_node-chunks/chunk-HFKM7JHQ.js";
|
|
37
|
+
import "../_node-chunks/chunk-E3Y5MHXD.js";
|
|
38
|
+
import "../_node-chunks/chunk-FKBWQGIF.js";
|
|
39
|
+
import "../_node-chunks/chunk-MD52RVZX.js";
|
|
40
|
+
import "../_node-chunks/chunk-RGWB6DD7.js";
|
|
41
|
+
import "../_node-chunks/chunk-QPKBPYOY.js";
|
|
42
|
+
import "../_node-chunks/chunk-T57UCO67.js";
|
|
43
|
+
import "../_node-chunks/chunk-5KEIALUH.js";
|
|
44
44
|
export {
|
|
45
45
|
ErrorCollector,
|
|
46
46
|
addToGlobalContext,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2468,14 +2468,14 @@ interface ComponentManifest {
|
|
|
2468
2468
|
id: string;
|
|
2469
2469
|
path: string;
|
|
2470
2470
|
name: string;
|
|
2471
|
-
description?: string;
|
|
2472
|
-
import?: string;
|
|
2473
|
-
summary?: string;
|
|
2471
|
+
description?: string | undefined;
|
|
2472
|
+
import?: string | undefined;
|
|
2473
|
+
summary?: string | undefined;
|
|
2474
2474
|
stories: {
|
|
2475
2475
|
name: string;
|
|
2476
|
-
snippet?: string;
|
|
2477
|
-
description?: string;
|
|
2478
|
-
summary?: string;
|
|
2476
|
+
snippet?: string | undefined;
|
|
2477
|
+
description?: string | undefined;
|
|
2478
|
+
summary?: string | undefined;
|
|
2479
2479
|
error?: {
|
|
2480
2480
|
name: string;
|
|
2481
2481
|
message: string;
|
|
@@ -2562,6 +2562,12 @@ interface StorybookConfigRaw {
|
|
|
2562
2562
|
* @default true
|
|
2563
2563
|
*/
|
|
2564
2564
|
actions?: boolean;
|
|
2565
|
+
/**
|
|
2566
|
+
* Enable the onboarding checklist sidebar widget
|
|
2567
|
+
*
|
|
2568
|
+
* @default true
|
|
2569
|
+
*/
|
|
2570
|
+
sidebarOnboardingChecklist?: boolean;
|
|
2565
2571
|
/**
|
|
2566
2572
|
* @temporary This feature flag is a migration assistant, and is scheduled to be removed.
|
|
2567
2573
|
*
|
package/dist/viewport/index.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ declare const TOOL_ID = "storybook/viewport/tool";
|
|
|
6
6
|
interface Viewport {
|
|
7
7
|
name: string;
|
|
8
8
|
styles: ViewportStyles;
|
|
9
|
-
type?:
|
|
9
|
+
type?: ViewportType;
|
|
10
10
|
}
|
|
11
|
+
type ViewportType = 'desktop' | 'mobile' | 'tablet' | 'watch' | 'other';
|
|
11
12
|
interface ViewportStyles {
|
|
12
13
|
height: string;
|
|
13
14
|
width: string;
|
|
@@ -16,7 +17,8 @@ type ViewportMap = Record<string, Viewport>;
|
|
|
16
17
|
type GlobalState = {
|
|
17
18
|
/**
|
|
18
19
|
* When set, the viewport is applied and cannot be changed using the toolbar. Must match the key
|
|
19
|
-
* of one of the available viewports.
|
|
20
|
+
* of one of the available viewports or follow the format '{width}-{height}', e.g. '320-480' which
|
|
21
|
+
* may include a unit (e.g. '100vw' or '100pct').
|
|
20
22
|
*/
|
|
21
23
|
value: string | undefined;
|
|
22
24
|
/**
|
|
@@ -325,4 +327,4 @@ declare const MINIMAL_VIEWPORTS: {
|
|
|
325
327
|
|
|
326
328
|
declare const responsiveViewport: Viewport;
|
|
327
329
|
|
|
328
|
-
export { ADDON_ID, DEFAULT_VIEWPORT, type GlobalState, type GlobalStateUpdate, INITIAL_VIEWPORTS, type InitialViewportKeys, MINIMAL_VIEWPORTS, PANEL_ID, PARAM_KEY, TOOL_ID, type Viewport, type ViewportGlobals, type ViewportMap, type ViewportParameters, type ViewportStyles, type ViewportTypes, responsiveViewport };
|
|
330
|
+
export { ADDON_ID, DEFAULT_VIEWPORT, type GlobalState, type GlobalStateUpdate, INITIAL_VIEWPORTS, type InitialViewportKeys, MINIMAL_VIEWPORTS, PANEL_ID, PARAM_KEY, TOOL_ID, type Viewport, type ViewportGlobals, type ViewportMap, type ViewportParameters, type ViewportStyles, type ViewportType, type ViewportTypes, responsiveViewport };
|
package/dist/viewport/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_VIEWPORT,
|
|
3
3
|
INITIAL_VIEWPORTS,
|
|
4
|
-
MINIMAL_VIEWPORTS
|
|
5
|
-
|
|
6
|
-
} from "../_browser-chunks/chunk-3PJE6VLG.js";
|
|
4
|
+
MINIMAL_VIEWPORTS
|
|
5
|
+
} from "../_browser-chunks/chunk-ASKQZAOS.js";
|
|
7
6
|
import {
|
|
8
7
|
ADDON_ID,
|
|
9
8
|
PANEL_ID,
|
|
@@ -11,6 +10,16 @@ import {
|
|
|
11
10
|
TOOL_ID
|
|
12
11
|
} from "../_browser-chunks/chunk-SL75JR6Y.js";
|
|
13
12
|
import "../_browser-chunks/chunk-A242L54C.js";
|
|
13
|
+
|
|
14
|
+
// src/viewport/responsiveViewport.tsx
|
|
15
|
+
var responsiveViewport = {
|
|
16
|
+
name: "Reset viewport",
|
|
17
|
+
styles: {
|
|
18
|
+
height: "100%",
|
|
19
|
+
width: "100%"
|
|
20
|
+
},
|
|
21
|
+
type: "desktop"
|
|
22
|
+
};
|
|
14
23
|
export {
|
|
15
24
|
ADDON_ID,
|
|
16
25
|
DEFAULT_VIEWPORT,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "storybook",
|
|
3
|
-
"version": "10.2.0-alpha.
|
|
3
|
+
"version": "10.2.0-alpha.15",
|
|
4
4
|
"description": "Storybook: Develop, document, and test UI components in isolation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook",
|
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
"@react-stately/tabs": "^3.8.5",
|
|
237
237
|
"@react-types/shared": "^3.32.0",
|
|
238
238
|
"@rolldown/pluginutils": "1.0.0-beta.18",
|
|
239
|
-
"@storybook/docs-mdx": "4.0.0-next.
|
|
239
|
+
"@storybook/docs-mdx": "4.0.0-next.3",
|
|
240
240
|
"@tanstack/react-virtual": "^3.3.0",
|
|
241
241
|
"@testing-library/dom": "^10.4.1",
|
|
242
242
|
"@testing-library/react": "^14.0.0",
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import CJS_COMPAT_NODE_URL_bgtyoteey4s from 'node:url';
|
|
2
|
-
import CJS_COMPAT_NODE_PATH_bgtyoteey4s from 'node:path';
|
|
3
|
-
import CJS_COMPAT_NODE_MODULE_bgtyoteey4s from "node:module";
|
|
4
|
-
|
|
5
|
-
var __filename = CJS_COMPAT_NODE_URL_bgtyoteey4s.fileURLToPath(import.meta.url);
|
|
6
|
-
var __dirname = CJS_COMPAT_NODE_PATH_bgtyoteey4s.dirname(__filename);
|
|
7
|
-
var require = CJS_COMPAT_NODE_MODULE_bgtyoteey4s.createRequire(import.meta.url);
|
|
8
|
-
|
|
9
|
-
// ------------------------------------------------------------
|
|
10
|
-
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
11
|
-
// ------------------------------------------------------------
|
|
12
|
-
import {
|
|
13
|
-
any
|
|
14
|
-
} from "./chunk-NTVADDN6.js";
|
|
15
|
-
|
|
16
|
-
// src/cli/detect.ts
|
|
17
|
-
async function detectPnp() {
|
|
18
|
-
return !!any([".pnp.js", ".pnp.cjs"]);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export {
|
|
22
|
-
detectPnp
|
|
23
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import CJS_COMPAT_NODE_URL_bgtyoteey4s from 'node:url';
|
|
2
|
-
import CJS_COMPAT_NODE_PATH_bgtyoteey4s from 'node:path';
|
|
3
|
-
import CJS_COMPAT_NODE_MODULE_bgtyoteey4s from "node:module";
|
|
4
|
-
|
|
5
|
-
var __filename = CJS_COMPAT_NODE_URL_bgtyoteey4s.fileURLToPath(import.meta.url);
|
|
6
|
-
var __dirname = CJS_COMPAT_NODE_PATH_bgtyoteey4s.dirname(__filename);
|
|
7
|
-
var require = CJS_COMPAT_NODE_MODULE_bgtyoteey4s.createRequire(import.meta.url);
|
|
8
|
-
|
|
9
|
-
// ------------------------------------------------------------
|
|
10
|
-
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
11
|
-
// ------------------------------------------------------------
|
|
12
|
-
|
|
13
|
-
// package.json
|
|
14
|
-
var version = "10.2.0-alpha.14";
|
|
15
|
-
|
|
16
|
-
export {
|
|
17
|
-
version
|
|
18
|
-
};
|