@storybook/addon-links 7.0.0-beta.4 → 7.0.0-beta.41

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/README.md CHANGED
@@ -15,7 +15,7 @@ yarn add -D @storybook/addon-links
15
15
  within `.storybook/main.js`:
16
16
 
17
17
  ```js
18
- module.exports = {
18
+ export default {
19
19
  addons: ['@storybook/addon-links'],
20
20
  };
21
21
  ```
@@ -144,4 +144,4 @@ It accepts all the props the `a` element does, plus `story` and `kind`. It the `
144
144
  </LinkTo>
145
145
  ```
146
146
 
147
- To implement such a component for another framework, you need to add special handling for `click` event on native `a` element. See [`RoutedLink` sources](https://github.com/storybookjs/storybook/blob/main/addons/links/src/react/components/RoutedLink.tsx) for reference.
147
+ To implement such a component for another framework, you need to add special handling for `click` event on native `a` element. See [`RoutedLink` sources](https://github.com/storybookjs/storybook/blob/next/code/addons/links/src/react/components/RoutedLink.tsx) for reference.
@@ -0,0 +1 @@
1
+ import{PARAM_KEY}from"./chunk-JT3VIYBO.mjs";import{global}from"@storybook/global";import{addons,makeDecorator}from"@storybook/preview-api";import{STORY_CHANGED,SELECT_STORY}from"@storybook/core-events";import{toId}from"@storybook/csf";var{document,HTMLElement}=global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>addons.getChannel().emit(SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=toId(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title?.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=makeDecorator({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),addons.getChannel().once(STORY_CHANGED,off),getStory(context))});export{navigate,hrefTo,linkTo,withLinks};
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as lib_preview_api_dist_storybook_channel_mock_a19cd233 from 'lib/preview-api/dist/storybook-channel-mock-a19cd233';
1
+ import * as lib_preview_api_dist_storybook_channel_mock_a19cd233 from '@storybook/preview-api/dist/storybook-channel-mock-a19cd233';
2
2
  import { ComponentTitle, StoryName, StoryId } from '@storybook/types';
3
3
 
4
4
  interface ParamsId {
@@ -13,6 +13,9 @@ declare const hrefTo: (title: ComponentTitle, name: StoryName) => Promise<string
13
13
  declare const linkTo: (idOrTitle: string | ((...args: any[]) => string), nameInput?: string | ((...args: any[]) => string) | undefined) => (...args: any[]) => void;
14
14
  declare const withLinks: lib_preview_api_dist_storybook_channel_mock_a19cd233.M;
15
15
 
16
+ /**
17
+ * @deprecated please import this specific function from @storybook/addon-links/react
18
+ */
16
19
  declare function LinkTo(): null;
17
20
 
18
21
  export { LinkTo, hrefTo, linkTo, navigate, withLinks };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var R=Object.create;var c=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var $=(t,o)=>{for(var n in o)c(t,n,{get:o[n],enumerable:!0})},g=(t,o,n,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of P(o))!N.call(t,e)&&e!==n&&c(t,e,{get:()=>o[e],enumerable:!(r=A(o,e))||r.enumerable});return t};var D=(t,o,n)=>(n=t!=null?R(S(t)):{},g(o||!t||!t.__esModule?c(n,"default",{value:t,enumerable:!0}):n,t)),w=t=>g(c({},"__esModule",{value:!0}),t);var U={};$(U,{LinkTo:()=>K,hrefTo:()=>T,linkTo:()=>h,navigate:()=>i,withLinks:()=>L});module.exports=w(U);var I=require("ts-dedent");var y=D(require("global")),a=require("@storybook/preview-api"),m=require("@storybook/core-events"),u=require("@storybook/csf");var d="storybook/links",k="links",G={NAVIGATE:`${d}/navigate`,REQUEST:`${d}/request`,RECEIVE:`${d}/receive`};var{document:f,HTMLElement:O}=y.default;function _(t){let o={},n=(t[0]==="?"?t.substring(1):t).split("&").filter(Boolean);for(let r=0;r<n.length;r++){let e=n[r].split("=");o[decodeURIComponent(e[0])]=decodeURIComponent(e[1]||"")}return o}var i=t=>a.addons.getChannel().emit(m.SELECT_STORY,t),T=(t,o)=>new Promise(n=>{let{location:r}=f,e=_(r.search),s=[].concat(e.id)[0],b=t||s.split("--",2)[0],v=(0,u.toId)(b,o),x=`${r.origin+r.pathname}?${Object.entries({...e,id:v}).map(p=>`${p[0]}=${p[1]}`).join("&")}`;n(x)}),M=t=>o=>typeof o=="function"?o(...t):o,h=(t,o)=>(...n)=>{let r=M(n),e=r(t),s=o?r(o):!1;(e==null?void 0:e.match(/--/))&&!s?i({storyId:e}):s&&e?i({kind:e,story:s}):e?i({kind:e}):s&&i({story:s})},E=t=>{let{target:o}=t;if(!(o instanceof O))return;let n=o,{sbKind:r,sbStory:e}=n.dataset;(r||e)&&(t.preventDefault(),i({kind:r,story:e}))},l=!1,Y=()=>{l||(l=!0,f.addEventListener("click",E))},H=()=>{l&&(l=!1,f.removeEventListener("click",E))},L=(0,a.makeDecorator)({name:"withLinks",parameterName:k,wrapper:(t,o)=>(Y(),a.addons.getChannel().once(m.STORY_CHANGED,H),t(o))});var C=!1;function K(){return C||(console.error(I.dedent`
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{LinkTo:()=>LinkTo,hrefTo:()=>hrefTo,linkTo:()=>linkTo,navigate:()=>navigate,withLinks:()=>withLinks});module.exports=__toCommonJS(src_exports);var import_ts_dedent=require("ts-dedent");var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=(0,import_csf.toId)(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title!=null&&title.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});var hasWarned=!1;function LinkTo(){return hasWarned||(console.error(import_ts_dedent.dedent`
2
2
  LinkTo has moved to addon-links/react:
3
3
  import LinkTo from '@storybook/addon-links/react';
4
- `),C=!0),null}module&&module.hot&&module.hot.decline&&module.hot.decline();0&&(module.exports={LinkTo,hrefTo,linkTo,navigate,withLinks});
4
+ `),hasWarned=!0),null}module&&module.hot&&module.hot.decline&&module.hot.decline();0&&(module.exports={LinkTo,hrefTo,linkTo,navigate,withLinks});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{LinkTo}from"./chunk-HG45ZTEM.mjs";import{hrefTo,linkTo,navigate,withLinks}from"./chunk-UXWXBGPY.mjs";import"./chunk-JT3VIYBO.mjs";export{LinkTo,hrefTo,linkTo,navigate,withLinks};
1
+ import{LinkTo}from"./chunk-HG45ZTEM.mjs";import{hrefTo,linkTo,navigate,withLinks}from"./chunk-YFKH3BW3.mjs";import"./chunk-JT3VIYBO.mjs";export{LinkTo,hrefTo,linkTo,navigate,withLinks};
package/dist/manager.js CHANGED
@@ -1 +1 @@
1
- "use strict";var t=require("@storybook/manager-api");var e="storybook/links";var o={NAVIGATE:`${e}/navigate`,REQUEST:`${e}/request`,RECEIVE:`${e}/receive`};t.addons.register(e,n=>{t.addons.getChannel().on(o.REQUEST,({kind:E,name:r})=>{let s=n.storyId(E,r);n.emit(o.RECEIVE,s)})});
1
+ "use strict";var import_manager_api=require("@storybook/manager-api");var ADDON_ID="storybook/links";var constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};import_manager_api.addons.register(ADDON_ID,api=>{import_manager_api.addons.getChannel().on(constants_default.REQUEST,({kind,name})=>{let id=api.storyId(kind,name);api.emit(constants_default.RECEIVE,id)})});
package/dist/preview.js CHANGED
@@ -1 +1 @@
1
- "use strict";var u=Object.create;var i=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var C=(t,o)=>{for(var e in o)i(t,e,{get:o[e],enumerable:!0})},d=(t,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of T(o))!L.call(t,n)&&n!==e&&i(t,n,{get:()=>o[n],enumerable:!(r=h(o,n))||r.enumerable});return t};var I=(t,o,e)=>(e=t!=null?u(E(t)):{},d(o||!t||!t.__esModule?i(e,"default",{value:t,enumerable:!0}):e,t)),x=t=>d(i({},"__esModule",{value:!0}),t);var N={};C(N,{decorators:()=>S});module.exports=x(N);var P=require("ts-dedent");var p=I(require("global")),s=require("@storybook/preview-api"),c=require("@storybook/core-events"),b=require("@storybook/csf");var l="storybook/links",f="links",w={NAVIGATE:`${l}/navigate`,REQUEST:`${l}/request`,RECEIVE:`${l}/receive`};var{document:k,HTMLElement:v}=p.default;var g=t=>s.addons.getChannel().emit(c.SELECT_STORY,t);var y=t=>{let{target:o}=t;if(!(o instanceof v))return;let e=o,{sbKind:r,sbStory:n}=e.dataset;(r||n)&&(t.preventDefault(),g({kind:r,story:n}))},a=!1,R=()=>{a||(a=!0,k.addEventListener("click",y))},A=()=>{a&&(a=!1,k.removeEventListener("click",y))},m=(0,s.makeDecorator)({name:"withLinks",parameterName:f,wrapper:(t,o)=>(R(),s.addons.getChannel().once(c.STORY_CHANGED,A),t(o))});module&&module.hot&&module.hot.decline&&module.hot.decline();var S=[m];0&&(module.exports={decorators});
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preview_exports={};__export(preview_exports,{decorators:()=>decorators});module.exports=__toCommonJS(preview_exports);var import_ts_dedent=require("ts-dedent");var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params);var linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});module&&module.hot&&module.hot.decline&&module.hot.decline();var decorators=[withLinks];0&&(module.exports={decorators});
package/dist/preview.mjs CHANGED
@@ -1 +1 @@
1
- import"./chunk-HG45ZTEM.mjs";import{withLinks}from"./chunk-UXWXBGPY.mjs";import"./chunk-JT3VIYBO.mjs";var decorators=[withLinks];export{decorators};
1
+ import"./chunk-HG45ZTEM.mjs";import{withLinks}from"./chunk-YFKH3BW3.mjs";import"./chunk-JT3VIYBO.mjs";var decorators=[withLinks];export{decorators};
@@ -1 +1 @@
1
- "use strict";var S=Object.create;var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var M=(t,n)=>{for(var e in n)a(t,e,{get:n[e],enumerable:!0})},k=(t,n,e,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of R(n))!A.call(t,r)&&r!==e&&a(t,r,{get:()=>n[r],enumerable:!(o=x(n,r))||o.enumerable});return t};var E=(t,n,e)=>(e=t!=null?S(b(t)):{},k(n||!t||!t.__esModule?a(e,"default",{value:t,enumerable:!0}):e,t)),N=t=>k(a({},"__esModule",{value:!0}),t);var Y={};M(Y,{default:()=>U});module.exports=N(Y);var p=E(require("react"));var T=E(require("global")),i=require("@storybook/preview-api"),l=require("@storybook/core-events"),P=require("@storybook/csf");var y="storybook/links",C="links",B={NAVIGATE:`${y}/navigate`,REQUEST:`${y}/request`,RECEIVE:`${y}/receive`};var{document:h,HTMLElement:D}=T.default;function H(t){let n={},e=(t[0]==="?"?t.substring(1):t).split("&").filter(Boolean);for(let o=0;o<e.length;o++){let r=e[o].split("=");n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]||"")}return n}var u=t=>i.addons.getChannel().emit(l.SELECT_STORY,t),L=(t,n)=>new Promise(e=>{let{location:o}=h,r=H(o.search),f=[].concat(r.id)[0],d=t||f.split("--",2)[0],m=(0,P.toId)(d,n),I=`${o.origin+o.pathname}?${Object.entries({...r,id:m}).map(g=>`${g[0]}=${g[1]}`).join("&")}`;e(I)});var v=t=>{let{target:n}=t;if(!(n instanceof D))return;let e=n,{sbKind:o,sbStory:r}=e.dataset;(o||r)&&(t.preventDefault(),u({kind:o,story:r}))},c=!1,K=()=>{c||(c=!0,h.addEventListener("click",v))},_=()=>{c&&(c=!1,h.removeEventListener("click",v))},V=(0,i.makeDecorator)({name:"withLinks",parameterName:C,wrapper:(t,n)=>(K(),i.addons.getChannel().once(l.STORY_CHANGED,_),t(n))});var $=0,O=t=>t.button===$&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey,w=(t,n=e=>{})=>{O(t)&&(t.preventDefault(),n(t))},s=class extends p.PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind:e,story:o}=this.props;if(e&&o){let r=await L(e,o);this.setState({href:r})}};this.handleClick=()=>{let{kind:e,story:o}=this.props;e&&o&&u({kind:e,story:o})}}componentDidMount(){this.updateHref()}componentDidUpdate(e){let{kind:o,story:r}=this.props;(e.kind!==o||e.story!==r)&&this.updateHref()}render(){let{kind:e,story:o,children:r,...f}=this.props,{href:d}=this.state;return p.default.createElement("a",{href:d,onClick:m=>w(m,this.handleClick),...f},r)}};s.defaultProps={kind:null,story:null,children:void 0};var U=s;0&&(module.exports={});
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var react_exports={};__export(react_exports,{default:()=>react_default});module.exports=__toCommonJS(react_exports);var import_react=__toESM(require("react"));var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=(0,import_csf.toId)(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)});var linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});var LEFT_BUTTON=0,isPlainLeftClick=e=>e.button===LEFT_BUTTON&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey,cancelled=(e,cb=_e=>{})=>{isPlainLeftClick(e)&&(e.preventDefault(),cb(e))},LinkTo=class extends import_react.PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind,story}=this.props;if(kind&&story){let href=await hrefTo(kind,story);this.setState({href})}};this.handleClick=()=>{let{kind,story}=this.props;kind&&story&&navigate({kind,story})}}componentDidMount(){this.updateHref()}componentDidUpdate(prevProps){let{kind,story}=this.props;(prevProps.kind!==kind||prevProps.story!==story)&&this.updateHref()}render(){let{kind,story,children,...rest}=this.props,{href}=this.state;return import_react.default.createElement("a",{href,onClick:e=>cancelled(e,this.handleClick),...rest},children)}};LinkTo.defaultProps={kind:null,story:null,children:void 0};var react_default=LinkTo;0&&(module.exports={});
@@ -1 +1 @@
1
- import{hrefTo,navigate}from"../chunk-UXWXBGPY.mjs";import"../chunk-JT3VIYBO.mjs";import React,{PureComponent}from"react";var LEFT_BUTTON=0,isPlainLeftClick=e=>e.button===LEFT_BUTTON&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey,cancelled=(e,cb=_e=>{})=>{isPlainLeftClick(e)&&(e.preventDefault(),cb(e))},LinkTo=class extends PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind,story}=this.props;if(kind&&story){let href=await hrefTo(kind,story);this.setState({href})}};this.handleClick=()=>{let{kind,story}=this.props;kind&&story&&navigate({kind,story})}}componentDidMount(){this.updateHref()}componentDidUpdate(prevProps){let{kind,story}=this.props;(prevProps.kind!==kind||prevProps.story!==story)&&this.updateHref()}render(){let{kind,story,children,...rest}=this.props,{href}=this.state;return React.createElement("a",{href,onClick:e=>cancelled(e,this.handleClick),...rest},children)}};LinkTo.defaultProps={kind:null,story:null,children:void 0};var react_default=LinkTo;export{react_default as default};
1
+ import{hrefTo,navigate}from"../chunk-YFKH3BW3.mjs";import"../chunk-JT3VIYBO.mjs";import React,{PureComponent}from"react";var LEFT_BUTTON=0,isPlainLeftClick=e=>e.button===LEFT_BUTTON&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey,cancelled=(e,cb=_e=>{})=>{isPlainLeftClick(e)&&(e.preventDefault(),cb(e))},LinkTo=class extends PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind,story}=this.props;if(kind&&story){let href=await hrefTo(kind,story);this.setState({href})}};this.handleClick=()=>{let{kind,story}=this.props;kind&&story&&navigate({kind,story})}}componentDidMount(){this.updateHref()}componentDidUpdate(prevProps){let{kind,story}=this.props;(prevProps.kind!==kind||prevProps.story!==story)&&this.updateHref()}render(){let{kind,story,children,...rest}=this.props,{href}=this.state;return React.createElement("a",{href,onClick:e=>cancelled(e,this.handleClick),...rest},children)}};LinkTo.defaultProps={kind:null,story:null,children:void 0};var react_default=LinkTo;export{react_default as default};
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@storybook/addon-links",
3
- "version": "7.0.0-beta.4",
3
+ "version": "7.0.0-beta.41",
4
4
  "description": "Link stories together to build demos and prototypes with your UI components",
