File tree Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { addons , types } from '@storybook/addons' ;
2
+ import { IconButton } from '@storybook/components' ;
3
+ import { useParameter } from '@storybook/manager-api' ;
4
+ import { styled } from '@storybook/theming' ;
5
+
6
+ import React from 'react' ;
7
+
8
+ const ADDON_ID = 'myaddon/figma' ;
9
+ const PARAM_KEY = 'figmaUrl' ;
10
+
11
+ const FigmaIcon = styled . img ( {
12
+ width : '20px' ,
13
+ height : '20px' ,
14
+ marginRight : '10px' ,
15
+ } ) ;
16
+
17
+ addons . register ( ADDON_ID , ( ) => {
18
+ addons . add ( ADDON_ID , {
19
+ title : 'Figma' ,
20
+ type : types . TOOL ,
21
+ match : ( { viewMode } ) => viewMode === 'story' ,
22
+ render : ( ) => {
23
+ const figmaLink = useParameter ( PARAM_KEY , '#' ) ;
24
+
25
+ if ( figmaLink === '#' ) {
26
+ return null ;
27
+ }
28
+
29
+ return (
30
+ < IconButton
31
+ key = "figma"
32
+ title = "Open in Figma"
33
+ onClick = { ( ) => window . open ( figmaLink , '_blank' ) }
34
+ placeholder = { '' }
35
+ onPointerEnterCapture = { undefined }
36
+ onPointerLeaveCapture = { undefined }
37
+ >
38
+ < FigmaIcon
39
+ src = "data:image/svg+xml;base64,PHN2ZyBpZD0iRmxhdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiI+CiAgPHBhdGggZD0iTTE4My4wMzk1NSw5NC4wMDA0OUEzOS45ODcwNiwzOS45ODcwNiwwLDAsMCwxNjIsMjAuMDAxSDk0QTM5Ljk4NzA2LDM5Ljk4NzA2LDAsMCwwLDcyLjk2MDQ1LDk0LjAwMDQ5LDM5Ljk2Mzc1LDM5Ljk2Mzc1LDAsMCwwLDcyLjk2MTQzLDE2MiwzOS45OTI0LDM5Ljk5MjQsMCwxLDAsMTM0LDE5NS45OTk1MXYtMzkuNDdhMzkuOTgwODQsMzkuOTgwODQsMCwxLDAsNDkuMDM5NTUtNjIuNTI5Wk0xOTAsNjAuMDAxYTI4LjAzMTE0LDI4LjAzMTE0LDAsMCwxLTI3Ljk4MDQ3LDI3Ljk5OTUxTDE2Miw4OGwtLjAzODU3LjAwMUwxMzQsODhWMzIuMDAxaDI4QTI4LjAzMTQ1LDI4LjAzMTQ1LDAsMCwxLDE5MCw2MC4wMDFabS0xMjQsMGEyOC4wMzE0NSwyOC4wMzE0NSwwLDAsMSwyOC0yOGgyOFY4OEg5NGwtLjAxOS4wMDA0OUEyOC4wMzEzMiwyOC4wMzEzMiwwLDAsMSw2Niw2MC4wMDFaTTY2LDEyOGEyOC4wMzEyMywyOC4wMzEyMywwLDAsMSwyNy45ODEtMjcuOTk5NTFMOTQsMTAwLjAwMWwyOC0uMDAwNzRWMTU1Ljk5OUw5NCwxNTZBMjguMDMxNDYsMjguMDMxNDYsMCwwLDEsNjYsMTI4Wm0yOCw5NS45OTlBMjcuOTk5NTEsMjcuOTk5NTEsMCwxLDEsOTQsMTY4bDI4LS4wMDA3M3YyOC4wMDAyNEEyOC4wMzEzNSwyOC4wMzEzNSwwLDAsMSw5NCwyMjMuOTk5Wk0xNjIsMTU2YTI3Ljk5OTUyLDI3Ljk5OTUyLDAsMCwxLS4wMzg1Ny01NS45OTlIMTYybC4wMTktLjAwMDQ5QTI3Ljk5OTc2LDI3Ljk5OTc2LDAsMCwxLDE2MiwxNTZaIi8+Cjwvc3ZnPgo="
40
+ alt = "Figma"
41
+ />
42
+ Figma
43
+ </ IconButton >
44
+ ) ;
45
+ } ,
46
+ } ) ;
47
+ } ) ;
Original file line number Diff line number Diff line change
1
+ import { addons , types } from '@storybook/addons' ;
2
+ import { IconButton } from '@storybook/components' ;
3
+ import { useParameter } from '@storybook/manager-api' ;
4
+ import { styled } from '@storybook/theming' ;
5
+
6
+ import React from 'react' ;
7
+
8
+ const ADDON_ID = 'myaddon/github' ;
9
+ const PARAM_KEY = 'githubUrl' ;
10
+
11
+ const GithubIcon = styled . img ( {
12
+ width : '20px' ,
13
+ height : '20px' ,
14
+ marginRight : '10px' ,
15
+ } ) ;
16
+
17
+ addons . register ( ADDON_ID , ( ) => {
18
+ addons . add ( ADDON_ID , {
19
+ title : 'Github' ,
20
+ type : types . TOOL ,
21
+ match : ( { viewMode } ) => viewMode === 'story' ,
22
+ render : ( ) => {
23
+ const githubLink = useParameter ( PARAM_KEY , '#' ) ;
24
+
25
+ if ( githubLink === '#' ) {
26
+ return null ;
27
+ }
28
+
29
+ return (
30
+ < IconButton
31
+ key = "github"
32
+ title = "Open in Github"
33
+ onClick = { ( ) => window . open ( githubLink , '_blank' ) }
34
+ placeholder = { '' }
35
+ onPointerEnterCapture = { undefined }
36
+ onPointerLeaveCapture = { undefined }
37
+ >
38
+ < GithubIcon
39
+ src = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9Imljb25fZ2l0aHViIj4KPHBhdGggaWQ9IlZlY3RvciIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAxQzUuOTIyNSAxIDEgNS45MjI1IDEgMTJDMSAxNi44Njc1IDQuMTQ4NzUgMjAuOTc4OCA4LjUyMTI1IDIyLjQzNjNDOS4wNzEyNSAyMi41MzI1IDkuMjc3NSAyMi4yMDI1IDkuMjc3NSAyMS45MTM3QzkuMjc3NSAyMS42NTI1IDkuMjYzNzUgMjAuNzg2MyA5LjI2Mzc1IDE5Ljg2NUM2LjUgMjAuMzczOCA1Ljc4NSAxOS4xOTEyIDUuNTY1IDE4LjU3MjVDNS40NDEyNSAxOC4yNTYzIDQuOTA1IDE3LjI4IDQuNDM3NSAxNy4wMTg3QzQuMDUyNSAxNi44MTI1IDMuNTAyNSAxNi4zMDM4IDQuNDIzNzUgMTYuMjlDNS4yOSAxNi4yNzYyIDUuOTA4NzUgMTcuMDg3NSA2LjExNSAxNy40MTc1QzcuMTA1IDE5LjA4MTIgOC42ODYyNSAxOC42MTM4IDkuMzE4NzUgMTguMzI1QzkuNDE1IDE3LjYxIDkuNzAzNzUgMTcuMTI4NyAxMC4wMiAxNi44NTM3QzcuNTcyNSAxNi41Nzg3IDUuMDE1IDE1LjYzIDUuMDE1IDExLjQyMjVDNS4wMTUgMTAuMjI2MiA1LjQ0MTI1IDkuMjM2MjUgNi4xNDI1IDguNDY2MjVDNi4wMzI1IDguMTkxMjUgNS42NDc1IDcuMDYzNzUgNi4yNTI1IDUuNTUxMjVDNi4yNTI1IDUuNTUxMjUgNy4xNzM3NSA1LjI2MjUgOS4yNzc1IDYuNjc4NzVDMTAuMTU3NSA2LjQzMTI1IDExLjA5MjUgNi4zMDc1IDEyLjAyNzUgNi4zMDc1QzEyLjk2MjUgNi4zMDc1IDEzLjg5NzUgNi40MzEyNSAxNC43Nzc1IDYuNjc4NzVDMTYuODgxMyA1LjI0ODc1IDE3LjgwMjUgNS41NTEyNSAxNy44MDI1IDUuNTUxMjVDMTguNDA3NSA3LjA2Mzc1IDE4LjAyMjUgOC4xOTEyNSAxNy45MTI1IDguNDY2MjVDMTguNjEzOCA5LjIzNjI1IDE5LjA0IDEwLjIxMjUgMTkuMDQgMTEuNDIyNUMxOS4wNCAxNS42NDM4IDE2LjQ2ODggMTYuNTc4NyAxNC4wMjEzIDE2Ljg1MzdDMTQuNDIgMTcuMTk3NSAxNC43NjM4IDE3Ljg1NzUgMTQuNzYzOCAxOC44ODg4QzE0Ljc2MzggMjAuMzYgMTQuNzUgMjEuNTQyNSAxNC43NSAyMS45MTM3QzE0Ljc1IDIyLjIwMjUgMTQuOTU2MyAyMi41NDYyIDE1LjUwNjMgMjIuNDM2M0MxOS44NTEyIDIwLjk3ODggMjMgMTYuODUzOCAyMyAxMkMyMyA1LjkyMjUgMTguMDc3NSAxIDEyIDFaIiBmaWxsPSIjMUIxRjIzIi8+CjwvZz4KPC9zdmc+Cg=="
40
+ alt = "github"
41
+ />
42
+ Github
43
+ </ IconButton >
44
+ ) ;
45
+ } ,
46
+ } ) ;
47
+ } ) ;
Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ const config: StorybookConfig = {
14
14
'@storybook/addon-a11y' ,
15
15
'@storybook/addon-coverage' ,
16
16
'./tokensAddons/register.tsx' ,
17
+ './figmaAddon/register.tsx' ,
18
+ './githubAddon/register.tsx' ,
17
19
] ,
18
20
framework : {
19
21
name : '@storybook/react-vite' ,
You can’t perform that action at this time.
0 commit comments