@aussieljk/forkbook 0.0.0-stage → 0.0.1-2
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/LICENSE +22 -0
- package/README.md +77 -2
- package/assets/addon-vitest/templates/vitest.config.4.template.ts +36 -0
- package/assets/browser/favicon-wrapper.svg +46 -0
- package/assets/browser/favicon.svg +1 -0
- package/assets/browser/nunito-sans-bold-italic.woff2 +0 -0
- package/assets/browser/nunito-sans-bold.woff2 +0 -0
- package/assets/browser/nunito-sans-italic.woff2 +0 -0
- package/assets/browser/nunito-sans-regular.woff2 +0 -0
- package/assets/builder-vite/iframe.html +99 -0
- package/assets/create/rendererAssets/.eslintrc.json +16 -0
- package/assets/create/rendererAssets/common/Configure.mdx +388 -0
- package/assets/create/rendererAssets/common/assets/accessibility.png +0 -0
- package/assets/create/rendererAssets/common/assets/accessibility.svg +1 -0
- package/assets/create/rendererAssets/common/assets/addon-library.png +0 -0
- package/assets/create/rendererAssets/common/assets/assets.png +0 -0
- package/assets/create/rendererAssets/common/assets/avif-test-image.avif +0 -0
- package/assets/create/rendererAssets/common/assets/context.png +0 -0
- package/assets/create/rendererAssets/common/assets/discord.svg +1 -0
- package/assets/create/rendererAssets/common/assets/docs.png +0 -0
- package/assets/create/rendererAssets/common/assets/figma-plugin.png +0 -0
- package/assets/create/rendererAssets/common/assets/github.svg +1 -0
- package/assets/create/rendererAssets/common/assets/share.png +0 -0
- package/assets/create/rendererAssets/common/assets/styling.png +0 -0
- package/assets/create/rendererAssets/common/assets/testing.png +0 -0
- package/assets/create/rendererAssets/common/assets/theming.png +0 -0
- package/assets/create/rendererAssets/common/assets/tutorials.svg +1 -0
- package/assets/create/rendererAssets/common/assets/youtube.svg +1 -0
- package/assets/create/rendererAssets/common/button.css +30 -0
- package/assets/create/rendererAssets/common/header.css +32 -0
- package/assets/create/rendererAssets/common/page.css +68 -0
- package/assets/create/templates/react-native/index.expo.js +20 -0
- package/assets/create/templates/react-native/index.js +25 -0
- package/assets/docs/addon-backgrounds.gif +0 -0
- package/assets/docs/addon-controls-args-annotated.png +0 -0
- package/assets/docs/addon-controls-args-background-color.png +0 -0
- package/assets/docs/addon-controls-args-background-string.png +0 -0
- package/assets/docs/addon-controls-args-docs.png +0 -0
- package/assets/docs/addon-controls-args-logging.png +0 -0
- package/assets/docs/addon-controls-args-no-annotation.png +0 -0
- package/assets/docs/addon-controls-args-reflow-slider.png +0 -0
- package/assets/docs/addon-controls-args-reflow.png +0 -0
- package/assets/docs/addon-controls-args-template.png +0 -0
- package/assets/docs/addon-controls-expanded.png +0 -0
- package/assets/docs/addon-controls-hero.gif +0 -0
- package/assets/docs/addon-controls-install.png +0 -0
- package/assets/docs/hero.gif +0 -0
- package/assets/docs/highlight.png +0 -0
- package/assets/docs/message-reference.png +0 -0
- package/assets/docs/viewport.png +0 -0
- package/assets/react-native/metro-env.d.ts +69 -0
- package/assets/server/addon.tsconfig.json +6 -0
- package/assets/server/base-preview-body.html +116 -0
- package/assets/server/base-preview-head.html +494 -0
- package/assets/server/openBrowser.applescript +94 -0
- package/assets/server/template.ejs +87 -0
- package/dist/.build-stamp +0 -0
- package/dist/_browser-chunks/Color-PCLE2J36.js +1025 -0
- package/dist/_browser-chunks/DocsRenderer-JXND3PVQ.js +10 -0
- package/dist/_browser-chunks/WithTooltip-XSQFTBMB.js +1619 -0
- package/dist/_browser-chunks/chunk-2JDQ35OA.js +247 -0
- package/dist/_browser-chunks/chunk-2JT76G3E.js +104 -0
- package/dist/_browser-chunks/chunk-2MEPHP35.js +17 -0
- package/dist/_browser-chunks/chunk-2SCZVUKW.js +24 -0
- package/dist/_browser-chunks/chunk-46Z7NGAS.js +41 -0
- package/dist/_browser-chunks/chunk-4ATQOMJB.js +30 -0
- package/dist/_browser-chunks/chunk-52CW7FF7.js +49 -0
- package/dist/_browser-chunks/chunk-5I7E4GMO.js +62 -0
- package/dist/_browser-chunks/chunk-5P4QA6MY.js +20 -0
- package/dist/_browser-chunks/chunk-5WMXI5GW.js +816 -0
- package/dist/_browser-chunks/chunk-66OCZ54D.js +2604 -0
- package/dist/_browser-chunks/chunk-6SXYJQST.js +253 -0
- package/dist/_browser-chunks/chunk-AYRF6EJB.js +36 -0
- package/dist/_browser-chunks/chunk-B4AUNNU4.js +156 -0
- package/dist/_browser-chunks/chunk-BCP2FFXF.js +369 -0
- package/dist/_browser-chunks/chunk-C3D4HEFY.js +3396 -0
- package/dist/_browser-chunks/chunk-CFAOWGL7.js +43 -0
- package/dist/_browser-chunks/chunk-CFWWCCZV.js +223 -0
- package/dist/_browser-chunks/chunk-CNED6RYH.js +18 -0
- package/dist/_browser-chunks/chunk-DRQKCCAG.js +136 -0
- package/dist/_browser-chunks/chunk-ECQ75MKQ.js +0 -0
- package/dist/_browser-chunks/chunk-EIYAKDGP.js +302 -0
- package/dist/_browser-chunks/chunk-ENKK74N4.js +12 -0
- package/dist/_browser-chunks/chunk-FENFYI4X.js +698 -0
- package/dist/_browser-chunks/chunk-FJGWSWL5.js +155 -0
- package/dist/_browser-chunks/chunk-FVSEPWWX.js +2810 -0
- package/dist/_browser-chunks/chunk-GNZY6LOW.js +10116 -0
- package/dist/_browser-chunks/chunk-IE4ULIOQ.js +14 -0
- package/dist/_browser-chunks/chunk-IMSF75WX.js +42 -0
- package/dist/_browser-chunks/chunk-IWQGIXJS.js +14 -0
- package/dist/_browser-chunks/chunk-JMC7AIKT.js +108 -0
- package/dist/_browser-chunks/chunk-JPUOQJUI.js +8 -0
- package/dist/_browser-chunks/chunk-JSBKXXXF.js +218 -0
- package/dist/_browser-chunks/chunk-JWSKPMPC.js +73 -0
- package/dist/_browser-chunks/chunk-JYVGARBG.js +2943 -0
- package/dist/_browser-chunks/chunk-KBK7GKBN.js +35 -0
- package/dist/_browser-chunks/chunk-KQ7CRO2B.js +108 -0
- package/dist/_browser-chunks/chunk-LAWXTSXK.js +18 -0
- package/dist/_browser-chunks/chunk-LE2LTDW3.js +14 -0
- package/dist/_browser-chunks/chunk-LEVSOOLQ.js +48 -0
- package/dist/_browser-chunks/chunk-LV5PIKV4.js +93 -0
- package/dist/_browser-chunks/chunk-MDOL7KML.js +56 -0
- package/dist/_browser-chunks/chunk-MFMDGWP6.js +34 -0
- package/dist/_browser-chunks/chunk-MLBOOZL4.js +67 -0
- package/dist/_browser-chunks/chunk-NQUD4B7H.js +91 -0
- package/dist/_browser-chunks/chunk-NULBREPZ.js +43 -0
- package/dist/_browser-chunks/chunk-NZMVUW5T.js +7 -0
- package/dist/_browser-chunks/chunk-OD6IBQCC.js +117 -0
- package/dist/_browser-chunks/chunk-ODVJ3XZJ.js +157 -0
- package/dist/_browser-chunks/chunk-OQWFVDIN.js +386 -0
- package/dist/_browser-chunks/chunk-OVH3USFB.js +20 -0
- package/dist/_browser-chunks/chunk-OZZPSYQR.js +14 -0
- package/dist/_browser-chunks/chunk-P6PK47TQ.js +1970 -0
- package/dist/_browser-chunks/chunk-PFRNG3UC.js +22 -0
- package/dist/_browser-chunks/chunk-PJSMZ27A.js +13 -0
- package/dist/_browser-chunks/chunk-QC4HFS6K.js +41 -0
- package/dist/_browser-chunks/chunk-QDXFODK4.js +274 -0
- package/dist/_browser-chunks/chunk-RBCHTR7C.js +28 -0
- package/dist/_browser-chunks/chunk-RMYQ3QN3.js +294 -0
- package/dist/_browser-chunks/chunk-RNTIV5CE.js +411 -0
- package/dist/_browser-chunks/chunk-RSPAQWVJ.js +80 -0
- package/dist/_browser-chunks/chunk-S6TK43XQ.js +836 -0
- package/dist/_browser-chunks/chunk-SC67XZST.js +18 -0
- package/dist/_browser-chunks/chunk-SFVA4SBT.js +683 -0
- package/dist/_browser-chunks/chunk-SZYFOQMT.js +25 -0
- package/dist/_browser-chunks/chunk-TBJCJXK4.js +18 -0
- package/dist/_browser-chunks/chunk-UMDO3KB7.js +205 -0
- package/dist/_browser-chunks/chunk-V2G23FV7.js +11 -0
- package/dist/_browser-chunks/chunk-V5M7Q4HT.js +88 -0
- package/dist/_browser-chunks/chunk-W5M6NPS3.js +198 -0
- package/dist/_browser-chunks/chunk-W7NE2JXW.js +84 -0
- package/dist/_browser-chunks/chunk-WGVAAM43.js +1110 -0
- package/dist/_browser-chunks/chunk-WHQRNHXD.js +8 -0
- package/dist/_browser-chunks/chunk-WOSOWBCA.js +12 -0
- package/dist/_browser-chunks/chunk-WZ7KR7SH.js +85 -0
- package/dist/_browser-chunks/chunk-YEKO6BHJ.js +20 -0
- package/dist/_browser-chunks/chunk-YI2IBIQS.js +7 -0
- package/dist/_browser-chunks/chunk-YTIT5NA5.js +1966 -0
- package/dist/_browser-chunks/chunk-ZEHRUHTA.js +6 -0
- package/dist/_browser-chunks/chunk-ZTQ5MEJ5.js +203 -0
- package/dist/_browser-chunks/matchers-YLBYSYAF.js +1263 -0
- package/dist/_browser-chunks/react-dom-client-4OHE3QDV.js +9 -0
- package/dist/_node-chunks/attached-runtime-I2G4WLJI.js +282 -0
- package/dist/_node-chunks/builder-manager-VVHYQXCH.js +1661 -0
- package/dist/_node-chunks/chunk-2BUPBPFB.js +82 -0
- package/dist/_node-chunks/chunk-2DSIDINN.js +884 -0
- package/dist/_node-chunks/chunk-2RU7BKEW.js +23 -0
- package/dist/_node-chunks/chunk-34EO2PUT.js +26 -0
- package/dist/_node-chunks/chunk-3BKIBF5S.js +3008 -0
- package/dist/_node-chunks/chunk-3SDUYDXH.js +98 -0
- package/dist/_node-chunks/chunk-3T4ZSNPH.js +662 -0
- package/dist/_node-chunks/chunk-3W7F2B7P.js +79 -0
- package/dist/_node-chunks/chunk-3Y6AAY5H.js +80 -0
- package/dist/_node-chunks/chunk-42UWAGPW.js +1193 -0
- package/dist/_node-chunks/chunk-4FEANXWU.js +1986 -0
- package/dist/_node-chunks/chunk-5DQFEZEA.js +40 -0
- package/dist/_node-chunks/chunk-6KEHV53S.js +1218 -0
- package/dist/_node-chunks/chunk-6LMWA44H.js +3837 -0
- package/dist/_node-chunks/chunk-6YKBRP72.js +20 -0
- package/dist/_node-chunks/chunk-7GUDZVRQ.js +110 -0
- package/dist/_node-chunks/chunk-B5J7Q7J4.js +21 -0
- package/dist/_node-chunks/chunk-BS2WMZMR.js +90 -0
- package/dist/_node-chunks/chunk-BSKFCWQD.js +47 -0
- package/dist/_node-chunks/chunk-BXVYT7SB.js +36 -0
- package/dist/_node-chunks/chunk-CCOTJ4FC.js +688 -0
- package/dist/_node-chunks/chunk-CQKMLL5J.js +33 -0
- package/dist/_node-chunks/chunk-CXRU72ET.js +63 -0
- package/dist/_node-chunks/chunk-DC7DKR5K.js +20 -0
- package/dist/_node-chunks/chunk-DHJFTB4K.js +25 -0
- package/dist/_node-chunks/chunk-DUR55DJJ.js +1094 -0
- package/dist/_node-chunks/chunk-E6YESGLX.js +7032 -0
- package/dist/_node-chunks/chunk-EHUNOMDD.js +52345 -0
- package/dist/_node-chunks/chunk-ET7PWEO7.js +298 -0
- package/dist/_node-chunks/chunk-EWOX7HPJ.js +20 -0
- package/dist/_node-chunks/chunk-F3ZFKBHY.js +844 -0
- package/dist/_node-chunks/chunk-FK7KGTV7.js +26 -0
- package/dist/_node-chunks/chunk-FPZB5OI7.js +35 -0
- package/dist/_node-chunks/chunk-FW2HQUBQ.js +25 -0
- package/dist/_node-chunks/chunk-FY6UXW6G.js +11 -0
- package/dist/_node-chunks/chunk-GEFQN7K3.js +499 -0
- package/dist/_node-chunks/chunk-GRBLDJCR.js +989 -0
- package/dist/_node-chunks/chunk-H32DYT6P.js +87 -0
- package/dist/_node-chunks/chunk-H4PPVMP5.js +23 -0
- package/dist/_node-chunks/chunk-HMP2G23X.js +25 -0
- package/dist/_node-chunks/chunk-ICPBH3E7.js +59 -0
- package/dist/_node-chunks/chunk-IDEL2J23.js +23 -0
- package/dist/_node-chunks/chunk-IK4FGZLR.js +223 -0
- package/dist/_node-chunks/chunk-JDXXX6LB.js +68 -0
- package/dist/_node-chunks/chunk-JGGFYIG5.js +5468 -0
- package/dist/_node-chunks/chunk-JPAZLYJ3.js +29 -0
- package/dist/_node-chunks/chunk-JZOO7GGC.js +48 -0
- package/dist/_node-chunks/chunk-KISMCCP5.js +4744 -0
- package/dist/_node-chunks/chunk-LCK4ZQKG.js +115 -0
- package/dist/_node-chunks/chunk-LO56I6E2.js +132 -0
- package/dist/_node-chunks/chunk-LXBD4UL4.js +104 -0
- package/dist/_node-chunks/chunk-MA24JW6C.js +7162 -0
- package/dist/_node-chunks/chunk-MK2KYAI6.js +5414 -0
- package/dist/_node-chunks/chunk-NDWKJ4CL.js +2102 -0
- package/dist/_node-chunks/chunk-NIBT7XDZ.js +168 -0
- package/dist/_node-chunks/chunk-NPO45IMH.js +33 -0
- package/dist/_node-chunks/chunk-OISX4AGQ.js +414 -0
- package/dist/_node-chunks/chunk-OUW6R7C3.js +26 -0
- package/dist/_node-chunks/chunk-OWNFOGTA.js +194 -0
- package/dist/_node-chunks/chunk-Q7QNUM5H.js +49 -0
- package/dist/_node-chunks/chunk-QEQLR22M.js +1877 -0
- package/dist/_node-chunks/chunk-RRN2V55B.js +45 -0
- package/dist/_node-chunks/chunk-RWFIFGO5.js +144 -0
- package/dist/_node-chunks/chunk-RXNJDRGO.js +209 -0
- package/dist/_node-chunks/chunk-RZMQ7S3L.js +92 -0
- package/dist/_node-chunks/chunk-SIEXZVCR.js +51 -0
- package/dist/_node-chunks/chunk-SLWQNBGO.js +2034 -0
- package/dist/_node-chunks/chunk-SVTBJ7Q3.js +35 -0
- package/dist/_node-chunks/chunk-SWO5CDYU.js +32 -0
- package/dist/_node-chunks/chunk-TD5PLLQG.js +121 -0
- package/dist/_node-chunks/chunk-TEQGGSP7.js +33 -0
- package/dist/_node-chunks/chunk-TFCEV2XX.js +155 -0
- package/dist/_node-chunks/chunk-TFEWM4E3.js +1073 -0
- package/dist/_node-chunks/chunk-TINO74G5.js +21 -0
- package/dist/_node-chunks/chunk-TNJIXE37.js +40 -0
- package/dist/_node-chunks/chunk-TWI4GVH7.js +19 -0
- package/dist/_node-chunks/chunk-U5W53R2J.js +1011 -0
- package/dist/_node-chunks/chunk-UBOGWBEA.js +148 -0
- package/dist/_node-chunks/chunk-UMUBKI6E.js +3787 -0
- package/dist/_node-chunks/chunk-UVINFLGY.js +56 -0
- package/dist/_node-chunks/chunk-V2DY426G.js +1133 -0
- package/dist/_node-chunks/chunk-VLOXOXXE.js +45 -0
- package/dist/_node-chunks/chunk-W4OMYLSP.js +1297 -0
- package/dist/_node-chunks/chunk-WAXVSN3O.js +18 -0
- package/dist/_node-chunks/chunk-WCULS5TP.js +3767 -0
- package/dist/_node-chunks/chunk-WNZ2UMFM.js +153 -0
- package/dist/_node-chunks/chunk-WZJF2OUH.js +74 -0
- package/dist/_node-chunks/chunk-XGIUVY52.js +611 -0
- package/dist/_node-chunks/chunk-XHL2LVBM.js +415 -0
- package/dist/_node-chunks/chunk-XI6B6P47.js +59 -0
- package/dist/_node-chunks/chunk-XLP2ZKXV.js +60 -0
- package/dist/_node-chunks/chunk-YCMRA6RX.js +95 -0
- package/dist/_node-chunks/chunk-YZFWBA5L.js +2700 -0
- package/dist/_node-chunks/chunk-ZMAMXQKP.js +4731 -0
- package/dist/_node-chunks/chunk-ZWBCQ4MJ.js +110 -0
- package/dist/_node-chunks/dist-VTSTZKUB.js +16 -0
- package/dist/_node-chunks/globby-OEMHPBFY.js +2884 -0
- package/dist/_node-chunks/jiti-NFX6UU74.js +3848 -0
- package/dist/_node-chunks/lib-MDVARD7W.js +366 -0
- package/dist/_node-chunks/local-runtime-NTKIN2QT.js +78 -0
- package/dist/_node-chunks/mdx-plugin-MWISDWDQ.js +5680 -0
- package/dist/_node-chunks/monorepo-LIRFMQXE.js +121 -0
- package/dist/_node-chunks/monorepo-optimized-tests-relaxed-limits-no-story-deletion-CPDW4XTW.js +121 -0
- package/dist/_node-chunks/optimized-tests-HDOLR3EY.js +22 -0
- package/dist/_node-chunks/pattern-copy-play-EKHIUAU2.js +807 -0
- package/dist/_node-chunks/postinstallAddon-GYGMWDL6.js +20 -0
- package/dist/_node-chunks/rehype-external-links-BUN3HUCO.js +121 -0
- package/dist/_node-chunks/rehype-slug-PLADX223.js +52 -0
- package/dist/_node-chunks/relaxed-limits-GBHW6KIQ.js +117 -0
- package/dist/_node-chunks/run-KDTIZNSY.js +103 -0
- package/dist/_node-chunks/run-NL66VTNR.js +4532 -0
- package/dist/_node-chunks/session-id-KIIVOQLR.js +23 -0
- package/dist/_node-chunks/setup-MGC7BQO6.js +278 -0
- package/dist/_node-chunks/vitest.config.4.template-JH2THZFG.js +54 -0
- package/dist/actions/decorator.d.ts +7 -0
- package/dist/actions/decorator.js +43 -0
- package/dist/actions/index.d.ts +67 -0
- package/dist/actions/index.js +28 -0
- package/dist/addon-a11y/index.d.ts +52 -0
- package/dist/addon-a11y/index.js +16 -0
- package/dist/addon-a11y/manager.js +1429 -0
- package/dist/addon-a11y/preset.js +18 -0
- package/dist/addon-a11y/preview.d.ts +17 -0
- package/dist/addon-a11y/preview.js +15 -0
- package/dist/addon-docs/blocks.d.ts +1061 -0
- package/dist/addon-docs/blocks.js +2461 -0
- package/dist/addon-docs/index.d.ts +236 -0
- package/dist/addon-docs/index.js +16 -0
- package/dist/addon-docs/manager.js +90 -0
- package/dist/addon-docs/mdx-react-shim.d.ts +1 -0
- package/dist/addon-docs/mdx-react-shim.js +2 -0
- package/dist/addon-docs/preset.js +378 -0
- package/dist/addon-docs/preview.d.ts +4 -0
- package/dist/addon-docs/preview.js +7 -0
- package/dist/addon-links/index.d.ts +22 -0
- package/dist/addon-links/index.js +20 -0
- package/dist/addon-links/manager.js +14 -0
- package/dist/addon-links/preview.d.ts +6 -0
- package/dist/addon-links/preview.js +9 -0
- package/dist/addon-links/react/index.d.ts +25 -0
- package/dist/addon-links/react/index.js +52 -0
- package/dist/addon-mcp/preset.js +1345 -0
- package/dist/addon-mcp/preview.js +29 -0
- package/dist/addon-mcp/tools/preview-stories/preview-stories-app-script.js +1153 -0
- package/dist/addon-ondevice-actions/index.d.ts +4 -0
- package/dist/addon-ondevice-actions/index.js +7 -0
- package/dist/addon-ondevice-actions/register.js +7 -0
- package/dist/addon-ondevice-controls/index.d.ts +6 -0
- package/dist/addon-ondevice-controls/index.js +14 -0
- package/dist/addon-ondevice-controls/register.js +10 -0
- package/dist/addon-pseudo-states/index.d.ts +35 -0
- package/dist/addon-pseudo-states/index.js +15 -0
- package/dist/addon-pseudo-states/manager.js +53 -0
- package/dist/addon-pseudo-states/preview.d.ts +9 -0
- package/dist/addon-pseudo-states/preview.js +10 -0
- package/dist/addon-themes/index.d.ts +80 -0
- package/dist/addon-themes/index.js +104 -0
- package/dist/addon-themes/manager.js +97 -0
- package/dist/addon-themes/postinstall.js +33 -0
- package/dist/addon-themes/preview.d.ts +6 -0
- package/dist/addon-themes/preview.js +8 -0
- package/dist/addon-vitest/constants.d.ts +132 -0
- package/dist/addon-vitest/constants.js +66 -0
- package/dist/addon-vitest/index.d.ts +4 -0
- package/dist/addon-vitest/index.js +8 -0
- package/dist/addon-vitest/manager.js +665 -0
- package/dist/addon-vitest/node/coverage-reporter.js +1284 -0
- package/dist/addon-vitest/node/vitest.js +674 -0
- package/dist/addon-vitest/postinstall.js +24 -0
- package/dist/addon-vitest/preset.js +943 -0
- package/dist/addon-vitest/vitest-plugin/global-setup.js +162 -0
- package/dist/addon-vitest/vitest-plugin/index.d.ts +56 -0
- package/dist/addon-vitest/vitest-plugin/index.js +463 -0
- package/dist/addon-vitest/vitest-plugin/setup-file-with-project-annotations.js +9 -0
- package/dist/addon-vitest/vitest-plugin/setup-file.browser.4.js +20 -0
- package/dist/addon-vitest/vitest-plugin/setup-file.js +50 -0
- package/dist/addon-vitest/vitest-plugin/test-utils.js +128 -0
- package/dist/babel/index.d.ts +2301 -0
- package/dist/babel/index.js +61 -0
- package/dist/backgrounds/index.d.ts +6 -0
- package/dist/backgrounds/index.js +15 -0
- package/dist/bin/core.js +1705 -0
- package/dist/bin/dispatcher.js +43 -0
- package/dist/bin/loader.js +115 -0
- package/dist/builder-vite/index.d.ts +50 -0
- package/dist/builder-vite/index.js +245 -0
- package/dist/builder-vite/preset.js +27 -0
- package/dist/channels/index.d.ts +2 -0
- package/dist/channels/index.js +352 -0
- package/dist/chunk-B2t1tGRh.d.ts +284 -0
- package/dist/chunk-BCoJQE-f.d.ts +602 -0
- package/dist/chunk-BGkgZp-H.d.ts +214 -0
- package/dist/chunk-BTVrWliM.d.ts +115 -0
- package/dist/chunk-BXLImeLy.d.ts +197 -0
- package/dist/chunk-BfBzpgct.d.ts +916 -0
- package/dist/chunk-Bpi2tz-6.d.ts +511 -0
- package/dist/chunk-BxWufQms.d.ts +142 -0
- package/dist/chunk-C-bavsOH.d.ts +34 -0
- package/dist/chunk-C2p5r3Vt.d.ts +13001 -0
- package/dist/chunk-C6PAgHLT.d.ts +12 -0
- package/dist/chunk-CMeX4WRe.d.ts +179 -0
- package/dist/chunk-Ct9xd6IM.d.ts +65 -0
- package/dist/chunk-CwQKNaYL.d.ts +15 -0
- package/dist/chunk-D7DwV41f.d.ts +3622 -0
- package/dist/chunk-DEVFdzxR.d.ts +253 -0
- package/dist/chunk-DaVb55-_.d.ts +124 -0
- package/dist/chunk-DgRNfmj_.d.ts +40 -0
- package/dist/chunk-DoIGKY33.d.ts +666 -0
- package/dist/chunk-Dr3R0DXk.d.ts +40 -0
- package/dist/chunk-DtHByo32.d.ts +55 -0
- package/dist/chunk-Dw1z1Pki.d.ts +933 -0
- package/dist/chunk-DzuY9DXg.d.ts +79 -0
- package/dist/chunk-FjDVzZTj.d.ts +62 -0
- package/dist/chunk-Kt1tW-D1.d.ts +59 -0
- package/dist/chunk-XP8oHzpE.d.ts +6 -0
- package/dist/chunk-gCX81nOr.d.ts +61 -0
- package/dist/chunk-pcFXCimE.d.ts +741 -0
- package/dist/cli/index.d.ts +1174 -0
- package/dist/cli/index.js +5613 -0
- package/dist/cli/skills/content/index.d.ts +72 -0
- package/dist/cli/skills/content/index.js +335 -0
- package/dist/cli/tools/sdk/child-host.d.ts +61 -0
- package/dist/cli/tools/sdk/child-host.js +131 -0
- package/dist/cli/tools/sdk/index.d.ts +137 -0
- package/dist/cli/tools/sdk/index.js +44 -0
- package/dist/cli-commands/bin/index.js +25 -0
- package/dist/client-logger/index.d.ts +31 -0
- package/dist/client-logger/index.js +63 -0
- package/dist/common/index.d.ts +1103 -0
- package/dist/common/index.js +364 -0
- package/dist/components/index.d.ts +1924 -0
- package/dist/components/index.js +13759 -0
- package/dist/core-events/index.d.ts +155 -0
- package/dist/core-events/index.js +136 -0
- package/dist/core-server/index.d.ts +2200 -0
- package/dist/core-server/index.js +4165 -0
- package/dist/core-server/presets/common-manager.css +170 -0
- package/dist/core-server/presets/common-manager.js +4168 -0
- package/dist/core-server/presets/common-override-preset.js +81 -0
- package/dist/core-server/presets/common-preset.js +2187 -0
- package/dist/create/bin/index.js +23 -0
- package/dist/create/index.js +25 -0
- package/dist/csf/csf-utils.d.ts +2 -0
- package/dist/csf/csf-utils.js +19 -0
- package/dist/csf/index.d.ts +7 -0
- package/dist/csf/index.js +2142 -0
- package/dist/csf-tools/index.d.ts +1157 -0
- package/dist/csf-tools/index.js +736 -0
- package/dist/docs-tools/index.d.ts +197 -0
- package/dist/docs-tools/index.js +61 -0
- package/dist/highlight/index.d.ts +10 -0
- package/dist/highlight/index.js +15 -0
- package/dist/instrumenter/index.d.ts +113 -0
- package/dist/instrumenter/index.js +2595 -0
- package/dist/manager/_manager-chunks/globals-runtime-8HkdnU2F.js +6144 -0
- package/dist/manager/_manager-chunks/globals-runtime-BIKBO23x.js +3389 -0
- package/dist/manager/_manager-chunks/globals-runtime-BdGkqNEt.js +45 -0
- package/dist/manager/_manager-chunks/globals-runtime-BmphMP6z.js +1190 -0
- package/dist/manager/_manager-chunks/globals-runtime-BvM-NY2g.js +13307 -0
- package/dist/manager/_manager-chunks/globals-runtime-C02fvgcd.js +9243 -0
- package/dist/manager/_manager-chunks/globals-runtime-DkAPXCvc.js +9766 -0
- package/dist/manager/_manager-chunks/globals-runtime-DpNYC-qi.js +5564 -0
- package/dist/manager/_manager-chunks/globals-runtime-DtcOnYHR.js +5357 -0
- package/dist/manager/_manager-chunks/globals-runtime-DwFqpqya.js +722 -0
- package/dist/manager/_manager-chunks/globals-runtime-FC201B7s.js +6837 -0
- package/dist/manager/_manager-chunks/globals-runtime-Rp_zjGnh.js +121 -0
- package/dist/manager/_manager-chunks/globals-runtime-ZHrQFa3-.js +10463 -0
- package/dist/manager/_manager-chunks/globals-runtime-eLPTIfX-.js +7759 -0
- package/dist/manager/_manager-chunks/globals-runtime-qKvCZHFY.js +4468 -0
- package/dist/manager/_manager-chunks/globals-runtime-sGpNlIJ1.js +5102 -0
- package/dist/manager/_manager-chunks/runtime-B1L9TH89.js +452 -0
- package/dist/manager/_manager-chunks/runtime-BK0zF7FN.js +22 -0
- package/dist/manager/_manager-chunks/runtime-BhkT2CXl.js +1408 -0
- package/dist/manager/_manager-chunks/runtime-Bly6WJLN.js +998 -0
- package/dist/manager/_manager-chunks/runtime-D0UOWx0U.js +979 -0
- package/dist/manager/_manager-chunks/runtime-D94Vq3oR.js +4014 -0
- package/dist/manager/_manager-chunks/runtime-DMig8mT7.js +77 -0
- package/dist/manager/_manager-chunks/runtime-EITvVbkG.js +46 -0
- package/dist/manager/_manager-chunks/runtime-cp5pazY2.js +8936 -0
- package/dist/manager/_manager-chunks/runtime-eDVAYF7N.js +6860 -0
- package/dist/manager/_manager-chunks/runtime-i-PDAHLR.js +2493 -0
- package/dist/manager/globals-runtime.js +2 -0
- package/dist/manager/globals.d.ts +23 -0
- package/dist/manager/globals.js +26 -0
- package/dist/manager/manager-stores.d.ts +2 -0
- package/dist/manager/manager-stores.js +19 -0
- package/dist/manager/runtime.js +2 -0
- package/dist/manager-api/index.d.ts +2 -0
- package/dist/manager-api/index.js +3257 -0
- package/dist/manager-errors.d.ts +89 -0
- package/dist/manager-errors.js +20 -0
- package/dist/mcp/index.d.ts +270 -0
- package/dist/mcp/index.js +305 -0
- package/dist/mocking-utils/index.d.ts +689 -0
- package/dist/mocking-utils/index.js +521 -0
- package/dist/mocking-utils/mocker-runtime.js +1254 -0
- package/dist/nextjs-vite/config/preview.js +3 -0
- package/dist/nextjs-vite/export-mocks/cache/index.d.ts +25 -0
- package/dist/nextjs-vite/export-mocks/cache/index.js +29 -0
- package/dist/nextjs-vite/export-mocks/headers/index.d.ts +37 -0
- package/dist/nextjs-vite/export-mocks/headers/index.js +54 -0
- package/dist/nextjs-vite/export-mocks/link/index.d.ts +9 -0
- package/dist/nextjs-vite/export-mocks/link/index.js +59 -0
- package/dist/nextjs-vite/export-mocks/navigation/index.d.ts +28 -0
- package/dist/nextjs-vite/export-mocks/navigation/index.js +58 -0
- package/dist/nextjs-vite/export-mocks/router/index.d.ts +34 -0
- package/dist/nextjs-vite/export-mocks/router/index.js +63 -0
- package/dist/nextjs-vite/index.d.ts +92 -0
- package/dist/nextjs-vite/index.js +58 -0
- package/dist/nextjs-vite/node/index.d.ts +6 -0
- package/dist/nextjs-vite/node/index.js +20 -0
- package/dist/nextjs-vite/preset.js +648 -0
- package/dist/nextjs-vite/preview.d.ts +20 -0
- package/dist/nextjs-vite/preview.js +11 -0
- package/dist/nextjs-vite/vite-plugin/index.d.ts +6 -0
- package/dist/nextjs-vite/vite-plugin/index.js +19 -0
- package/dist/nextjs-vite-plugin/index.d.ts +28 -0
- package/dist/nextjs-vite-plugin/index.js +923 -0
- package/dist/nextjs-vite-plugin/mocks/storybook.global.js +29 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/image-context.js +8 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/image-default-loader.js +23 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/next-image.js +28 -0
- package/dist/nextjs-vite-plugin/plugins/next-image/alias/next-legacy-image.js +17 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/cache/index.js +29 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/dynamic/index.js +40 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/headers/index.js +55 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/link/index.js +63 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/navigation/index.js +71 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/router/index.js +74 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/rsc/server-only.js +7 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/alias/safe-stable-stringify/index.js +13 -0
- package/dist/nextjs-vite-plugin/plugins/next-mocks/compatibility/draft-mode.compat.js +7 -0
- package/dist/node-logger/index.d.ts +495 -0
- package/dist/node-logger/index.js +42 -0
- package/dist/oxc-parser/index.d.ts +99 -0
- package/dist/oxc-parser/index.js +275 -0
- package/dist/oxc-parser/worker.js +37 -0
- package/dist/preview/_chunks/runtime-BIzIdDbb.js +10263 -0
- package/dist/preview/_chunks/runtime-BTPtVY1p.js +1102 -0
- package/dist/preview/_chunks/runtime-BZSnICCg.js +8484 -0
- package/dist/preview/_chunks/runtime-BdGkqNEt.js +45 -0
- package/dist/preview/_chunks/runtime-BwSxqk3t.js +63 -0
- package/dist/preview/_chunks/runtime-CqHxptiK.js +6143 -0
- package/dist/preview/_chunks/runtime-CsV4HZPV.js +5064 -0
- package/dist/preview/_chunks/runtime-CxZK_Ln3.js +284 -0
- package/dist/preview/_chunks/runtime-DZToXfvO.js +9767 -0
- package/dist/preview/_chunks/runtime-DrTjJkPY.js +3872 -0
- package/dist/preview/_chunks/runtime-DuHdxMFA.js +387 -0
- package/dist/preview/_chunks/runtime-iXdo8CR8.js +3635 -0
- package/dist/preview/_chunks/runtime-q3wt0e_N.js +6838 -0
- package/dist/preview/globals.d.ts +16 -0
- package/dist/preview/globals.js +20 -0
- package/dist/preview/runtime.js +6 -0
- package/dist/preview-api/index.d.ts +4 -0
- package/dist/preview-api/index.js +147 -0
- package/dist/preview-errors.d.ts +186 -0
- package/dist/preview-errors.js +56 -0
- package/dist/react/docgen/docgen-worker.js +38 -0
- package/dist/react/entry-preview-argtypes.js +9 -0
- package/dist/react/entry-preview-docs.js +12 -0
- package/dist/react/entry-preview-rsc.js +11 -0
- package/dist/react/entry-preview.js +21 -0
- package/dist/react/index.d.ts +119 -0
- package/dist/react/index.js +26 -0
- package/dist/react/preset.js +301 -0
- package/dist/react/preview.d.ts +2 -0
- package/dist/react/preview.js +11 -0
- package/dist/react-native/bin/get-stories.js +34 -0
- package/dist/react-native/index.d.ts +160 -0
- package/dist/react-native/index.js +1547 -0
- package/dist/react-native/metro/node.d.ts +83 -0
- package/dist/react-native/metro/node.js +21 -0
- package/dist/react-native/metro/withStorybook.d.ts +2269 -0
- package/dist/react-native/metro/withStorybook.js +138 -0
- package/dist/react-native/preview.d.ts +6 -0
- package/dist/react-native/preview.js +20 -0
- package/dist/react-native/scripts/generate.d.ts +22 -0
- package/dist/react-native/scripts/generate.js +18 -0
- package/dist/react-native/stub.js +20 -0
- package/dist/react-native-theming/index.d.ts +175 -0
- package/dist/react-native-theming/index.js +2591 -0
- package/dist/react-native-ui/index.d.ts +130 -0
- package/dist/react-native-ui/index.js +1448 -0
- package/dist/react-native-ui-common/index.d.ts +230 -0
- package/dist/react-native-ui-common/index.js +514 -0
- package/dist/react-vite/index.d.ts +4 -0
- package/dist/react-vite/index.js +8 -0
- package/dist/react-vite/node/index.d.ts +6 -0
- package/dist/react-vite/node/index.js +20 -0
- package/dist/react-vite/preset.d.ts +6 -0
- package/dist/react-vite/preset.js +21 -0
- package/dist/router/index.d.ts +141 -0
- package/dist/router/index.js +1217 -0
- package/dist/server-errors.d.ts +2 -0
- package/dist/server-errors.js +149 -0
- package/dist/shared/open-service/index.d.ts +3 -0
- package/dist/shared/open-service/index.js +115 -0
- package/dist/shared/open-service/services/docgen/worker/docgen-worker.js +75 -0
- package/dist/shared/open-service/toolsets/docs/public.d.ts +1296 -0
- package/dist/shared/open-service/toolsets/docs/public.js +991 -0
- package/dist/telemetry/index.d.ts +314 -0
- package/dist/telemetry/index.js +103 -0
- package/dist/test/index.d.ts +158 -0
- package/dist/test/index.js +19421 -0
- package/dist/theming/create.d.ts +15 -0
- package/dist/theming/create.js +11 -0
- package/dist/theming/index.d.ts +54 -0
- package/dist/theming/index.js +511 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +48 -0
- package/dist/viewport/index.d.ts +275 -0
- package/dist/viewport/index.js +21 -0
- package/package.json +1054 -4
- package/template/nextjs-vite/cli/.eslintrc.json +6 -0
- package/template/nextjs-vite/cli/js/Button.jsx +42 -0
- package/template/nextjs-vite/cli/js/Button.stories.js +49 -0
- package/template/nextjs-vite/cli/js/Configure.mdx +470 -0
- package/template/nextjs-vite/cli/js/Header.jsx +58 -0
- package/template/nextjs-vite/cli/js/Header.stories.js +30 -0
- package/template/nextjs-vite/cli/js/Page.jsx +68 -0
- package/template/nextjs-vite/cli/js/Page.stories.js +28 -0
- package/template/nextjs-vite/cli/ts/Button.stories.ts +54 -0
- package/template/nextjs-vite/cli/ts/Button.tsx +39 -0
- package/template/nextjs-vite/cli/ts/Configure.mdx +446 -0
- package/template/nextjs-vite/cli/ts/Header.stories.ts +34 -0
- package/template/nextjs-vite/cli/ts/Header.tsx +54 -0
- package/template/nextjs-vite/cli/ts/Page.stories.ts +33 -0
- package/template/nextjs-vite/cli/ts/Page.tsx +73 -0
- package/template/react/cli/.eslintrc.json +5 -0
- package/template/react/cli/js/Button.jsx +39 -0
- package/template/react/cli/js/Button.stories.js +49 -0
- package/template/react/cli/js/Header.jsx +56 -0
- package/template/react/cli/js/Header.stories.js +29 -0
- package/template/react/cli/js/Page.jsx +69 -0
- package/template/react/cli/js/Page.stories.js +28 -0
- package/template/react/cli/ts/Button.stories.ts +54 -0
- package/template/react/cli/ts/Button.tsx +37 -0
- package/template/react/cli/ts/Header.stories.ts +34 -0
- package/template/react/cli/ts/Header.tsx +56 -0
- package/template/react/cli/ts/Page.stories.ts +33 -0
- package/template/react/cli/ts/Page.tsx +73 -0
- package/template/react-vite/cli/.eslintrc.json +5 -0
- package/template/react-vite/cli/js/Button.jsx +39 -0
- package/template/react-vite/cli/js/Button.stories.js +49 -0
- package/template/react-vite/cli/js/Header.jsx +56 -0
- package/template/react-vite/cli/js/Header.stories.js +29 -0
- package/template/react-vite/cli/js/Page.jsx +69 -0
- package/template/react-vite/cli/js/Page.stories.js +28 -0
- package/template/react-vite/cli/ts/Button.stories.ts +54 -0
- package/template/react-vite/cli/ts/Button.tsx +37 -0
- package/template/react-vite/cli/ts/Header.stories.ts +34 -0
- package/template/react-vite/cli/ts/Header.tsx +56 -0
- package/template/react-vite/cli/ts/Page.stories.ts +33 -0
- package/template/react-vite/cli/ts/Page.tsx +73 -0
|
@@ -0,0 +1,2142 @@
|
|
|
1
|
+
import {
|
|
2
|
+
selectSnippetForStory,
|
|
3
|
+
selectWarningForStory
|
|
4
|
+
} from "../_browser-chunks/chunk-SZYFOQMT.js";
|
|
5
|
+
import {
|
|
6
|
+
PARAM_KEY as PARAM_KEY3,
|
|
7
|
+
PARAM_KEY2 as PARAM_KEY4,
|
|
8
|
+
docgenServiceDef
|
|
9
|
+
} from "../_browser-chunks/chunk-NQUD4B7H.js";
|
|
10
|
+
import {
|
|
11
|
+
combineTags,
|
|
12
|
+
isExportStory,
|
|
13
|
+
parseKind,
|
|
14
|
+
sanitize,
|
|
15
|
+
storyNameFromExport,
|
|
16
|
+
toId,
|
|
17
|
+
toTestId
|
|
18
|
+
} from "../_browser-chunks/chunk-NULBREPZ.js";
|
|
19
|
+
import {
|
|
20
|
+
composeConfigs,
|
|
21
|
+
composeStory,
|
|
22
|
+
mountDestructured,
|
|
23
|
+
normalizeArrays,
|
|
24
|
+
normalizeProjectAnnotations,
|
|
25
|
+
registerService
|
|
26
|
+
} from "../_browser-chunks/chunk-C3D4HEFY.js";
|
|
27
|
+
import {
|
|
28
|
+
invariant
|
|
29
|
+
} from "../_browser-chunks/chunk-IWQGIXJS.js";
|
|
30
|
+
import "../_browser-chunks/chunk-FENFYI4X.js";
|
|
31
|
+
import "../_browser-chunks/chunk-WZ7KR7SH.js";
|
|
32
|
+
import {
|
|
33
|
+
Tag
|
|
34
|
+
} from "../_browser-chunks/chunk-CFAOWGL7.js";
|
|
35
|
+
import "../_browser-chunks/chunk-YTIT5NA5.js";
|
|
36
|
+
import "../_browser-chunks/chunk-OD6IBQCC.js";
|
|
37
|
+
import "../_browser-chunks/chunk-QC4HFS6K.js";
|
|
38
|
+
import "../_browser-chunks/chunk-6SXYJQST.js";
|
|
39
|
+
import "../_browser-chunks/chunk-SFVA4SBT.js";
|
|
40
|
+
import "../_browser-chunks/chunk-DRQKCCAG.js";
|
|
41
|
+
import {
|
|
42
|
+
shouldSkipStoryDocsEmit
|
|
43
|
+
} from "../_browser-chunks/chunk-66OCZ54D.js";
|
|
44
|
+
import {
|
|
45
|
+
combineParameters
|
|
46
|
+
} from "../_browser-chunks/chunk-ODVJ3XZJ.js";
|
|
47
|
+
import "../_browser-chunks/chunk-2JDQ35OA.js";
|
|
48
|
+
import "../_browser-chunks/chunk-IE4ULIOQ.js";
|
|
49
|
+
import "../_browser-chunks/chunk-B4AUNNU4.js";
|
|
50
|
+
import "../_browser-chunks/chunk-NZMVUW5T.js";
|
|
51
|
+
import "../_browser-chunks/chunk-JWSKPMPC.js";
|
|
52
|
+
import "../_browser-chunks/chunk-JPUOQJUI.js";
|
|
53
|
+
import {
|
|
54
|
+
PARAM_KEY
|
|
55
|
+
} from "../_browser-chunks/chunk-QDXFODK4.js";
|
|
56
|
+
import "../_browser-chunks/chunk-RSPAQWVJ.js";
|
|
57
|
+
import "../_browser-chunks/chunk-V5M7Q4HT.js";
|
|
58
|
+
import "../_browser-chunks/chunk-SC67XZST.js";
|
|
59
|
+
import {
|
|
60
|
+
HIGHLIGHT,
|
|
61
|
+
HIGHLIGHT_MENU_CLICK,
|
|
62
|
+
MAX_Z_INDEX,
|
|
63
|
+
MIN_TOUCH_AREA_SIZE,
|
|
64
|
+
REMOVE_HIGHLIGHT,
|
|
65
|
+
RESET_HIGHLIGHT,
|
|
66
|
+
SCROLL_INTO_VIEW
|
|
67
|
+
} from "../_browser-chunks/chunk-WOSOWBCA.js";
|
|
68
|
+
import "../_browser-chunks/chunk-ECQ75MKQ.js";
|
|
69
|
+
import {
|
|
70
|
+
action
|
|
71
|
+
} from "../_browser-chunks/chunk-LV5PIKV4.js";
|
|
72
|
+
import "../_browser-chunks/chunk-V2G23FV7.js";
|
|
73
|
+
import {
|
|
74
|
+
DEFAULT_BACKGROUNDS,
|
|
75
|
+
PARAM_KEY as PARAM_KEY2
|
|
76
|
+
} from "../_browser-chunks/chunk-LAWXTSXK.js";
|
|
77
|
+
import {
|
|
78
|
+
__commonJS,
|
|
79
|
+
__export,
|
|
80
|
+
__toESM
|
|
81
|
+
} from "../_browser-chunks/chunk-IMSF75WX.js";
|
|
82
|
+
|
|
83
|
+
// ../../node_modules/@ngard/tiny-isequal/index.js
|
|
84
|
+
var require_tiny_isequal = __commonJS({
|
|
85
|
+
"../../node_modules/@ngard/tiny-isequal/index.js"(exports) {
|
|
86
|
+
Object.defineProperty(exports, "__esModule", { value: !0 }), exports.isEqual = /* @__PURE__ */ (function() {
|
|
87
|
+
var e = Object.prototype.toString, r = Object.getPrototypeOf, t = Object.getOwnPropertySymbols ? function(e2) {
|
|
88
|
+
return Object.keys(e2).concat(Object.getOwnPropertySymbols(e2));
|
|
89
|
+
} : Object.keys;
|
|
90
|
+
return function(n, a) {
|
|
91
|
+
return (function n2(a2, c, u) {
|
|
92
|
+
var i, s, l, o = e.call(a2), f = e.call(c);
|
|
93
|
+
if (a2 === c) return !0;
|
|
94
|
+
if (a2 == null || c == null) return !1;
|
|
95
|
+
if (u.indexOf(a2) > -1 && u.indexOf(c) > -1) return !0;
|
|
96
|
+
if (u.push(a2, c), o != f || (i = t(a2), s = t(c), i.length != s.length || i.some(function(e2) {
|
|
97
|
+
return !n2(a2[e2], c[e2], u);
|
|
98
|
+
}))) return !1;
|
|
99
|
+
switch (o.slice(8, -1)) {
|
|
100
|
+
case "Symbol":
|
|
101
|
+
return a2.valueOf() == c.valueOf();
|
|
102
|
+
case "Date":
|
|
103
|
+
case "Number":
|
|
104
|
+
return +a2 == +c || +a2 != +a2 && +c != +c;
|
|
105
|
+
case "RegExp":
|
|
106
|
+
case "Function":
|
|
107
|
+
case "String":
|
|
108
|
+
case "Boolean":
|
|
109
|
+
return "" + a2 == "" + c;
|
|
110
|
+
case "Set":
|
|
111
|
+
case "Map":
|
|
112
|
+
i = a2.entries(), s = c.entries();
|
|
113
|
+
do
|
|
114
|
+
if (!n2((l = i.next()).value, s.next().value, u)) return !1;
|
|
115
|
+
while (!l.done);
|
|
116
|
+
return !0;
|
|
117
|
+
case "ArrayBuffer":
|
|
118
|
+
a2 = new Uint8Array(a2), c = new Uint8Array(c);
|
|
119
|
+
case "DataView":
|
|
120
|
+
a2 = new Uint8Array(a2.buffer), c = new Uint8Array(c.buffer);
|
|
121
|
+
case "Float32Array":
|
|
122
|
+
case "Float64Array":
|
|
123
|
+
case "Int8Array":
|
|
124
|
+
case "Int16Array":
|
|
125
|
+
case "Int32Array":
|
|
126
|
+
case "Uint8Array":
|
|
127
|
+
case "Uint16Array":
|
|
128
|
+
case "Uint32Array":
|
|
129
|
+
case "Uint8ClampedArray":
|
|
130
|
+
case "Arguments":
|
|
131
|
+
case "Array":
|
|
132
|
+
if (a2.length != c.length) return !1;
|
|
133
|
+
for (l = 0; l < a2.length; l++) if ((l in a2 || l in c) && (l in a2 != l in c || !n2(a2[l], c[l], u))) return !1;
|
|
134
|
+
return !0;
|
|
135
|
+
case "Object":
|
|
136
|
+
return n2(r(a2), r(c), u);
|
|
137
|
+
default:
|
|
138
|
+
return !1;
|
|
139
|
+
}
|
|
140
|
+
})(n, a, []);
|
|
141
|
+
};
|
|
142
|
+
})();
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// src/csf/includeConditionalArg.ts
|
|
147
|
+
var import_tiny_isequal = __toESM(require_tiny_isequal(), 1), count = (vals) => vals.map((v2) => typeof v2 < "u").filter(Boolean).length, testValue = (cond, value) => {
|
|
148
|
+
let { exists, eq, neq, truthy } = cond;
|
|
149
|
+
if (count([exists, eq, neq, truthy]) > 1)
|
|
150
|
+
throw new Error(`Invalid conditional test ${JSON.stringify({ exists, eq, neq })}`);
|
|
151
|
+
if (typeof eq < "u")
|
|
152
|
+
return (0, import_tiny_isequal.isEqual)(value, eq);
|
|
153
|
+
if (typeof neq < "u")
|
|
154
|
+
return !(0, import_tiny_isequal.isEqual)(value, neq);
|
|
155
|
+
if (typeof exists < "u") {
|
|
156
|
+
let valueExists = typeof value < "u";
|
|
157
|
+
return exists ? valueExists : !valueExists;
|
|
158
|
+
}
|
|
159
|
+
return (typeof truthy > "u" ? !0 : truthy) ? !!value : !value;
|
|
160
|
+
}, includeConditionalArg = (argType, args, globals) => {
|
|
161
|
+
if (!argType.if)
|
|
162
|
+
return !0;
|
|
163
|
+
let { arg, global: global5 } = argType.if;
|
|
164
|
+
if (count([arg, global5]) !== 1)
|
|
165
|
+
throw new Error(`Invalid conditional value ${JSON.stringify({ arg, global: global5 })}`);
|
|
166
|
+
let value = arg ? args[arg] : globals[global5];
|
|
167
|
+
return testValue(argType.if, value);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// src/csf/csf-factories.ts
|
|
171
|
+
import { combineTags as combineTags2 } from "@aussieljk/forkbook/internal/csf";
|
|
172
|
+
|
|
173
|
+
// src/actions/preview.ts
|
|
174
|
+
import { definePreviewAddon } from "@aussieljk/forkbook/internal/csf";
|
|
175
|
+
|
|
176
|
+
// src/actions/addArgs.ts
|
|
177
|
+
var addArgs_exports = {};
|
|
178
|
+
__export(addArgs_exports, {
|
|
179
|
+
argsEnhancers: () => argsEnhancers
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// src/actions/addArgsHelpers.ts
|
|
183
|
+
var isInInitialArgs = (name, initialArgs) => typeof initialArgs[name] > "u" && !(name in initialArgs), inferActionsFromArgTypesRegex = (context) => {
|
|
184
|
+
let {
|
|
185
|
+
initialArgs,
|
|
186
|
+
argTypes,
|
|
187
|
+
id,
|
|
188
|
+
parameters: { actions }
|
|
189
|
+
} = context;
|
|
190
|
+
if (!actions || actions.disable || !actions.argTypesRegex || !argTypes)
|
|
191
|
+
return {};
|
|
192
|
+
let argTypesRegex = new RegExp(actions.argTypesRegex);
|
|
193
|
+
return Object.entries(argTypes).filter(
|
|
194
|
+
([name]) => !!argTypesRegex.test(name)
|
|
195
|
+
).reduce((acc, [name, argType]) => (isInInitialArgs(name, initialArgs) && (acc[name] = action(name, { implicit: !0, id })), acc), {});
|
|
196
|
+
}, addActionsFromArgTypes = (context) => {
|
|
197
|
+
let {
|
|
198
|
+
initialArgs,
|
|
199
|
+
argTypes,
|
|
200
|
+
parameters: { actions }
|
|
201
|
+
} = context;
|
|
202
|
+
return actions?.disable || !argTypes ? {} : Object.entries(argTypes).filter(([name, argType]) => !!argType.action).reduce((acc, [name, argType]) => (isInInitialArgs(name, initialArgs) && (acc[name] = action(typeof argType.action == "string" ? argType.action : name)), acc), {});
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
// src/actions/addArgs.ts
|
|
206
|
+
var argsEnhancers = [
|
|
207
|
+
addActionsFromArgTypes,
|
|
208
|
+
inferActionsFromArgTypesRegex
|
|
209
|
+
];
|
|
210
|
+
|
|
211
|
+
// src/actions/loaders.ts
|
|
212
|
+
var loaders_exports = {};
|
|
213
|
+
__export(loaders_exports, {
|
|
214
|
+
loaders: () => loaders
|
|
215
|
+
});
|
|
216
|
+
import { onMockCall } from "@aussieljk/forkbook/test";
|
|
217
|
+
var subscribed = !1, logActionsWhenMockCalled = (context) => {
|
|
218
|
+
let { parameters: parameters2 } = context;
|
|
219
|
+
parameters2?.actions?.disable || subscribed || (onMockCall((mock, args) => {
|
|
220
|
+
let name = mock.getMockName();
|
|
221
|
+
name !== "spy" && name !== "vi.fn()" && (!/^next\/.*::/.test(name) || [
|
|
222
|
+
"next/router::useRouter()",
|
|
223
|
+
"next/navigation::useRouter()",
|
|
224
|
+
"next/navigation::redirect",
|
|
225
|
+
"next/link::Link",
|
|
226
|
+
"next/cache::",
|
|
227
|
+
"next/headers::cookies().set",
|
|
228
|
+
"next/headers::cookies().delete",
|
|
229
|
+
"next/headers::headers().set",
|
|
230
|
+
"next/headers::headers().delete"
|
|
231
|
+
].some((prefix) => name.startsWith(prefix))) && action(name)(args);
|
|
232
|
+
}), subscribed = !0);
|
|
233
|
+
}, loaders = [logActionsWhenMockCalled];
|
|
234
|
+
|
|
235
|
+
// src/actions/preview.ts
|
|
236
|
+
var preview_default = () => definePreviewAddon({
|
|
237
|
+
...addArgs_exports,
|
|
238
|
+
...loaders_exports
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
// src/backgrounds/preview.ts
|
|
242
|
+
import { definePreviewAddon as definePreviewAddon2 } from "@aussieljk/forkbook/internal/csf";
|
|
243
|
+
|
|
244
|
+
// src/backgrounds/decorator.ts
|
|
245
|
+
import { useEffect } from "@aussieljk/forkbook/preview-api";
|
|
246
|
+
|
|
247
|
+
// src/backgrounds/utils.ts
|
|
248
|
+
var { document: document2 } = globalThis, isReduceMotionEnabled = () => globalThis?.matchMedia ? !!globalThis.matchMedia("(prefers-reduced-motion: reduce)")?.matches : !1, clearStyles = (selector) => {
|
|
249
|
+
(Array.isArray(selector) ? selector : [selector]).forEach(clearStyle);
|
|
250
|
+
}, clearStyle = (selector) => {
|
|
251
|
+
if (!document2)
|
|
252
|
+
return;
|
|
253
|
+
let element = document2.getElementById(selector);
|
|
254
|
+
element && element.parentElement && element.parentElement.removeChild(element);
|
|
255
|
+
}, addGridStyle = (selector, css) => {
|
|
256
|
+
if (!document2)
|
|
257
|
+
return;
|
|
258
|
+
let existingStyle = document2.getElementById(selector);
|
|
259
|
+
if (existingStyle)
|
|
260
|
+
existingStyle.innerHTML !== css && (existingStyle.innerHTML = css);
|
|
261
|
+
else {
|
|
262
|
+
let style = document2.createElement("style");
|
|
263
|
+
style.setAttribute("id", selector), style.innerHTML = css, document2.head.appendChild(style);
|
|
264
|
+
}
|
|
265
|
+
}, addBackgroundStyle = (selector, css, storyId) => {
|
|
266
|
+
if (!document2)
|
|
267
|
+
return;
|
|
268
|
+
let existingStyle = document2.getElementById(selector);
|
|
269
|
+
if (existingStyle)
|
|
270
|
+
existingStyle.innerHTML !== css && (existingStyle.innerHTML = css);
|
|
271
|
+
else {
|
|
272
|
+
let style = document2.createElement("style");
|
|
273
|
+
style.setAttribute("id", selector), style.innerHTML = css;
|
|
274
|
+
let gridStyleSelector = `addon-backgrounds-grid${storyId ? `-docs-${storyId}` : ""}`, existingGridStyle = document2.getElementById(gridStyleSelector);
|
|
275
|
+
existingGridStyle ? existingGridStyle.parentElement?.insertBefore(style, existingGridStyle) : document2.head.appendChild(style);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
// src/backgrounds/decorator.ts
|
|
280
|
+
var defaultGrid = {
|
|
281
|
+
cellSize: 100,
|
|
282
|
+
cellAmount: 10,
|
|
283
|
+
opacity: 0.8
|
|
284
|
+
}, BG_SELECTOR_BASE = "addon-backgrounds", GRID_SELECTOR_BASE = "addon-backgrounds-grid", transitionStyle = isReduceMotionEnabled() ? "" : "transition: background-color 0.3s;", withBackgroundAndGrid = (StoryFn, context) => {
|
|
285
|
+
let { globals = {}, parameters: parameters2 = {}, viewMode, id } = context, {
|
|
286
|
+
options = DEFAULT_BACKGROUNDS,
|
|
287
|
+
disable,
|
|
288
|
+
grid = defaultGrid
|
|
289
|
+
} = parameters2[PARAM_KEY2] || {}, data = globals[PARAM_KEY2] || {}, backgroundName = typeof data == "string" ? data : data?.value, item = backgroundName ? options[backgroundName] : void 0, value = typeof item == "string" ? item : item?.value || "transparent", showGrid = typeof data == "string" ? !1 : data.grid || !1, shownBackground = !!item && !disable, backgroundSelector = viewMode === "docs" ? `#anchor--${id} .docs-story, #anchor--primary--${id} .docs-story` : ".sb-show-main", gridSelector = viewMode === "docs" ? `#anchor--${id} .docs-story, #anchor--primary--${id} .docs-story` : ".sb-show-main", isLayoutPadded = parameters2.layout === void 0 || parameters2.layout === "padded", defaultOffset = viewMode === "docs" ? 20 : isLayoutPadded ? 16 : 0, { cellAmount, cellSize, opacity, offsetX = defaultOffset, offsetY = defaultOffset } = grid, backgroundSelectorId = viewMode === "docs" ? `${BG_SELECTOR_BASE}-docs-${id}` : `${BG_SELECTOR_BASE}-color`, backgroundTarget = viewMode === "docs" ? id : null;
|
|
290
|
+
useEffect(() => {
|
|
291
|
+
let backgroundStyles = `
|
|
292
|
+
${backgroundSelector} {
|
|
293
|
+
background: ${value} !important;
|
|
294
|
+
${transitionStyle}
|
|
295
|
+
}`;
|
|
296
|
+
if (!shownBackground) {
|
|
297
|
+
clearStyles(backgroundSelectorId);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
addBackgroundStyle(backgroundSelectorId, backgroundStyles, backgroundTarget);
|
|
301
|
+
}, [backgroundSelector, backgroundSelectorId, backgroundTarget, shownBackground, value]);
|
|
302
|
+
let gridSelectorId = viewMode === "docs" ? `${GRID_SELECTOR_BASE}-docs-${id}` : `${GRID_SELECTOR_BASE}`;
|
|
303
|
+
return useEffect(() => {
|
|
304
|
+
if (!showGrid) {
|
|
305
|
+
clearStyles(gridSelectorId);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
let gridSize = [
|
|
309
|
+
`${cellSize * cellAmount}px ${cellSize * cellAmount}px`,
|
|
310
|
+
`${cellSize * cellAmount}px ${cellSize * cellAmount}px`,
|
|
311
|
+
`${cellSize}px ${cellSize}px`,
|
|
312
|
+
`${cellSize}px ${cellSize}px`
|
|
313
|
+
].join(", "), gridStyles = `
|
|
314
|
+
${gridSelector} {
|
|
315
|
+
background-size: ${gridSize} !important;
|
|
316
|
+
background-position: ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px !important;
|
|
317
|
+
background-blend-mode: difference !important;
|
|
318
|
+
background-image: linear-gradient(rgba(130, 130, 130, ${opacity}) 1px, transparent 1px),
|
|
319
|
+
linear-gradient(90deg, rgba(130, 130, 130, ${opacity}) 1px, transparent 1px),
|
|
320
|
+
linear-gradient(rgba(130, 130, 130, ${opacity / 2}) 1px, transparent 1px),
|
|
321
|
+
linear-gradient(90deg, rgba(130, 130, 130, ${opacity / 2}) 1px, transparent 1px) !important;
|
|
322
|
+
}
|
|
323
|
+
`;
|
|
324
|
+
addGridStyle(gridSelectorId, gridStyles);
|
|
325
|
+
}, [cellAmount, cellSize, gridSelector, gridSelectorId, showGrid, offsetX, offsetY, opacity]), StoryFn();
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
// src/backgrounds/preview.ts
|
|
329
|
+
var decorators = globalThis.FEATURES?.backgrounds ? [withBackgroundAndGrid] : [], parameters = {
|
|
330
|
+
[PARAM_KEY2]: {
|
|
331
|
+
grid: {
|
|
332
|
+
cellSize: 20,
|
|
333
|
+
opacity: 0.5,
|
|
334
|
+
cellAmount: 5
|
|
335
|
+
},
|
|
336
|
+
disable: !1
|
|
337
|
+
}
|
|
338
|
+
}, initialGlobals = {
|
|
339
|
+
[PARAM_KEY2]: { value: void 0, grid: !1 }
|
|
340
|
+
}, preview_default2 = () => definePreviewAddon2({
|
|
341
|
+
decorators,
|
|
342
|
+
parameters,
|
|
343
|
+
initialGlobals
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
// src/component-testing/preview.ts
|
|
347
|
+
import { definePreviewAddon as definePreviewAddon3 } from "@aussieljk/forkbook/internal/csf";
|
|
348
|
+
import { instrument } from "@aussieljk/forkbook/internal/instrumenter";
|
|
349
|
+
var { step } = instrument(
|
|
350
|
+
{
|
|
351
|
+
// It seems like the label is unused, but the instrumenter has access to it
|
|
352
|
+
// The context will be bounded later in StoryRender, so that the user can write just:
|
|
353
|
+
// await step("label", (context) => {
|
|
354
|
+
// // labeled step
|
|
355
|
+
// });
|
|
356
|
+
step: async (label, play, context) => play(context)
|
|
357
|
+
},
|
|
358
|
+
{ intercept: !0 }
|
|
359
|
+
), preview_default3 = () => definePreviewAddon3({
|
|
360
|
+
parameters: {
|
|
361
|
+
throwPlayFunctionExceptions: !1
|
|
362
|
+
},
|
|
363
|
+
runStep: step
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
// src/core-server/utils/ghost-stories/test-annotations.ts
|
|
367
|
+
import { definePreviewAddon as definePreviewAddon4 } from "@aussieljk/forkbook/internal/csf";
|
|
368
|
+
var isEmptyRender = (element) => {
|
|
369
|
+
let style = getComputedStyle(element), rect = element.getBoundingClientRect();
|
|
370
|
+
return !(rect.width > 0 && rect.height > 0 && style.visibility !== "hidden" && Number(style.opacity) > 0 && style.display !== "none");
|
|
371
|
+
}, afterEach = async ({ reporting, canvasElement, globals }) => {
|
|
372
|
+
try {
|
|
373
|
+
if (!globals.renderAnalysis?.enabled)
|
|
374
|
+
return;
|
|
375
|
+
let emptyRender = isEmptyRender(canvasElement.firstElementChild ?? canvasElement);
|
|
376
|
+
emptyRender && reporting.addReport({
|
|
377
|
+
type: "render-analysis",
|
|
378
|
+
version: 1,
|
|
379
|
+
result: {
|
|
380
|
+
emptyRender
|
|
381
|
+
},
|
|
382
|
+
status: "warning"
|
|
383
|
+
});
|
|
384
|
+
} catch {
|
|
385
|
+
}
|
|
386
|
+
}, test_annotations_default = () => definePreviewAddon4({ afterEach });
|
|
387
|
+
|
|
388
|
+
// src/highlight/preview.ts
|
|
389
|
+
import { definePreviewAddon as definePreviewAddon5 } from "@aussieljk/forkbook/internal/csf";
|
|
390
|
+
import { addons } from "@aussieljk/forkbook/preview-api";
|
|
391
|
+
|
|
392
|
+
// src/highlight/useHighlights.ts
|
|
393
|
+
import { logger } from "@aussieljk/forkbook/internal/client-logger";
|
|
394
|
+
import { STORY_RENDER_PHASE_CHANGED } from "@aussieljk/forkbook/internal/core-events";
|
|
395
|
+
|
|
396
|
+
// src/highlight/icons.ts
|
|
397
|
+
var iconPaths = {
|
|
398
|
+
chevronLeft: [
|
|
399
|
+
"M9.10355 10.1464C9.29882 10.3417 9.29882 10.6583 9.10355 10.8536C8.90829 11.0488 8.59171 11.0488 8.39645 10.8536L4.89645 7.35355C4.70118 7.15829 4.70118 6.84171 4.89645 6.64645L8.39645 3.14645C8.59171 2.95118 8.90829 2.95118 9.10355 3.14645C9.29882 3.34171 9.29882 3.65829 9.10355 3.85355L5.95711 7L9.10355 10.1464Z"
|
|
400
|
+
],
|
|
401
|
+
chevronRight: [
|
|
402
|
+
"M4.89645 10.1464C4.70118 10.3417 4.70118 10.6583 4.89645 10.8536C5.09171 11.0488 5.40829 11.0488 5.60355 10.8536L9.10355 7.35355C9.29882 7.15829 9.29882 6.84171 9.10355 6.64645L5.60355 3.14645C5.40829 2.95118 5.09171 2.95118 4.89645 3.14645C4.70118 3.34171 4.70118 3.65829 4.89645 3.85355L8.04289 7L4.89645 10.1464Z"
|
|
403
|
+
],
|
|
404
|
+
info: [
|
|
405
|
+
"M7 5.5a.5.5 0 01.5.5v4a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zM7 4.5A.75.75 0 107 3a.75.75 0 000 1.5z",
|
|
406
|
+
"M7 14A7 7 0 107 0a7 7 0 000 14zm0-1A6 6 0 107 1a6 6 0 000 12z"
|
|
407
|
+
],
|
|
408
|
+
shareAlt: [
|
|
409
|
+
"M2 1.004a1 1 0 00-1 1v10a1 1 0 001 1h10a1 1 0 001-1v-4.5a.5.5 0 00-1 0v4.5H2v-10h4.5a.5.5 0 000-1H2z",
|
|
410
|
+
"M7.354 7.357L12 2.711v1.793a.5.5 0 001 0v-3a.5.5 0 00-.5-.5h-3a.5.5 0 100 1h1.793L6.646 6.65a.5.5 0 10.708.707z"
|
|
411
|
+
]
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
// src/highlight/utils.ts
|
|
415
|
+
var svgElements = "svg,path,rect,circle,line,polyline,polygon,ellipse,text".split(","), createElement = (type, props = {}, children) => {
|
|
416
|
+
let element = svgElements.includes(type) ? document.createElementNS("http://www.w3.org/2000/svg", type) : document.createElement(type);
|
|
417
|
+
return Object.entries(props).forEach(([key, val]) => {
|
|
418
|
+
/[A-Z]/.test(key) ? (key === "onClick" && (element.addEventListener("click", val), element.addEventListener("keydown", (e) => {
|
|
419
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), val());
|
|
420
|
+
})), key === "onMouseEnter" && element.addEventListener("mouseenter", val), key === "onMouseLeave" && element.addEventListener("mouseleave", val)) : element.setAttribute(key, val);
|
|
421
|
+
}), children?.forEach((child) => {
|
|
422
|
+
if (!(child == null || child === !1))
|
|
423
|
+
try {
|
|
424
|
+
element.appendChild(child);
|
|
425
|
+
} catch {
|
|
426
|
+
element.appendChild(document.createTextNode(String(child)));
|
|
427
|
+
}
|
|
428
|
+
}), element;
|
|
429
|
+
}, createIcon = (name) => iconPaths[name] && createElement(
|
|
430
|
+
"svg",
|
|
431
|
+
{ width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
|
|
432
|
+
iconPaths[name].map(
|
|
433
|
+
(d) => createElement("path", {
|
|
434
|
+
fill: "currentColor",
|
|
435
|
+
"fill-rule": "evenodd",
|
|
436
|
+
"clip-rule": "evenodd",
|
|
437
|
+
d
|
|
438
|
+
})
|
|
439
|
+
)
|
|
440
|
+
), normalizeOptions = (options) => {
|
|
441
|
+
let { menu, ...rest } = options;
|
|
442
|
+
return {
|
|
443
|
+
priority: 0,
|
|
444
|
+
styles: {
|
|
445
|
+
outline: "2px dashed #029cfd"
|
|
446
|
+
},
|
|
447
|
+
...rest,
|
|
448
|
+
menu: Array.isArray(menu) ? menu.every(Array.isArray) ? menu : [menu] : void 0
|
|
449
|
+
};
|
|
450
|
+
}, isFunction = (obj) => obj instanceof Function, state = /* @__PURE__ */ new Map(), listeners = /* @__PURE__ */ new Map(), teardowns = /* @__PURE__ */ new Map(), useStore = (initialValue) => {
|
|
451
|
+
let key = /* @__PURE__ */ Symbol();
|
|
452
|
+
return listeners.set(key, []), state.set(key, initialValue), { get: () => state.get(key), set: (update) => {
|
|
453
|
+
let current = state.get(key), next = isFunction(update) ? update(current) : update;
|
|
454
|
+
next !== current && (state.set(key, next), listeners.get(key)?.forEach((listener) => {
|
|
455
|
+
teardowns.get(listener)?.(), teardowns.set(listener, listener(next));
|
|
456
|
+
}));
|
|
457
|
+
}, subscribe: (listener) => (listeners.get(key)?.push(listener), () => {
|
|
458
|
+
let list = listeners.get(key);
|
|
459
|
+
list && listeners.set(
|
|
460
|
+
key,
|
|
461
|
+
list.filter((l) => l !== listener)
|
|
462
|
+
);
|
|
463
|
+
}), teardown: () => {
|
|
464
|
+
listeners.get(key)?.forEach((listener) => {
|
|
465
|
+
teardowns.get(listener)?.(), teardowns.delete(listener);
|
|
466
|
+
}), listeners.delete(key), state.delete(key);
|
|
467
|
+
} };
|
|
468
|
+
}, mapElements = (highlights) => {
|
|
469
|
+
let root = document.getElementById("storybook-root"), map = /* @__PURE__ */ new Map();
|
|
470
|
+
for (let highlight of highlights) {
|
|
471
|
+
let { priority = 0 } = highlight;
|
|
472
|
+
for (let selector of highlight.selectors) {
|
|
473
|
+
let elements = [
|
|
474
|
+
...document.querySelectorAll(
|
|
475
|
+
// Elements matching the selector, excluding storybook elements and their descendants.
|
|
476
|
+
// Necessary to find portaled elements (e.g. children of `body`).
|
|
477
|
+
`:is(${selector}):not([id^="storybook-"], [id^="storybook-"] *, [class^="sb-"], [class^="sb-"] *)`
|
|
478
|
+
),
|
|
479
|
+
// Elements matching the selector inside the storybook root, as these were excluded above.
|
|
480
|
+
...root?.querySelectorAll(selector) || []
|
|
481
|
+
];
|
|
482
|
+
for (let element of elements) {
|
|
483
|
+
let existing = map.get(element);
|
|
484
|
+
(!existing || existing.priority <= priority) && map.set(element, {
|
|
485
|
+
...highlight,
|
|
486
|
+
priority,
|
|
487
|
+
selectors: Array.from(new Set((existing?.selectors || []).concat(selector)))
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return map;
|
|
493
|
+
}, mapBoxes = (elements) => Array.from(elements.entries()).map(([element, { id, selectors, styles, hoverStyles, focusStyles, menu }]) => {
|
|
494
|
+
let { top, left, width, height } = element.getBoundingClientRect(), { position } = getComputedStyle(element);
|
|
495
|
+
return {
|
|
496
|
+
element,
|
|
497
|
+
id,
|
|
498
|
+
selectors,
|
|
499
|
+
styles,
|
|
500
|
+
hoverStyles,
|
|
501
|
+
focusStyles,
|
|
502
|
+
menu,
|
|
503
|
+
top: position === "fixed" ? top : top + window.scrollY,
|
|
504
|
+
left: position === "fixed" ? left : left + window.scrollX,
|
|
505
|
+
width,
|
|
506
|
+
height
|
|
507
|
+
};
|
|
508
|
+
}).sort((a, b) => b.width * b.height - a.width * a.height), isOverMenu = (menuElement, coordinates) => {
|
|
509
|
+
let menu = menuElement.getBoundingClientRect(), { x, y } = coordinates;
|
|
510
|
+
return menu?.top && menu?.left && x >= menu.left && x <= menu.left + menu.width && y >= menu.top && y <= menu.top + menu.height;
|
|
511
|
+
}, isTargeted = (box, boxElement, coordinates) => {
|
|
512
|
+
if (!boxElement || !coordinates)
|
|
513
|
+
return !1;
|
|
514
|
+
let { left, top, width, height } = box;
|
|
515
|
+
height < MIN_TOUCH_AREA_SIZE && (top = top - Math.round((MIN_TOUCH_AREA_SIZE - height) / 2), height = MIN_TOUCH_AREA_SIZE), width < MIN_TOUCH_AREA_SIZE && (left = left - Math.round((MIN_TOUCH_AREA_SIZE - width) / 2), width = MIN_TOUCH_AREA_SIZE), boxElement.style.position === "fixed" && (left += window.scrollX, top += window.scrollY);
|
|
516
|
+
let { x, y } = coordinates;
|
|
517
|
+
return x >= left && x <= left + width && y >= top && y <= top + height;
|
|
518
|
+
}, keepInViewport = (element, targetCoordinates, options = {}) => {
|
|
519
|
+
let { x, y } = targetCoordinates, { margin = 5, topOffset = 0, centered = !1 } = options, { scrollX, scrollY, innerHeight: windowHeight, innerWidth: windowWidth } = window, top = Math.min(
|
|
520
|
+
element.style.position === "fixed" ? y - scrollY : y,
|
|
521
|
+
windowHeight - element.clientHeight - margin - topOffset + scrollY
|
|
522
|
+
), leftOffset = centered ? element.clientWidth / 2 : 0, left = element.style.position === "fixed" ? Math.max(Math.min(x - scrollX, windowWidth - leftOffset - margin), leftOffset + margin) : Math.max(
|
|
523
|
+
Math.min(x, windowWidth - leftOffset - margin + scrollX),
|
|
524
|
+
leftOffset + margin + scrollX
|
|
525
|
+
);
|
|
526
|
+
Object.assign(element.style, {
|
|
527
|
+
...left !== x && { left: `${left}px` },
|
|
528
|
+
...top !== y && { top: `${top}px` }
|
|
529
|
+
});
|
|
530
|
+
}, showPopover = (element) => {
|
|
531
|
+
window.HTMLElement.prototype.hasOwnProperty("showPopover") && element.showPopover();
|
|
532
|
+
}, hidePopover = (element) => {
|
|
533
|
+
window.HTMLElement.prototype.hasOwnProperty("showPopover") && element.hidePopover();
|
|
534
|
+
}, getEventDetails = (target) => ({
|
|
535
|
+
top: target.top,
|
|
536
|
+
left: target.left,
|
|
537
|
+
width: target.width,
|
|
538
|
+
height: target.height,
|
|
539
|
+
selectors: target.selectors,
|
|
540
|
+
element: {
|
|
541
|
+
localName: target.element.localName,
|
|
542
|
+
tagName: target.element.tagName
|
|
543
|
+
}
|
|
544
|
+
});
|
|
545
|
+
|
|
546
|
+
// src/highlight/useHighlights.ts
|
|
547
|
+
var menuId = "storybook-highlights-menu", rootId = "storybook-highlights-root", storybookRootId = "storybook-root", useHighlights = (channel) => {
|
|
548
|
+
if (globalThis.__STORYBOOK_HIGHLIGHT_INITIALIZED)
|
|
549
|
+
return;
|
|
550
|
+
globalThis.__STORYBOOK_HIGHLIGHT_INITIALIZED = !0;
|
|
551
|
+
let { document: document3 } = globalThis, highlights = useStore([]), elements = useStore(/* @__PURE__ */ new Map()), boxes = useStore([]), clickCoords = useStore(), hoverCoords = useStore(), targets = useStore([]), hovered = useStore([]), focused = useStore(), selected = useStore(), root = document3.getElementById(rootId);
|
|
552
|
+
highlights.subscribe(() => {
|
|
553
|
+
root || (root = createElement("div", { id: rootId }), document3.body.appendChild(root));
|
|
554
|
+
}), highlights.subscribe((value) => {
|
|
555
|
+
let storybookRoot = document3.getElementById(storybookRootId) ?? document3.body;
|
|
556
|
+
elements.set(mapElements(value));
|
|
557
|
+
let observer = new MutationObserver((records) => {
|
|
558
|
+
records.some((record2) => !root?.contains(record2.target)) && elements.set(mapElements(value));
|
|
559
|
+
});
|
|
560
|
+
return observer.observe(storybookRoot, { subtree: !0, childList: !0 }), () => {
|
|
561
|
+
observer.disconnect();
|
|
562
|
+
};
|
|
563
|
+
}), elements.subscribe((value) => {
|
|
564
|
+
let updateBoxes = () => requestAnimationFrame(() => boxes.set(mapBoxes(value))), observer = new ResizeObserver(updateBoxes);
|
|
565
|
+
observer.observe(document3.body), Array.from(value.keys()).forEach((element) => observer.observe(element));
|
|
566
|
+
let scrollers = Array.from(document3.body.querySelectorAll("*")).filter((el) => {
|
|
567
|
+
let { overflow, overflowX, overflowY } = window.getComputedStyle(el);
|
|
568
|
+
return ["auto", "scroll"].some((o) => [overflow, overflowX, overflowY].includes(o));
|
|
569
|
+
});
|
|
570
|
+
return scrollers.forEach((element) => element.addEventListener("scroll", updateBoxes)), () => {
|
|
571
|
+
observer.disconnect(), scrollers.forEach((element) => element.removeEventListener("scroll", updateBoxes));
|
|
572
|
+
};
|
|
573
|
+
}), elements.subscribe((value) => {
|
|
574
|
+
let sticky = Array.from(value.keys()).filter(({ style }) => style.position === "sticky"), updateBoxes = () => requestAnimationFrame(() => {
|
|
575
|
+
boxes.set(
|
|
576
|
+
(current) => current.map((box) => {
|
|
577
|
+
if (sticky.includes(box.element)) {
|
|
578
|
+
let { top, left } = box.element.getBoundingClientRect();
|
|
579
|
+
return { ...box, top: top + window.scrollY, left: left + window.scrollX };
|
|
580
|
+
}
|
|
581
|
+
return box;
|
|
582
|
+
})
|
|
583
|
+
);
|
|
584
|
+
});
|
|
585
|
+
return document3.addEventListener("scroll", updateBoxes), () => document3.removeEventListener("scroll", updateBoxes);
|
|
586
|
+
}), elements.subscribe((value) => {
|
|
587
|
+
targets.set((t) => t.filter(({ element }) => value.has(element)));
|
|
588
|
+
}), targets.subscribe((value) => {
|
|
589
|
+
value.length ? (selected.set((s) => value.some((t) => t.element === s?.element) ? s : void 0), focused.set((s) => value.some((t) => t.element === s?.element) ? s : void 0)) : (selected.set(void 0), focused.set(void 0), clickCoords.set(void 0));
|
|
590
|
+
});
|
|
591
|
+
let styleElementByHighlight = new Map(/* @__PURE__ */ new Map());
|
|
592
|
+
highlights.subscribe((value) => {
|
|
593
|
+
value.forEach(({ keyframes }) => {
|
|
594
|
+
if (keyframes) {
|
|
595
|
+
let style = styleElementByHighlight.get(keyframes);
|
|
596
|
+
style || (style = document3.createElement("style"), style.setAttribute("data-highlight", "keyframes"), styleElementByHighlight.set(keyframes, style), document3.head.appendChild(style)), style.innerHTML = keyframes;
|
|
597
|
+
}
|
|
598
|
+
}), styleElementByHighlight.forEach((style, keyframes) => {
|
|
599
|
+
value.some((v2) => v2.keyframes === keyframes) || (style.remove(), styleElementByHighlight.delete(keyframes));
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
let boxElementByTargetElement = new Map(/* @__PURE__ */ new Map());
|
|
603
|
+
boxes.subscribe((value) => {
|
|
604
|
+
value.forEach((box) => {
|
|
605
|
+
let boxElement = boxElementByTargetElement.get(box.element);
|
|
606
|
+
if (root && !boxElement) {
|
|
607
|
+
let props = {
|
|
608
|
+
popover: "manual",
|
|
609
|
+
"data-highlight-dimensions": `w${box.width.toFixed(0)}h${box.height.toFixed(0)}`,
|
|
610
|
+
"data-highlight-coordinates": `x${box.left.toFixed(0)}y${box.top.toFixed(0)}`
|
|
611
|
+
};
|
|
612
|
+
boxElement = root.appendChild(
|
|
613
|
+
createElement("div", props, [createElement("div")])
|
|
614
|
+
), boxElementByTargetElement.set(box.element, boxElement);
|
|
615
|
+
}
|
|
616
|
+
}), boxElementByTargetElement.forEach((box, element) => {
|
|
617
|
+
value.some(({ element: e }) => e === element) || (box.remove(), boxElementByTargetElement.delete(element));
|
|
618
|
+
});
|
|
619
|
+
}), boxes.subscribe((value) => {
|
|
620
|
+
let targetable = value.filter((box) => box.menu);
|
|
621
|
+
if (!targetable.length)
|
|
622
|
+
return;
|
|
623
|
+
let onClick = (event) => {
|
|
624
|
+
requestAnimationFrame(() => {
|
|
625
|
+
let menu = document3.getElementById(menuId), coords = { x: event.pageX, y: event.pageY };
|
|
626
|
+
if (menu && !isOverMenu(menu, coords)) {
|
|
627
|
+
let results = targetable.filter((box) => {
|
|
628
|
+
let boxElement = boxElementByTargetElement.get(box.element);
|
|
629
|
+
return isTargeted(box, boxElement, coords);
|
|
630
|
+
});
|
|
631
|
+
clickCoords.set(results.length ? coords : void 0), targets.set(results);
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
};
|
|
635
|
+
return document3.addEventListener("click", onClick), () => document3.removeEventListener("click", onClick);
|
|
636
|
+
});
|
|
637
|
+
let updateHovered = () => {
|
|
638
|
+
let menu = document3.getElementById(menuId), coords = hoverCoords.get();
|
|
639
|
+
!coords || menu && isOverMenu(menu, coords) || hovered.set((current) => {
|
|
640
|
+
let update = boxes.get().filter((box) => {
|
|
641
|
+
let boxElement = boxElementByTargetElement.get(box.element);
|
|
642
|
+
return isTargeted(box, boxElement, coords);
|
|
643
|
+
}), existing = current.filter((box) => update.includes(box)), additions = update.filter((box) => !current.includes(box)), hasRemovals = current.length - existing.length;
|
|
644
|
+
return additions.length || hasRemovals ? [...existing, ...additions] : current;
|
|
645
|
+
});
|
|
646
|
+
};
|
|
647
|
+
hoverCoords.subscribe(updateHovered), boxes.subscribe(updateHovered);
|
|
648
|
+
let updateBoxStyles = () => {
|
|
649
|
+
let selectedElement = selected.get(), targetElements = selectedElement ? [selectedElement] : targets.get(), focusedElement = targetElements.length === 1 ? targetElements[0] : focused.get(), isMenuOpen = clickCoords.get() !== void 0;
|
|
650
|
+
boxes.get().forEach((box) => {
|
|
651
|
+
let boxElement = boxElementByTargetElement.get(box.element);
|
|
652
|
+
if (boxElement) {
|
|
653
|
+
let isFocused = focusedElement === box, isHovered = isMenuOpen ? focusedElement ? isFocused : targetElements.includes(box) : hovered.get()?.includes(box);
|
|
654
|
+
Object.assign(boxElement.style, {
|
|
655
|
+
animation: "none",
|
|
656
|
+
background: "transparent",
|
|
657
|
+
border: "none",
|
|
658
|
+
boxSizing: "border-box",
|
|
659
|
+
outline: "none",
|
|
660
|
+
outlineOffset: "0px",
|
|
661
|
+
...box.styles,
|
|
662
|
+
...isHovered ? box.hoverStyles : {},
|
|
663
|
+
...isFocused ? box.focusStyles : {},
|
|
664
|
+
position: getComputedStyle(box.element).position === "fixed" ? "fixed" : "absolute",
|
|
665
|
+
zIndex: MAX_Z_INDEX - 10,
|
|
666
|
+
top: `${box.top}px`,
|
|
667
|
+
left: `${box.left}px`,
|
|
668
|
+
width: `${box.width}px`,
|
|
669
|
+
height: `${box.height}px`,
|
|
670
|
+
margin: 0,
|
|
671
|
+
padding: 0,
|
|
672
|
+
cursor: box.menu && isHovered ? "pointer" : "default",
|
|
673
|
+
pointerEvents: box.menu ? "auto" : "none",
|
|
674
|
+
display: "flex",
|
|
675
|
+
alignItems: "center",
|
|
676
|
+
justifyContent: "center",
|
|
677
|
+
overflow: "visible"
|
|
678
|
+
}), Object.assign(boxElement.children[0].style, {
|
|
679
|
+
width: "100%",
|
|
680
|
+
height: "100%",
|
|
681
|
+
minHeight: `${MIN_TOUCH_AREA_SIZE}px`,
|
|
682
|
+
minWidth: `${MIN_TOUCH_AREA_SIZE}px`,
|
|
683
|
+
boxSizing: "content-box",
|
|
684
|
+
padding: boxElement.style.outlineWidth || "0px"
|
|
685
|
+
}), showPopover(boxElement);
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
};
|
|
689
|
+
boxes.subscribe(updateBoxStyles), targets.subscribe(updateBoxStyles), hovered.subscribe(updateBoxStyles), focused.subscribe(updateBoxStyles), selected.subscribe(updateBoxStyles);
|
|
690
|
+
let renderMenu = () => {
|
|
691
|
+
if (!root)
|
|
692
|
+
return;
|
|
693
|
+
let menu = document3.getElementById(menuId);
|
|
694
|
+
if (menu)
|
|
695
|
+
menu.innerHTML = "";
|
|
696
|
+
else {
|
|
697
|
+
let props = { id: menuId, popover: "manual" };
|
|
698
|
+
menu = root.appendChild(createElement("div", props)), root.appendChild(
|
|
699
|
+
createElement("style", {}, [
|
|
700
|
+
`
|
|
701
|
+
#${menuId} {
|
|
702
|
+
position: absolute;
|
|
703
|
+
z-index: ${MAX_Z_INDEX};
|
|
704
|
+
width: 300px;
|
|
705
|
+
padding: 0px;
|
|
706
|
+
margin: 15px 0 0 0;
|
|
707
|
+
transform: translateX(-50%);
|
|
708
|
+
font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
709
|
+
font-size: 12px;
|
|
710
|
+
background: white;
|
|
711
|
+
border: none;
|
|
712
|
+
border-radius: 6px;
|
|
713
|
+
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.05), 0 5px 15px 0 rgba(0, 0, 0, 0.1);
|
|
714
|
+
color: #2E3438;
|
|
715
|
+
}
|
|
716
|
+
#${menuId} ul {
|
|
717
|
+
list-style: none;
|
|
718
|
+
margin: 0;
|
|
719
|
+
padding: 0;
|
|
720
|
+
}
|
|
721
|
+
#${menuId} > ul {
|
|
722
|
+
max-height: 300px;
|
|
723
|
+
overflow-y: auto;
|
|
724
|
+
padding: 4px 0;
|
|
725
|
+
}
|
|
726
|
+
#${menuId} li {
|
|
727
|
+
padding: 0 4px;
|
|
728
|
+
margin: 0;
|
|
729
|
+
}
|
|
730
|
+
#${menuId} li > :not(ul) {
|
|
731
|
+
display: flex;
|
|
732
|
+
padding: 8px;
|
|
733
|
+
margin: 0;
|
|
734
|
+
align-items: center;
|
|
735
|
+
gap: 8px;
|
|
736
|
+
border-radius: 4px;
|
|
737
|
+
}
|
|
738
|
+
#${menuId} button {
|
|
739
|
+
width: 100%;
|
|
740
|
+
border: 0;
|
|
741
|
+
background: transparent;
|
|
742
|
+
color: inherit;
|
|
743
|
+
text-align: left;
|
|
744
|
+
font-family: inherit;
|
|
745
|
+
font-size: inherit;
|
|
746
|
+
}
|
|
747
|
+
#${menuId} button:focus-visible {
|
|
748
|
+
outline-color: #029CFD;
|
|
749
|
+
}
|
|
750
|
+
#${menuId} button:hover {
|
|
751
|
+
background: rgba(2, 156, 253, 0.07);
|
|
752
|
+
color: #029CFD;
|
|
753
|
+
cursor: pointer;
|
|
754
|
+
}
|
|
755
|
+
#${menuId} li code {
|
|
756
|
+
white-space: nowrap;
|
|
757
|
+
overflow: hidden;
|
|
758
|
+
text-overflow: ellipsis;
|
|
759
|
+
line-height: 16px;
|
|
760
|
+
font-size: 11px;
|
|
761
|
+
}
|
|
762
|
+
#${menuId} li svg {
|
|
763
|
+
flex-shrink: 0;
|
|
764
|
+
margin: 1px;
|
|
765
|
+
color: #73828C;
|
|
766
|
+
}
|
|
767
|
+
#${menuId} li > button:hover svg, #${menuId} li > button:focus-visible svg {
|
|
768
|
+
color: #029CFD;
|
|
769
|
+
}
|
|
770
|
+
#${menuId} .element-list li svg {
|
|
771
|
+
display: none;
|
|
772
|
+
}
|
|
773
|
+
#${menuId} li.selectable svg, #${menuId} li.selected svg {
|
|
774
|
+
display: block;
|
|
775
|
+
}
|
|
776
|
+
#${menuId} .menu-list {
|
|
777
|
+
border-top: 1px solid rgba(38, 85, 115, 0.15);
|
|
778
|
+
}
|
|
779
|
+
#${menuId} .menu-list > li:not(:last-child) {
|
|
780
|
+
padding-bottom: 4px;
|
|
781
|
+
margin-bottom: 4px;
|
|
782
|
+
border-bottom: 1px solid rgba(38, 85, 115, 0.15);
|
|
783
|
+
}
|
|
784
|
+
#${menuId} .menu-items, #${menuId} .menu-items li {
|
|
785
|
+
padding: 0;
|
|
786
|
+
}
|
|
787
|
+
#${menuId} .menu-item {
|
|
788
|
+
display: flex;
|
|
789
|
+
}
|
|
790
|
+
#${menuId} .menu-item-content {
|
|
791
|
+
display: flex;
|
|
792
|
+
flex-direction: column;
|
|
793
|
+
flex-grow: 1;
|
|
794
|
+
}
|
|
795
|
+
`
|
|
796
|
+
])
|
|
797
|
+
);
|
|
798
|
+
}
|
|
799
|
+
let selectedElement = selected.get(), elementList = selectedElement ? [selectedElement] : targets.get();
|
|
800
|
+
if (elementList.length && (menu.style.position = getComputedStyle(elementList[0].element).position === "fixed" ? "fixed" : "absolute", menu.appendChild(
|
|
801
|
+
createElement(
|
|
802
|
+
"ul",
|
|
803
|
+
{ class: "element-list" },
|
|
804
|
+
elementList.map((target) => {
|
|
805
|
+
let selectable = elementList.length > 1 && !!target.menu?.some(
|
|
806
|
+
(group) => group.some(
|
|
807
|
+
(item) => !item.selectors || item.selectors.some((s) => target.selectors.includes(s))
|
|
808
|
+
)
|
|
809
|
+
), props = selectable ? {
|
|
810
|
+
class: "selectable",
|
|
811
|
+
onClick: () => selected.set(target),
|
|
812
|
+
onMouseEnter: () => focused.set(target),
|
|
813
|
+
onMouseLeave: () => focused.set(void 0)
|
|
814
|
+
} : selectedElement ? { class: "selected", onClick: () => selected.set(void 0) } : {}, asButton = selectable || selectedElement;
|
|
815
|
+
return createElement("li", props, [
|
|
816
|
+
createElement(asButton ? "button" : "div", asButton ? { type: "button" } : {}, [
|
|
817
|
+
selectedElement ? createIcon("chevronLeft") : null,
|
|
818
|
+
createElement("code", {}, [target.element.outerHTML]),
|
|
819
|
+
selectable ? createIcon("chevronRight") : null
|
|
820
|
+
])
|
|
821
|
+
]);
|
|
822
|
+
})
|
|
823
|
+
)
|
|
824
|
+
)), selected.get() || targets.get().length === 1) {
|
|
825
|
+
let target = selected.get() || targets.get()[0], menuGroups = target.menu?.filter(
|
|
826
|
+
(group) => group.some(
|
|
827
|
+
(item) => !item.selectors || item.selectors.some((s) => target.selectors.includes(s))
|
|
828
|
+
)
|
|
829
|
+
);
|
|
830
|
+
menuGroups?.length && menu.appendChild(
|
|
831
|
+
createElement(
|
|
832
|
+
"ul",
|
|
833
|
+
{ class: "menu-list" },
|
|
834
|
+
menuGroups.map(
|
|
835
|
+
(menuItems) => createElement("li", {}, [
|
|
836
|
+
createElement(
|
|
837
|
+
"ul",
|
|
838
|
+
{ class: "menu-items" },
|
|
839
|
+
menuItems.map(({ id, title, description, iconLeft, iconRight, clickable }) => {
|
|
840
|
+
let onClick = clickable && (() => channel.emit(HIGHLIGHT_MENU_CLICK, target.id, id, getEventDetails(target)));
|
|
841
|
+
return createElement("li", {}, [
|
|
842
|
+
createElement(
|
|
843
|
+
onClick ? "button" : "div",
|
|
844
|
+
onClick ? { class: "menu-item", type: "button", onClick } : { class: "menu-item" },
|
|
845
|
+
[
|
|
846
|
+
iconLeft ? createIcon(iconLeft) : null,
|
|
847
|
+
createElement("div", { class: "menu-item-content" }, [
|
|
848
|
+
createElement(description ? "strong" : "span", {}, [title]),
|
|
849
|
+
description && createElement("span", {}, [description])
|
|
850
|
+
]),
|
|
851
|
+
iconRight ? createIcon(iconRight) : null
|
|
852
|
+
]
|
|
853
|
+
)
|
|
854
|
+
]);
|
|
855
|
+
})
|
|
856
|
+
)
|
|
857
|
+
])
|
|
858
|
+
)
|
|
859
|
+
)
|
|
860
|
+
);
|
|
861
|
+
}
|
|
862
|
+
let coords = clickCoords.get();
|
|
863
|
+
coords ? (Object.assign(menu.style, {
|
|
864
|
+
display: "block",
|
|
865
|
+
left: `${menu.style.position === "fixed" ? coords.x - window.scrollX : coords.x}px`,
|
|
866
|
+
top: `${menu.style.position === "fixed" ? coords.y - window.scrollY : coords.y}px`
|
|
867
|
+
}), showPopover(menu), requestAnimationFrame(() => keepInViewport(menu, coords, { topOffset: 15, centered: !0 }))) : (hidePopover(menu), Object.assign(menu.style, { display: "none" }));
|
|
868
|
+
};
|
|
869
|
+
targets.subscribe(renderMenu), selected.subscribe(renderMenu);
|
|
870
|
+
let addHighlight = (highlight) => {
|
|
871
|
+
let info = highlight && normalizeOptions(highlight);
|
|
872
|
+
if (typeof info?.id != "string" || !info.id) {
|
|
873
|
+
logger.warn("Ignoring highlight without an id", highlight);
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
876
|
+
highlights.set((value) => {
|
|
877
|
+
let others = value.filter((h) => h.id !== info.id);
|
|
878
|
+
return info.selectors?.length ? [...others, info] : others;
|
|
879
|
+
});
|
|
880
|
+
}, removeHighlight = (id) => {
|
|
881
|
+
id && highlights.set((value) => value.filter((h) => h.id !== id));
|
|
882
|
+
}, resetState = () => {
|
|
883
|
+
highlights.set([]), elements.set(/* @__PURE__ */ new Map()), boxes.set([]), clickCoords.set(void 0), hoverCoords.set(void 0), targets.set([]), hovered.set([]), focused.set(void 0), selected.set(void 0);
|
|
884
|
+
}, removeTimeout, scrollIntoView = (target, options) => {
|
|
885
|
+
let id = "scrollIntoView-highlight";
|
|
886
|
+
clearTimeout(removeTimeout), removeHighlight(id);
|
|
887
|
+
let element = document3.querySelector(target);
|
|
888
|
+
if (!element) {
|
|
889
|
+
logger.warn(`Cannot scroll into view: ${target} not found`);
|
|
890
|
+
return;
|
|
891
|
+
}
|
|
892
|
+
element.scrollIntoView({ behavior: "smooth", block: "center", ...options });
|
|
893
|
+
let keyframeName = `kf-${Math.random().toString(36).substring(2, 15)}`;
|
|
894
|
+
highlights.set((value) => [
|
|
895
|
+
...value,
|
|
896
|
+
{
|
|
897
|
+
id,
|
|
898
|
+
priority: 1e3,
|
|
899
|
+
selectors: [target],
|
|
900
|
+
styles: {
|
|
901
|
+
outline: "2px solid #1EA7FD",
|
|
902
|
+
outlineOffset: "-1px",
|
|
903
|
+
animation: `${keyframeName} 3s linear forwards`
|
|
904
|
+
},
|
|
905
|
+
keyframes: `@keyframes ${keyframeName} {
|
|
906
|
+
0% { outline: 2px solid #1EA7FD; }
|
|
907
|
+
20% { outline: 2px solid #1EA7FD00; }
|
|
908
|
+
40% { outline: 2px solid #1EA7FD; }
|
|
909
|
+
60% { outline: 2px solid #1EA7FD00; }
|
|
910
|
+
80% { outline: 2px solid #1EA7FD; }
|
|
911
|
+
100% { outline: 2px solid #1EA7FD00; }
|
|
912
|
+
}`
|
|
913
|
+
}
|
|
914
|
+
]), removeTimeout = setTimeout(() => removeHighlight(id), 3500);
|
|
915
|
+
}, onMouseMove = (event) => {
|
|
916
|
+
requestAnimationFrame(() => hoverCoords.set({ x: event.pageX, y: event.pageY }));
|
|
917
|
+
};
|
|
918
|
+
document3.body.addEventListener("mousemove", onMouseMove), channel.on(HIGHLIGHT, addHighlight), channel.on(REMOVE_HIGHLIGHT, removeHighlight), channel.on(RESET_HIGHLIGHT, resetState), channel.on(SCROLL_INTO_VIEW, scrollIntoView), channel.on(STORY_RENDER_PHASE_CHANGED, ({ newPhase }) => {
|
|
919
|
+
newPhase === "loading" && resetState();
|
|
920
|
+
});
|
|
921
|
+
};
|
|
922
|
+
|
|
923
|
+
// src/highlight/preview.ts
|
|
924
|
+
globalThis?.FEATURES?.highlight && addons?.ready && addons.ready().then(useHighlights);
|
|
925
|
+
var preview_default4 = () => definePreviewAddon5({});
|
|
926
|
+
|
|
927
|
+
// src/measure/preview.ts
|
|
928
|
+
import { definePreviewAddon as definePreviewAddon6 } from "@aussieljk/forkbook/internal/csf";
|
|
929
|
+
|
|
930
|
+
// src/measure/withMeasure.ts
|
|
931
|
+
import { useEffect as useEffect2 } from "@aussieljk/forkbook/preview-api";
|
|
932
|
+
|
|
933
|
+
// src/measure/box-model/canvas.ts
|
|
934
|
+
import { global } from "@storybook/global";
|
|
935
|
+
function getDocumentWidthAndHeight() {
|
|
936
|
+
let container = global.document.documentElement, height = Math.max(container.scrollHeight, container.offsetHeight);
|
|
937
|
+
return { width: Math.max(container.scrollWidth, container.offsetWidth), height };
|
|
938
|
+
}
|
|
939
|
+
function createCanvas() {
|
|
940
|
+
let canvas = global.document.createElement("canvas");
|
|
941
|
+
canvas.id = "storybook-addon-measure";
|
|
942
|
+
let context = canvas.getContext("2d");
|
|
943
|
+
invariant(context != null);
|
|
944
|
+
let { width, height } = getDocumentWidthAndHeight();
|
|
945
|
+
return setCanvasWidthAndHeight(canvas, context, { width, height }), canvas.style.position = "absolute", canvas.style.left = "0", canvas.style.top = "0", canvas.style.zIndex = "2147483647", canvas.style.pointerEvents = "none", global.document.body.appendChild(canvas), { canvas, context, width, height };
|
|
946
|
+
}
|
|
947
|
+
function setCanvasWidthAndHeight(canvas, context, { width, height }) {
|
|
948
|
+
canvas.style.width = `${width}px`, canvas.style.height = `${height}px`;
|
|
949
|
+
let scale = global.window.devicePixelRatio;
|
|
950
|
+
canvas.width = Math.floor(width * scale), canvas.height = Math.floor(height * scale), context.scale(scale, scale);
|
|
951
|
+
}
|
|
952
|
+
var state2 = {};
|
|
953
|
+
function init() {
|
|
954
|
+
state2.canvas || (state2 = createCanvas());
|
|
955
|
+
}
|
|
956
|
+
function clear() {
|
|
957
|
+
state2.context && state2.context.clearRect(0, 0, state2.width ?? 0, state2.height ?? 0);
|
|
958
|
+
}
|
|
959
|
+
function draw(callback) {
|
|
960
|
+
clear(), callback(state2.context);
|
|
961
|
+
}
|
|
962
|
+
function rescale() {
|
|
963
|
+
invariant(state2.canvas, "Canvas should exist in the state."), invariant(state2.context, "Context should exist in the state."), setCanvasWidthAndHeight(state2.canvas, state2.context, { width: 0, height: 0 });
|
|
964
|
+
let { width, height } = getDocumentWidthAndHeight();
|
|
965
|
+
setCanvasWidthAndHeight(state2.canvas, state2.context, { width, height }), state2.width = width, state2.height = height;
|
|
966
|
+
}
|
|
967
|
+
function destroy() {
|
|
968
|
+
state2.canvas && (clear(), state2.canvas.parentNode?.removeChild(state2.canvas), state2 = {});
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
// src/measure/box-model/visualizer.ts
|
|
972
|
+
import { global as global2 } from "@storybook/global";
|
|
973
|
+
|
|
974
|
+
// src/measure/box-model/labels.ts
|
|
975
|
+
var colors = {
|
|
976
|
+
margin: "#f6b26b",
|
|
977
|
+
border: "#ffe599",
|
|
978
|
+
padding: "#93c47d",
|
|
979
|
+
content: "#6fa8dc",
|
|
980
|
+
text: "#232020"
|
|
981
|
+
}, labelPadding = 6;
|
|
982
|
+
function roundedRect(context, { x, y, w, h, r }) {
|
|
983
|
+
x = x - w / 2, y = y - h / 2, w < 2 * r && (r = w / 2), h < 2 * r && (r = h / 2), context.beginPath(), context.moveTo(x + r, y), context.arcTo(x + w, y, x + w, y + h, r), context.arcTo(x + w, y + h, x, y + h, r), context.arcTo(x, y + h, x, y, r), context.arcTo(x, y, x + w, y, r), context.closePath();
|
|
984
|
+
}
|
|
985
|
+
function positionCoordinate(position, { padding, border, width, height, top, left }) {
|
|
986
|
+
let contentWidth = width - border.left - border.right - padding.left - padding.right, contentHeight = height - padding.top - padding.bottom - border.top - border.bottom, x = left + border.left + padding.left, y = top + border.top + padding.top;
|
|
987
|
+
return position === "top" ? x += contentWidth / 2 : position === "right" ? (x += contentWidth, y += contentHeight / 2) : position === "bottom" ? (x += contentWidth / 2, y += contentHeight) : position === "left" ? y += contentHeight / 2 : position === "center" && (x += contentWidth / 2, y += contentHeight / 2), { x, y };
|
|
988
|
+
}
|
|
989
|
+
function offset(type, position, { margin, border, padding }, labelPaddingSize, external) {
|
|
990
|
+
let shift = (dir) => 0, offsetX = 0, offsetY = 0, locationMultiplier = external ? 1 : 0.5, labelPaddingShift = external ? labelPaddingSize * 2 : 0;
|
|
991
|
+
return type === "padding" ? shift = (dir) => padding[dir] * locationMultiplier + labelPaddingShift : type === "border" ? shift = (dir) => padding[dir] + border[dir] * locationMultiplier + labelPaddingShift : type === "margin" && (shift = (dir) => padding[dir] + border[dir] + margin[dir] * locationMultiplier + labelPaddingShift), position === "top" ? offsetY = -shift("top") : position === "right" ? offsetX = shift("right") : position === "bottom" ? offsetY = shift("bottom") : position === "left" && (offsetX = -shift("left")), { offsetX, offsetY };
|
|
992
|
+
}
|
|
993
|
+
function collide(a, b) {
|
|
994
|
+
return Math.abs(a.x - b.x) < Math.abs(a.w + b.w) / 2 && Math.abs(a.y - b.y) < Math.abs(a.h + b.h) / 2;
|
|
995
|
+
}
|
|
996
|
+
function overlapAdjustment(position, currentRect, prevRect) {
|
|
997
|
+
return position === "top" ? currentRect.y = prevRect.y - prevRect.h - labelPadding : position === "right" ? currentRect.x = prevRect.x + prevRect.w / 2 + labelPadding + currentRect.w / 2 : position === "bottom" ? currentRect.y = prevRect.y + prevRect.h + labelPadding : position === "left" && (currentRect.x = prevRect.x - prevRect.w / 2 - labelPadding - currentRect.w / 2), { x: currentRect.x, y: currentRect.y };
|
|
998
|
+
}
|
|
999
|
+
function textWithRect(context, type, { x, y, w, h }, text) {
|
|
1000
|
+
return roundedRect(context, { x, y, w, h, r: 3 }), context.fillStyle = `${colors[type]}dd`, context.fill(), context.strokeStyle = colors[type], context.stroke(), context.fillStyle = colors.text, context.fillText(text, x, y), roundedRect(context, { x, y, w, h, r: 3 }), context.fillStyle = `${colors[type]}dd`, context.fill(), context.strokeStyle = colors[type], context.stroke(), context.fillStyle = colors.text, context.fillText(text, x, y), { x, y, w, h };
|
|
1001
|
+
}
|
|
1002
|
+
function configureText(context, text) {
|
|
1003
|
+
context.font = "600 12px monospace", context.textBaseline = "middle", context.textAlign = "center";
|
|
1004
|
+
let metrics = context.measureText(text), actualHeight = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent, w = metrics.width + labelPadding * 2, h = actualHeight + labelPadding * 2;
|
|
1005
|
+
return { w, h };
|
|
1006
|
+
}
|
|
1007
|
+
function drawLabel(context, measurements, { type, position = "center", text }, prevRect, external = !1) {
|
|
1008
|
+
let { x, y } = positionCoordinate(position, measurements), { offsetX, offsetY } = offset(type, position, measurements, labelPadding + 1, external);
|
|
1009
|
+
x += offsetX, y += offsetY;
|
|
1010
|
+
let { w, h } = configureText(context, text);
|
|
1011
|
+
if (prevRect && collide({ x, y, w, h }, prevRect)) {
|
|
1012
|
+
let adjusted = overlapAdjustment(position, { x, y, w, h }, prevRect);
|
|
1013
|
+
x = adjusted.x, y = adjusted.y;
|
|
1014
|
+
}
|
|
1015
|
+
return textWithRect(context, type, { x, y, w, h }, text);
|
|
1016
|
+
}
|
|
1017
|
+
function floatingOffset(alignment, { w, h }) {
|
|
1018
|
+
let deltaW = w * 0.5 + labelPadding, deltaH = h * 0.5 + labelPadding;
|
|
1019
|
+
return {
|
|
1020
|
+
offsetX: (alignment.x === "left" ? -1 : 1) * deltaW,
|
|
1021
|
+
offsetY: (alignment.y === "top" ? -1 : 1) * deltaH
|
|
1022
|
+
};
|
|
1023
|
+
}
|
|
1024
|
+
function drawFloatingLabel(context, measurements, { type, text }) {
|
|
1025
|
+
let { floatingAlignment: floatingAlignment2, extremities } = measurements, x = extremities[floatingAlignment2.x], y = extremities[floatingAlignment2.y], { w, h } = configureText(context, text), { offsetX, offsetY } = floatingOffset(floatingAlignment2, {
|
|
1026
|
+
w,
|
|
1027
|
+
h
|
|
1028
|
+
});
|
|
1029
|
+
return x += offsetX, y += offsetY, textWithRect(context, type, { x, y, w, h }, text);
|
|
1030
|
+
}
|
|
1031
|
+
function drawStack(context, measurements, stack, external) {
|
|
1032
|
+
let rects = [];
|
|
1033
|
+
stack.forEach((l, idx) => {
|
|
1034
|
+
let rect = external && l.position === "center" ? drawFloatingLabel(context, measurements, l) : drawLabel(context, measurements, l, rects[idx - 1], external);
|
|
1035
|
+
rects[idx] = rect;
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
function labelStacks(context, measurements, labels, externalLabels) {
|
|
1039
|
+
let stacks = labels.reduce((acc, l) => (Object.prototype.hasOwnProperty.call(acc, l.position) || (acc[l.position] = []), acc[l.position]?.push(l), acc), {});
|
|
1040
|
+
stacks.top && drawStack(context, measurements, stacks.top, externalLabels), stacks.right && drawStack(context, measurements, stacks.right, externalLabels), stacks.bottom && drawStack(context, measurements, stacks.bottom, externalLabels), stacks.left && drawStack(context, measurements, stacks.left, externalLabels), stacks.center && drawStack(context, measurements, stacks.center, externalLabels);
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
// src/measure/box-model/visualizer.ts
|
|
1044
|
+
var colors2 = {
|
|
1045
|
+
margin: "#f6b26ba8",
|
|
1046
|
+
border: "#ffe599a8",
|
|
1047
|
+
padding: "#93c47d8c",
|
|
1048
|
+
content: "#6fa8dca8"
|
|
1049
|
+
}, SMALL_NODE_SIZE = 30;
|
|
1050
|
+
function pxToNumber(px) {
|
|
1051
|
+
return parseInt(px.replace("px", ""), 10);
|
|
1052
|
+
}
|
|
1053
|
+
function round(value) {
|
|
1054
|
+
return Number.isInteger(value) ? value : value.toFixed(2);
|
|
1055
|
+
}
|
|
1056
|
+
function filterZeroValues(labels) {
|
|
1057
|
+
return labels.filter((l) => l.text !== 0 && l.text !== "0");
|
|
1058
|
+
}
|
|
1059
|
+
function floatingAlignment(extremities) {
|
|
1060
|
+
let windowExtremities = {
|
|
1061
|
+
top: global2.window.scrollY,
|
|
1062
|
+
bottom: global2.window.scrollY + global2.window.innerHeight,
|
|
1063
|
+
left: global2.window.scrollX,
|
|
1064
|
+
right: global2.window.scrollX + global2.window.innerWidth
|
|
1065
|
+
}, distances = {
|
|
1066
|
+
top: Math.abs(windowExtremities.top - extremities.top),
|
|
1067
|
+
bottom: Math.abs(windowExtremities.bottom - extremities.bottom),
|
|
1068
|
+
left: Math.abs(windowExtremities.left - extremities.left),
|
|
1069
|
+
right: Math.abs(windowExtremities.right - extremities.right)
|
|
1070
|
+
};
|
|
1071
|
+
return {
|
|
1072
|
+
x: distances.left > distances.right ? "left" : "right",
|
|
1073
|
+
y: distances.top > distances.bottom ? "top" : "bottom"
|
|
1074
|
+
};
|
|
1075
|
+
}
|
|
1076
|
+
function measureElement(element) {
|
|
1077
|
+
let style = global2.getComputedStyle(element), { top, left, right, bottom, width, height } = element.getBoundingClientRect(), {
|
|
1078
|
+
marginTop,
|
|
1079
|
+
marginBottom,
|
|
1080
|
+
marginLeft,
|
|
1081
|
+
marginRight,
|
|
1082
|
+
paddingTop,
|
|
1083
|
+
paddingBottom,
|
|
1084
|
+
paddingLeft,
|
|
1085
|
+
paddingRight,
|
|
1086
|
+
borderBottomWidth,
|
|
1087
|
+
borderTopWidth,
|
|
1088
|
+
borderLeftWidth,
|
|
1089
|
+
borderRightWidth
|
|
1090
|
+
} = style;
|
|
1091
|
+
top = top + global2.window.scrollY, left = left + global2.window.scrollX, bottom = bottom + global2.window.scrollY, right = right + global2.window.scrollX;
|
|
1092
|
+
let margin = {
|
|
1093
|
+
top: pxToNumber(marginTop),
|
|
1094
|
+
bottom: pxToNumber(marginBottom),
|
|
1095
|
+
left: pxToNumber(marginLeft),
|
|
1096
|
+
right: pxToNumber(marginRight)
|
|
1097
|
+
}, padding = {
|
|
1098
|
+
top: pxToNumber(paddingTop),
|
|
1099
|
+
bottom: pxToNumber(paddingBottom),
|
|
1100
|
+
left: pxToNumber(paddingLeft),
|
|
1101
|
+
right: pxToNumber(paddingRight)
|
|
1102
|
+
}, border = {
|
|
1103
|
+
top: pxToNumber(borderTopWidth),
|
|
1104
|
+
bottom: pxToNumber(borderBottomWidth),
|
|
1105
|
+
left: pxToNumber(borderLeftWidth),
|
|
1106
|
+
right: pxToNumber(borderRightWidth)
|
|
1107
|
+
}, extremities = {
|
|
1108
|
+
top: top - margin.top,
|
|
1109
|
+
bottom: bottom + margin.bottom,
|
|
1110
|
+
left: left - margin.left,
|
|
1111
|
+
right: right + margin.right
|
|
1112
|
+
};
|
|
1113
|
+
return {
|
|
1114
|
+
margin,
|
|
1115
|
+
padding,
|
|
1116
|
+
border,
|
|
1117
|
+
top,
|
|
1118
|
+
left,
|
|
1119
|
+
bottom,
|
|
1120
|
+
right,
|
|
1121
|
+
width,
|
|
1122
|
+
height,
|
|
1123
|
+
extremities,
|
|
1124
|
+
floatingAlignment: floatingAlignment(extremities)
|
|
1125
|
+
};
|
|
1126
|
+
}
|
|
1127
|
+
function drawMargin(context, { margin, width, height, top, left, bottom, right }) {
|
|
1128
|
+
let marginHeight = height + margin.bottom + margin.top;
|
|
1129
|
+
context.fillStyle = colors2.margin, context.fillRect(left, top - margin.top, width, margin.top), context.fillRect(right, top - margin.top, margin.right, marginHeight), context.fillRect(left, bottom, width, margin.bottom), context.fillRect(left - margin.left, top - margin.top, margin.left, marginHeight);
|
|
1130
|
+
let marginLabels = [
|
|
1131
|
+
{
|
|
1132
|
+
type: "margin",
|
|
1133
|
+
text: round(margin.top),
|
|
1134
|
+
position: "top"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
type: "margin",
|
|
1138
|
+
text: round(margin.right),
|
|
1139
|
+
position: "right"
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
type: "margin",
|
|
1143
|
+
text: round(margin.bottom),
|
|
1144
|
+
position: "bottom"
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
type: "margin",
|
|
1148
|
+
text: round(margin.left),
|
|
1149
|
+
position: "left"
|
|
1150
|
+
}
|
|
1151
|
+
];
|
|
1152
|
+
return filterZeroValues(marginLabels);
|
|
1153
|
+
}
|
|
1154
|
+
function drawPadding(context, { padding, border, width, height, top, left, bottom, right }) {
|
|
1155
|
+
let paddingWidth = width - border.left - border.right, paddingHeight = height - padding.top - padding.bottom - border.top - border.bottom;
|
|
1156
|
+
context.fillStyle = colors2.padding, context.fillRect(left + border.left, top + border.top, paddingWidth, padding.top), context.fillRect(
|
|
1157
|
+
right - padding.right - border.right,
|
|
1158
|
+
top + padding.top + border.top,
|
|
1159
|
+
padding.right,
|
|
1160
|
+
paddingHeight
|
|
1161
|
+
), context.fillRect(
|
|
1162
|
+
left + border.left,
|
|
1163
|
+
bottom - padding.bottom - border.bottom,
|
|
1164
|
+
paddingWidth,
|
|
1165
|
+
padding.bottom
|
|
1166
|
+
), context.fillRect(left + border.left, top + padding.top + border.top, padding.left, paddingHeight);
|
|
1167
|
+
let paddingLabels = [
|
|
1168
|
+
{
|
|
1169
|
+
type: "padding",
|
|
1170
|
+
text: padding.top,
|
|
1171
|
+
position: "top"
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
type: "padding",
|
|
1175
|
+
text: padding.right,
|
|
1176
|
+
position: "right"
|
|
1177
|
+
},
|
|
1178
|
+
{
|
|
1179
|
+
type: "padding",
|
|
1180
|
+
text: padding.bottom,
|
|
1181
|
+
position: "bottom"
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
type: "padding",
|
|
1185
|
+
text: padding.left,
|
|
1186
|
+
position: "left"
|
|
1187
|
+
}
|
|
1188
|
+
];
|
|
1189
|
+
return filterZeroValues(paddingLabels);
|
|
1190
|
+
}
|
|
1191
|
+
function drawBorder(context, { border, width, height, top, left, bottom, right }) {
|
|
1192
|
+
let borderHeight = height - border.top - border.bottom;
|
|
1193
|
+
context.fillStyle = colors2.border, context.fillRect(left, top, width, border.top), context.fillRect(left, bottom - border.bottom, width, border.bottom), context.fillRect(left, top + border.top, border.left, borderHeight), context.fillRect(right - border.right, top + border.top, border.right, borderHeight);
|
|
1194
|
+
let borderLabels = [
|
|
1195
|
+
{
|
|
1196
|
+
type: "border",
|
|
1197
|
+
text: border.top,
|
|
1198
|
+
position: "top"
|
|
1199
|
+
},
|
|
1200
|
+
{
|
|
1201
|
+
type: "border",
|
|
1202
|
+
text: border.right,
|
|
1203
|
+
position: "right"
|
|
1204
|
+
},
|
|
1205
|
+
{
|
|
1206
|
+
type: "border",
|
|
1207
|
+
text: border.bottom,
|
|
1208
|
+
position: "bottom"
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
type: "border",
|
|
1212
|
+
text: border.left,
|
|
1213
|
+
position: "left"
|
|
1214
|
+
}
|
|
1215
|
+
];
|
|
1216
|
+
return filterZeroValues(borderLabels);
|
|
1217
|
+
}
|
|
1218
|
+
function drawContent(context, { padding, border, width, height, top, left }) {
|
|
1219
|
+
let contentWidth = width - border.left - border.right - padding.left - padding.right, contentHeight = height - padding.top - padding.bottom - border.top - border.bottom;
|
|
1220
|
+
return context.fillStyle = colors2.content, context.fillRect(
|
|
1221
|
+
left + border.left + padding.left,
|
|
1222
|
+
top + border.top + padding.top,
|
|
1223
|
+
contentWidth,
|
|
1224
|
+
contentHeight
|
|
1225
|
+
), [
|
|
1226
|
+
{
|
|
1227
|
+
type: "content",
|
|
1228
|
+
position: "center",
|
|
1229
|
+
text: `${round(contentWidth)} x ${round(contentHeight)}`
|
|
1230
|
+
}
|
|
1231
|
+
];
|
|
1232
|
+
}
|
|
1233
|
+
function drawBoxModel(element) {
|
|
1234
|
+
return (context) => {
|
|
1235
|
+
if (element && context) {
|
|
1236
|
+
let measurements = measureElement(element), marginLabels = drawMargin(context, measurements), paddingLabels = drawPadding(context, measurements), borderLabels = drawBorder(context, measurements), contentLabels = drawContent(context, measurements), externalLabels = measurements.width <= SMALL_NODE_SIZE * 3 || measurements.height <= SMALL_NODE_SIZE;
|
|
1237
|
+
labelStacks(
|
|
1238
|
+
context,
|
|
1239
|
+
measurements,
|
|
1240
|
+
[...contentLabels, ...paddingLabels, ...borderLabels, ...marginLabels],
|
|
1241
|
+
externalLabels
|
|
1242
|
+
);
|
|
1243
|
+
}
|
|
1244
|
+
};
|
|
1245
|
+
}
|
|
1246
|
+
function drawSelectedElement(element) {
|
|
1247
|
+
draw(drawBoxModel(element));
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
// src/measure/util.ts
|
|
1251
|
+
import { global as global3 } from "@storybook/global";
|
|
1252
|
+
var deepElementFromPoint = (x, y) => {
|
|
1253
|
+
let element = global3.document.elementFromPoint(x, y), crawlShadows = (node) => {
|
|
1254
|
+
if (node && node.shadowRoot) {
|
|
1255
|
+
let nestedElement = node.shadowRoot.elementFromPoint(x, y);
|
|
1256
|
+
return node.isEqualNode(nestedElement) ? node : nestedElement.shadowRoot ? crawlShadows(nestedElement) : nestedElement;
|
|
1257
|
+
}
|
|
1258
|
+
return node;
|
|
1259
|
+
};
|
|
1260
|
+
return crawlShadows(element) || element;
|
|
1261
|
+
};
|
|
1262
|
+
|
|
1263
|
+
// src/measure/withMeasure.ts
|
|
1264
|
+
var nodeAtPointerRef, pointer = { x: 0, y: 0 };
|
|
1265
|
+
function findAndDrawElement(x, y) {
|
|
1266
|
+
nodeAtPointerRef = deepElementFromPoint(x, y), drawSelectedElement(nodeAtPointerRef);
|
|
1267
|
+
}
|
|
1268
|
+
var withMeasure = (StoryFn, context) => {
|
|
1269
|
+
let { measureEnabled } = context.globals || {}, measureActive = measureEnabled && !context.parameters?.measure?.disable;
|
|
1270
|
+
return useEffect2(() => {
|
|
1271
|
+
if (typeof globalThis.document > "u")
|
|
1272
|
+
return;
|
|
1273
|
+
let onPointerMove = (event) => {
|
|
1274
|
+
window.requestAnimationFrame(() => {
|
|
1275
|
+
event.stopPropagation(), pointer.x = event.clientX, pointer.y = event.clientY;
|
|
1276
|
+
});
|
|
1277
|
+
};
|
|
1278
|
+
return globalThis.document.addEventListener("pointermove", onPointerMove), () => {
|
|
1279
|
+
globalThis.document.removeEventListener("pointermove", onPointerMove);
|
|
1280
|
+
};
|
|
1281
|
+
}, []), useEffect2(() => {
|
|
1282
|
+
let onPointerOver = (event) => {
|
|
1283
|
+
window.requestAnimationFrame(() => {
|
|
1284
|
+
event.stopPropagation(), findAndDrawElement(event.clientX, event.clientY);
|
|
1285
|
+
});
|
|
1286
|
+
}, onResize = () => {
|
|
1287
|
+
window.requestAnimationFrame(() => {
|
|
1288
|
+
rescale();
|
|
1289
|
+
});
|
|
1290
|
+
};
|
|
1291
|
+
return context.viewMode === "story" && measureActive && (globalThis.document.addEventListener("pointerover", onPointerOver), init(), globalThis.window.addEventListener("resize", onResize), findAndDrawElement(pointer.x, pointer.y)), () => {
|
|
1292
|
+
globalThis.window.removeEventListener("resize", onResize), destroy();
|
|
1293
|
+
};
|
|
1294
|
+
}, [measureActive, context.viewMode]), StoryFn();
|
|
1295
|
+
};
|
|
1296
|
+
|
|
1297
|
+
// src/measure/preview.ts
|
|
1298
|
+
var decorators2 = globalThis.FEATURES?.measure ? [withMeasure] : [], initialGlobals2 = {
|
|
1299
|
+
[PARAM_KEY3]: !1
|
|
1300
|
+
}, preview_default5 = () => definePreviewAddon6({
|
|
1301
|
+
decorators: decorators2,
|
|
1302
|
+
initialGlobals: initialGlobals2
|
|
1303
|
+
});
|
|
1304
|
+
|
|
1305
|
+
// src/outline/preview.ts
|
|
1306
|
+
import { definePreviewAddon as definePreviewAddon7 } from "@aussieljk/forkbook/internal/csf";
|
|
1307
|
+
|
|
1308
|
+
// src/outline/withOutline.ts
|
|
1309
|
+
import { useEffect as useEffect3, useMemo } from "@aussieljk/forkbook/preview-api";
|
|
1310
|
+
|
|
1311
|
+
// src/outline/helpers.ts
|
|
1312
|
+
import { global as global4 } from "@storybook/global";
|
|
1313
|
+
var clearStyles2 = (selector) => {
|
|
1314
|
+
(Array.isArray(selector) ? selector : [selector]).forEach(clearStyle2);
|
|
1315
|
+
}, clearStyle2 = (input) => {
|
|
1316
|
+
let selector = typeof input == "string" ? input : input.join(""), element = global4.document.getElementById(selector);
|
|
1317
|
+
element && element.parentElement && element.parentElement.removeChild(element);
|
|
1318
|
+
}, addOutlineStyles = (selector, css) => {
|
|
1319
|
+
let existingStyle = global4.document.getElementById(selector);
|
|
1320
|
+
if (existingStyle)
|
|
1321
|
+
existingStyle.innerHTML !== css && (existingStyle.innerHTML = css);
|
|
1322
|
+
else {
|
|
1323
|
+
let style = global4.document.createElement("style");
|
|
1324
|
+
style.setAttribute("id", selector), style.innerHTML = css, global4.document.head.appendChild(style);
|
|
1325
|
+
}
|
|
1326
|
+
};
|
|
1327
|
+
|
|
1328
|
+
// src/outline/outlineCSS.ts
|
|
1329
|
+
import { dedent } from "ts-dedent";
|
|
1330
|
+
function outlineCSS(selector) {
|
|
1331
|
+
return dedent`
|
|
1332
|
+
${selector} body {
|
|
1333
|
+
outline: 1px solid #2980b9 !important;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
${selector} article {
|
|
1337
|
+
outline: 1px solid #3498db !important;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
${selector} nav {
|
|
1341
|
+
outline: 1px solid #0088c3 !important;
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
${selector} aside {
|
|
1345
|
+
outline: 1px solid #33a0ce !important;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
${selector} section {
|
|
1349
|
+
outline: 1px solid #66b8da !important;
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
${selector} header {
|
|
1353
|
+
outline: 1px solid #99cfe7 !important;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
${selector} footer {
|
|
1357
|
+
outline: 1px solid #cce7f3 !important;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
${selector} h1 {
|
|
1361
|
+
outline: 1px solid #162544 !important;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
${selector} h2 {
|
|
1365
|
+
outline: 1px solid #314e6e !important;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
${selector} h3 {
|
|
1369
|
+
outline: 1px solid #3e5e85 !important;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
${selector} h4 {
|
|
1373
|
+
outline: 1px solid #449baf !important;
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
${selector} h5 {
|
|
1377
|
+
outline: 1px solid #c7d1cb !important;
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
${selector} h6 {
|
|
1381
|
+
outline: 1px solid #4371d0 !important;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
${selector} main {
|
|
1385
|
+
outline: 1px solid #2f4f90 !important;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
${selector} address {
|
|
1389
|
+
outline: 1px solid #1a2c51 !important;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
${selector} div {
|
|
1393
|
+
outline: 1px solid #036cdb !important;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
${selector} p {
|
|
1397
|
+
outline: 1px solid #ac050b !important;
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
${selector} hr {
|
|
1401
|
+
outline: 1px solid #ff063f !important;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
${selector} pre {
|
|
1405
|
+
outline: 1px solid #850440 !important;
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
${selector} blockquote {
|
|
1409
|
+
outline: 1px solid #f1b8e7 !important;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
${selector} ol {
|
|
1413
|
+
outline: 1px solid #ff050c !important;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
${selector} ul {
|
|
1417
|
+
outline: 1px solid #d90416 !important;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
${selector} li {
|
|
1421
|
+
outline: 1px solid #d90416 !important;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
${selector} dl {
|
|
1425
|
+
outline: 1px solid #fd3427 !important;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
${selector} dt {
|
|
1429
|
+
outline: 1px solid #ff0043 !important;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
${selector} dd {
|
|
1433
|
+
outline: 1px solid #e80174 !important;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
${selector} figure {
|
|
1437
|
+
outline: 1px solid #ff00bb !important;
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
${selector} figcaption {
|
|
1441
|
+
outline: 1px solid #bf0032 !important;
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
${selector} table {
|
|
1445
|
+
outline: 1px solid #00cc99 !important;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
${selector} caption {
|
|
1449
|
+
outline: 1px solid #37ffc4 !important;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
${selector} thead {
|
|
1453
|
+
outline: 1px solid #98daca !important;
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
${selector} tbody {
|
|
1457
|
+
outline: 1px solid #64a7a0 !important;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
${selector} tfoot {
|
|
1461
|
+
outline: 1px solid #22746b !important;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
${selector} tr {
|
|
1465
|
+
outline: 1px solid #86c0b2 !important;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
${selector} th {
|
|
1469
|
+
outline: 1px solid #a1e7d6 !important;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
${selector} td {
|
|
1473
|
+
outline: 1px solid #3f5a54 !important;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
${selector} col {
|
|
1477
|
+
outline: 1px solid #6c9a8f !important;
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
${selector} colgroup {
|
|
1481
|
+
outline: 1px solid #6c9a9d !important;
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
${selector} button {
|
|
1485
|
+
outline: 1px solid #da8301 !important;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
${selector} datalist {
|
|
1489
|
+
outline: 1px solid #c06000 !important;
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
${selector} fieldset {
|
|
1493
|
+
outline: 1px solid #d95100 !important;
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
${selector} form {
|
|
1497
|
+
outline: 1px solid #d23600 !important;
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1500
|
+
${selector} input {
|
|
1501
|
+
outline: 1px solid #fca600 !important;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
${selector} keygen {
|
|
1505
|
+
outline: 1px solid #b31e00 !important;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
${selector} label {
|
|
1509
|
+
outline: 1px solid #ee8900 !important;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
${selector} legend {
|
|
1513
|
+
outline: 1px solid #de6d00 !important;
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
${selector} meter {
|
|
1517
|
+
outline: 1px solid #e8630c !important;
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
${selector} optgroup {
|
|
1521
|
+
outline: 1px solid #b33600 !important;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
${selector} option {
|
|
1525
|
+
outline: 1px solid #ff8a00 !important;
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
${selector} output {
|
|
1529
|
+
outline: 1px solid #ff9619 !important;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
${selector} progress {
|
|
1533
|
+
outline: 1px solid #e57c00 !important;
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
${selector} select {
|
|
1537
|
+
outline: 1px solid #e26e0f !important;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
${selector} textarea {
|
|
1541
|
+
outline: 1px solid #cc5400 !important;
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
${selector} details {
|
|
1545
|
+
outline: 1px solid #33848f !important;
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1548
|
+
${selector} summary {
|
|
1549
|
+
outline: 1px solid #60a1a6 !important;
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
${selector} command {
|
|
1553
|
+
outline: 1px solid #438da1 !important;
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
${selector} menu {
|
|
1557
|
+
outline: 1px solid #449da6 !important;
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
${selector} del {
|
|
1561
|
+
outline: 1px solid #bf0000 !important;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
${selector} ins {
|
|
1565
|
+
outline: 1px solid #400000 !important;
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
${selector} img {
|
|
1569
|
+
outline: 1px solid #22746b !important;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
${selector} iframe {
|
|
1573
|
+
outline: 1px solid #64a7a0 !important;
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
${selector} embed {
|
|
1577
|
+
outline: 1px solid #98daca !important;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
${selector} object {
|
|
1581
|
+
outline: 1px solid #00cc99 !important;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
${selector} param {
|
|
1585
|
+
outline: 1px solid #37ffc4 !important;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
${selector} video {
|
|
1589
|
+
outline: 1px solid #6ee866 !important;
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1592
|
+
${selector} audio {
|
|
1593
|
+
outline: 1px solid #027353 !important;
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
${selector} source {
|
|
1597
|
+
outline: 1px solid #012426 !important;
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
${selector} canvas {
|
|
1601
|
+
outline: 1px solid #a2f570 !important;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
${selector} track {
|
|
1605
|
+
outline: 1px solid #59a600 !important;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
${selector} map {
|
|
1609
|
+
outline: 1px solid #7be500 !important;
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
${selector} area {
|
|
1613
|
+
outline: 1px solid #305900 !important;
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
${selector} a {
|
|
1617
|
+
outline: 1px solid #ff62ab !important;
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1620
|
+
${selector} em {
|
|
1621
|
+
outline: 1px solid #800b41 !important;
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
${selector} strong {
|
|
1625
|
+
outline: 1px solid #ff1583 !important;
|
|
1626
|
+
}
|
|
1627
|
+
|
|
1628
|
+
${selector} i {
|
|
1629
|
+
outline: 1px solid #803156 !important;
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
${selector} b {
|
|
1633
|
+
outline: 1px solid #cc1169 !important;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
${selector} u {
|
|
1637
|
+
outline: 1px solid #ff0430 !important;
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
${selector} s {
|
|
1641
|
+
outline: 1px solid #f805e3 !important;
|
|
1642
|
+
}
|
|
1643
|
+
|
|
1644
|
+
${selector} small {
|
|
1645
|
+
outline: 1px solid #d107b2 !important;
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
${selector} abbr {
|
|
1649
|
+
outline: 1px solid #4a0263 !important;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
${selector} q {
|
|
1653
|
+
outline: 1px solid #240018 !important;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
${selector} cite {
|
|
1657
|
+
outline: 1px solid #64003c !important;
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
${selector} dfn {
|
|
1661
|
+
outline: 1px solid #b4005a !important;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
${selector} sub {
|
|
1665
|
+
outline: 1px solid #dba0c8 !important;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
${selector} sup {
|
|
1669
|
+
outline: 1px solid #cc0256 !important;
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
${selector} time {
|
|
1673
|
+
outline: 1px solid #d6606d !important;
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
${selector} code {
|
|
1677
|
+
outline: 1px solid #e04251 !important;
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
${selector} kbd {
|
|
1681
|
+
outline: 1px solid #5e001f !important;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
${selector} samp {
|
|
1685
|
+
outline: 1px solid #9c0033 !important;
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
${selector} var {
|
|
1689
|
+
outline: 1px solid #d90047 !important;
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
${selector} mark {
|
|
1693
|
+
outline: 1px solid #ff0053 !important;
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
${selector} bdi {
|
|
1697
|
+
outline: 1px solid #bf3668 !important;
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
${selector} bdo {
|
|
1701
|
+
outline: 1px solid #6f1400 !important;
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1704
|
+
${selector} ruby {
|
|
1705
|
+
outline: 1px solid #ff7b93 !important;
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
${selector} rt {
|
|
1709
|
+
outline: 1px solid #ff2f54 !important;
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
${selector} rp {
|
|
1713
|
+
outline: 1px solid #803e49 !important;
|
|
1714
|
+
}
|
|
1715
|
+
|
|
1716
|
+
${selector} span {
|
|
1717
|
+
outline: 1px solid #cc2643 !important;
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
${selector} br {
|
|
1721
|
+
outline: 1px solid #db687d !important;
|
|
1722
|
+
}
|
|
1723
|
+
|
|
1724
|
+
${selector} wbr {
|
|
1725
|
+
outline: 1px solid #db175b !important;
|
|
1726
|
+
}`;
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
// src/outline/withOutline.ts
|
|
1730
|
+
var withOutline = (StoryFn, context) => {
|
|
1731
|
+
let globals = context.globals || {}, isActive = !context.parameters?.[PARAM_KEY4]?.disable && [!0, "true"].includes(globals[PARAM_KEY4]), isInDocs = context.viewMode === "docs", outlineStyles = useMemo(() => outlineCSS(isInDocs ? '[data-story-block="true"]' : ".sb-show-main"), [context]);
|
|
1732
|
+
return useEffect3(() => {
|
|
1733
|
+
let selectorId = isInDocs ? `addon-outline-docs-${context.id}` : "addon-outline";
|
|
1734
|
+
return isActive ? addOutlineStyles(selectorId, outlineStyles) : clearStyles2(selectorId), () => {
|
|
1735
|
+
clearStyles2(selectorId);
|
|
1736
|
+
};
|
|
1737
|
+
}, [isActive, outlineStyles, context]), StoryFn();
|
|
1738
|
+
};
|
|
1739
|
+
|
|
1740
|
+
// src/outline/preview.ts
|
|
1741
|
+
var decorators3 = globalThis.FEATURES?.outline ? [withOutline] : [], initialGlobals3 = {
|
|
1742
|
+
[PARAM_KEY4]: !1
|
|
1743
|
+
}, preview_default6 = () => definePreviewAddon7({ decorators: decorators3, initialGlobals: initialGlobals3 });
|
|
1744
|
+
|
|
1745
|
+
// src/shared/open-service/services/docgen/preview.ts
|
|
1746
|
+
import { definePreviewAddon as definePreviewAddon8 } from "@aussieljk/forkbook/internal/csf";
|
|
1747
|
+
var preview_default7 = () => definePreviewAddon8({
|
|
1748
|
+
beforeAll: () => {
|
|
1749
|
+
globalThis.FEATURES?.docgenServer && registerService(docgenServiceDef);
|
|
1750
|
+
}
|
|
1751
|
+
});
|
|
1752
|
+
|
|
1753
|
+
// src/shared/open-service/services/story-docs/preview.ts
|
|
1754
|
+
import { definePreviewAddon as definePreviewAddon9 } from "@aussieljk/forkbook/internal/csf";
|
|
1755
|
+
|
|
1756
|
+
// src/shared/open-service/services/story-docs/definition.ts
|
|
1757
|
+
import * as v from "valibot";
|
|
1758
|
+
import { defineService } from "@aussieljk/forkbook/open-service";
|
|
1759
|
+
|
|
1760
|
+
// src/shared/open-service/services/story-docs/paths.ts
|
|
1761
|
+
function storyDocsQueryStaticPath(id) {
|
|
1762
|
+
return `${id}.json`;
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
// src/shared/open-service/services/story-docs/definition.ts
|
|
1766
|
+
var storyDocsInputSchema = v.object({ id: v.string() }), storyDocsErrorSchema = v.object({
|
|
1767
|
+
name: v.string(),
|
|
1768
|
+
message: v.string()
|
|
1769
|
+
}), storyDocSchema = v.object({
|
|
1770
|
+
id: v.string(),
|
|
1771
|
+
name: v.string(),
|
|
1772
|
+
snippet: v.optional(v.string()),
|
|
1773
|
+
description: v.optional(v.string()),
|
|
1774
|
+
summary: v.optional(v.string()),
|
|
1775
|
+
warning: v.optional(v.string()),
|
|
1776
|
+
error: v.optional(storyDocsErrorSchema)
|
|
1777
|
+
}), storyDocsPayloadSchema = v.object({
|
|
1778
|
+
id: v.string(),
|
|
1779
|
+
name: v.string(),
|
|
1780
|
+
path: v.string(),
|
|
1781
|
+
import: v.optional(v.string()),
|
|
1782
|
+
stories: v.record(v.string(), storyDocSchema),
|
|
1783
|
+
error: v.optional(storyDocsErrorSchema)
|
|
1784
|
+
}), storyDocsOutputSchema = v.optional(storyDocsPayloadSchema), storyDocsServiceDef = defineService({
|
|
1785
|
+
id: "core/story-docs",
|
|
1786
|
+
internal: !0,
|
|
1787
|
+
description: "Story documentation (snippets, descriptions, imports) keyed by component id.",
|
|
1788
|
+
initialState: { components: {} },
|
|
1789
|
+
queries: {
|
|
1790
|
+
storyDocs: {
|
|
1791
|
+
description: "Returns the story-docs payload for one component id, or undefined when not loaded.",
|
|
1792
|
+
input: storyDocsInputSchema,
|
|
1793
|
+
output: storyDocsOutputSchema,
|
|
1794
|
+
handler: (input, ctx) => Object.hasOwn(ctx.self.state.components, input.id) ? ctx.self.state.components[input.id] : void 0,
|
|
1795
|
+
load: async (input, ctx) => {
|
|
1796
|
+
await ctx.self.commands.extractStoryDocs(input);
|
|
1797
|
+
},
|
|
1798
|
+
staticPath: (input) => storyDocsQueryStaticPath(input.id)
|
|
1799
|
+
},
|
|
1800
|
+
storyDocsForAllComponents: {
|
|
1801
|
+
description: "Returns story-docs payloads for every component in the story index.",
|
|
1802
|
+
input: v.void(),
|
|
1803
|
+
output: v.record(v.string(), storyDocsPayloadSchema),
|
|
1804
|
+
handler: (_input, ctx) => ctx.self.state.components,
|
|
1805
|
+
load: async (_input, ctx) => {
|
|
1806
|
+
await ctx.self.commands.extractAllStoryDocs(void 0);
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
},
|
|
1810
|
+
commands: {
|
|
1811
|
+
extractStoryDocs: {
|
|
1812
|
+
description: "Resolves the story entry for a component id, runs the registered provider chain, writes the result into state, and returns it (or undefined when no provider produced story docs).",
|
|
1813
|
+
input: storyDocsInputSchema,
|
|
1814
|
+
output: storyDocsOutputSchema
|
|
1815
|
+
},
|
|
1816
|
+
extractAllStoryDocs: {
|
|
1817
|
+
description: "Extracts story docs for every component id in the story index by invoking `extractStoryDocs` for each.",
|
|
1818
|
+
input: v.undefined(),
|
|
1819
|
+
output: v.void()
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
});
|
|
1823
|
+
|
|
1824
|
+
// src/shared/open-service/services/story-docs/story-docs-source-before-each.ts
|
|
1825
|
+
import { logger as logger2 } from "@aussieljk/forkbook/internal/client-logger";
|
|
1826
|
+
import { emitTransformCode, getService } from "@aussieljk/forkbook/preview-api";
|
|
1827
|
+
function storyDocsSourceBeforeEach(context) {
|
|
1828
|
+
if (!globalThis.FEATURES?.docgenServer || shouldSkipStoryDocsEmit(context.parameters))
|
|
1829
|
+
return;
|
|
1830
|
+
let service = (() => {
|
|
1831
|
+
try {
|
|
1832
|
+
return getService("core/story-docs", { internal: !0 });
|
|
1833
|
+
} catch {
|
|
1834
|
+
return;
|
|
1835
|
+
}
|
|
1836
|
+
})();
|
|
1837
|
+
if (!service)
|
|
1838
|
+
return;
|
|
1839
|
+
let storyId = context.id, componentId = storyId.split("--")[0], cancelled = !1, codePanelSnippetPromise = service.queries.storyDocs.loaded({ id: componentId }).then((payload) => {
|
|
1840
|
+
if (cancelled)
|
|
1841
|
+
return;
|
|
1842
|
+
let snippet = selectSnippetForStory(payload, storyId), source = snippet ?? context.parameters?.docs?.source?.originalSource;
|
|
1843
|
+
if (source === void 0)
|
|
1844
|
+
return;
|
|
1845
|
+
let warning = selectWarningForStory(payload, storyId);
|
|
1846
|
+
return emitTransformCode(
|
|
1847
|
+
source,
|
|
1848
|
+
context,
|
|
1849
|
+
snippet === void 0 && warning ? `${warning} Showing the story source instead.` : warning
|
|
1850
|
+
);
|
|
1851
|
+
}).catch((error) => {
|
|
1852
|
+
logger2.debug(`Story docs snippet for ${storyId} unavailable: ${String(error)}`);
|
|
1853
|
+
});
|
|
1854
|
+
return () => (cancelled = !0, codePanelSnippetPromise);
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
// src/shared/open-service/services/story-docs/preview.ts
|
|
1858
|
+
var preview_default8 = () => "FEATURES" in globalThis && globalThis.FEATURES?.docgenServer ? definePreviewAddon9({
|
|
1859
|
+
beforeAll: () => {
|
|
1860
|
+
registerService(storyDocsServiceDef);
|
|
1861
|
+
},
|
|
1862
|
+
beforeEach: storyDocsSourceBeforeEach
|
|
1863
|
+
}) : definePreviewAddon9({});
|
|
1864
|
+
|
|
1865
|
+
// src/test/preview.ts
|
|
1866
|
+
import { definePreviewAddon as definePreviewAddon10 } from "@aussieljk/forkbook/internal/csf";
|
|
1867
|
+
import { instrument as instrument2 } from "@aussieljk/forkbook/internal/instrumenter";
|
|
1868
|
+
import {
|
|
1869
|
+
clearAllMocks,
|
|
1870
|
+
fn,
|
|
1871
|
+
isMockFunction,
|
|
1872
|
+
resetAllMocks,
|
|
1873
|
+
restoreAllMocks,
|
|
1874
|
+
uninstrumentedUserEvent,
|
|
1875
|
+
within
|
|
1876
|
+
} from "@aussieljk/forkbook/test";
|
|
1877
|
+
var resetAllMocksLoader = ({ parameters: parameters2 }) => {
|
|
1878
|
+
parameters2?.test?.mockReset === !0 ? resetAllMocks() : parameters2?.test?.clearMocks === !0 ? clearAllMocks() : parameters2?.test?.restoreMocks !== !1 && restoreAllMocks();
|
|
1879
|
+
}, traverseArgs = (value, depth = 0, key) => {
|
|
1880
|
+
if (depth > 5 || value == null)
|
|
1881
|
+
return value;
|
|
1882
|
+
if (isMockFunction(value))
|
|
1883
|
+
return key && value.mockName(key), value;
|
|
1884
|
+
if (typeof value == "function" && "isAction" in value && value.isAction && !("implicit" in value && value.implicit)) {
|
|
1885
|
+
let mock = fn(value);
|
|
1886
|
+
return key && mock.mockName(key), mock;
|
|
1887
|
+
}
|
|
1888
|
+
if (Array.isArray(value)) {
|
|
1889
|
+
depth++;
|
|
1890
|
+
for (let i = 0; i < value.length; i++)
|
|
1891
|
+
Object.getOwnPropertyDescriptor(value, i)?.writable && (value[i] = traverseArgs(value[i], depth));
|
|
1892
|
+
return value;
|
|
1893
|
+
}
|
|
1894
|
+
if (typeof value == "object" && value.constructor === Object) {
|
|
1895
|
+
depth++;
|
|
1896
|
+
for (let [k, v2] of Object.entries(value))
|
|
1897
|
+
Object.getOwnPropertyDescriptor(value, k)?.writable && (value[k] = traverseArgs(v2, depth, k));
|
|
1898
|
+
return value;
|
|
1899
|
+
}
|
|
1900
|
+
return value;
|
|
1901
|
+
}, nameSpiesAndWrapActionsInSpies = ({ initialArgs }) => {
|
|
1902
|
+
traverseArgs(initialArgs);
|
|
1903
|
+
}, patchedFocus = !1, enhanceContext = async (context) => {
|
|
1904
|
+
globalThis.HTMLElement && context.canvasElement instanceof globalThis.HTMLElement && (context.canvas = within(context.canvasElement));
|
|
1905
|
+
try {
|
|
1906
|
+
let clipboard = globalThis.window?.navigator?.clipboard;
|
|
1907
|
+
if (clipboard && (context.userEvent = instrument2(
|
|
1908
|
+
{ userEvent: uninstrumentedUserEvent.setup() },
|
|
1909
|
+
{
|
|
1910
|
+
intercept: !0,
|
|
1911
|
+
getKeys: (obj) => Object.keys(obj).filter((key) => key !== "eventWrapper")
|
|
1912
|
+
}
|
|
1913
|
+
).userEvent, Object.defineProperty(globalThis.window.navigator, "clipboard", {
|
|
1914
|
+
get: () => clipboard,
|
|
1915
|
+
configurable: !0
|
|
1916
|
+
}), !patchedFocus)) {
|
|
1917
|
+
let originalFocus = HTMLElement.prototype.focus, currentFocus = HTMLElement.prototype.focus, noopFocus = () => {
|
|
1918
|
+
}, focusingElements = /* @__PURE__ */ new Set();
|
|
1919
|
+
Object.defineProperties(HTMLElement.prototype, {
|
|
1920
|
+
focus: {
|
|
1921
|
+
configurable: !0,
|
|
1922
|
+
set: (newFocus) => {
|
|
1923
|
+
currentFocus = newFocus;
|
|
1924
|
+
},
|
|
1925
|
+
get() {
|
|
1926
|
+
if (this === HTMLElement.prototype)
|
|
1927
|
+
return currentFocus;
|
|
1928
|
+
let browsingContext;
|
|
1929
|
+
try {
|
|
1930
|
+
browsingContext = this.ownerDocument?.defaultView;
|
|
1931
|
+
} catch {
|
|
1932
|
+
return currentFocus;
|
|
1933
|
+
}
|
|
1934
|
+
return browsingContext ? focusingElements.has(this) ? originalFocus : (focusingElements.add(this), setTimeout(() => focusingElements.delete(this), 0), currentFocus) : noopFocus;
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
}), patchedFocus = !0;
|
|
1938
|
+
}
|
|
1939
|
+
} catch {
|
|
1940
|
+
}
|
|
1941
|
+
}, preview_default9 = () => definePreviewAddon10({
|
|
1942
|
+
loaders: [resetAllMocksLoader, nameSpiesAndWrapActionsInSpies, enhanceContext]
|
|
1943
|
+
});
|
|
1944
|
+
|
|
1945
|
+
// src/viewport/preview.ts
|
|
1946
|
+
import { definePreviewAddon as definePreviewAddon11 } from "@aussieljk/forkbook/internal/csf";
|
|
1947
|
+
var initialGlobals4 = {
|
|
1948
|
+
[PARAM_KEY]: { value: void 0, isRotated: !1 }
|
|
1949
|
+
}, preview_default10 = () => definePreviewAddon11({
|
|
1950
|
+
initialGlobals: initialGlobals4
|
|
1951
|
+
});
|
|
1952
|
+
|
|
1953
|
+
// src/csf/core-annotations.ts
|
|
1954
|
+
var CORE_ANNOTATIONS_COMPOSED = /* @__PURE__ */ Symbol.for("storybook.internal.composedWithCoreAnnotations");
|
|
1955
|
+
function markAsComposedWithCoreAnnotations(annotations) {
|
|
1956
|
+
return Object.defineProperty(annotations, CORE_ANNOTATIONS_COMPOSED, {
|
|
1957
|
+
value: !0,
|
|
1958
|
+
enumerable: !1,
|
|
1959
|
+
configurable: !0,
|
|
1960
|
+
writable: !0
|
|
1961
|
+
}), annotations;
|
|
1962
|
+
}
|
|
1963
|
+
function hasCoreAnnotations(annotations) {
|
|
1964
|
+
return annotations != null && typeof annotations == "object" && annotations[CORE_ANNOTATIONS_COMPOSED] === !0;
|
|
1965
|
+
}
|
|
1966
|
+
function getCoreAnnotations() {
|
|
1967
|
+
return [
|
|
1968
|
+
// @ts-expect-error CJS fallback
|
|
1969
|
+
(preview_default5.default ?? preview_default5)(),
|
|
1970
|
+
// @ts-expect-error CJS fallback
|
|
1971
|
+
(preview_default2.default ?? preview_default2)(),
|
|
1972
|
+
// @ts-expect-error CJS fallback
|
|
1973
|
+
(preview_default4.default ?? preview_default4)(),
|
|
1974
|
+
// @ts-expect-error CJS fallback
|
|
1975
|
+
(preview_default6.default ?? preview_default6)(),
|
|
1976
|
+
// @ts-expect-error CJS fallback
|
|
1977
|
+
(preview_default10.default ?? preview_default10)(),
|
|
1978
|
+
// @ts-expect-error CJS fallback
|
|
1979
|
+
(preview_default.default ?? preview_default)(),
|
|
1980
|
+
// @ts-expect-error CJS fallback
|
|
1981
|
+
(preview_default3.default ?? preview_default3)(),
|
|
1982
|
+
// @ts-expect-error CJS fallback
|
|
1983
|
+
(preview_default9.default ?? preview_default9)(),
|
|
1984
|
+
// @ts-expect-error CJS fallback
|
|
1985
|
+
(test_annotations_default.default ?? test_annotations_default)(),
|
|
1986
|
+
// @ts-expect-error CJS fallback
|
|
1987
|
+
(preview_default7.default ?? preview_default7)(),
|
|
1988
|
+
// @ts-expect-error CJS fallback
|
|
1989
|
+
(preview_default8.default ?? preview_default8)()
|
|
1990
|
+
];
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
// src/csf/csf-factories.ts
|
|
1994
|
+
function definePreview(input) {
|
|
1995
|
+
let composed, preview = {
|
|
1996
|
+
_tag: "Preview",
|
|
1997
|
+
input,
|
|
1998
|
+
get composed() {
|
|
1999
|
+
if (composed)
|
|
2000
|
+
return composed;
|
|
2001
|
+
let { addons: addons2, ...rest } = input;
|
|
2002
|
+
return composed = markAsComposedWithCoreAnnotations(
|
|
2003
|
+
normalizeProjectAnnotations(
|
|
2004
|
+
composeConfigs([...getCoreAnnotations(), ...addons2 ?? [], rest])
|
|
2005
|
+
)
|
|
2006
|
+
), composed;
|
|
2007
|
+
},
|
|
2008
|
+
type() {
|
|
2009
|
+
return this;
|
|
2010
|
+
},
|
|
2011
|
+
meta(meta) {
|
|
2012
|
+
return defineMeta(
|
|
2013
|
+
meta,
|
|
2014
|
+
this
|
|
2015
|
+
);
|
|
2016
|
+
}
|
|
2017
|
+
};
|
|
2018
|
+
return globalThis.globalProjectAnnotations = preview.composed, preview;
|
|
2019
|
+
}
|
|
2020
|
+
function definePreviewAddon12(preview) {
|
|
2021
|
+
return preview;
|
|
2022
|
+
}
|
|
2023
|
+
function isPreview(input) {
|
|
2024
|
+
return input != null && typeof input == "object" && "_tag" in input && input?._tag === "Preview";
|
|
2025
|
+
}
|
|
2026
|
+
function isMeta(input) {
|
|
2027
|
+
return input != null && typeof input == "object" && "_tag" in input && input?._tag === "Meta";
|
|
2028
|
+
}
|
|
2029
|
+
function defineMeta(input, preview) {
|
|
2030
|
+
return {
|
|
2031
|
+
_tag: "Meta",
|
|
2032
|
+
input: {
|
|
2033
|
+
...input,
|
|
2034
|
+
parameters: { ...input.parameters, csfFactory: !0 }
|
|
2035
|
+
},
|
|
2036
|
+
preview,
|
|
2037
|
+
type() {
|
|
2038
|
+
return this;
|
|
2039
|
+
},
|
|
2040
|
+
story(story = {}) {
|
|
2041
|
+
return defineStory(typeof story == "function" ? { render: story } : story, this);
|
|
2042
|
+
}
|
|
2043
|
+
};
|
|
2044
|
+
}
|
|
2045
|
+
function isStory(input) {
|
|
2046
|
+
return input != null && typeof input == "object" && "_tag" in input && input?._tag === "Story";
|
|
2047
|
+
}
|
|
2048
|
+
function defineStory(input, meta) {
|
|
2049
|
+
let composed, compose = () => (composed || (composed = composeStory(
|
|
2050
|
+
input,
|
|
2051
|
+
meta.input,
|
|
2052
|
+
void 0,
|
|
2053
|
+
meta.preview.composed
|
|
2054
|
+
)), composed), __children = [];
|
|
2055
|
+
return {
|
|
2056
|
+
_tag: "Story",
|
|
2057
|
+
input,
|
|
2058
|
+
meta,
|
|
2059
|
+
__compose: compose,
|
|
2060
|
+
__children,
|
|
2061
|
+
get composed() {
|
|
2062
|
+
let composed2 = compose(), { args, argTypes, parameters: parameters2, id, tags, globals, storyName: name } = composed2;
|
|
2063
|
+
return { args, argTypes, parameters: parameters2, id, tags, name, globals };
|
|
2064
|
+
},
|
|
2065
|
+
get play() {
|
|
2066
|
+
return input.play ?? meta.input?.play ?? (async () => {
|
|
2067
|
+
});
|
|
2068
|
+
},
|
|
2069
|
+
async run(context) {
|
|
2070
|
+
await compose().run(context);
|
|
2071
|
+
},
|
|
2072
|
+
test(name, overridesOrTestFn, testFn) {
|
|
2073
|
+
let annotations = typeof overridesOrTestFn != "function" ? overridesOrTestFn : {}, testFunction = typeof overridesOrTestFn != "function" ? testFn : overridesOrTestFn, play = mountDestructured(this.play) || mountDestructured(testFunction) ? (
|
|
2074
|
+
// mount needs to be explicitly destructured
|
|
2075
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2076
|
+
async ({ mount, context }) => {
|
|
2077
|
+
await this.play?.(context), await testFunction(context);
|
|
2078
|
+
}
|
|
2079
|
+
) : async (context) => {
|
|
2080
|
+
await this.play?.(context), await testFunction(context);
|
|
2081
|
+
}, test = this.extend({
|
|
2082
|
+
...annotations,
|
|
2083
|
+
name,
|
|
2084
|
+
tags: [Tag.TEST_FN, `!${Tag.AUTODOCS}`, ...annotations.tags ?? []],
|
|
2085
|
+
play
|
|
2086
|
+
});
|
|
2087
|
+
return __children.push(test), test;
|
|
2088
|
+
},
|
|
2089
|
+
extend(input2) {
|
|
2090
|
+
return defineStory(
|
|
2091
|
+
{
|
|
2092
|
+
...this.input,
|
|
2093
|
+
...input2,
|
|
2094
|
+
args: { ...this.input.args || {}, ...input2.args },
|
|
2095
|
+
argTypes: combineParameters(this.input.argTypes, input2.argTypes),
|
|
2096
|
+
afterEach: [
|
|
2097
|
+
...normalizeArrays(this.input?.afterEach ?? []),
|
|
2098
|
+
...normalizeArrays(input2.afterEach ?? [])
|
|
2099
|
+
],
|
|
2100
|
+
beforeEach: [
|
|
2101
|
+
...normalizeArrays(this.input?.beforeEach ?? []),
|
|
2102
|
+
...normalizeArrays(input2.beforeEach ?? [])
|
|
2103
|
+
],
|
|
2104
|
+
decorators: [
|
|
2105
|
+
...normalizeArrays(this.input?.decorators ?? []),
|
|
2106
|
+
...normalizeArrays(input2.decorators ?? [])
|
|
2107
|
+
],
|
|
2108
|
+
globals: { ...this.input.globals, ...input2.globals },
|
|
2109
|
+
loaders: [
|
|
2110
|
+
...normalizeArrays(this.input?.loaders ?? []),
|
|
2111
|
+
...normalizeArrays(input2.loaders ?? [])
|
|
2112
|
+
],
|
|
2113
|
+
parameters: combineParameters(this.input.parameters, input2.parameters),
|
|
2114
|
+
tags: combineTags2(...this.input.tags ?? [], ...input2.tags ?? [])
|
|
2115
|
+
},
|
|
2116
|
+
this.meta
|
|
2117
|
+
);
|
|
2118
|
+
}
|
|
2119
|
+
};
|
|
2120
|
+
}
|
|
2121
|
+
function getStoryChildren(story) {
|
|
2122
|
+
return "__children" in story ? story.__children : [];
|
|
2123
|
+
}
|
|
2124
|
+
export {
|
|
2125
|
+
combineTags,
|
|
2126
|
+
definePreview,
|
|
2127
|
+
definePreviewAddon12 as definePreviewAddon,
|
|
2128
|
+
getCoreAnnotations,
|
|
2129
|
+
getStoryChildren,
|
|
2130
|
+
hasCoreAnnotations,
|
|
2131
|
+
includeConditionalArg,
|
|
2132
|
+
isExportStory,
|
|
2133
|
+
isMeta,
|
|
2134
|
+
isPreview,
|
|
2135
|
+
isStory,
|
|
2136
|
+
markAsComposedWithCoreAnnotations,
|
|
2137
|
+
parseKind,
|
|
2138
|
+
sanitize,
|
|
2139
|
+
storyNameFromExport,
|
|
2140
|
+
toId,
|
|
2141
|
+
toTestId
|
|
2142
|
+
};
|