5
5
  "keywords": [
6
6
  "addon",
7
7
  "storybook",
8
8
  "organize"
9
9
  ],
10
- "homepage": "https://github.com/storybookjs/storybook/tree/main/addons/links",
10
+ "homepage": "https://github.com/storybookjs/storybook/tree/next/code/addons/links",
11
11
  "bugs": {
12
12
  "url": "https://github.com/storybookjs/storybook/issues"
13
13
  },
@@ -23,6 +23,7 @@
23
23
  "license": "MIT",
24
24
  "exports": {
25
25
  ".": {
26
+ "node": "./dist/index.js",
26
27
  "require": "./dist/index.js",
27
28
  "import": "./dist/index.mjs",
28
29
  "types": "./dist/index.d.ts"
@@ -62,6 +63,9 @@
62
63
  ],
63
64
  "preview": [
64
65
  "dist/preview.d.ts"
66
+ ],
67
+ "react": [
68
+ "dist/react/index.d.ts"
65
69
  ]
66
70
  }
67
71
  },
@@ -76,18 +80,19 @@
76
80
  "prep": "../../../scripts/prepare/bundle.ts"
77
81
  },
78
82
  "dependencies": {
79
- "@storybook/client-logger": "7.0.0-beta.4",
80
- "@storybook/core-events": "7.0.0-beta.4",
83
+ "@storybook/client-logger": "7.0.0-beta.41",
84
+ "@storybook/core-events": "7.0.0-beta.41",
81
85
  "@storybook/csf": "next",
82
- "@storybook/manager-api": "7.0.0-beta.4",
83
- "@storybook/preview-api": "7.0.0-beta.4",
84
- "@storybook/router": "7.0.0-beta.4",
85
- "@storybook/types": "7.0.0-beta.4",
86
- "global": "^4.4.0",
86
+ "@storybook/global": "^5.0.0",
87
+ "@storybook/manager-api": "7.0.0-beta.41",
88
+ "@storybook/preview-api": "7.0.0-beta.41",
89
+ "@storybook/router": "7.0.0-beta.41",
90
+ "@storybook/types": "7.0.0-beta.41",
87
91
  "prop-types": "^15.7.2",
88
92
  "ts-dedent": "^2.0.0"
89
93
  },
