├── .babelrc ├── .gitignore ├── .npmignore ├── .scripts └── npm-prepublish.js ├── .storybook ├── addons.js ├── config.js └── stories.js ├── CHANGELOG.md ├── README.md ├── dist ├── index.js ├── manager.js └── preview.js ├── package.json ├── register.js └── src ├── index.js ├── manager.js └── preview.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-0", "react"] 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .babelrc 3 | -------------------------------------------------------------------------------- /.scripts/npm-prepublish.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | var shell = require('shelljs'); 3 | var babel = ['node_modules', '.bin', 'babel'].join(path.sep); 4 | 5 | shell.rm('-rf', 'dist') 6 | shell.exec(babel + ' --ignore __tests__ src --out-dir dist') 7 | -------------------------------------------------------------------------------- /.storybook/addons.js: -------------------------------------------------------------------------------- 1 | // Uncomment to register defaults 2 | // import '@kadira/storybook/addons'; 3 | 4 | // Use the line below to register this addon 5 | // import '@kadira/storybook-addon-links/register'; 6 | import '../register'; 7 | -------------------------------------------------------------------------------- /.storybook/config.js: -------------------------------------------------------------------------------- 1 | import * as storybook from '@kadira/storybook'; 2 | storybook.configure(() => require('./stories'), module); 3 | -------------------------------------------------------------------------------- /.storybook/stories.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { storiesOf } from '@kadira/storybook'; 3 | import { linkTo } from '../src'; 4 | 5 | storiesOf('Button', module) 6 | .add('First Story', () => ( 7 | 8 | )) 9 | .add('Second Story', () => ( 10 | 11 | )) 12 | .add('Multiple Selection', () => ( 13 | { 14 | return filter === 'First' ? 'First Story' : 'Second Story'; 15 | })}/> 16 | )); 17 | 18 | const MultipleStories = ({onClick}) => { 19 | return ( 20 | ); 24 | } 25 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Changelog 2 | 3 | ### v1.0.1 4 | 5 | * Refactor source code 6 | * Update the README file 7 | 8 | ### v1.0.0 9 | 10 | * First stable release with all features from the storybook linkTo function 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Story Links Addon 2 | 3 | This contents of this repo was moved to the [Storybook monorepo](https://github.com/storybooks/storybook/) and the NPM package name has been changed. 4 | 5 | - The old name of the package was: **@kadira/storybook-addon-links** 6 | - The new name of the package is: **@storybook/addon-links** 7 | - The location of the code is: https://github.com/storybooks/storybook/tree/master/addons/links 8 | 9 | The repo you're looking at now is out of date and no longer maintained. 10 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | 7 | var _manager = require('./manager'); 8 | 9 | Object.defineProperty(exports, 'register', { 10 | enumerable: true, 11 | get: function get() { 12 | return _manager.register; 13 | } 14 | }); 15 | 16 | var _preview = require('./preview'); 17 | 18 | Object.defineProperty(exports, 'linkTo', { 19 | enumerable: true, 20 | get: function get() { 21 | return _preview.linkTo; 22 | } 23 | }); 24 | var ADDON_ID = exports.ADDON_ID = 'kadirahq/storybook-addon-links'; 25 | var EVENT_ID = exports.EVENT_ID = ADDON_ID + '/link-event'; -------------------------------------------------------------------------------- /dist/manager.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.register = register; 7 | 8 | var _storybookAddons = require('@kadira/storybook-addons'); 9 | 10 | var _storybookAddons2 = _interopRequireDefault(_storybookAddons); 11 | 12 | var _ = require('./'); 13 | 14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 15 | 16 | function register() { 17 | _storybookAddons2.default.register(_.ADDON_ID, function (api) { 18 | var channel = _storybookAddons2.default.getChannel(); 19 | channel.on(_.EVENT_ID, function (selection) { 20 | api.selectStory(selection.kind, selection.story); 21 | }); 22 | }); 23 | } -------------------------------------------------------------------------------- /dist/preview.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | exports.linkTo = linkTo; 7 | 8 | var _storybookAddons = require('@kadira/storybook-addons'); 9 | 10 | var _storybookAddons2 = _interopRequireDefault(_storybookAddons); 11 | 12 | var _ = require('./'); 13 | 14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 15 | 16 | function linkTo(kind, story) { 17 | return function () { 18 | var resolvedKind = typeof kind === 'function' ? kind.apply(undefined, arguments) : kind; 19 | var resolvedStory = typeof story === 'function' ? story.apply(undefined, arguments) : story; 20 | 21 | var channel = _storybookAddons2.default.getChannel(); 22 | console.log(resolvedKind); 23 | channel.emit(_.EVENT_ID, { kind: resolvedKind, story: resolvedStory }); 24 | }; 25 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@kadira/storybook-addon-links", 3 | "version": "1.0.1", 4 | "description": "Story Links addon for storybook", 5 | "main": "dist/index.js", 6 | "scripts": { 7 | "deploy-storybook": "storybook-to-ghpages", 8 | "prepublish": "node .scripts/npm-prepublish.js", 9 | "storybook": "start-storybook -p 9001", 10 | "test": "echo \"Error: no test specified\" && exit 1" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/kadirahq/storybook-addon-links.git" 15 | }, 16 | "keywords": [ 17 | "storybook" 18 | ], 19 | "license": "MIT", 20 | "bugs": { 21 | "url": "https://github.com/kadirahq/storybook-addon-links/issues" 22 | }, 23 | "homepage": "https://github.com/kadirahq/storybook-addon-links#readme", 24 | "devDependencies": { 25 | "@kadira/storybook": "^2.20.1", 26 | "@kadira/storybook-addons": "^1.3.0", 27 | "@kadira/storybook-ui": "^3.0.0", 28 | "babel-cli": "^6.11.4", 29 | "babel-preset-es2015": "^6.9.0", 30 | "babel-preset-react": "^6.11.1", 31 | "babel-preset-stage-0": "^6.5.0", 32 | "react": "^15.3.2", 33 | "react-dom": "^15.3.2", 34 | "shelljs": "^0.7.3" 35 | }, 36 | "peerDependencies": { 37 | "@kadira/storybook-addons": "^1.3.0", 38 | "react": "^0.14.7 || ^15.0.0", 39 | "react-dom": "^0.14.7 || ^15.0.0" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /register.js: -------------------------------------------------------------------------------- 1 | require('./dist').register(); 2 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export const ADDON_ID = 'kadirahq/storybook-addon-links'; 2 | export const EVENT_ID = `${ADDON_ID}/link-event`; 3 | 4 | export { register } from './manager'; 5 | export { linkTo } from './preview'; 6 | -------------------------------------------------------------------------------- /src/manager.js: -------------------------------------------------------------------------------- 1 | import addons from '@kadira/storybook-addons'; 2 | import { ADDON_ID, EVENT_ID } from './'; 3 | 4 | export function register() { 5 | addons.register(ADDON_ID, api => { 6 | const channel = addons.getChannel(); 7 | channel.on(EVENT_ID, selection => { 8 | api.selectStory(selection.kind, selection.story); 9 | }); 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /src/preview.js: -------------------------------------------------------------------------------- 1 | import addons from '@kadira/storybook-addons'; 2 | import { EVENT_ID } from './'; 3 | 4 | export function linkTo(kind, story) { 5 | return function (...args) { 6 | const resolvedKind = typeof kind === 'function' ? kind(...args) : kind; 7 | const resolvedStory = typeof story === 'function' ? story(...args) : story; 8 | 9 | const channel = addons.getChannel(); 10 | channel.emit(EVENT_ID, {kind: resolvedKind, story: resolvedStory}); 11 | }; 12 | } 13 | --------------------------------------------------------------------------------