@storybook/ember 8.0.0-alpha.2 → 8.0.0-alpha.3

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.
@@ -1,3 +1,4 @@
1
+ import './globals';
1
2
  export { renderToCanvas } from './render';
2
3
  export declare const parameters: {
3
4
  renderer: "ember";
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parameters = exports.renderToCanvas = void 0;
4
+ require("./globals");
4
5
  var render_1 = require("./render");
5
6
  Object.defineProperty(exports, "renderToCanvas", { enumerable: true, get: function () { return render_1.renderToCanvas; } });
6
7
  exports.parameters = { renderer: 'ember' };
@@ -0,0 +1,3 @@
1
+ import type { ArgTypesEnhancer } from '@storybook/types';
2
+ export declare const parameters: {};
3
+ export declare const argTypesEnhancers: ArgTypesEnhancer[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.argTypesEnhancers = exports.parameters = void 0;
4
+ const docs_tools_1 = require("@storybook/docs-tools");
5
+ const jsondoc_1 = require("./jsondoc");
6
+ exports.parameters = {
7
+ docs: {
8
+ story: { iframeHeight: '80px' },
9
+ extractArgTypes: jsondoc_1.extractArgTypes,
10
+ extractComponentDescription: jsondoc_1.extractComponentDescription,
11
+ },
12
+ };
13
+ exports.argTypesEnhancers = [docs_tools_1.enhanceArgTypes];
@@ -0,0 +1,3 @@
1
+ export declare const getJSONDoc: () => any;
2
+ export declare const extractArgTypes: (componentName: string) => any;
3
+ export declare const extractComponentDescription: (componentName: string) => any;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractComponentDescription = exports.extractArgTypes = exports.getJSONDoc = void 0;
4
+ /* eslint-disable no-underscore-dangle */
5
+ const global_1 = require("@storybook/global");
6
+ const getJSONDoc = () => {
7
+ return global_1.global.__EMBER_GENERATED_DOC_JSON__;
8
+ };
9
+ exports.getJSONDoc = getJSONDoc;
10
+ const extractArgTypes = (componentName) => {
11
+ const json = (0, exports.getJSONDoc)();
12
+ if (!(json && json.included)) {
13
+ return null;
14
+ }
15
+ const componentDoc = json.included.find((doc) => doc.attributes.name === componentName);
16
+ if (!componentDoc) {
17
+ return null;
18
+ }
19
+ return componentDoc.attributes.arguments.reduce((acc, prop) => {
20
+ acc[prop.name] = {
21
+ name: prop.name,
22
+ defaultValue: prop.defaultValue,
23
+ description: prop.description,
24
+ table: {
25
+ defaultValue: { summary: prop.defaultValue },
26
+ type: {
27
+ summary: prop.type,
28
+ required: prop.tags.length
29
+ ? prop.tags.some((tag) => tag.name === 'required')
30
+ : false,
31
+ },
32
+ },
33
+ };
34
+ return acc;
35
+ }, {});
36
+ };
37
+ exports.extractArgTypes = extractArgTypes;
38
+ const extractComponentDescription = (componentName) => {
39
+ const json = (0, exports.getJSONDoc)();
40
+ if (!(json && json.included)) {
41
+ return null;
42
+ }
43
+ const componentDoc = json.included.find((doc) => doc.attributes.name === componentName);
44
+ if (!componentDoc) {
45
+ return null;
46
+ }
47
+ return componentDoc.attributes.description;
48
+ };
49
+ exports.extractComponentDescription = extractComponentDescription;
@@ -1,21 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.renderToCanvas = void 0;
7
4
  const global_1 = require("@storybook/global");
8
5
  const ts_dedent_1 = require("ts-dedent");
9
- // @ts-expect-error (Converted from ts-ignore)
10
- const component_1 = __importDefault(require("@ember/component")); // eslint-disable-line import/no-unresolved
11
6
  const { document } = global_1.global;
12
7
  const rootEl = document.getElementById('storybook-root');
13
- const config = global_1.global.require(`${global_1.global.STORYBOOK_NAME}/config/environment`);
14
- const app = global_1.global.require(`${global_1.global.STORYBOOK_NAME}/app`).default.create({
15
- autoboot: false,
16
- rootElement: rootEl,
17
- ...config.APP,
18
- });
8
+ function loadEmberApp() {
9
+ const config = global_1.global.require(`${global_1.global.STORYBOOK_NAME}/config/environment`);
10
+ return global_1.global.require(`${global_1.global.STORYBOOK_NAME}/app`).default.create({
11
+ autoboot: false,
12
+ rootElement: rootEl,
13
+ ...config.APP,
14
+ });
15
+ }
16
+ const app = loadEmberApp();
19
17
  let lastPromise = app.boot();
20
18
  let hasRendered = false;
21
19
  let isRendering = false;
@@ -33,7 +31,7 @@ function render(options, el) {
33
31
  return appInstancePrivate.boot().then(() => appInstancePrivate);
34
32
  })
35
33
  .then((instance) => {
36
- instance.register('component:story-mode', component_1.default.extend({
34
+ instance.register('component:story-mode', Ember.Component.extend({
37
35
  layout: template || options,
38
36
  ...context,
39
37
  }));
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- import './client/preview';
1
+ export * from './types';
package/dist/index.js CHANGED
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
2
  /// <reference types="webpack-env" />
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
3
17
  Object.defineProperty(exports, "__esModule", { value: true });
4
- require("./client/preview");
18
+ __exportStar(require("./types"), exports);
5
19
  // optimization: stop HMR propagation in webpack
6
20
  if (typeof module !== 'undefined')
7
21
  module?.hot?.decline();
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="webpack-env" />
2
- import './client/preview';
2
+ export * from './types';
3
3
  // optimization: stop HMR propagation in webpack
4
4
  if (typeof module !== 'undefined')
5
5
  module?.hot?.decline();
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.previewAnnotations = exports.babel = void 0;
4
4
  const ember_template_compiler_1 = require("ember-source/dist/ember-template-compiler");
5
- const core_common_1 = require("@storybook/core-common");
5
+ const util_1 = require("../util");
6
6
  let emberOptions;
7
7
  function precompileWithPlugins(string, options) {
8
8
  const precompileOptions = options;
@@ -45,6 +45,6 @@ const babel = (config, options) => {
45
45
  };
46
46
  exports.babel = babel;
47
47
  const previewAnnotations = (entry = []) => {
48
- return [...entry, (0, core_common_1.findDistEsm)(__dirname, 'client/preview/config')];
48
+ return [...entry, (0, util_1.findDistFile)(__dirname, 'client/preview/config')];
49
49
  };
50
50
  exports.previewAnnotations = previewAnnotations;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.previewAnnotations = void 0;
4
- const core_common_1 = require("@storybook/core-common");
5
4
  const docs_tools_1 = require("@storybook/docs-tools");
5
+ const util_1 = require("../util");
6
6
  const previewAnnotations = (entry = [], options) => {
7
7
  if (!(0, docs_tools_1.hasDocsOrControls)(options))
8
8
  return entry;
9
- return [...entry, (0, core_common_1.findDistEsm)(__dirname, 'client/docs/config')];
9
+ return [...entry, (0, util_1.findDistFile)(__dirname, 'client/preview/docs/config')];
10
10
  };
11
11
  exports.previewAnnotations = previewAnnotations;
package/dist/types.d.ts CHANGED
@@ -22,4 +22,7 @@ type StorybookConfigFramework = {
22
22
  * The interface for Storybook configuration in `main.ts` files.
23
23
  */
24
24
  export type StorybookConfig = Omit<StorybookConfigBase, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
25
+ declare global {
26
+ var __EMBER_GENERATED_DOC_JSON__: any;
27
+ }
25
28
  export {};
package/dist/util.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const findDistFile: (cwd: string, relativePath: string) => string;
package/dist/util.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.findDistFile = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const find_up_1 = require("find-up");
9
+ const findDistFile = (cwd, relativePath) => {
10
+ const nearestPackageJson = (0, find_up_1.sync)('package.json', { cwd });
11
+ if (!nearestPackageJson) {
12
+ throw new Error(`Could not find package.json in: ${cwd}`);
13
+ }
14
+ const packageDir = path_1.default.dirname(nearestPackageJson);
15
+ return path_1.default.join(packageDir, 'dist', relativePath);
16
+ };
17
+ exports.findDistFile = findDistFile;
package/dist/util.mjs ADDED
@@ -0,0 +1,10 @@
1
+ import path from 'path';
2
+ import { sync as findUpSync } from 'find-up';
3
+ export const findDistFile = (cwd, relativePath) => {
4
+ const nearestPackageJson = findUpSync('package.json', { cwd });
5
+ if (!nearestPackageJson) {
6
+ throw new Error(`Could not find package.json in: ${cwd}`);
7
+ }
8
+ const packageDir = path.dirname(nearestPackageJson);
9
+ return path.join(packageDir, 'dist', relativePath);
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/ember",
3
- "version": "8.0.0-alpha.2",
3
+ "version": "8.0.0-alpha.3",
4
4
  "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
5
5
  "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember",
6
6
  "bugs": {
@@ -32,12 +32,13 @@
32
32
  "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/tsc.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@storybook/builder-webpack5": "8.0.0-alpha.2",
36
- "@storybook/core-common": "8.0.0-alpha.2",
37
- "@storybook/docs-tools": "8.0.0-alpha.2",
35
+ "@storybook/builder-webpack5": "8.0.0-alpha.3",
36
+ "@storybook/core-common": "8.0.0-alpha.3",
37
+ "@storybook/docs-tools": "8.0.0-alpha.3",
38
38
  "@storybook/global": "^5.0.0",
39
- "@storybook/preview-api": "8.0.0-alpha.2",
40
- "@storybook/types": "8.0.0-alpha.2",
39
+ "@storybook/preview-api": "8.0.0-alpha.3",
40
+ "@storybook/types": "8.0.0-alpha.3",
41
+ "find-up": "^5.0.0",
41
42
  "ts-dedent": "^2.0.0"
42
43
  },
43
44
  "devDependencies": {
@@ -46,13 +47,14 @@
46
47
  },
47
48
  "peerDependencies": {
48
49
  "@babel/core": "*",
49
- "@types/ember__component": "4.0.8",
50
- "babel-plugin-ember-modules-api-polyfill": "^2.12.0",
51
- "babel-plugin-htmlbars-inline-precompile": "2 || 3",
52
- "ember-source": "~3.28.1"
50
+ "babel-plugin-ember-modules-api-polyfill": "^3.5.0",
51
+ "babel-plugin-htmlbars-inline-precompile": "^5.3.1",
52
+ "ember-source": "~3.28.1 || ^4.0.0",
53
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
54
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
53
55
  },
54
56
  "engines": {
55
- "node": ">=16.0.0"
57
+ "node": ">=18.0.0"
56
58
  },
57
59
  "publishConfig": {
58
60
  "access": "public"
@@ -6,13 +6,13 @@ import { linkTo } from '@storybook/addon-links';
6
6
  export default {
7
7
  title: 'Example/Button',
8
8
  render: (args) => ({
9
- template: hbs`<button {{action onClick}}>{{label}}</button>`,
9
+ template: hbs`<button {{on "click" this.onClick}}>{{this.label}}</button>`,
10
10
  context: args,
11
11
  }),
12
12
  argTypes: {
13
13
  label: { control: 'text' },
14
14
  },
15
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
15
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/ember/writing-docs/autodocs
16
16
  tags: ['autodocs'],
17
17
  };
18
18
 
@@ -27,13 +27,14 @@ export const Text = {
27
27
  export const Emoji = {
28
28
  args: {
29
29
  label: '😀 😎 👍 💯',
30
+ onClick: action('onClick'),
30
31
  },
31
32
  };
32
33
 
33
34
  export const TextWithAction = {
34
35
  render: () => ({
35
36
  template: hbs`
36
- <button {{action onClick}}>
37
+ <button {{on "click" this.onClick}}>
37
38
  Trigger Action
38
39
  </button>
39
40
  `,
@@ -50,12 +51,12 @@ export const TextWithAction = {
50
51
  export const ButtonWithLinkToAnotherStory = {
51
52
  render: () => ({
52
53
  template: hbs`
53
- <button {{action onClick}}>
54
+ <button {{on "click" this.onClick}}>
54
55
  Go to Welcome Story
55
56
  </button>
56
57
  `,
57
58
  context: {
58
- onClick: linkTo('example-introduction--page'),
59
+ onClick: linkTo('example-button--docs'),
59
60
  },
60
61
  }),
61
62
  name: 'button with link to another story',
File without changes