90
94
  "devDependencies": {
95
+ "fs-extra": "^11.1.0",
91
96
  "typescript": "~4.9.3"
92
97
  },
93
98
  "peerDependencies": {
@@ -111,9 +116,10 @@
111
116
  "./src/manager.ts",
112
117
  "./src/preview.ts",
113
118
  "./src/react/index.ts"
114
- ]
119
+ ],
120
+ "post": "./scripts/fix-preview-api-reference.ts"
115
121
  },
116
- "gitHead": "4d869ed6f7166e0d06f2bef5a1b872fa77a0cf2d",
122
+ "gitHead": "b73df3011fe6ccda407ebb6ed15b80e0d01d4230",
117
123
  "storybook": {
118
124
  "displayName": "Links",
119
125
  "icon": "https://user-images.githubusercontent.com/263385/101991673-48355c80-3c7c-11eb-9b6e-b627c96a75f6.png",
package/react.d.ts CHANGED
@@ -1,2 +1 @@
1
- export * from './dist/react';
2
- export { default } from './dist/react';
1
+ export * from './dist/react/index';
package/react.js CHANGED
@@ -1,3 +1,3 @@
1
- import LinkTo from './dist/react';
1
+ import LinkTo from './dist/react/index';
2
2
 
3
3
  export default LinkTo;
@@ -1 +0,0 @@
1
- import{PARAM_KEY}from"./chunk-JT3VIYBO.mjs";import global from"global";import{addons,makeDecorator}from"@storybook/preview-api";import{STORY_CHANGED,SELECT_STORY}from"@storybook/core-events";import{toId}from"@storybook/csf";var{document,HTMLElement}=global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>addons.getChannel().emit(SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=toId(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title?.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=makeDecorator({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),addons.getChannel().once(STORY_CHANGED,off),getStory(context))});export{navigate,hrefTo,linkTo,withLinks};