123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- import { useMemo, useEffect } from '@storybook/preview-api';
- import { global } from '@storybook/global';
- import { dedent } from 'ts-dedent';
- var clearStyles=selector=>{(Array.isArray(selector)?selector:[selector]).forEach(clearStyle);},clearStyle=input=>{let selector=typeof input=="string"?input:input.join(""),element=global.document.getElementById(selector);element&&element.parentElement&&element.parentElement.removeChild(element);},addOutlineStyles=(selector,css)=>{let existingStyle=global.document.getElementById(selector);if(existingStyle)existingStyle.innerHTML!==css&&(existingStyle.innerHTML=css);else {let style=global.document.createElement("style");style.setAttribute("id",selector),style.innerHTML=css,global.document.head.appendChild(style);}};var PARAM_KEY="outline";function outlineCSS(selector){return dedent`
- ${selector} body {
- outline: 1px solid #2980b9 !important;
- }
- ${selector} article {
- outline: 1px solid #3498db !important;
- }
- ${selector} nav {
- outline: 1px solid #0088c3 !important;
- }
- ${selector} aside {
- outline: 1px solid #33a0ce !important;
- }
- ${selector} section {
- outline: 1px solid #66b8da !important;
- }
- ${selector} header {
- outline: 1px solid #99cfe7 !important;
- }
- ${selector} footer {
- outline: 1px solid #cce7f3 !important;
- }
- ${selector} h1 {
- outline: 1px solid #162544 !important;
- }
- ${selector} h2 {
- outline: 1px solid #314e6e !important;
- }
- ${selector} h3 {
- outline: 1px solid #3e5e85 !important;
- }
- ${selector} h4 {
- outline: 1px solid #449baf !important;
- }
- ${selector} h5 {
- outline: 1px solid #c7d1cb !important;
- }
- ${selector} h6 {
- outline: 1px solid #4371d0 !important;
- }
- ${selector} main {
- outline: 1px solid #2f4f90 !important;
- }
- ${selector} address {
- outline: 1px solid #1a2c51 !important;
- }
- ${selector} div {
- outline: 1px solid #036cdb !important;
- }
- ${selector} p {
- outline: 1px solid #ac050b !important;
- }
- ${selector} hr {
- outline: 1px solid #ff063f !important;
- }
- ${selector} pre {
- outline: 1px solid #850440 !important;
- }
- ${selector} blockquote {
- outline: 1px solid #f1b8e7 !important;
- }
- ${selector} ol {
- outline: 1px solid #ff050c !important;
- }
- ${selector} ul {
- outline: 1px solid #d90416 !important;
- }
- ${selector} li {
- outline: 1px solid #d90416 !important;
- }
- ${selector} dl {
- outline: 1px solid #fd3427 !important;
- }
- ${selector} dt {
- outline: 1px solid #ff0043 !important;
- }
- ${selector} dd {
- outline: 1px solid #e80174 !important;
- }
- ${selector} figure {
- outline: 1px solid #ff00bb !important;
- }
- ${selector} figcaption {
- outline: 1px solid #bf0032 !important;
- }
- ${selector} table {
- outline: 1px solid #00cc99 !important;
- }
- ${selector} caption {
- outline: 1px solid #37ffc4 !important;
- }
- ${selector} thead {
- outline: 1px solid #98daca !important;
- }
- ${selector} tbody {
- outline: 1px solid #64a7a0 !important;
- }
- ${selector} tfoot {
- outline: 1px solid #22746b !important;
- }
- ${selector} tr {
- outline: 1px solid #86c0b2 !important;
- }
- ${selector} th {
- outline: 1px solid #a1e7d6 !important;
- }
- ${selector} td {
- outline: 1px solid #3f5a54 !important;
- }
- ${selector} col {
- outline: 1px solid #6c9a8f !important;
- }
- ${selector} colgroup {
- outline: 1px solid #6c9a9d !important;
- }
- ${selector} button {
- outline: 1px solid #da8301 !important;
- }
- ${selector} datalist {
- outline: 1px solid #c06000 !important;
- }
- ${selector} fieldset {
- outline: 1px solid #d95100 !important;
- }
- ${selector} form {
- outline: 1px solid #d23600 !important;
- }
- ${selector} input {
- outline: 1px solid #fca600 !important;
- }
- ${selector} keygen {
- outline: 1px solid #b31e00 !important;
- }
- ${selector} label {
- outline: 1px solid #ee8900 !important;
- }
- ${selector} legend {
- outline: 1px solid #de6d00 !important;
- }
- ${selector} meter {
- outline: 1px solid #e8630c !important;
- }
- ${selector} optgroup {
- outline: 1px solid #b33600 !important;
- }
- ${selector} option {
- outline: 1px solid #ff8a00 !important;
- }
- ${selector} output {
- outline: 1px solid #ff9619 !important;
- }
- ${selector} progress {
- outline: 1px solid #e57c00 !important;
- }
- ${selector} select {
- outline: 1px solid #e26e0f !important;
- }
- ${selector} textarea {
- outline: 1px solid #cc5400 !important;
- }
- ${selector} details {
- outline: 1px solid #33848f !important;
- }
- ${selector} summary {
- outline: 1px solid #60a1a6 !important;
- }
- ${selector} command {
- outline: 1px solid #438da1 !important;
- }
- ${selector} menu {
- outline: 1px solid #449da6 !important;
- }
- ${selector} del {
- outline: 1px solid #bf0000 !important;
- }
- ${selector} ins {
- outline: 1px solid #400000 !important;
- }
- ${selector} img {
- outline: 1px solid #22746b !important;
- }
- ${selector} iframe {
- outline: 1px solid #64a7a0 !important;
- }
- ${selector} embed {
- outline: 1px solid #98daca !important;
- }
- ${selector} object {
- outline: 1px solid #00cc99 !important;
- }
- ${selector} param {
- outline: 1px solid #37ffc4 !important;
- }
- ${selector} video {
- outline: 1px solid #6ee866 !important;
- }
- ${selector} audio {
- outline: 1px solid #027353 !important;
- }
- ${selector} source {
- outline: 1px solid #012426 !important;
- }
- ${selector} canvas {
- outline: 1px solid #a2f570 !important;
- }
- ${selector} track {
- outline: 1px solid #59a600 !important;
- }
- ${selector} map {
- outline: 1px solid #7be500 !important;
- }
- ${selector} area {
- outline: 1px solid #305900 !important;
- }
- ${selector} a {
- outline: 1px solid #ff62ab !important;
- }
- ${selector} em {
- outline: 1px solid #800b41 !important;
- }
- ${selector} strong {
- outline: 1px solid #ff1583 !important;
- }
- ${selector} i {
- outline: 1px solid #803156 !important;
- }
- ${selector} b {
- outline: 1px solid #cc1169 !important;
- }
- ${selector} u {
- outline: 1px solid #ff0430 !important;
- }
- ${selector} s {
- outline: 1px solid #f805e3 !important;
- }
- ${selector} small {
- outline: 1px solid #d107b2 !important;
- }
- ${selector} abbr {
- outline: 1px solid #4a0263 !important;
- }
- ${selector} q {
- outline: 1px solid #240018 !important;
- }
- ${selector} cite {
- outline: 1px solid #64003c !important;
- }
- ${selector} dfn {
- outline: 1px solid #b4005a !important;
- }
- ${selector} sub {
- outline: 1px solid #dba0c8 !important;
- }
- ${selector} sup {
- outline: 1px solid #cc0256 !important;
- }
- ${selector} time {
- outline: 1px solid #d6606d !important;
- }
- ${selector} code {
- outline: 1px solid #e04251 !important;
- }
- ${selector} kbd {
- outline: 1px solid #5e001f !important;
- }
- ${selector} samp {
- outline: 1px solid #9c0033 !important;
- }
- ${selector} var {
- outline: 1px solid #d90047 !important;
- }
- ${selector} mark {
- outline: 1px solid #ff0053 !important;
- }
- ${selector} bdi {
- outline: 1px solid #bf3668 !important;
- }
- ${selector} bdo {
- outline: 1px solid #6f1400 !important;
- }
- ${selector} ruby {
- outline: 1px solid #ff7b93 !important;
- }
- ${selector} rt {
- outline: 1px solid #ff2f54 !important;
- }
- ${selector} rp {
- outline: 1px solid #803e49 !important;
- }
- ${selector} span {
- outline: 1px solid #cc2643 !important;
- }
- ${selector} br {
- outline: 1px solid #db687d !important;
- }
- ${selector} wbr {
- outline: 1px solid #db175b !important;
- }`}var withOutline=(StoryFn,context)=>{let{globals:globals2}=context,isActive=[!0,"true"].includes(globals2[PARAM_KEY]),isInDocs=context.viewMode==="docs",outlineStyles=useMemo(()=>outlineCSS(isInDocs?'[data-story-block="true"]':".sb-show-main"),[context]);return useEffect(()=>{let selectorId=isInDocs?`addon-outline-docs-${context.id}`:"addon-outline";return isActive?addOutlineStyles(selectorId,outlineStyles):clearStyles(selectorId),()=>{clearStyles(selectorId);}},[isActive,outlineStyles,context]),StoryFn()};var decorators=[withOutline],globals={[PARAM_KEY]:!1};
- export { decorators, globals };
|