@diplodoc/tabs-extension 3.7.5 → 3.8.0

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.
@@ -6,6 +6,7 @@ type Result = {
6
6
  } | {
7
7
  content: string;
8
8
  closeTokenIndex: number;
9
+ extraTokensAfterClose: number;
9
10
  };
10
11
  export declare function tryToFindTabs(tokens: Token[], index: number): Result;
11
12
  export declare function findTabs(tokens: Token[], idx: number, closeTokenIdx: number): RuntimeTab[];
@@ -658,6 +658,7 @@ function props(content) {
658
658
  return result;
659
659
  }
660
660
  function tryToFindTabs(tokens, index) {
661
+ var _a;
661
662
  const match = matchOpenToken(tokens, index);
662
663
  const openTag = match && match[0];
663
664
  const isNotEscaped = openTag && !(openTag.startsWith("`") && openTag.endsWith("`"));
@@ -673,9 +674,32 @@ function tryToFindTabs(tokens, index) {
673
674
  step: 3
674
675
  };
675
676
  }
677
+ let extraTokensAfterClose = 0;
678
+ const afterEndlistIdx = closeTokenIndex + 3;
679
+ const openTokenLevel = tokens[index].level;
680
+ const closeTokenLevel = tokens[closeTokenIndex].level;
681
+ if (closeTokenLevel < openTokenLevel) {
682
+ tokens[index].attrSet("YFM005", "true");
683
+ return {
684
+ step: 3
685
+ };
686
+ }
687
+ if (closeTokenLevel > openTokenLevel) {
688
+ const tokenAfter = tokens[afterEndlistIdx];
689
+ if (tokenAfter && tokenAfter.nesting >= 0) {
690
+ tokens[index].attrSet("YFM005", "true");
691
+ return {
692
+ step: 3
693
+ };
694
+ }
695
+ if ((tokenAfter == null ? void 0 : tokenAfter.type) === "list_item_close" && ((_a = tokens[afterEndlistIdx + 1]) == null ? void 0 : _a.type) === "bullet_list_close") {
696
+ extraTokensAfterClose = 2;
697
+ }
698
+ }
676
699
  return {
677
700
  content: openTag,
678
- closeTokenIndex
701
+ closeTokenIndex,
702
+ extraTokensAfterClose
679
703
  };
680
704
  }
681
705
  function findTabs(tokens, idx, closeTokenIdx) {
@@ -770,7 +794,7 @@ function transform({
770
794
  i += result.step;
771
795
  continue;
772
796
  }
773
- const { content, closeTokenIndex } = result;
797
+ const { content, closeTokenIndex, extraTokensAfterClose } = result;
774
798
  const parsedProps = props(content);
775
799
  if (!features.enabledVariants[parsedProps.variant]) {
776
800
  parsedProps.variant = "regular" /* Regular */;
@@ -783,11 +807,15 @@ function transform({
783
807
  variant: parsedProps.variant,
784
808
  runId
785
809
  });
786
- state.tokens.splice(i, closeTokenIndex - i + 3, ...tabsTokens);
810
+ state.tokens.splice(
811
+ i,
812
+ closeTokenIndex - i + 3 + extraTokensAfterClose,
813
+ ...tabsTokens
814
+ );
787
815
  i++;
788
816
  tabsAreInserted = true;
789
817
  } else {
790
- state.tokens.splice(i, closeTokenIndex - i + 3);
818
+ state.tokens.splice(i, closeTokenIndex - i + 3 + extraTokensAfterClose);
791
819
  }
792
820
  }
793
821
  if (tabsAreInserted) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../node_modules/github-slugger/regex.js", "../../node_modules/github-slugger/index.js", "../../src/plugin/index.ts", "../../src/common.ts", "../../src/plugin/utils/strings.ts", "../../src/plugin/utils/tabs.ts", "../../src/plugin/utils/files.ts", "../../src/plugin/utils/index.ts", "../../src/plugin/variants/regular.ts", "../../src/plugin/variants/radio.ts", "../../src/plugin/variants/dropdown.ts", "../../src/plugin/variants/accordion.ts", "../../src/plugin/variants/index.ts", "../../src/plugin/generate.ts", "../../src/plugin/find.ts", "../../src/plugin/transform.ts"],
4
- "sourcesContent": ["// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nmodule.exports = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n", "const regex = require('./regex.js')\n\nmodule.exports = BananaSlug\n\nconst own = Object.hasOwnProperty\n\nfunction BananaSlug () {\n const self = this\n\n if (!(self instanceof BananaSlug)) return new BananaSlug()\n\n self.reset()\n}\n\n/**\n * Generate a unique slug.\n * @param {string} value String of text to slugify\n * @param {boolean} [false] Keep the current case, otherwise make all lowercase\n * @return {string} A unique slug string\n */\nBananaSlug.prototype.slug = function (value, maintainCase) {\n const self = this\n let slug = slugger(value, maintainCase === true)\n const originalSlug = slug\n\n while (own.call(self.occurrences, slug)) {\n self.occurrences[originalSlug]++\n slug = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[slug] = 0\n\n return slug\n}\n\n/**\n * Reset - Forget all previous slugs\n * @return void\n */\nBananaSlug.prototype.reset = function () {\n this.occurrences = Object.create(null)\n}\n\nfunction slugger (string, maintainCase) {\n if (typeof string !== 'string') return ''\n if (!maintainCase) string = string.toLowerCase()\n return string.replace(regex, '').replace(/ /g, '-')\n}\n\nBananaSlug.slug = slugger\n", "export {transform} from './transform';\n", "import {type TabsController} from './runtime/TabsController';\n\nexport const TAB_RE = /`?{% list tabs .*?%}`?/;\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const TAB_GROUP_CLASSNAME = 'yfm-tab-group';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_VARIANT = 'data-diplodoc-variant';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\nexport const TAB_FORCED_OPEN = 'data-diplodoc-forced';\n\nexport const TABS_DROPDOWN_CLASSNAME = 'yfm-tabs-dropdown';\nexport const TABS_DROPDOWN_MENU_CLASSNAME = 'yfm-tabs-dropdown-menu';\nexport const TABS_DROPDOWN_SELECT = 'yfm-tabs-dropdown-select';\n\nexport const TABS_ACCORDION_CLASSNAME = 'yfm-tabs-accordion';\nexport const TABS_ACCORDION_CLIENT_HEIGHT = 'data-yfm-tabs-accordion-client-heights';\n\nexport const TABS_RADIO_CLASSNAME = 'yfm-tabs-vertical';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport enum TabsVariants {\n Regular = 'regular',\n Radio = 'radio',\n Dropdown = 'dropdown',\n Accordion = 'accordion',\n}\n\nexport type EnabledVariants = Partial<Record<TabsVariants, boolean>>;\n\nexport interface Tab {\n group?: string;\n key: string;\n variant: TabsVariants;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n", "export function generateID() {\n const id = Math.random().toString(36).substr(2, 8);\n return id.substring(id.length - 8);\n}\n\nexport function trim(target: string) {\n return target.trim();\n}\n\nexport function unquote(target: string) {\n return target.match(/^([\"']).*\\1$/) ? target.slice(1, -1) : target;\n}\n", "import GithubSlugger from 'github-slugger';\n\nimport {ACTIVE_TAB_TEXT} from '../../common';\nimport {RuntimeTab} from '../types';\n\nconst CUSTOM_ID_REGEXP = /\\[?{ ?#(\\S+) ?}]?/;\n\nconst sluggersStorage = new Map<string, GithubSlugger>();\n\nfunction parseName(name: string) {\n const parts = name.match(CUSTOM_ID_REGEXP);\n let customAnchor: string | null = null;\n let pure = name;\n\n if (parts) {\n pure = name.replace(parts[0], '');\n customAnchor = parts[1];\n } else {\n pure = name;\n customAnchor = null;\n }\n\n if (pure.includes(ACTIVE_TAB_TEXT)) {\n pure = pure.replace(ACTIVE_TAB_TEXT, '');\n }\n\n return {\n name: pure.trim(),\n customAnchor,\n };\n}\n\nexport function getTabId(tab: RuntimeTab, {runId}: {runId: string}) {\n let slugger = sluggersStorage.get(runId);\n if (!slugger) {\n slugger = new GithubSlugger();\n sluggersStorage.set(runId, slugger);\n }\n\n return slugger.slug(getRawId(tab));\n}\n\nexport function isTabSelected(tab: RuntimeTab) {\n const {name} = tab;\n\n return name.includes(ACTIVE_TAB_TEXT);\n}\n\nexport function getTabKey(tab: RuntimeTab) {\n return encodeURIComponent(getRawId(tab)).toLocaleLowerCase();\n}\n\nexport function getName(tab: RuntimeTab) {\n return parseName(tab.name).name;\n}\n\nfunction getRawId(tab: RuntimeTab): string {\n const {customAnchor, name} = parseName(tab.name);\n\n return customAnchor || name;\n}\n", "const PATH_TO_RUNTIME = '../runtime';\n\nexport function copyRuntimeFiles(\n {\n runtimeJsPath,\n runtimeCssPath,\n output,\n }: {runtimeJsPath: string; runtimeCssPath: string; output: string},\n cache: Set<string>,\n) {\n const {join, resolve} = dynrequire('node:path');\n const runtimeFiles = {\n 'index.js': runtimeJsPath,\n 'index.css': runtimeCssPath,\n };\n for (const [originFile, outputFile] of Object.entries(runtimeFiles)) {\n const file = join(PATH_TO_RUNTIME, originFile);\n if (!cache.has(file)) {\n cache.add(file);\n copyFile(resolve(__dirname, file), join(output, outputFile));\n }\n }\n}\n\nfunction copyFile(from: string, to: string) {\n const {mkdirSync, copyFileSync} = dynrequire('node:fs');\n const {dirname} = dynrequire('node:path');\n mkdirSync(dirname(to), {recursive: true});\n copyFileSync(from, to);\n}\n\n/*\n * Runtime require hidden for builders.\n * Used for nodejs api\n */\nfunction dynrequire(module: string) {\n // eslint-disable-next-line no-eval\n return eval(`require('${module}')`);\n}\n", "export function addHiddenProperty<\n B extends Record<string | symbol, unknown>,\n F extends string | symbol,\n V,\n>(box: B, field: F, value: V) {\n if (!(field in box)) {\n Object.defineProperty(box, field, {\n enumerable: false,\n value: value,\n });\n }\n\n return box as B & {[P in F]: V};\n}\n\nexport * from './strings';\nexport * from './tabs';\nexport * from './files';\n", "import {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_DATA_VERTICAL_TAB,\n TAB_FORCED_OPEN,\n TAB_PANEL_CLASSNAME,\n VERTICAL_TAB_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\n\nimport {TabsTokensGenerator} from './types';\n\nexport const regular: TabsTokensGenerator = (\n tabs,\n state,\n {containerClasses, tabsGroup, runId, variant: orientation},\n) => {\n const tabsTokens = [];\n const tabListTokens = [];\n const tabPanelsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n const tabListOpen = new state.Token('tab-list_open', 'div', 1);\n const tabListClose = new state.Token('tab-list_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n\n tabListOpen.map = [start, end];\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n tabListOpen.block = true;\n tabListClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n const hasDefaultOpenTab = activeTabsCount !== 0;\n\n tabsOpen.attrSet('class', [TABS_CLASSNAME, containerClasses].filter(Boolean).join(' '));\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, 'regular');\n\n tabListOpen.attrSet('class', TABS_LIST_CLASSNAME);\n tabListOpen.attrSet('role', 'tablist');\n\n if (orientation === 'radio') {\n tabsTokens.push(tabsOpen);\n }\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const verticalTabInput = new state.Token('tab-input', 'input', 0);\n const verticalTabLabelOpen = new state.Token('tab-label_open', 'label', 1);\n const verticalTabLabelClose = new state.Token('tab-label_close', 'label', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n /* if user did not provide default open tab we fallback to first tab (in default tabs only) */\n const isTabActive = hasDefaultOpenTab ? didTabHasActiveAttr : i === 0;\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n verticalTabInput.block = true;\n\n verticalTabInput.attrJoin('class', 'radio');\n verticalTabInput.attrSet('type', 'radio');\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet('class', TAB_CLASSNAME);\n tabOpen.attrJoin('class', 'yfm-tab-group');\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (orientation === 'radio') {\n tabOpen.attrSet(TAB_DATA_VERTICAL_TAB, 'true');\n tabOpen.attrJoin('class', VERTICAL_TAB_CLASSNAME);\n }\n\n if (isTabActive) {\n if (orientation === 'radio') {\n tabOpen.attrSet(TAB_FORCED_OPEN, 'true');\n verticalTabInput.attrSet('checked', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n } else {\n tabOpen.attrSet(TAB_ACTIVE_KEY, i === 0 ? 'true' : 'false');\n tabOpen.attrJoin('class', ACTIVE_CLASSNAME);\n tabOpen.attrSet('aria-selected', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n }\n\n if (orientation === 'radio') {\n tabsTokens.push(\n tabOpen,\n verticalTabInput,\n verticalTabLabelOpen,\n tabInline,\n verticalTabLabelClose,\n tabClose,\n );\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n } else {\n tabListTokens.push(tabOpen, tabInline, tabClose);\n tabPanelsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n }\n\n tabsTokens.push(tabsOpen);\n tabsTokens.push(tabListOpen);\n tabsTokens.push(...tabListTokens);\n tabsTokens.push(tabListClose);\n tabsTokens.push(...tabPanelsTokens);\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_RADIO_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_DATA_VERTICAL_TAB,\n TAB_FORCED_OPEN,\n TAB_GROUP_CLASSNAME,\n TAB_PANEL_CLASSNAME,\n VERTICAL_TAB_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const radio: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const tabsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n tabsOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_RADIO_CLASSNAME].filter(Boolean).join(' '),\n );\n\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, 'radio');\n tabsTokens.push(tabsOpen);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const verticalTabInput = new state.Token('tab-input', 'input', 0);\n const verticalTabLabelOpen = new state.Token('tab-label_open', 'label', 1);\n const verticalTabLabelClose = new state.Token('tab-label_close', 'label', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n verticalTabInput.block = true;\n\n verticalTabInput.attrJoin('class', 'radio');\n verticalTabInput.attrSet('type', 'radio');\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet(\n 'class',\n [TAB_CLASSNAME, TAB_GROUP_CLASSNAME, VERTICAL_TAB_CLASSNAME].join(' '),\n );\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n tabOpen.attrSet(TAB_DATA_VERTICAL_TAB, 'true');\n\n if (didTabHasActiveAttr) {\n tabOpen.attrSet(TAB_FORCED_OPEN, 'true');\n verticalTabInput.attrSet('checked', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n tabsTokens.push(\n tabOpen,\n verticalTabInput,\n verticalTabLabelOpen,\n tabInline,\n verticalTabLabelClose,\n tabClose,\n );\n\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_DROPDOWN_CLASSNAME,\n TABS_DROPDOWN_MENU_CLASSNAME,\n TABS_DROPDOWN_SELECT,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_PANEL_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const dropdown: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const dropdownTokens = [];\n const dropdownOpen = new state.Token('dropdown_open', 'div', 1);\n const dropdownClose = new state.Token('dropdown_close', 'div', -1);\n const dropdownSelectOpen = new state.Token('dropdown-select_open', 'div', 1);\n const dropdownSelectInline = new state.Token('inline', '', 0);\n const dropdownSelectText = new state.Token('text', '', 0);\n const dropdownSelectClose = new state.Token('dropdown-select_open', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n dropdownOpen.block = true;\n dropdownClose.block = true;\n dropdownSelectOpen.block = true;\n dropdownSelectClose.block = true;\n\n const [activeTab, ...restActiveTabs] = tabs.filter(isTabSelected);\n\n if (restActiveTabs.length) {\n throw new Error('Unable to dropdown tabs with more than 1 active element');\n }\n\n dropdownOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_DROPDOWN_CLASSNAME].filter(Boolean).join(' '),\n );\n\n dropdownOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n dropdownOpen.attrSet(TAB_DATA_VARIANT, 'dropdown');\n\n dropdownSelectOpen.attrSet('role', 'tablist');\n dropdownSelectOpen.attrSet('class', TABS_DROPDOWN_SELECT);\n\n if (activeTab) {\n dropdownSelectOpen.attrJoin('class', 'filled');\n }\n\n dropdownSelectText.content = activeTab ? activeTab.name : '-';\n dropdownSelectInline.children = [dropdownSelectText];\n\n dropdownTokens.push(\n dropdownOpen,\n dropdownSelectOpen,\n dropdownSelectInline,\n dropdownSelectClose,\n );\n\n const dropdownMenuOpen = new state.Token('dropdown-menu_open', 'ul', 1);\n const dropdownMenuClose = new state.Token('dropdown-menu_close', 'ul', -1);\n\n dropdownMenuOpen.attrSet('class', TABS_DROPDOWN_MENU_CLASSNAME);\n\n const menuTokens = tabs.flatMap((tab) => {\n const menuListItemOpen = new state.Token('dropdown-menu-item_open', 'li', 1);\n const menuListItemClose = new state.Token('dropdown-menu-item_close', 'li', -1);\n const menuListItemText = new state.Token('text', '', 0);\n const menuListItemInline = new state.Token('inline', '', 0);\n\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const isActive = tab === activeTab;\n\n menuListItemOpen.attrSet(\n 'class',\n [TAB_CLASSNAME, isActive && ACTIVE_CLASSNAME].filter(Boolean).join(' '),\n );\n menuListItemOpen.attrSet(TAB_DATA_ID, tabId);\n menuListItemOpen.attrSet(TAB_DATA_KEY, tabKey);\n menuListItemOpen.attrSet('aria-selected', String(isActive));\n\n menuListItemText.content = tab.name;\n menuListItemInline.children = [menuListItemText];\n\n return [menuListItemOpen, menuListItemInline, menuListItemClose];\n });\n\n dropdownTokens.push(dropdownMenuOpen, ...menuTokens, dropdownMenuClose);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (didTabHasActiveAttr) {\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n dropdownTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n dropdownTokens.push(dropdownClose);\n\n return dropdownTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_ACCORDION_CLASSNAME,\n TABS_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_FORCED_OPEN,\n TAB_GROUP_CLASSNAME,\n TAB_PANEL_CLASSNAME,\n TabsVariants,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const accordion: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const tabsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n tabsOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_ACCORDION_CLASSNAME].filter(Boolean).join(' '),\n );\n\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, TabsVariants.Accordion);\n tabsTokens.push(tabsOpen);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet('class', [TAB_CLASSNAME, TAB_GROUP_CLASSNAME].join(' '));\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (didTabHasActiveAttr) {\n tabPanelOpen.attrSet(TAB_FORCED_OPEN, 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n\n tabOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n tabsTokens.push(tabOpen, tabInline, tabClose);\n\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import {TabsVariants} from '../../common';\n\nimport {regular} from './regular';\nimport {radio} from './radio';\nimport {TabsTokensGenerator} from './types';\nimport {dropdown} from './dropdown';\nimport {accordion} from './accordion';\n\nconst generateByType: Record<TabsVariants, TabsTokensGenerator> = {\n regular,\n radio,\n dropdown,\n accordion,\n};\n\nexport const generateTokensByType = (type: TabsVariants) => {\n return generateByType[type];\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {RuntimeTab} from './types';\nimport {generateTokensByType} from './variants';\nimport {TabsGenerationProps} from './variants/types';\n\nexport function generateTabsTokens(\n tabs: RuntimeTab[],\n state: StateCore,\n props: TabsGenerationProps,\n) {\n const tokens = generateTokensByType(props.variant)(tabs, state, props);\n\n return tokens;\n}\n", "import Token from 'markdown-it/lib/token';\n\nimport {DEFAULT_TABS_GROUP_PREFIX, TAB_RE, TabsVariants} from '../common';\n\nimport {RuntimeTab, TabsProps} from './types';\nimport {generateID, trim, unquote} from './utils';\n\nfunction findCloseTokenIndex(tokens: Token[], idx: number) {\n let level = 0;\n let i = idx;\n while (i < tokens.length) {\n if (matchOpenToken(tokens, i)) {\n level++;\n } else if (matchCloseToken(tokens, i)) {\n if (level === 0) {\n return i;\n }\n level--;\n }\n\n i++;\n }\n\n return null;\n}\n\nfunction matchCloseToken(tokens: Token[], i: number) {\n return (\n tokens[i].type === 'paragraph_open' &&\n tokens[i + 1].type === 'inline' &&\n tokens[i + 1].content.trim() === '{% endlist %}'\n );\n}\n\nfunction matchOpenToken(tokens: Token[], i: number) {\n return (\n tokens[i].type === 'paragraph_open' &&\n tokens[i + 1].type === 'inline' &&\n tokens[i + 1].content.match(TAB_RE)\n );\n}\n\nexport function props(content: string): TabsProps {\n const clean = trim(content.replace('list tabs', ''));\n\n const props = clean.split(' ');\n const result: TabsProps = {\n content: clean,\n variant: TabsVariants.Regular,\n group: `${DEFAULT_TABS_GROUP_PREFIX}${generateID()}`,\n };\n\n for (const prop of props) {\n const [key, value] = prop.split('=').map(trim);\n\n switch (key) {\n case 'horizontal':\n case 'radio':\n case 'dropdown':\n case 'accordion':\n result.variant = key as TabsVariants;\n break;\n case 'group':\n result.group = unquote(value);\n break;\n default:\n // TODO: lint unknown tabs props\n }\n }\n\n return result;\n}\n\ntype Result =\n | {\n step: number;\n }\n | {\n content: string;\n closeTokenIndex: number;\n };\n\nexport function tryToFindTabs(tokens: Token[], index: number): Result {\n const match = matchOpenToken(tokens, index);\n const openTag = match && match[0];\n const isNotEscaped = openTag && !(openTag.startsWith('`') && openTag.endsWith('`'));\n\n if (!match || !isNotEscaped) {\n return {\n step: 1,\n };\n }\n\n const closeTokenIndex = findCloseTokenIndex(tokens, index + 3);\n\n if (!closeTokenIndex) {\n tokens[index].attrSet('YFM005', 'true');\n\n return {\n step: 3,\n };\n }\n\n return {\n content: openTag,\n closeTokenIndex,\n };\n}\n\nexport function findTabs(tokens: Token[], idx: number, closeTokenIdx: number) {\n const tabs = [];\n let i = idx;\n let nestedLevel = -1;\n let pending: RuntimeTab = {\n name: '',\n tokens: [],\n listItem: new Token('list_item_open', '', 0),\n };\n\n while (i < tokens.length) {\n const token = tokens[i];\n\n switch (token.type) {\n case 'ordered_list_open':\n case 'bullet_list_open':\n if (nestedLevel > -1) {\n pending.tokens.push(token);\n }\n\n nestedLevel++;\n\n break;\n case 'list_item_open':\n if (nestedLevel) {\n pending.tokens.push(token);\n } else {\n pending = {name: '', tokens: [], listItem: token};\n }\n\n break;\n case 'list_item_close':\n if (nestedLevel) {\n pending.tokens.push(token);\n } else {\n tabs.push(pending);\n }\n\n break;\n case 'ordered_list_close':\n case 'bullet_list_close':\n if (!nestedLevel) {\n return tabs;\n }\n\n nestedLevel--;\n\n pending.tokens.push(token);\n\n break;\n case 'paragraph_open':\n if (\n i === closeTokenIdx &&\n tokens[i + 1].content &&\n tokens[i + 1].content.trim() === '{% endlist %}'\n ) {\n if (pending && !nestedLevel) {\n tabs.push(pending);\n }\n\n return tabs;\n }\n\n if (!pending.name && tokens[i + 1].type === 'inline') {\n pending.name = tokens[i + 1].content;\n\n i += 2;\n } else {\n pending.tokens.push(token);\n }\n break;\n default:\n pending.tokens.push(token);\n }\n i++;\n }\n\n return tabs;\n}\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\nimport type MarkdownIt from 'markdown-it';\n\nimport {EnabledVariants, TabsVariants} from '../common';\n\nimport {addHiddenProperty, copyRuntimeFiles} from './utils';\nimport {generateTabsTokens} from './generate';\nimport {findTabs, props, tryToFindTabs} from './find';\n\nexport type PluginOptions = {\n runtimeJsPath: string;\n runtimeCssPath: string;\n containerClasses: string;\n bundle: boolean;\n features: {\n enabledVariants: EnabledVariants;\n };\n};\n\nconst defaultFeatures = {\n enabledVariants: {\n regular: true,\n radio: true,\n },\n} satisfies PluginOptions['features'];\n\nlet runsCounter = 0;\n\ntype TransformOptions = {\n output?: string;\n};\n\nexport function transform({\n runtimeJsPath = '_assets/tabs-extension.js',\n runtimeCssPath = '_assets/tabs-extension.css',\n containerClasses = '',\n bundle = true,\n features = defaultFeatures,\n}: Partial<PluginOptions> = {}) {\n return function tabs(md: MarkdownIt, options?: TransformOptions) {\n const {output = '.'} = options || {};\n const plugin = (state: StateCore) => {\n const {env, tokens} = state;\n const runId = String(++runsCounter);\n\n addHiddenProperty(env, 'bundled', new Set<string>());\n\n let i = 0;\n let tabsAreInserted = false;\n\n while (i < tokens.length) {\n const result = tryToFindTabs(tokens, i);\n\n if ('step' in result) {\n i += result.step;\n\n continue;\n }\n\n const {content, closeTokenIndex} = result;\n\n const parsedProps = props(content);\n\n if (!features.enabledVariants[parsedProps.variant]) {\n parsedProps.variant = TabsVariants.Regular;\n }\n\n const tabs = findTabs(state.tokens, i + 3, closeTokenIndex);\n\n if (tabs.length > 0) {\n const tabsTokens = generateTabsTokens(tabs, state, {\n containerClasses,\n tabsGroup: parsedProps.group,\n variant: parsedProps.variant,\n runId,\n });\n\n state.tokens.splice(i, closeTokenIndex - i + 3, ...tabsTokens);\n\n i++;\n tabsAreInserted = true;\n } else {\n state.tokens.splice(i, closeTokenIndex - i + 3);\n }\n }\n\n if (tabsAreInserted) {\n env.meta = env.meta || {};\n env.meta.script = env.meta.script || [];\n env.meta.style = env.meta.style || [];\n env.meta.script.push(runtimeJsPath);\n env.meta.style.push(runtimeCssPath);\n\n if (bundle) {\n copyRuntimeFiles({runtimeJsPath, runtimeCssPath, output}, env.bundled);\n }\n }\n };\n\n try {\n md.core.ruler.before('curly_attributes', 'tabs', plugin);\n } catch (e) {\n md.core.ruler.push('tabs', plugin);\n }\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nmodule.exports = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n", "const regex = require('./regex.js')\n\nmodule.exports = BananaSlug\n\nconst own = Object.hasOwnProperty\n\nfunction BananaSlug () {\n const self = this\n\n if (!(self instanceof BananaSlug)) return new BananaSlug()\n\n self.reset()\n}\n\n/**\n * Generate a unique slug.\n * @param {string} value String of text to slugify\n * @param {boolean} [false] Keep the current case, otherwise make all lowercase\n * @return {string} A unique slug string\n */\nBananaSlug.prototype.slug = function (value, maintainCase) {\n const self = this\n let slug = slugger(value, maintainCase === true)\n const originalSlug = slug\n\n while (own.call(self.occurrences, slug)) {\n self.occurrences[originalSlug]++\n slug = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[slug] = 0\n\n return slug\n}\n\n/**\n * Reset - Forget all previous slugs\n * @return void\n */\nBananaSlug.prototype.reset = function () {\n this.occurrences = Object.create(null)\n}\n\nfunction slugger (string, maintainCase) {\n if (typeof string !== 'string') return ''\n if (!maintainCase) string = string.toLowerCase()\n return string.replace(regex, '').replace(/ /g, '-')\n}\n\nBananaSlug.slug = slugger\n", "export {transform} from './transform';\n", "import {type TabsController} from './runtime/TabsController';\n\nexport const TAB_RE = /`?{% list tabs .*?%}`?/;\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const TAB_GROUP_CLASSNAME = 'yfm-tab-group';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_VARIANT = 'data-diplodoc-variant';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\nexport const TAB_FORCED_OPEN = 'data-diplodoc-forced';\n\nexport const TABS_DROPDOWN_CLASSNAME = 'yfm-tabs-dropdown';\nexport const TABS_DROPDOWN_MENU_CLASSNAME = 'yfm-tabs-dropdown-menu';\nexport const TABS_DROPDOWN_SELECT = 'yfm-tabs-dropdown-select';\n\nexport const TABS_ACCORDION_CLASSNAME = 'yfm-tabs-accordion';\nexport const TABS_ACCORDION_CLIENT_HEIGHT = 'data-yfm-tabs-accordion-client-heights';\n\nexport const TABS_RADIO_CLASSNAME = 'yfm-tabs-vertical';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport enum TabsVariants {\n Regular = 'regular',\n Radio = 'radio',\n Dropdown = 'dropdown',\n Accordion = 'accordion',\n}\n\nexport type EnabledVariants = Partial<Record<TabsVariants, boolean>>;\n\nexport interface Tab {\n group?: string;\n key: string;\n variant: TabsVariants;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n", "export function generateID() {\n const id = Math.random().toString(36).substr(2, 8);\n return id.substring(id.length - 8);\n}\n\nexport function trim(target: string) {\n return target.trim();\n}\n\nexport function unquote(target: string) {\n return target.match(/^([\"']).*\\1$/) ? target.slice(1, -1) : target;\n}\n", "import GithubSlugger from 'github-slugger';\n\nimport {ACTIVE_TAB_TEXT} from '../../common';\nimport {RuntimeTab} from '../types';\n\nconst CUSTOM_ID_REGEXP = /\\[?{ ?#(\\S+) ?}]?/;\n\nconst sluggersStorage = new Map<string, GithubSlugger>();\n\nfunction parseName(name: string) {\n const parts = name.match(CUSTOM_ID_REGEXP);\n let customAnchor: string | null = null;\n let pure = name;\n\n if (parts) {\n pure = name.replace(parts[0], '');\n customAnchor = parts[1];\n } else {\n pure = name;\n customAnchor = null;\n }\n\n if (pure.includes(ACTIVE_TAB_TEXT)) {\n pure = pure.replace(ACTIVE_TAB_TEXT, '');\n }\n\n return {\n name: pure.trim(),\n customAnchor,\n };\n}\n\nexport function getTabId(tab: RuntimeTab, {runId}: {runId: string}) {\n let slugger = sluggersStorage.get(runId);\n if (!slugger) {\n slugger = new GithubSlugger();\n sluggersStorage.set(runId, slugger);\n }\n\n return slugger.slug(getRawId(tab));\n}\n\nexport function isTabSelected(tab: RuntimeTab) {\n const {name} = tab;\n\n return name.includes(ACTIVE_TAB_TEXT);\n}\n\nexport function getTabKey(tab: RuntimeTab) {\n return encodeURIComponent(getRawId(tab)).toLocaleLowerCase();\n}\n\nexport function getName(tab: RuntimeTab) {\n return parseName(tab.name).name;\n}\n\nfunction getRawId(tab: RuntimeTab): string {\n const {customAnchor, name} = parseName(tab.name);\n\n return customAnchor || name;\n}\n", "const PATH_TO_RUNTIME = '../runtime';\n\nexport function copyRuntimeFiles(\n {\n runtimeJsPath,\n runtimeCssPath,\n output,\n }: {runtimeJsPath: string; runtimeCssPath: string; output: string},\n cache: Set<string>,\n) {\n const {join, resolve} = dynrequire('node:path');\n const runtimeFiles = {\n 'index.js': runtimeJsPath,\n 'index.css': runtimeCssPath,\n };\n for (const [originFile, outputFile] of Object.entries(runtimeFiles)) {\n const file = join(PATH_TO_RUNTIME, originFile);\n if (!cache.has(file)) {\n cache.add(file);\n copyFile(resolve(__dirname, file), join(output, outputFile));\n }\n }\n}\n\nfunction copyFile(from: string, to: string) {\n const {mkdirSync, copyFileSync} = dynrequire('node:fs');\n const {dirname} = dynrequire('node:path');\n mkdirSync(dirname(to), {recursive: true});\n copyFileSync(from, to);\n}\n\n/*\n * Runtime require hidden for builders.\n * Used for nodejs api\n */\nfunction dynrequire(module: string) {\n // eslint-disable-next-line no-eval\n return eval(`require('${module}')`);\n}\n", "export function addHiddenProperty<\n B extends Record<string | symbol, unknown>,\n F extends string | symbol,\n V,\n>(box: B, field: F, value: V) {\n if (!(field in box)) {\n Object.defineProperty(box, field, {\n enumerable: false,\n value: value,\n });\n }\n\n return box as B & {[P in F]: V};\n}\n\nexport * from './strings';\nexport * from './tabs';\nexport * from './files';\n", "import {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_DATA_VERTICAL_TAB,\n TAB_FORCED_OPEN,\n TAB_PANEL_CLASSNAME,\n VERTICAL_TAB_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\n\nimport {TabsTokensGenerator} from './types';\n\nexport const regular: TabsTokensGenerator = (\n tabs,\n state,\n {containerClasses, tabsGroup, runId, variant: orientation},\n) => {\n const tabsTokens = [];\n const tabListTokens = [];\n const tabPanelsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n const tabListOpen = new state.Token('tab-list_open', 'div', 1);\n const tabListClose = new state.Token('tab-list_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n\n tabListOpen.map = [start, end];\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n tabListOpen.block = true;\n tabListClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n const hasDefaultOpenTab = activeTabsCount !== 0;\n\n tabsOpen.attrSet('class', [TABS_CLASSNAME, containerClasses].filter(Boolean).join(' '));\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, 'regular');\n\n tabListOpen.attrSet('class', TABS_LIST_CLASSNAME);\n tabListOpen.attrSet('role', 'tablist');\n\n if (orientation === 'radio') {\n tabsTokens.push(tabsOpen);\n }\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const verticalTabInput = new state.Token('tab-input', 'input', 0);\n const verticalTabLabelOpen = new state.Token('tab-label_open', 'label', 1);\n const verticalTabLabelClose = new state.Token('tab-label_close', 'label', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n /* if user did not provide default open tab we fallback to first tab (in default tabs only) */\n const isTabActive = hasDefaultOpenTab ? didTabHasActiveAttr : i === 0;\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n verticalTabInput.block = true;\n\n verticalTabInput.attrJoin('class', 'radio');\n verticalTabInput.attrSet('type', 'radio');\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet('class', TAB_CLASSNAME);\n tabOpen.attrJoin('class', 'yfm-tab-group');\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (orientation === 'radio') {\n tabOpen.attrSet(TAB_DATA_VERTICAL_TAB, 'true');\n tabOpen.attrJoin('class', VERTICAL_TAB_CLASSNAME);\n }\n\n if (isTabActive) {\n if (orientation === 'radio') {\n tabOpen.attrSet(TAB_FORCED_OPEN, 'true');\n verticalTabInput.attrSet('checked', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n } else {\n tabOpen.attrSet(TAB_ACTIVE_KEY, i === 0 ? 'true' : 'false');\n tabOpen.attrJoin('class', ACTIVE_CLASSNAME);\n tabOpen.attrSet('aria-selected', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n }\n\n if (orientation === 'radio') {\n tabsTokens.push(\n tabOpen,\n verticalTabInput,\n verticalTabLabelOpen,\n tabInline,\n verticalTabLabelClose,\n tabClose,\n );\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n } else {\n tabListTokens.push(tabOpen, tabInline, tabClose);\n tabPanelsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n }\n\n tabsTokens.push(tabsOpen);\n tabsTokens.push(tabListOpen);\n tabsTokens.push(...tabListTokens);\n tabsTokens.push(tabListClose);\n tabsTokens.push(...tabPanelsTokens);\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_RADIO_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_DATA_VERTICAL_TAB,\n TAB_FORCED_OPEN,\n TAB_GROUP_CLASSNAME,\n TAB_PANEL_CLASSNAME,\n VERTICAL_TAB_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const radio: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const tabsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n tabsOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_RADIO_CLASSNAME].filter(Boolean).join(' '),\n );\n\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, 'radio');\n tabsTokens.push(tabsOpen);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const verticalTabInput = new state.Token('tab-input', 'input', 0);\n const verticalTabLabelOpen = new state.Token('tab-label_open', 'label', 1);\n const verticalTabLabelClose = new state.Token('tab-label_close', 'label', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n verticalTabInput.block = true;\n\n verticalTabInput.attrJoin('class', 'radio');\n verticalTabInput.attrSet('type', 'radio');\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet(\n 'class',\n [TAB_CLASSNAME, TAB_GROUP_CLASSNAME, VERTICAL_TAB_CLASSNAME].join(' '),\n );\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n tabOpen.attrSet(TAB_DATA_VERTICAL_TAB, 'true');\n\n if (didTabHasActiveAttr) {\n tabOpen.attrSet(TAB_FORCED_OPEN, 'true');\n verticalTabInput.attrSet('checked', 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n tabsTokens.push(\n tabOpen,\n verticalTabInput,\n verticalTabLabelOpen,\n tabInline,\n verticalTabLabelClose,\n tabClose,\n );\n\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_DROPDOWN_CLASSNAME,\n TABS_DROPDOWN_MENU_CLASSNAME,\n TABS_DROPDOWN_SELECT,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_PANEL_CLASSNAME,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const dropdown: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const dropdownTokens = [];\n const dropdownOpen = new state.Token('dropdown_open', 'div', 1);\n const dropdownClose = new state.Token('dropdown_close', 'div', -1);\n const dropdownSelectOpen = new state.Token('dropdown-select_open', 'div', 1);\n const dropdownSelectInline = new state.Token('inline', '', 0);\n const dropdownSelectText = new state.Token('text', '', 0);\n const dropdownSelectClose = new state.Token('dropdown-select_open', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n dropdownOpen.block = true;\n dropdownClose.block = true;\n dropdownSelectOpen.block = true;\n dropdownSelectClose.block = true;\n\n const [activeTab, ...restActiveTabs] = tabs.filter(isTabSelected);\n\n if (restActiveTabs.length) {\n throw new Error('Unable to dropdown tabs with more than 1 active element');\n }\n\n dropdownOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_DROPDOWN_CLASSNAME].filter(Boolean).join(' '),\n );\n\n dropdownOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n dropdownOpen.attrSet(TAB_DATA_VARIANT, 'dropdown');\n\n dropdownSelectOpen.attrSet('role', 'tablist');\n dropdownSelectOpen.attrSet('class', TABS_DROPDOWN_SELECT);\n\n if (activeTab) {\n dropdownSelectOpen.attrJoin('class', 'filled');\n }\n\n dropdownSelectText.content = activeTab ? activeTab.name : '-';\n dropdownSelectInline.children = [dropdownSelectText];\n\n dropdownTokens.push(\n dropdownOpen,\n dropdownSelectOpen,\n dropdownSelectInline,\n dropdownSelectClose,\n );\n\n const dropdownMenuOpen = new state.Token('dropdown-menu_open', 'ul', 1);\n const dropdownMenuClose = new state.Token('dropdown-menu_close', 'ul', -1);\n\n dropdownMenuOpen.attrSet('class', TABS_DROPDOWN_MENU_CLASSNAME);\n\n const menuTokens = tabs.flatMap((tab) => {\n const menuListItemOpen = new state.Token('dropdown-menu-item_open', 'li', 1);\n const menuListItemClose = new state.Token('dropdown-menu-item_close', 'li', -1);\n const menuListItemText = new state.Token('text', '', 0);\n const menuListItemInline = new state.Token('inline', '', 0);\n\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const isActive = tab === activeTab;\n\n menuListItemOpen.attrSet(\n 'class',\n [TAB_CLASSNAME, isActive && ACTIVE_CLASSNAME].filter(Boolean).join(' '),\n );\n menuListItemOpen.attrSet(TAB_DATA_ID, tabId);\n menuListItemOpen.attrSet(TAB_DATA_KEY, tabKey);\n menuListItemOpen.attrSet('aria-selected', String(isActive));\n\n menuListItemText.content = tab.name;\n menuListItemInline.children = [menuListItemText];\n\n return [menuListItemOpen, menuListItemInline, menuListItemClose];\n });\n\n dropdownTokens.push(dropdownMenuOpen, ...menuTokens, dropdownMenuClose);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (didTabHasActiveAttr) {\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n dropdownTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n dropdownTokens.push(dropdownClose);\n\n return dropdownTokens;\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {\n ACTIVE_CLASSNAME,\n GROUP_DATA_KEY,\n TABS_ACCORDION_CLASSNAME,\n TABS_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_FORCED_OPEN,\n TAB_GROUP_CLASSNAME,\n TAB_PANEL_CLASSNAME,\n TabsVariants,\n} from '../../common';\nimport {generateID, getName, getTabId, getTabKey, isTabSelected} from '../utils';\nimport {type RuntimeTab} from '../types';\n\nimport {type TabsTokensGenerator} from './types';\n\nexport const accordion: TabsTokensGenerator = (\n tabs: RuntimeTab[],\n state: StateCore,\n {containerClasses, tabsGroup, runId},\n) => {\n const tabsTokens = [];\n const tabsOpen = new state.Token('tabs_open', 'div', 1);\n const tabsClose = new state.Token('tabs_close', 'div', -1);\n\n if (tabs.length) {\n const [start] = tabs[0].listItem.map ?? [null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (start == null) {\n throw new Error('failed to parse line mapping');\n }\n\n const [_, end] = tabs[tabs.length - 1].listItem.map ?? [null, null];\n // eslint-disable-next-line no-eq-null, eqeqeq\n if (end == null) {\n throw new Error('failed to parse line mapping');\n }\n }\n\n tabsOpen.block = true;\n tabsClose.block = true;\n\n const activeTabsCount = tabs.filter(isTabSelected).length;\n\n if (activeTabsCount > 1) {\n throw new Error('Unable to render tabs with more than 1 active element');\n }\n\n tabsOpen.attrSet(\n 'class',\n [TABS_CLASSNAME, containerClasses, TABS_ACCORDION_CLASSNAME].filter(Boolean).join(' '),\n );\n\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabsOpen.attrSet(TAB_DATA_VARIANT, TabsVariants.Accordion);\n tabsTokens.push(tabsOpen);\n\n for (let i = 0; i < tabs.length; i++) {\n const tabOpen = new state.Token('tab_open', 'div', 1);\n const tabInline = new state.Token('inline', '', 0);\n const tabText = new state.Token('text', '', 0);\n const tabClose = new state.Token('tab_close', 'div', -1);\n const tabPanelOpen = new state.Token('tab-panel_open', 'div', 1);\n const tabPanelClose = new state.Token('tab-panel_close', 'div', -1);\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n\n const tab = tabs[i];\n const tabId = getTabId(tab, {runId});\n const tabKey = getTabKey(tab);\n const didTabHasActiveAttr = isTabSelected(tab);\n\n tab.name = getName(tab);\n\n const tabPanelId = generateID();\n\n tabOpen.map = tabs[i].listItem.map;\n tabOpen.markup = tabs[i].listItem.markup;\n tabText.content = tabs[i].name;\n tabInline.children = [tabText];\n tabOpen.block = true;\n tabClose.block = true;\n tabPanelOpen.block = true;\n tabPanelClose.block = true;\n tabOpen.attrSet(TAB_DATA_ID, tabId);\n tabOpen.attrSet(TAB_DATA_KEY, tabKey);\n tabOpen.attrSet('class', [TAB_CLASSNAME, TAB_GROUP_CLASSNAME].join(' '));\n tabOpen.attrSet('role', 'tab');\n tabOpen.attrSet('aria-controls', tabPanelId);\n tabOpen.attrSet('aria-selected', 'false');\n tabOpen.attrSet('tabindex', i === 0 ? '0' : '-1');\n tabOpen.attrSet(TAB_ACTIVE_KEY, 'false');\n tabPanelOpen.attrSet('id', tabPanelId);\n tabPanelOpen.attrSet('class', TAB_PANEL_CLASSNAME);\n tabPanelOpen.attrSet('role', 'tabpanel');\n tabPanelOpen.attrSet('aria-labelledby', tabId);\n tabPanelOpen.attrSet('data-title', tab.name);\n\n if (didTabHasActiveAttr) {\n tabPanelOpen.attrSet(TAB_FORCED_OPEN, 'true');\n tabPanelOpen.attrJoin('class', ACTIVE_CLASSNAME);\n\n tabOpen.attrJoin('class', ACTIVE_CLASSNAME);\n }\n\n tabsTokens.push(tabOpen, tabInline, tabClose);\n\n tabsTokens.push(tabPanelOpen, ...tabs[i].tokens, tabPanelClose);\n }\n\n tabsTokens.push(tabsClose);\n\n return tabsTokens;\n};\n", "import {TabsVariants} from '../../common';\n\nimport {regular} from './regular';\nimport {radio} from './radio';\nimport {TabsTokensGenerator} from './types';\nimport {dropdown} from './dropdown';\nimport {accordion} from './accordion';\n\nconst generateByType: Record<TabsVariants, TabsTokensGenerator> = {\n regular,\n radio,\n dropdown,\n accordion,\n};\n\nexport const generateTokensByType = (type: TabsVariants) => {\n return generateByType[type];\n};\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\n\nimport {RuntimeTab} from './types';\nimport {generateTokensByType} from './variants';\nimport {TabsGenerationProps} from './variants/types';\n\nexport function generateTabsTokens(\n tabs: RuntimeTab[],\n state: StateCore,\n props: TabsGenerationProps,\n) {\n const tokens = generateTokensByType(props.variant)(tabs, state, props);\n\n return tokens;\n}\n", "import Token from 'markdown-it/lib/token';\n\nimport {DEFAULT_TABS_GROUP_PREFIX, TAB_RE, TabsVariants} from '../common';\n\nimport {RuntimeTab, TabsProps} from './types';\nimport {generateID, trim, unquote} from './utils';\n\nfunction findCloseTokenIndex(tokens: Token[], idx: number) {\n let level = 0;\n let i = idx;\n while (i < tokens.length) {\n if (matchOpenToken(tokens, i)) {\n level++;\n } else if (matchCloseToken(tokens, i)) {\n if (level === 0) {\n return i;\n }\n level--;\n }\n\n i++;\n }\n\n return null;\n}\n\nfunction matchCloseToken(tokens: Token[], i: number) {\n return (\n tokens[i].type === 'paragraph_open' &&\n tokens[i + 1].type === 'inline' &&\n tokens[i + 1].content.trim() === '{% endlist %}'\n );\n}\n\nfunction matchOpenToken(tokens: Token[], i: number) {\n return (\n tokens[i].type === 'paragraph_open' &&\n tokens[i + 1].type === 'inline' &&\n tokens[i + 1].content.match(TAB_RE)\n );\n}\n\nexport function props(content: string): TabsProps {\n const clean = trim(content.replace('list tabs', ''));\n\n const props = clean.split(' ');\n const result: TabsProps = {\n content: clean,\n variant: TabsVariants.Regular,\n group: `${DEFAULT_TABS_GROUP_PREFIX}${generateID()}`,\n };\n\n for (const prop of props) {\n const [key, value] = prop.split('=').map(trim);\n\n switch (key) {\n case 'horizontal':\n case 'radio':\n case 'dropdown':\n case 'accordion':\n result.variant = key as TabsVariants;\n break;\n case 'group':\n result.group = unquote(value);\n break;\n default:\n // TODO: lint unknown tabs props\n }\n }\n\n return result;\n}\n\ntype Result =\n | {\n step: number;\n }\n | {\n content: string;\n closeTokenIndex: number;\n extraTokensAfterClose: number;\n };\n\nexport function tryToFindTabs(tokens: Token[], index: number): Result {\n const match = matchOpenToken(tokens, index);\n const openTag = match && match[0];\n const isNotEscaped = openTag && !(openTag.startsWith('`') && openTag.endsWith('`'));\n\n if (!match || !isNotEscaped) {\n return {\n step: 1,\n };\n }\n\n const closeTokenIndex = findCloseTokenIndex(tokens, index + 3);\n\n if (!closeTokenIndex) {\n tokens[index].attrSet('YFM005', 'true');\n\n return {\n step: 3,\n };\n }\n\n let extraTokensAfterClose = 0;\n const afterEndlistIdx = closeTokenIndex + 3; // After paragraph_open, inline, paragraph_close\n\n const openTokenLevel = tokens[index].level;\n const closeTokenLevel = tokens[closeTokenIndex].level;\n\n // dont handle tabs if closeToken has \"negative\" indent, e.g. closeToken.level < openToken.level\n if (closeTokenLevel < openTokenLevel) {\n tokens[index].attrSet('YFM005', 'true');\n return {\n step: 3,\n };\n }\n\n if (closeTokenLevel > openTokenLevel) {\n const tokenAfter = tokens[afterEndlistIdx];\n\n // do not handle tabs unless {% endlist %} is at the end of the tab content\n if (tokenAfter && tokenAfter.nesting >= 0) {\n tokens[index].attrSet('YFM005', 'true');\n return {\n step: 3,\n };\n }\n\n // remove list close tokens if `{% endlist %}` is inside the content of a tab\n if (\n tokenAfter?.type === 'list_item_close' &&\n tokens[afterEndlistIdx + 1]?.type === 'bullet_list_close'\n ) {\n extraTokensAfterClose = 2;\n }\n }\n\n return {\n content: openTag,\n closeTokenIndex,\n extraTokensAfterClose,\n };\n}\n\nexport function findTabs(tokens: Token[], idx: number, closeTokenIdx: number) {\n const tabs = [];\n let i = idx;\n let nestedLevel = -1;\n let pending: RuntimeTab = {\n name: '',\n tokens: [],\n listItem: new Token('list_item_open', '', 0),\n };\n\n while (i < tokens.length) {\n const token = tokens[i];\n\n switch (token.type) {\n case 'ordered_list_open':\n case 'bullet_list_open':\n if (nestedLevel > -1) {\n pending.tokens.push(token);\n }\n\n nestedLevel++;\n\n break;\n case 'list_item_open':\n if (nestedLevel) {\n pending.tokens.push(token);\n } else {\n pending = {name: '', tokens: [], listItem: token};\n }\n\n break;\n case 'list_item_close':\n if (nestedLevel) {\n pending.tokens.push(token);\n } else {\n tabs.push(pending);\n }\n\n break;\n case 'ordered_list_close':\n case 'bullet_list_close':\n if (!nestedLevel) {\n return tabs;\n }\n\n nestedLevel--;\n\n pending.tokens.push(token);\n\n break;\n case 'paragraph_open':\n if (\n i === closeTokenIdx &&\n tokens[i + 1].content &&\n tokens[i + 1].content.trim() === '{% endlist %}'\n ) {\n if (pending && !nestedLevel) {\n tabs.push(pending);\n }\n\n return tabs;\n }\n\n if (!pending.name && tokens[i + 1].type === 'inline') {\n pending.name = tokens[i + 1].content;\n\n i += 2;\n } else {\n pending.tokens.push(token);\n }\n break;\n default:\n pending.tokens.push(token);\n }\n i++;\n }\n\n return tabs;\n}\n", "import type StateCore from 'markdown-it/lib/rules_core/state_core';\nimport type MarkdownIt from 'markdown-it';\n\nimport {EnabledVariants, TabsVariants} from '../common';\n\nimport {addHiddenProperty, copyRuntimeFiles} from './utils';\nimport {generateTabsTokens} from './generate';\nimport {findTabs, props, tryToFindTabs} from './find';\n\nexport type PluginOptions = {\n runtimeJsPath: string;\n runtimeCssPath: string;\n containerClasses: string;\n bundle: boolean;\n features: {\n enabledVariants: EnabledVariants;\n };\n};\n\nconst defaultFeatures = {\n enabledVariants: {\n regular: true,\n radio: true,\n },\n} satisfies PluginOptions['features'];\n\nlet runsCounter = 0;\n\ntype TransformOptions = {\n output?: string;\n};\n\nexport function transform({\n runtimeJsPath = '_assets/tabs-extension.js',\n runtimeCssPath = '_assets/tabs-extension.css',\n containerClasses = '',\n bundle = true,\n features = defaultFeatures,\n}: Partial<PluginOptions> = {}) {\n return function tabs(md: MarkdownIt, options?: TransformOptions) {\n const {output = '.'} = options || {};\n const plugin = (state: StateCore) => {\n const {env, tokens} = state;\n const runId = String(++runsCounter);\n\n addHiddenProperty(env, 'bundled', new Set<string>());\n\n let i = 0;\n let tabsAreInserted = false;\n\n while (i < tokens.length) {\n const result = tryToFindTabs(tokens, i);\n\n if ('step' in result) {\n i += result.step;\n\n continue;\n }\n\n const {content, closeTokenIndex, extraTokensAfterClose} = result;\n\n const parsedProps = props(content);\n\n if (!features.enabledVariants[parsedProps.variant]) {\n parsedProps.variant = TabsVariants.Regular;\n }\n\n const tabs = findTabs(state.tokens, i + 3, closeTokenIndex);\n\n if (tabs.length > 0) {\n const tabsTokens = generateTabsTokens(tabs, state, {\n containerClasses,\n tabsGroup: parsedProps.group,\n variant: parsedProps.variant,\n runId,\n });\n\n // Remove tokens including any list closing tokens after endlist\n state.tokens.splice(\n i,\n closeTokenIndex - i + 3 + extraTokensAfterClose,\n ...tabsTokens,\n );\n\n i++;\n tabsAreInserted = true;\n } else {\n state.tokens.splice(i, closeTokenIndex - i + 3 + extraTokensAfterClose);\n }\n }\n\n if (tabsAreInserted) {\n env.meta = env.meta || {};\n env.meta.script = env.meta.script || [];\n env.meta.style = env.meta.style || [];\n env.meta.script.push(runtimeJsPath);\n env.meta.style.push(runtimeCssPath);\n\n if (bundle) {\n copyRuntimeFiles({runtimeJsPath, runtimeCssPath, output}, env.bundled);\n }\n }\n };\n\n try {\n md.core.ruler.before('curly_attributes', 'tabs', plugin);\n } catch (e) {\n md.core.ruler.push('tabs', plugin);\n }\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,yCAAAA,UAAAC,SAAA;AAAA;AAEA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACFjB;AAAA,yCAAAC,UAAAC,SAAA;AAAA;AAAA,QAAM,QAAQ;AAEd,IAAAA,QAAO,UAAU;AAEjB,QAAM,MAAM,OAAO;AAEnB,aAAS,aAAc;AACrB,YAAM,OAAO;AAEb,UAAI,EAAE,gBAAgB,YAAa,QAAO,IAAI,WAAW;AAEzD,WAAK,MAAM;AAAA,IACb;AAQA,eAAW,UAAU,OAAO,SAAU,OAAO,cAAc;AACzD,YAAM,OAAO;AACb,UAAI,OAAO,QAAQ,OAAO,iBAAiB,IAAI;AAC/C,YAAM,eAAe;AAErB,aAAO,IAAI,KAAK,KAAK,aAAa,IAAI,GAAG;AACvC,aAAK,YAAY,YAAY;AAC7B,eAAO,eAAe,MAAM,KAAK,YAAY,YAAY;AAAA,MAC3D;AAEA,WAAK,YAAY,IAAI,IAAI;AAEzB,aAAO;AAAA,IACT;AAMA,eAAW,UAAU,QAAQ,WAAY;AACvC,WAAK,cAAc,uBAAO,OAAO,IAAI;AAAA,IACvC;AAEA,aAAS,QAAS,QAAQ,cAAc;AACtC,UAAI,OAAO,WAAW,SAAU,QAAO;AACvC,UAAI,CAAC,aAAc,UAAS,OAAO,YAAY;AAC/C,aAAO,OAAO,QAAQ,OAAO,EAAE,EAAE,QAAQ,MAAM,GAAG;AAAA,IACpD;AAEA,eAAW,OAAO;AAAA;AAAA;;;ACjDlB;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,SAAS;AACf,IAAM,iBAAiB;AACvB,IAAM,gBAAgB;AACtB,IAAM,sBAAsB;AAC5B,IAAM,sBAAsB;AAC5B,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AACvB,IAAM,eAAe;AACrB,IAAM,mBAAmB;AACzB,IAAM,cAAc;AACpB,IAAM,4BAA4B;AAClC,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,0BAA0B;AAChC,IAAM,+BAA+B;AACrC,IAAM,uBAAuB;AAE7B,IAAM,2BAA2B;AAGjC,IAAM,uBAAuB;AAC7B,IAAM,yBAAyB;AAC/B,IAAM,wBAAwB;AAuB9B,IAAM,gBAA+B,OAAO,IAAI,cAAc;;;AClD9D,SAAS,aAAa;AACzB,QAAM,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC;AACjD,SAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AACrC;AAEO,SAAS,KAAK,QAAgB;AACjC,SAAO,OAAO,KAAK;AACvB;AAEO,SAAS,QAAQ,QAAgB;AACpC,SAAO,OAAO,MAAM,cAAc,IAAI,OAAO,MAAM,GAAG,EAAE,IAAI;AAChE;;;ACXA,4BAA0B;AAK1B,IAAM,mBAAmB;AAEzB,IAAM,kBAAkB,oBAAI,IAA2B;AAEvD,SAAS,UAAU,MAAc;AAC7B,QAAM,QAAQ,KAAK,MAAM,gBAAgB;AACzC,MAAI,eAA8B;AAClC,MAAI,OAAO;AAEX,MAAI,OAAO;AACP,WAAO,KAAK,QAAQ,MAAM,CAAC,GAAG,EAAE;AAChC,mBAAe,MAAM,CAAC;AAAA,EAC1B,OAAO;AACH,WAAO;AACP,mBAAe;AAAA,EACnB;AAEA,MAAI,KAAK,SAAS,eAAe,GAAG;AAChC,WAAO,KAAK,QAAQ,iBAAiB,EAAE;AAAA,EAC3C;AAEA,SAAO;AAAA,IACH,MAAM,KAAK,KAAK;AAAA,IAChB;AAAA,EACJ;AACJ;AAEO,SAAS,SAAS,KAAiB,EAAC,MAAK,GAAoB;AAChE,MAAI,UAAU,gBAAgB,IAAI,KAAK;AACvC,MAAI,CAAC,SAAS;AACV,cAAU,IAAI,sBAAAC,QAAc;AAC5B,oBAAgB,IAAI,OAAO,OAAO;AAAA,EACtC;AAEA,SAAO,QAAQ,KAAK,SAAS,GAAG,CAAC;AACrC;AAEO,SAAS,cAAc,KAAiB;AAC3C,QAAM,EAAC,KAAI,IAAI;AAEf,SAAO,KAAK,SAAS,eAAe;AACxC;AAEO,SAAS,UAAU,KAAiB;AACvC,SAAO,mBAAmB,SAAS,GAAG,CAAC,EAAE,kBAAkB;AAC/D;AAEO,SAAS,QAAQ,KAAiB;AACrC,SAAO,UAAU,IAAI,IAAI,EAAE;AAC/B;AAEA,SAAS,SAAS,KAAyB;AACvC,QAAM,EAAC,cAAc,KAAI,IAAI,UAAU,IAAI,IAAI;AAE/C,SAAO,gBAAgB;AAC3B;;;AC5DA,IAAM,kBAAkB;AAEjB,SAAS,iBACZ;AAAA,EACI;AAAA,EACA;AAAA,EACA;AACJ,GACA,OACF;AACE,QAAM,EAAC,MAAM,QAAO,IAAI,WAAW,WAAW;AAC9C,QAAM,eAAe;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,EACjB;AACA,aAAW,CAAC,YAAY,UAAU,KAAK,OAAO,QAAQ,YAAY,GAAG;AACjE,UAAM,OAAO,KAAK,iBAAiB,UAAU;AAC7C,QAAI,CAAC,MAAM,IAAI,IAAI,GAAG;AAClB,YAAM,IAAI,IAAI;AACd,eAAS,QAAQ,WAAW,IAAI,GAAG,KAAK,QAAQ,UAAU,CAAC;AAAA,IAC/D;AAAA,EACJ;AACJ;AAEA,SAAS,SAAS,MAAc,IAAY;AACxC,QAAM,EAAC,WAAW,aAAY,IAAI,WAAW,SAAS;AACtD,QAAM,EAAC,QAAO,IAAI,WAAW,WAAW;AACxC,YAAU,QAAQ,EAAE,GAAG,EAAC,WAAW,KAAI,CAAC;AACxC,eAAa,MAAM,EAAE;AACzB;AAMA,SAAS,WAAW,QAAgB;AAEhC,SAAO,KAAK,YAAY,MAAM,IAAI;AACtC;;;ACtCO,SAAS,kBAId,KAAQ,OAAU,OAAU;AAC1B,MAAI,EAAE,SAAS,MAAM;AACjB,WAAO,eAAe,KAAK,OAAO;AAAA,MAC9B,YAAY;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO;AACX;;;ACMO,IAAM,UAA+B,CACxC,MACA,OACA,EAAC,kBAAkB,WAAW,OAAO,SAAS,YAAW,MACxD;AAvBL;AAwBI,QAAM,aAAa,CAAC;AACpB,QAAM,gBAAgB,CAAC;AACvB,QAAM,kBAAkB,CAAC;AACzB,QAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,CAAC;AACtD,QAAM,YAAY,IAAI,MAAM,MAAM,cAAc,OAAO,EAAE;AACzD,QAAM,cAAc,IAAI,MAAM,MAAM,iBAAiB,OAAO,CAAC;AAC7D,QAAM,eAAe,IAAI,MAAM,MAAM,kBAAkB,OAAO,EAAE;AAEhE,MAAI,KAAK,QAAQ;AACb,UAAM,CAAC,KAAK,KAAI,UAAK,CAAC,EAAE,SAAS,QAAjB,YAAwB,CAAC,IAAI;AAE7C,QAAI,SAAS,MAAM;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAEA,UAAM,CAAC,GAAG,GAAG,KAAI,UAAK,KAAK,SAAS,CAAC,EAAE,SAAS,QAA/B,YAAsC,CAAC,MAAM,IAAI;AAElE,QAAI,OAAO,MAAM;AACb,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAEA,gBAAY,MAAM,CAAC,OAAO,GAAG;AAAA,EACjC;AAEA,WAAS,QAAQ;AACjB,YAAU,QAAQ;AAClB,cAAY,QAAQ;AACpB,eAAa,QAAQ;AAErB,QAAM,kBAAkB,KAAK,OAAO,aAAa,EAAE;AAEnD,MAAI,kBAAkB,GAAG;AACrB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EAC3E;AAEA,QAAM,oBAAoB,oBAAoB;AAE9C,WAAS,QAAQ,SAAS,CAAC,gBAAgB,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAAC;AACtF,WAAS,QAAQ,gBAAgB,SAAS;AAC1C,WAAS,QAAQ,kBAAkB,SAAS;AAE5C,cAAY,QAAQ,SAAS,mBAAmB;AAChD,cAAY,QAAQ,QAAQ,SAAS;AAErC,MAAI,gBAAgB,SAAS;AACzB,eAAW,KAAK,QAAQ;AAAA,EAC5B;AAEA,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAM,UAAU,IAAI,MAAM,MAAM,YAAY,OAAO,CAAC;AACpD,UAAM,YAAY,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;AACjD,UAAM,UAAU,IAAI,MAAM,MAAM,QAAQ,IAAI,CAAC;AAC7C,UAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,EAAE;AACvD,UAAM,eAAe,IAAI,MAAM,MAAM,kBAAkB,OAAO,CAAC;AAC/D,UAAM,gBAAgB,IAAI,MAAM,MAAM,mBAAmB,OAAO,EAAE;AAElE,UAAM,mBAAmB,IAAI,MAAM,MAAM,aAAa,SAAS,CAAC;AAChE,UAAM,uBAAuB,IAAI,MAAM,MAAM,kBAAkB,SAAS,CAAC;AACzE,UAAM,wBAAwB,IAAI,MAAM,MAAM,mBAAmB,SAAS,EAAE;AAE5E,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAElC,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,QAAQ,SAAS,KAAK,EAAC,MAAK,CAAC;AACnC,UAAM,SAAS,UAAU,GAAG;AAC5B,UAAM,sBAAsB,cAAc,GAAG;AAE7C,UAAM,cAAc,oBAAoB,sBAAsB,MAAM;AAEpE,QAAI,OAAO,QAAQ,GAAG;AAEtB,UAAM,aAAa,WAAW;AAE9B,qBAAiB,QAAQ;AAEzB,qBAAiB,SAAS,SAAS,OAAO;AAC1C,qBAAiB,QAAQ,QAAQ,OAAO;AAExC,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAClC,YAAQ,UAAU,KAAK,CAAC,EAAE;AAC1B,cAAU,WAAW,CAAC,OAAO;AAC7B,YAAQ,QAAQ;AAChB,aAAS,QAAQ;AACjB,iBAAa,QAAQ;AACrB,kBAAc,QAAQ;AACtB,YAAQ,QAAQ,aAAa,KAAK;AAClC,YAAQ,QAAQ,cAAc,MAAM;AACpC,YAAQ,QAAQ,SAAS,aAAa;AACtC,YAAQ,SAAS,SAAS,eAAe;AACzC,YAAQ,QAAQ,QAAQ,KAAK;AAC7B,YAAQ,QAAQ,iBAAiB,UAAU;AAC3C,YAAQ,QAAQ,iBAAiB,OAAO;AACxC,YAAQ,QAAQ,YAAY,MAAM,IAAI,MAAM,IAAI;AAChD,YAAQ,QAAQ,gBAAgB,OAAO;AACvC,iBAAa,QAAQ,MAAM,UAAU;AACrC,iBAAa,QAAQ,SAAS,mBAAmB;AACjD,iBAAa,QAAQ,QAAQ,UAAU;AACvC,iBAAa,QAAQ,mBAAmB,KAAK;AAC7C,iBAAa,QAAQ,cAAc,IAAI,IAAI;AAE3C,QAAI,gBAAgB,SAAS;AACzB,cAAQ,QAAQ,uBAAuB,MAAM;AAC7C,cAAQ,SAAS,SAAS,sBAAsB;AAAA,IACpD;AAEA,QAAI,aAAa;AACb,UAAI,gBAAgB,SAAS;AACzB,gBAAQ,QAAQ,iBAAiB,MAAM;AACvC,yBAAiB,QAAQ,WAAW,MAAM;AAC1C,qBAAa,SAAS,SAAS,gBAAgB;AAAA,MACnD,OAAO;AACH,gBAAQ,QAAQ,gBAAgB,MAAM,IAAI,SAAS,OAAO;AAC1D,gBAAQ,SAAS,SAAS,gBAAgB;AAC1C,gBAAQ,QAAQ,iBAAiB,MAAM;AACvC,qBAAa,SAAS,SAAS,gBAAgB;AAAA,MACnD;AAAA,IACJ;AAEA,QAAI,gBAAgB,SAAS;AACzB,iBAAW;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AACA,iBAAW,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,QAAQ,aAAa;AAAA,IAClE,OAAO;AACH,oBAAc,KAAK,SAAS,WAAW,QAAQ;AAC/C,sBAAgB,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,QAAQ,aAAa;AAAA,IACvE;AAAA,EACJ;AAEA,aAAW,KAAK,QAAQ;AACxB,aAAW,KAAK,WAAW;AAC3B,aAAW,KAAK,GAAG,aAAa;AAChC,aAAW,KAAK,YAAY;AAC5B,aAAW,KAAK,GAAG,eAAe;AAClC,aAAW,KAAK,SAAS;AAEzB,SAAO;AACX;;;ACjJO,IAAM,QAA6B,CACtC,MACA,OACA,EAAC,kBAAkB,WAAW,MAAK,MAClC;AA3BL;AA4BI,QAAM,aAAa,CAAC;AACpB,QAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,CAAC;AACtD,QAAM,YAAY,IAAI,MAAM,MAAM,cAAc,OAAO,EAAE;AAEzD,MAAI,KAAK,QAAQ;AACb,UAAM,CAAC,KAAK,KAAI,UAAK,CAAC,EAAE,SAAS,QAAjB,YAAwB,CAAC,IAAI;AAE7C,QAAI,SAAS,MAAM;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAEA,UAAM,CAAC,GAAG,GAAG,KAAI,UAAK,KAAK,SAAS,CAAC,EAAE,SAAS,QAA/B,YAAsC,CAAC,MAAM,IAAI;AAElE,QAAI,OAAO,MAAM;AACb,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAAA,EACJ;AAEA,WAAS,QAAQ;AACjB,YAAU,QAAQ;AAElB,QAAM,kBAAkB,KAAK,OAAO,aAAa,EAAE;AAEnD,MAAI,kBAAkB,GAAG;AACrB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EAC3E;AAEA,WAAS;AAAA,IACL;AAAA,IACA,CAAC,gBAAgB,kBAAkB,oBAAoB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EACrF;AAEA,WAAS,QAAQ,gBAAgB,SAAS;AAC1C,WAAS,QAAQ,kBAAkB,OAAO;AAC1C,aAAW,KAAK,QAAQ;AAExB,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAM,UAAU,IAAI,MAAM,MAAM,YAAY,OAAO,CAAC;AACpD,UAAM,YAAY,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;AACjD,UAAM,UAAU,IAAI,MAAM,MAAM,QAAQ,IAAI,CAAC;AAC7C,UAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,EAAE;AACvD,UAAM,eAAe,IAAI,MAAM,MAAM,kBAAkB,OAAO,CAAC;AAC/D,UAAM,gBAAgB,IAAI,MAAM,MAAM,mBAAmB,OAAO,EAAE;AAElE,UAAM,mBAAmB,IAAI,MAAM,MAAM,aAAa,SAAS,CAAC;AAChE,UAAM,uBAAuB,IAAI,MAAM,MAAM,kBAAkB,SAAS,CAAC;AACzE,UAAM,wBAAwB,IAAI,MAAM,MAAM,mBAAmB,SAAS,EAAE;AAE5E,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAElC,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,QAAQ,SAAS,KAAK,EAAC,MAAK,CAAC;AACnC,UAAM,SAAS,UAAU,GAAG;AAC5B,UAAM,sBAAsB,cAAc,GAAG;AAE7C,QAAI,OAAO,QAAQ,GAAG;AAEtB,UAAM,aAAa,WAAW;AAE9B,qBAAiB,QAAQ;AAEzB,qBAAiB,SAAS,SAAS,OAAO;AAC1C,qBAAiB,QAAQ,QAAQ,OAAO;AAExC,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAClC,YAAQ,UAAU,KAAK,CAAC,EAAE;AAC1B,cAAU,WAAW,CAAC,OAAO;AAC7B,YAAQ,QAAQ;AAChB,aAAS,QAAQ;AACjB,iBAAa,QAAQ;AACrB,kBAAc,QAAQ;AACtB,YAAQ,QAAQ,aAAa,KAAK;AAClC,YAAQ,QAAQ,cAAc,MAAM;AACpC,YAAQ;AAAA,MACJ;AAAA,MACA,CAAC,eAAe,qBAAqB,sBAAsB,EAAE,KAAK,GAAG;AAAA,IACzE;AACA,YAAQ,QAAQ,QAAQ,KAAK;AAC7B,YAAQ,QAAQ,iBAAiB,UAAU;AAC3C,YAAQ,QAAQ,iBAAiB,OAAO;AACxC,YAAQ,QAAQ,YAAY,MAAM,IAAI,MAAM,IAAI;AAChD,YAAQ,QAAQ,gBAAgB,OAAO;AACvC,iBAAa,QAAQ,MAAM,UAAU;AACrC,iBAAa,QAAQ,SAAS,mBAAmB;AACjD,iBAAa,QAAQ,QAAQ,UAAU;AACvC,iBAAa,QAAQ,mBAAmB,KAAK;AAC7C,iBAAa,QAAQ,cAAc,IAAI,IAAI;AAC3C,YAAQ,QAAQ,uBAAuB,MAAM;AAE7C,QAAI,qBAAqB;AACrB,cAAQ,QAAQ,iBAAiB,MAAM;AACvC,uBAAiB,QAAQ,WAAW,MAAM;AAC1C,mBAAa,SAAS,SAAS,gBAAgB;AAAA,IACnD;AAEA,eAAW;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAEA,eAAW,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,QAAQ,aAAa;AAAA,EAClE;AAEA,aAAW,KAAK,SAAS;AAEzB,SAAO;AACX;;;ACxHO,IAAM,WAAgC,CACzC,MACA,OACA,EAAC,kBAAkB,WAAW,MAAK,MAClC;AAxBL;AAyBI,QAAM,iBAAiB,CAAC;AACxB,QAAM,eAAe,IAAI,MAAM,MAAM,iBAAiB,OAAO,CAAC;AAC9D,QAAM,gBAAgB,IAAI,MAAM,MAAM,kBAAkB,OAAO,EAAE;AACjE,QAAM,qBAAqB,IAAI,MAAM,MAAM,wBAAwB,OAAO,CAAC;AAC3E,QAAM,uBAAuB,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;AAC5D,QAAM,qBAAqB,IAAI,MAAM,MAAM,QAAQ,IAAI,CAAC;AACxD,QAAM,sBAAsB,IAAI,MAAM,MAAM,wBAAwB,OAAO,EAAE;AAE7E,MAAI,KAAK,QAAQ;AACb,UAAM,CAAC,KAAK,KAAI,UAAK,CAAC,EAAE,SAAS,QAAjB,YAAwB,CAAC,IAAI;AAE7C,QAAI,SAAS,MAAM;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAEA,UAAM,CAAC,GAAG,GAAG,KAAI,UAAK,KAAK,SAAS,CAAC,EAAE,SAAS,QAA/B,YAAsC,CAAC,MAAM,IAAI;AAElE,QAAI,OAAO,MAAM;AACb,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAAA,EACJ;AAEA,eAAa,QAAQ;AACrB,gBAAc,QAAQ;AACtB,qBAAmB,QAAQ;AAC3B,sBAAoB,QAAQ;AAE5B,QAAM,CAAC,WAAW,GAAG,cAAc,IAAI,KAAK,OAAO,aAAa;AAEhE,MAAI,eAAe,QAAQ;AACvB,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC7E;AAEA,eAAa;AAAA,IACT;AAAA,IACA,CAAC,gBAAgB,kBAAkB,uBAAuB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EACxF;AAEA,eAAa,QAAQ,gBAAgB,SAAS;AAC9C,eAAa,QAAQ,kBAAkB,UAAU;AAEjD,qBAAmB,QAAQ,QAAQ,SAAS;AAC5C,qBAAmB,QAAQ,SAAS,oBAAoB;AAExD,MAAI,WAAW;AACX,uBAAmB,SAAS,SAAS,QAAQ;AAAA,EACjD;AAEA,qBAAmB,UAAU,YAAY,UAAU,OAAO;AAC1D,uBAAqB,WAAW,CAAC,kBAAkB;AAEnD,iBAAe;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,mBAAmB,IAAI,MAAM,MAAM,sBAAsB,MAAM,CAAC;AACtE,QAAM,oBAAoB,IAAI,MAAM,MAAM,uBAAuB,MAAM,EAAE;AAEzE,mBAAiB,QAAQ,SAAS,4BAA4B;AAE9D,QAAM,aAAa,KAAK,QAAQ,CAAC,QAAQ;AACrC,UAAM,mBAAmB,IAAI,MAAM,MAAM,2BAA2B,MAAM,CAAC;AAC3E,UAAM,oBAAoB,IAAI,MAAM,MAAM,4BAA4B,MAAM,EAAE;AAC9E,UAAM,mBAAmB,IAAI,MAAM,MAAM,QAAQ,IAAI,CAAC;AACtD,UAAM,qBAAqB,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;AAE1D,UAAM,QAAQ,SAAS,KAAK,EAAC,MAAK,CAAC;AACnC,UAAM,SAAS,UAAU,GAAG;AAC5B,UAAM,WAAW,QAAQ;AAEzB,qBAAiB;AAAA,MACb;AAAA,MACA,CAAC,eAAe,YAAY,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IAC1E;AACA,qBAAiB,QAAQ,aAAa,KAAK;AAC3C,qBAAiB,QAAQ,cAAc,MAAM;AAC7C,qBAAiB,QAAQ,iBAAiB,OAAO,QAAQ,CAAC;AAE1D,qBAAiB,UAAU,IAAI;AAC/B,uBAAmB,WAAW,CAAC,gBAAgB;AAE/C,WAAO,CAAC,kBAAkB,oBAAoB,iBAAiB;AAAA,EACnE,CAAC;AAED,iBAAe,KAAK,kBAAkB,GAAG,YAAY,iBAAiB;AAEtE,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAM,eAAe,IAAI,MAAM,MAAM,kBAAkB,OAAO,CAAC;AAC/D,UAAM,gBAAgB,IAAI,MAAM,MAAM,mBAAmB,OAAO,EAAE;AAElE,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,QAAQ,SAAS,KAAK,EAAC,MAAK,CAAC;AACnC,UAAM,sBAAsB,cAAc,GAAG;AAE7C,QAAI,OAAO,QAAQ,GAAG;AAEtB,UAAM,aAAa,WAAW;AAE9B,iBAAa,QAAQ;AACrB,kBAAc,QAAQ;AACtB,iBAAa,QAAQ,MAAM,UAAU;AACrC,iBAAa,QAAQ,SAAS,mBAAmB;AACjD,iBAAa,QAAQ,QAAQ,UAAU;AACvC,iBAAa,QAAQ,mBAAmB,KAAK;AAC7C,iBAAa,QAAQ,cAAc,IAAI,IAAI;AAE3C,QAAI,qBAAqB;AACrB,mBAAa,SAAS,SAAS,gBAAgB;AAAA,IACnD;AAEA,mBAAe,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,QAAQ,aAAa;AAAA,EACtE;AAEA,iBAAe,KAAK,aAAa;AAEjC,SAAO;AACX;;;AC1HO,IAAM,YAAiC,CAC1C,MACA,OACA,EAAC,kBAAkB,WAAW,MAAK,MAClC;AA1BL;AA2BI,QAAM,aAAa,CAAC;AACpB,QAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,CAAC;AACtD,QAAM,YAAY,IAAI,MAAM,MAAM,cAAc,OAAO,EAAE;AAEzD,MAAI,KAAK,QAAQ;AACb,UAAM,CAAC,KAAK,KAAI,UAAK,CAAC,EAAE,SAAS,QAAjB,YAAwB,CAAC,IAAI;AAE7C,QAAI,SAAS,MAAM;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAEA,UAAM,CAAC,GAAG,GAAG,KAAI,UAAK,KAAK,SAAS,CAAC,EAAE,SAAS,QAA/B,YAAsC,CAAC,MAAM,IAAI;AAElE,QAAI,OAAO,MAAM;AACb,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AAAA,EACJ;AAEA,WAAS,QAAQ;AACjB,YAAU,QAAQ;AAElB,QAAM,kBAAkB,KAAK,OAAO,aAAa,EAAE;AAEnD,MAAI,kBAAkB,GAAG;AACrB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EAC3E;AAEA,WAAS;AAAA,IACL;AAAA,IACA,CAAC,gBAAgB,kBAAkB,wBAAwB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EACzF;AAEA,WAAS,QAAQ,gBAAgB,SAAS;AAC1C,WAAS,QAAQ,6CAAwC;AACzD,aAAW,KAAK,QAAQ;AAExB,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAM,UAAU,IAAI,MAAM,MAAM,YAAY,OAAO,CAAC;AACpD,UAAM,YAAY,IAAI,MAAM,MAAM,UAAU,IAAI,CAAC;AACjD,UAAM,UAAU,IAAI,MAAM,MAAM,QAAQ,IAAI,CAAC;AAC7C,UAAM,WAAW,IAAI,MAAM,MAAM,aAAa,OAAO,EAAE;AACvD,UAAM,eAAe,IAAI,MAAM,MAAM,kBAAkB,OAAO,CAAC;AAC/D,UAAM,gBAAgB,IAAI,MAAM,MAAM,mBAAmB,OAAO,EAAE;AAElE,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAElC,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,QAAQ,SAAS,KAAK,EAAC,MAAK,CAAC;AACnC,UAAM,SAAS,UAAU,GAAG;AAC5B,UAAM,sBAAsB,cAAc,GAAG;AAE7C,QAAI,OAAO,QAAQ,GAAG;AAEtB,UAAM,aAAa,WAAW;AAE9B,YAAQ,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,YAAQ,SAAS,KAAK,CAAC,EAAE,SAAS;AAClC,YAAQ,UAAU,KAAK,CAAC,EAAE;AAC1B,cAAU,WAAW,CAAC,OAAO;AAC7B,YAAQ,QAAQ;AAChB,aAAS,QAAQ;AACjB,iBAAa,QAAQ;AACrB,kBAAc,QAAQ;AACtB,YAAQ,QAAQ,aAAa,KAAK;AAClC,YAAQ,QAAQ,cAAc,MAAM;AACpC,YAAQ,QAAQ,SAAS,CAAC,eAAe,mBAAmB,EAAE,KAAK,GAAG,CAAC;AACvE,YAAQ,QAAQ,QAAQ,KAAK;AAC7B,YAAQ,QAAQ,iBAAiB,UAAU;AAC3C,YAAQ,QAAQ,iBAAiB,OAAO;AACxC,YAAQ,QAAQ,YAAY,MAAM,IAAI,MAAM,IAAI;AAChD,YAAQ,QAAQ,gBAAgB,OAAO;AACvC,iBAAa,QAAQ,MAAM,UAAU;AACrC,iBAAa,QAAQ,SAAS,mBAAmB;AACjD,iBAAa,QAAQ,QAAQ,UAAU;AACvC,iBAAa,QAAQ,mBAAmB,KAAK;AAC7C,iBAAa,QAAQ,cAAc,IAAI,IAAI;AAE3C,QAAI,qBAAqB;AACrB,mBAAa,QAAQ,iBAAiB,MAAM;AAC5C,mBAAa,SAAS,SAAS,gBAAgB;AAE/C,cAAQ,SAAS,SAAS,gBAAgB;AAAA,IAC9C;AAEA,eAAW,KAAK,SAAS,WAAW,QAAQ;AAE5C,eAAW,KAAK,cAAc,GAAG,KAAK,CAAC,EAAE,QAAQ,aAAa;AAAA,EAClE;AAEA,aAAW,KAAK,SAAS;AAEzB,SAAO;AACX;;;AChHA,IAAM,iBAA4D;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,IAAM,uBAAuB,CAAC,SAAuB;AACxD,SAAO,eAAe,IAAI;AAC9B;;;ACXO,SAAS,mBACZ,MACA,OACAC,QACF;AACE,QAAM,SAAS,qBAAqBA,OAAM,OAAO,EAAE,MAAM,OAAOA,MAAK;AAErE,SAAO;AACX;;;ACdA,mBAAkB;AAOlB,SAAS,oBAAoB,QAAiB,KAAa;AACvD,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,SAAO,IAAI,OAAO,QAAQ;AACtB,QAAI,eAAe,QAAQ,CAAC,GAAG;AAC3B;AAAA,IACJ,WAAW,gBAAgB,QAAQ,CAAC,GAAG;AACnC,UAAI,UAAU,GAAG;AACb,eAAO;AAAA,MACX;AACA;AAAA,IACJ;AAEA;AAAA,EACJ;AAEA,SAAO;AACX;AAEA,SAAS,gBAAgB,QAAiB,GAAW;AACjD,SACI,OAAO,CAAC,EAAE,SAAS,oBACnB,OAAO,IAAI,CAAC,EAAE,SAAS,YACvB,OAAO,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM;AAEzC;AAEA,SAAS,eAAe,QAAiB,GAAW;AAChD,SACI,OAAO,CAAC,EAAE,SAAS,oBACnB,OAAO,IAAI,CAAC,EAAE,SAAS,YACvB,OAAO,IAAI,CAAC,EAAE,QAAQ,MAAM,MAAM;AAE1C;AAEO,SAAS,MAAM,SAA4B;AAC9C,QAAM,QAAQ,KAAK,QAAQ,QAAQ,aAAa,EAAE,CAAC;AAEnD,QAAMC,SAAQ,MAAM,MAAM,GAAG;AAC7B,QAAM,SAAoB;AAAA,IACtB,SAAS;AAAA,IACT;AAAA,IACA,OAAO,GAAG,yBAAyB,GAAG,WAAW,CAAC;AAAA,EACtD;AAEA,aAAW,QAAQA,QAAO;AACtB,UAAM,CAAC,KAAK,KAAK,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI;AAE7C,YAAQ,KAAK;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO,UAAU;AACjB;AAAA,MACJ,KAAK;AACD,eAAO,QAAQ,QAAQ,KAAK;AAC5B;AAAA,MACJ;AAAA,IAEJ;AAAA,EACJ;AAEA,SAAO;AACX;AAYO,SAAS,cAAc,QAAiB,OAAuB;AAnFtE;AAoFI,QAAM,QAAQ,eAAe,QAAQ,KAAK;AAC1C,QAAM,UAAU,SAAS,MAAM,CAAC;AAChC,QAAM,eAAe,WAAW,EAAE,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG;AAEjF,MAAI,CAAC,SAAS,CAAC,cAAc;AACzB,WAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,EACJ;AAEA,QAAM,kBAAkB,oBAAoB,QAAQ,QAAQ,CAAC;AAE7D,MAAI,CAAC,iBAAiB;AAClB,WAAO,KAAK,EAAE,QAAQ,UAAU,MAAM;AAEtC,WAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,EACJ;AAEA,MAAI,wBAAwB;AAC5B,QAAM,kBAAkB,kBAAkB;AAE1C,QAAM,iBAAiB,OAAO,KAAK,EAAE;AACrC,QAAM,kBAAkB,OAAO,eAAe,EAAE;AAGhD,MAAI,kBAAkB,gBAAgB;AAClC,WAAO,KAAK,EAAE,QAAQ,UAAU,MAAM;AACtC,WAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,EACJ;AAEA,MAAI,kBAAkB,gBAAgB;AAClC,UAAM,aAAa,OAAO,eAAe;AAGzC,QAAI,cAAc,WAAW,WAAW,GAAG;AACvC,aAAO,KAAK,EAAE,QAAQ,UAAU,MAAM;AACtC,aAAO;AAAA,QACH,MAAM;AAAA,MACV;AAAA,IACJ;AAGA,SACI,yCAAY,UAAS,uBACrB,YAAO,kBAAkB,CAAC,MAA1B,mBAA6B,UAAS,qBACxC;AACE,8BAAwB;AAAA,IAC5B;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACJ;AACJ;AAEO,SAAS,SAAS,QAAiB,KAAa,eAAuB;AAC1E,QAAM,OAAO,CAAC;AACd,MAAI,IAAI;AACR,MAAI,cAAc;AAClB,MAAI,UAAsB;AAAA,IACtB,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,UAAU,IAAI,aAAAC,QAAM,kBAAkB,IAAI,CAAC;AAAA,EAC/C;AAEA,SAAO,IAAI,OAAO,QAAQ;AACtB,UAAM,QAAQ,OAAO,CAAC;AAEtB,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AACD,YAAI,cAAc,IAAI;AAClB,kBAAQ,OAAO,KAAK,KAAK;AAAA,QAC7B;AAEA;AAEA;AAAA,MACJ,KAAK;AACD,YAAI,aAAa;AACb,kBAAQ,OAAO,KAAK,KAAK;AAAA,QAC7B,OAAO;AACH,oBAAU,EAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,UAAU,MAAK;AAAA,QACpD;AAEA;AAAA,MACJ,KAAK;AACD,YAAI,aAAa;AACb,kBAAQ,OAAO,KAAK,KAAK;AAAA,QAC7B,OAAO;AACH,eAAK,KAAK,OAAO;AAAA,QACrB;AAEA;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,YAAI,CAAC,aAAa;AACd,iBAAO;AAAA,QACX;AAEA;AAEA,gBAAQ,OAAO,KAAK,KAAK;AAEzB;AAAA,MACJ,KAAK;AACD,YACI,MAAM,iBACN,OAAO,IAAI,CAAC,EAAE,WACd,OAAO,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,iBACnC;AACE,cAAI,WAAW,CAAC,aAAa;AACzB,iBAAK,KAAK,OAAO;AAAA,UACrB;AAEA,iBAAO;AAAA,QACX;AAEA,YAAI,CAAC,QAAQ,QAAQ,OAAO,IAAI,CAAC,EAAE,SAAS,UAAU;AAClD,kBAAQ,OAAO,OAAO,IAAI,CAAC,EAAE;AAE7B,eAAK;AAAA,QACT,OAAO;AACH,kBAAQ,OAAO,KAAK,KAAK;AAAA,QAC7B;AACA;AAAA,MACJ;AACI,gBAAQ,OAAO,KAAK,KAAK;AAAA,IACjC;AACA;AAAA,EACJ;AAEA,SAAO;AACX;;;AC5MA,IAAM,kBAAkB;AAAA,EACpB,iBAAiB;AAAA,IACb,SAAS;AAAA,IACT,OAAO;AAAA,EACX;AACJ;AAEA,IAAI,cAAc;AAMX,SAAS,UAAU;AAAA,EACtB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,SAAS;AAAA,EACT,WAAW;AACf,IAA4B,CAAC,GAAG;AAC5B,SAAO,SAAS,KAAK,IAAgB,SAA4B;AAC7D,UAAM,EAAC,SAAS,IAAG,IAAI,WAAW,CAAC;AACnC,UAAM,SAAS,CAAC,UAAqB;AACjC,YAAM,EAAC,KAAK,OAAM,IAAI;AACtB,YAAM,QAAQ,OAAO,EAAE,WAAW;AAElC,wBAAkB,KAAK,WAAW,oBAAI,IAAY,CAAC;AAEnD,UAAI,IAAI;AACR,UAAI,kBAAkB;AAEtB,aAAO,IAAI,OAAO,QAAQ;AACtB,cAAM,SAAS,cAAc,QAAQ,CAAC;AAEtC,YAAI,UAAU,QAAQ;AAClB,eAAK,OAAO;AAEZ;AAAA,QACJ;AAEA,cAAM,EAAC,SAAS,iBAAiB,sBAAqB,IAAI;AAE1D,cAAM,cAAc,MAAM,OAAO;AAEjC,YAAI,CAAC,SAAS,gBAAgB,YAAY,OAAO,GAAG;AAChD,sBAAY;AAAA,QAChB;AAEA,cAAMC,QAAO,SAAS,MAAM,QAAQ,IAAI,GAAG,eAAe;AAE1D,YAAIA,MAAK,SAAS,GAAG;AACjB,gBAAM,aAAa,mBAAmBA,OAAM,OAAO;AAAA,YAC/C;AAAA,YACA,WAAW,YAAY;AAAA,YACvB,SAAS,YAAY;AAAA,YACrB;AAAA,UACJ,CAAC;AAGD,gBAAM,OAAO;AAAA,YACT;AAAA,YACA,kBAAkB,IAAI,IAAI;AAAA,YAC1B,GAAG;AAAA,UACP;AAEA;AACA,4BAAkB;AAAA,QACtB,OAAO;AACH,gBAAM,OAAO,OAAO,GAAG,kBAAkB,IAAI,IAAI,qBAAqB;AAAA,QAC1E;AAAA,MACJ;AAEA,UAAI,iBAAiB;AACjB,YAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,YAAI,KAAK,SAAS,IAAI,KAAK,UAAU,CAAC;AACtC,YAAI,KAAK,QAAQ,IAAI,KAAK,SAAS,CAAC;AACpC,YAAI,KAAK,OAAO,KAAK,aAAa;AAClC,YAAI,KAAK,MAAM,KAAK,cAAc;AAElC,YAAI,QAAQ;AACR,2BAAiB,EAAC,eAAe,gBAAgB,OAAM,GAAG,IAAI,OAAO;AAAA,QACzE;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI;AACA,SAAG,KAAK,MAAM,OAAO,oBAAoB,QAAQ,MAAM;AAAA,IAC3D,SAAS,GAAG;AACR,SAAG,KAAK,MAAM,KAAK,QAAQ,MAAM;AAAA,IACrC;AAAA,EACJ;AACJ;",
6
6
  "names": ["exports", "module", "exports", "module", "GithubSlugger", "props", "props", "Token", "tabs"]
7
7
  }
@@ -1,2 +1,2 @@
1
- @charset "UTF-8";.yfm-tabs{margin-bottom:15px}.yfm-tab-list{display:flex;flex-wrap:wrap;margin-bottom:15px;border-bottom:1px solid rgba(0,0,0,.07)}.yfm-tab{margin-bottom:-1px;margin-right:20px;border-bottom:2px solid transparent;padding:6px 0 7px;font-weight:700;outline:none;cursor:pointer;user-select:none;white-space:break-spaces}.yfm-tab:last-child{margin-right:0}.yfm-tab:hover,.yfm-tab:active{color:#004080}.yfm-tab.active{border-bottom-color:#027bf3}.yfm-tab:focus{outline:2px solid #4d90fe;border-radius:2px}.yfm-tab:focus:not(:focus-visible){outline:0}.yfm-tab-panel{position:absolute;visibility:hidden;overflow:hidden;height:0}.yfm-tab-panel:first-child{margin-top:0!important}.yfm-tab-panel:last-child{margin-bottom:0!important}.yfm-tab-panel.active{position:relative;visibility:visible;overflow:visible;height:auto}.yfm-tabs-dropdown{position:relative;width:90%;margin-bottom:0;--yfm-tabs-dropdown-color: #F2F2F2;--yfm-tabs-dropdown-text-color: #A8A8A8;--yfm-tabs-dropdown-color-border: #CCC}.yfm-tabs-dropdown .yfm-tabs-dropdown-select{padding:10px 30px 10px 10px;background:var(--g-color-base-background);border:1px solid var(--yfm-tabs-dropdown-color-border);color:var(--yfm-tabs-dropdown-text-color);border-radius:5px;position:relative;user-select:none;margin-bottom:10px;max-width:500px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;z-index:10}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.filled{color:inherit}.yfm-tabs-dropdown .yfm-tabs-dropdown-select:after{content:"";position:absolute;display:block;right:10px;top:25%;transform:rotate(90deg);transition:transform .2s;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);width:20px;height:20px}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.active+.yfm-tabs-dropdown-menu{transform:scaleY(1)}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.active:after{transform:rotate(0)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu{width:100%;max-width:500px;max-height:500px;overflow-y:scroll;padding:10px 0;position:absolute;z-index:10;display:flex;flex-direction:column;border:1px solid var(--yfm-tabs-dropdown-color-border);border-radius:5px;background-color:var(--g-color-base-background);transform:scaleY(0);list-style:none;z-index:100;transition:transform 125ms;transform-origin:top center}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li{user-select:none;cursor:pointer;background-color:var(--g-color-base-background)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li:hover{background-color:var(--g-color-base-simple-hover);color:inherit}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab{padding:5px 0 5px 10px;border-radius:0;border-bottom:unset;margin:0;font-weight:500}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab.active{background-color:var(--g-color-base-selection)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab:hover{color:inherit}.yfm-tabs-dropdown>.yfm-tab-panel.active{border:1px solid #F2F2F2;transform:translateY(-30px);border-radius:12px;padding:40px 12px 16px}.yfm-tabs-dropdown>.yfm-tabs{width:100%}.yfm-tabs-accordion{max-width:80%}@media (max-width: 600px){.yfm-tabs-accordion{max-width:100%}}.yfm-tabs-accordion>.yfm-tab:first-of-type{border-top-color:transparent}.yfm-tabs-accordion .yfm-tab{padding:8px 0 12px 6px;position:relative;display:flex;justify-content:space-between;gap:10px;border-top:1px solid #E5E5E5;font-weight:500;scroll-margin-top:20px}.yfm-tabs-accordion .yfm-tab:after{content:"";display:block;transform:rotate(-180deg);transition:transform .3s,background-color .2s;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);width:20px;height:20px;border-radius:6px;padding:6px;align-self:center}.yfm-tabs-accordion .yfm-tab.active{border-bottom-color:transparent!important;font-weight:700}.yfm-tabs-accordion .yfm-tab.active:after{transform:rotate(0)}.yfm-tabs-accordion .yfm-tab:hover{color:#3f5799}.yfm-tabs-accordion .yfm-tab-panel.active{margin:10px 0 25px 6px}.yfm-tabs-vertical>.yfm-tab-list{flex-direction:column;border-bottom:unset}.yfm-tabs-vertical>.yfm-tab-panel{margin-left:30px}.yfm-tabs-vertical>.yfm-tab-group{display:flex;flex-direction:row;margin-bottom:5px}.yfm-tabs-vertical .yfm-vertical-tab>input[type=radio]{visibility:hidden;width:0;height:0}.yfm-tabs-vertical .yfm-vertical-tab>label{display:inline-block;cursor:pointer;position:relative;padding-left:25px;margin-right:0;line-height:18px;user-select:none}.yfm-tabs-vertical .yfm-vertical-tab>label:before{font-family:initial!important;content:"";position:absolute;top:0;left:0;bottom:1px;border-radius:50%;width:18px;height:18px;border:#dfdfdf 1px solid;background-color:#fff}.yfm-tabs-vertical .yfm-vertical-tab input[type=radio]:checked+label:before{content:"\2022";background-color:#5282ff;text-align:center;vertical-align:middle;font-size:20px;white-space:pre;display:inline-flex;justify-content:center;align-items:center;color:#fff}.yfm-tabs-vertical .yfm-vertical-tab{border-bottom:unset!important}
1
+ @charset "UTF-8";.yfm-tabs{margin-bottom:15px}.yfm-tab-list{display:flex;flex-wrap:wrap;margin-bottom:15px;border-bottom:1px solid rgba(0,0,0,.07)}.yfm-tab{margin-bottom:-1px;margin-right:20px;border-bottom:2px solid transparent;padding:6px 0 7px;font-weight:700;outline:none;cursor:pointer;user-select:none;white-space:break-spaces}.yfm-tab:last-child{margin-right:0}.yfm-tab:hover,.yfm-tab:active{color:#004080}.yfm-tab.active{border-bottom-color:#027bf3}.yfm-tab:focus{outline:2px solid #4d90fe;border-radius:2px}.yfm-tab:focus:not(:focus-visible){outline:0}.yfm-tab-panel{position:absolute;visibility:hidden;overflow:hidden;height:0}.yfm-tab-panel:first-child{margin-top:0!important}.yfm-tab-panel:last-child{margin-bottom:0!important}.yfm-tab-panel.active{position:relative;visibility:visible;overflow:visible;height:auto}.yfm-tabs-dropdown{position:relative;width:90%;margin-bottom:0;--yfm-tabs-dropdown-color: #F2F2F2;--yfm-tabs-dropdown-text-color: #A8A8A8;--yfm-tabs-dropdown-color-border: #CCC}.yfm-tabs-dropdown .yfm-tabs-dropdown-select{padding:10px 30px 10px 10px;background:var(--g-color-base-background);border:1px solid var(--yfm-tabs-dropdown-color-border);color:var(--yfm-tabs-dropdown-text-color);border-radius:5px;position:relative;user-select:none;margin-bottom:10px;max-width:500px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;z-index:10}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.filled{color:inherit}.yfm-tabs-dropdown .yfm-tabs-dropdown-select:after{content:"";position:absolute;display:block;right:10px;top:25%;transform:rotate(90deg);transition:transform .2s;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);width:20px;height:20px}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.active+.yfm-tabs-dropdown-menu{transform:scaleY(1)}.yfm-tabs-dropdown .yfm-tabs-dropdown-select.active:after{transform:rotate(0)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu{width:100%;max-width:500px;max-height:500px;overflow-y:scroll;padding:10px 0;position:absolute;z-index:10;display:flex;flex-direction:column;border:1px solid var(--yfm-tabs-dropdown-color-border);border-radius:5px;background-color:var(--g-color-base-background);transform:scaleY(0);list-style:none;z-index:100;transition:transform 125ms;transform-origin:top center}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li{user-select:none;cursor:pointer;background-color:var(--g-color-base-background)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li:hover{background-color:var(--g-color-base-simple-hover);color:inherit}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab{padding:5px 0 5px 10px;border-radius:0;border-bottom:unset;margin:0;font-weight:500}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab.active{background-color:var(--g-color-base-selection)}.yfm-tabs-dropdown>.yfm-tabs-dropdown-menu>li.yfm-tab:hover{color:inherit}.yfm-tabs-dropdown>.yfm-tab-panel.active{border:1px solid #F2F2F2;transform:translateY(-30px);border-radius:12px;padding:40px 12px 16px}.yfm-tabs-dropdown>.yfm-tabs{width:100%}.yfm-tabs-accordion{max-width:80%}@media (max-width: 600px){.yfm-tabs-accordion{max-width:100%}}.yfm-tabs-accordion>.yfm-tab:first-of-type{border-top-color:transparent}.yfm-tabs-accordion>.yfm-tab{padding:8px 0 12px 6px;position:relative;display:flex;justify-content:space-between;gap:10px;border-top:1px solid #E5E5E5;font-weight:500;scroll-margin-top:20px}.yfm-tabs-accordion>.yfm-tab:after{content:"";display:block;transform:rotate(-180deg);transition:transform .3s,background-color .2s;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);width:20px;height:20px;border-radius:6px;padding:6px;align-self:center}.yfm-tabs-accordion>.yfm-tab.active{border-bottom-color:transparent!important;font-weight:700}.yfm-tabs-accordion>.yfm-tab.active:after{transform:rotate(0)}.yfm-tabs-accordion>.yfm-tab:hover{color:#3f5799}.yfm-tabs-accordion .yfm-tab-panel.active{margin:10px 0 25px 6px}.yfm-tabs-vertical>.yfm-tab-list{flex-direction:column;border-bottom:unset}.yfm-tabs-vertical>.yfm-tab-panel{margin-left:30px}.yfm-tabs-vertical>.yfm-tab-group{display:flex;flex-direction:row;margin-bottom:5px}.yfm-tabs-vertical .yfm-vertical-tab>input[type=radio]{visibility:hidden;width:0;height:0}.yfm-tabs-vertical .yfm-vertical-tab>label{display:inline-block;cursor:pointer;position:relative;padding-left:25px;margin-right:0;line-height:18px;user-select:none}.yfm-tabs-vertical .yfm-vertical-tab>label:before{font-family:initial!important;content:"";position:absolute;top:0;left:0;bottom:1px;border-radius:50%;width:18px;height:18px;border:#dfdfdf 1px solid;background-color:#fff}.yfm-tabs-vertical .yfm-vertical-tab input[type=radio]:checked+label:before{content:"\2022";background-color:#5282ff;text-align:center;vertical-align:middle;font-size:20px;white-space:pre;display:inline-flex;justify-content:center;align-items:center;color:#fff}.yfm-tabs-vertical .yfm-vertical-tab{border-bottom:unset!important}
2
2
  /*# sourceMappingURL=index.css.map */
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/runtime/scss/tabs.scss"],
4
- "sourcesContent": [".yfm-tabs {\n margin-bottom: 15px;\n}\n\n.yfm-tab-list {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 15px;\n\n border-bottom: 1px solid rgba(0, 0, 0, 0.07);\n}\n\n\n.yfm-tab {\n margin-bottom: -1px;\n margin-right: 20px;\n border-bottom: 2px solid transparent;\n\n padding: 6px 0 7px 0;\n font-weight: 700;\n outline: none;\n cursor: pointer;\n user-select: none;\n white-space: break-spaces;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover, &:active {\n color: #004080;\n }\n\n &.active {\n border-bottom-color: #027bf3;\n }\n\n &:focus {\n outline: 2px solid #4d90fe;\n border-radius: 2px;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n}\n\n.yfm-tab-panel {\n position: absolute;\n visibility: hidden;\n overflow: hidden;\n height: 0;\n\n &:first-child {\n margin-top: 0 !important;\n }\n\n &:last-child {\n margin-bottom: 0 !important;\n }\n\n &.active {\n position: relative;\n visibility: visible;\n overflow: visible;\n height: auto;\n }\n}\n\n\n.yfm-tabs-dropdown {\n position: relative;\n width: 90%;\n margin-bottom: 0;\n\n --yfm-tabs-dropdown-color: #F2F2F2;\n --yfm-tabs-dropdown-text-color: #A8A8A8;\n --yfm-tabs-dropdown-color-border: #CCC;\n\n .yfm-tabs-dropdown-select {\n padding: 10px 30px 10px 10px;\n background: var(--g-color-base-background);\n border: 1px solid var(--yfm-tabs-dropdown-color-border);\n color: var(--yfm-tabs-dropdown-text-color);\n border-radius: 5px;\n position: relative;\n user-select: none;\n margin-bottom: 10px;\n max-width: 500px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n z-index: 10;\n \n &.filled {\n color: inherit;\n }\n\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n right: 10px;\n top: 25%;\n transform: rotate(90deg);\n transition: transform 200ms;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);\n width: 20px;\n height: 20px;\n }\n\n &.active {\n & + .yfm-tabs-dropdown-menu {\n transform: scaleY(1);\n }\n \n &::after {\n transform: rotate(0deg);\n }\n }\n }\n\n & > .yfm-tabs-dropdown-menu {\n width: 100%;\n max-width: 500px;\n max-height: 500px;\n overflow-y: scroll;\n padding: 10px 0px;\n position: absolute;\n z-index: 10;\n\n display: flex;\n flex-direction: column;\n\n border: 1px solid var(--yfm-tabs-dropdown-color-border);\n border-radius: 5px;\n background-color: var(--g-color-base-background);\n transform: scaleY(0);\n\n list-style: none;\n z-index: 100;\n\n transition: transform 125ms;\n transform-origin: top center;\n \n & > li {\n user-select: none;\n cursor: pointer;\n background-color: var(--g-color-base-background);\n\n &:hover {\n background-color: var(--g-color-base-simple-hover);\n color: inherit;\n }\n\n &.yfm-tab {\n padding: 5px 0 5px 10px;\n border-radius: 0;\n border-bottom: unset;\n margin: 0;\n font-weight: 500;\n\n &.active {\n background-color: var(--g-color-base-selection);\n }\n\n &:hover {\n color: inherit;\n }\n }\n }\n }\n\n & > .yfm-tab-panel {\n &.active {\n border: 1px solid #F2F2F2;\n transform: translateY(-30px);\n border-radius: 12px;\n padding: 40px 12px 16px 12px;\n }\n }\n\n & > .yfm-tabs {\n width: 100%;\n }\n}\n\n.yfm-tabs-accordion {\n max-width: 80%;\n @media (max-width: 600px) {\n max-width: 100%;\n }\n\n & > .yfm-tab:first-of-type {\n border-top-color: transparent;\n }\n \n .yfm-tab {\n padding: 8px 0 12px 6px;;\n position: relative;\n display: flex;\n justify-content: space-between;\n gap: 10px;\n\n border-top: 1px solid #E5E5E5;\n font-weight: 500;\n\n scroll-margin-top: 20px;\n\n &::after {\n content: '';\n display: block;\n transform: rotate(-180deg);\n transition: \n transform 300ms,\n background-color 200ms;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);\n width: 20px;\n height: 20px;\n border-radius: 6px;\n padding: 6px;\n align-self: center;\n }\n\n &.active {\n border-bottom-color: transparent !important;\n font-weight: 700;\n\n &::after {\n transform: rotate(0);\n }\n }\n\n &:hover {\n color: #3F5799;\n }\n }\n\n .yfm-tab-panel {\n &.active {\n margin: 10px 0 25px 6px;\n }\n }\n}\n\n.yfm-tabs-vertical {\n & > .yfm-tab-list {\n flex-direction: column;\n border-bottom: unset;\n }\n\n & > .yfm-tab-panel {\n margin-left: 30px;\n }\n\n & > .yfm-tab-group {\n display: flex;\n flex-direction: row;\n margin-bottom: 5px;\n }\n\n .yfm-vertical-tab > input[type=radio] {\n visibility: hidden;\n width: 0;\n height: 0;\n }\n\n .yfm-vertical-tab > label {\n display: inline-block;\n cursor: pointer;\n position: relative;\n padding-left: 25px;\n margin-right: 0;\n line-height: 18px;\n user-select: none;\n }\n\n .yfm-vertical-tab > label:before {\n font-family: initial !important;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n bottom: 1px;\n border-radius: 50%;\n width: 18px;\n height: 18px; \n border: #dfdfdf 1px solid;\n background-color: white;\n }\n \n /* Checked */\n .yfm-vertical-tab input[type=radio]:checked + label:before {\n content: \"•\";\n background-color: rgb(82, 130, 255);\n text-align: center;\n vertical-align: middle;\n font-size: 20px;\n white-space: pre;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: white;\n }\n \n .yfm-vertical-tab {\n border-bottom: unset !important;\n }\n\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": [".yfm-tabs {\n margin-bottom: 15px;\n}\n\n.yfm-tab-list {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 15px;\n\n border-bottom: 1px solid rgba(0, 0, 0, 0.07);\n}\n\n\n.yfm-tab {\n margin-bottom: -1px;\n margin-right: 20px;\n border-bottom: 2px solid transparent;\n\n padding: 6px 0 7px 0;\n font-weight: 700;\n outline: none;\n cursor: pointer;\n user-select: none;\n white-space: break-spaces;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover, &:active {\n color: #004080;\n }\n\n &.active {\n border-bottom-color: #027bf3;\n }\n\n &:focus {\n outline: 2px solid #4d90fe;\n border-radius: 2px;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n}\n\n.yfm-tab-panel {\n position: absolute;\n visibility: hidden;\n overflow: hidden;\n height: 0;\n\n &:first-child {\n margin-top: 0 !important;\n }\n\n &:last-child {\n margin-bottom: 0 !important;\n }\n\n &.active {\n position: relative;\n visibility: visible;\n overflow: visible;\n height: auto;\n }\n}\n\n\n.yfm-tabs-dropdown {\n position: relative;\n width: 90%;\n margin-bottom: 0;\n\n --yfm-tabs-dropdown-color: #F2F2F2;\n --yfm-tabs-dropdown-text-color: #A8A8A8;\n --yfm-tabs-dropdown-color-border: #CCC;\n\n .yfm-tabs-dropdown-select {\n padding: 10px 30px 10px 10px;\n background: var(--g-color-base-background);\n border: 1px solid var(--yfm-tabs-dropdown-color-border);\n color: var(--yfm-tabs-dropdown-text-color);\n border-radius: 5px;\n position: relative;\n user-select: none;\n margin-bottom: 10px;\n max-width: 500px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n z-index: 10;\n \n &.filled {\n color: inherit;\n }\n\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n right: 10px;\n top: 25%;\n transform: rotate(90deg);\n transition: transform 200ms;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);\n width: 20px;\n height: 20px;\n }\n\n &.active {\n & + .yfm-tabs-dropdown-menu {\n transform: scaleY(1);\n }\n \n &::after {\n transform: rotate(0deg);\n }\n }\n }\n\n & > .yfm-tabs-dropdown-menu {\n width: 100%;\n max-width: 500px;\n max-height: 500px;\n overflow-y: scroll;\n padding: 10px 0px;\n position: absolute;\n z-index: 10;\n\n display: flex;\n flex-direction: column;\n\n border: 1px solid var(--yfm-tabs-dropdown-color-border);\n border-radius: 5px;\n background-color: var(--g-color-base-background);\n transform: scaleY(0);\n\n list-style: none;\n z-index: 100;\n\n transition: transform 125ms;\n transform-origin: top center;\n \n & > li {\n user-select: none;\n cursor: pointer;\n background-color: var(--g-color-base-background);\n\n &:hover {\n background-color: var(--g-color-base-simple-hover);\n color: inherit;\n }\n\n &.yfm-tab {\n padding: 5px 0 5px 10px;\n border-radius: 0;\n border-bottom: unset;\n margin: 0;\n font-weight: 500;\n\n &.active {\n background-color: var(--g-color-base-selection);\n }\n\n &:hover {\n color: inherit;\n }\n }\n }\n }\n\n & > .yfm-tab-panel {\n &.active {\n border: 1px solid #F2F2F2;\n transform: translateY(-30px);\n border-radius: 12px;\n padding: 40px 12px 16px 12px;\n }\n }\n\n & > .yfm-tabs {\n width: 100%;\n }\n}\n\n.yfm-tabs-accordion {\n max-width: 80%;\n @media (max-width: 600px) {\n max-width: 100%;\n }\n\n & > .yfm-tab:first-of-type {\n border-top-color: transparent;\n }\n \n & > .yfm-tab {\n padding: 8px 0 12px 6px;\n position: relative;\n display: flex;\n justify-content: space-between;\n gap: 10px;\n\n border-top: 1px solid #E5E5E5;\n font-weight: 500;\n\n scroll-margin-top: 20px;\n\n &::after {\n content: '';\n display: block;\n transform: rotate(-180deg);\n transition: \n transform 300ms,\n background-color 200ms;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Im0zIDYgNSA1IDUtNSIvPjwvc3ZnPg==);\n width: 20px;\n height: 20px;\n border-radius: 6px;\n padding: 6px;\n align-self: center;\n }\n\n &.active {\n border-bottom-color: transparent !important;\n font-weight: 700;\n\n &::after {\n transform: rotate(0);\n }\n }\n\n &:hover {\n color: #3F5799;\n }\n }\n\n .yfm-tab-panel {\n &.active {\n margin: 10px 0 25px 6px;\n }\n }\n}\n\n.yfm-tabs-vertical {\n & > .yfm-tab-list {\n flex-direction: column;\n border-bottom: unset;\n }\n\n & > .yfm-tab-panel {\n margin-left: 30px;\n }\n\n & > .yfm-tab-group {\n display: flex;\n flex-direction: row;\n margin-bottom: 5px;\n }\n\n .yfm-vertical-tab > input[type=radio] {\n visibility: hidden;\n width: 0;\n height: 0;\n }\n\n .yfm-vertical-tab > label {\n display: inline-block;\n cursor: pointer;\n position: relative;\n padding-left: 25px;\n margin-right: 0;\n line-height: 18px;\n user-select: none;\n }\n\n .yfm-vertical-tab > label:before {\n font-family: initial !important;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n bottom: 1px;\n border-radius: 50%;\n width: 18px;\n height: 18px; \n border: #dfdfdf 1px solid;\n background-color: white;\n }\n \n /* Checked */\n .yfm-vertical-tab input[type=radio]:checked + label:before {\n content: \"•\";\n background-color: rgb(82, 130, 255);\n text-align: center;\n vertical-align: middle;\n font-size: 20px;\n white-space: pre;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: white;\n }\n \n .yfm-vertical-tab {\n border-bottom: unset !important;\n }\n\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";(()=>{var x="yfm-tabs",L="yfm-tab",O="yfm-tab-panel",H="yfm-tab-list",l="active";var T="data-diplodoc-group",G="data-diplodoc-key",y="data-diplodoc-variant",S="data-diplodoc-id",U="defaultTabsGroup-";var F="data-diplodoc-forced";var W="yfm-tabs-dropdown-select";var w="yfm-tabs-vertical";var v=(g=>(g.Regular="regular",g.Radio="radio",g.Dropdown="dropdown",g.Accordion="accordion",g))(v||{}),X=Symbol.for("diplodocTabs");var h=C=>{let t=C.composedPath();return Array.isArray(t)&&t.length>0?t[0]:C.target},R=C=>{let t=h(C);return!t||!t.matches},Z=C=>Math.abs(C.scrollHeight-C.clientHeight)>1?C:C.parentElement?Z(C.parentElement):void 0,Q=(C,t)=>{let e=C.getBoundingClientRect(),o=t.getBoundingClientRect();return{top:e.top-o.top,left:e.left-o.left,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}};var n={TABS:`.${x}`,TAB_LIST:`.${H}`,TAB:`.${L}`,TAB_PANEL:`.${O}`,VERTICAL_TABS:`.${w}`},f=class{constructor(t,e={}){this._onSelectTabHandlers=new Set;this._currentPageTabGroups=[];this._isRestoringTabs=!1;this._document=t,this._options=Object.assign({saveTabsToLocalStorage:!1,saveTabsToQueryStateMode:"none"},e),this._document.addEventListener("click",o=>{let g=h(o);if(o.target&&this.hideAllDropdown(o.target),R(o))return;if(this.isElementDropdownSelect(g)){g.classList.toggle(l);return}if(!this.isValidTabElement(g))return;let I=this.getTabDataFromHTMLElement(g);I&&this._selectTab(I,g)}),this._document.addEventListener("keydown",o=>{let g=null;switch(o.key){case"ArrowLeft":{g="left";break}case"ArrowRight":{g="right";break}case"ArrowUp":{g="left";break}case"ArrowDown":{g="right";break}}if(!g)return;let I=h(o);if(R(o)||!this.isValidTabElement(I))return;let{tabs:a,nodes:c}=this.getTabs(I),i=this.getTabDataFromHTMLElement(I),r=a.findIndex(({key:A})=>(i==null?void 0:i.key)&&A===i.key);if(!i||a.length<=1||r===-1)return;let s=(r+(g==="left"?-1:1)+a.length)%a.length;this.selectTab(a[s]),c[s].focus()})}configure(t){this._options=Object.assign(this._options,t)}onSelectTab(t){return this._onSelectTabHandlers.add(t),()=>{this._onSelectTabHandlers.delete(t)}}selectTabById(t,e){let o=this._document.querySelector(`${n.TAB}[${S}="${t}"]`);if(!o||!this.isValidTabElement(o))return;let g=this.getTabDataFromHTMLElement(o);g&&this._selectTab(g,o),e!=null&&e.scrollToElement&&o.scrollIntoView()}selectTab(t){this._selectTab(t)}restoreTabs(t){this._isRestoringTabs=!0;try{for(let[e,o]of Object.entries(t))if(e){let g={group:e,...o};this.selectTab(g)}}finally{this._isRestoringTabs=!1}}getTabsFromLocalStorage(){return JSON.parse(localStorage.getItem("tabsHistory")||"{}")}getTabsFromSearchQuery(){let t={},e=new URLSearchParams(window.location.search);return e.has("tabs")&&(e.get("tabs")||"").split(",").forEach(I=>{let a=I.split("_"),[c,i]=a,r="regular";if(a.length===3&&(r=a[2]),c&&i&&Object.values(v).includes(r)){let s=i;t[c]={key:s,variant:r}}}),t}updateLocalStorageWithTabs(t){this._options.saveTabsToLocalStorage&&(this._isRestoringTabs||localStorage.setItem("tabsHistory",JSON.stringify(t)))}updateQueryParamWithTabs(t){if(this._isRestoringTabs)return;let e=new URLSearchParams(window.location.search),o=Object.entries(t).map(([a,{key:c,variant:i}])=>i==="regular"?`${a}_${c}`:`${a}_${c}_${i}`);o.length>0?e.set("tabs",o.join(",")):e.delete("tabs");let g=history.state||{},I=new URL(window.location.href);I.search=e.toString(),window.history.replaceState({...g},document.title,I.href)}getCurrentPageTabHistory(t){return Object.fromEntries(Object.entries(t).filter(([e])=>this._currentPageTabGroups.includes(e)))}onPageChanged(){this._currentPageTabGroups=this.getCurrentPageTabGroups()}getCurrentPageTabGroups(){let t=this._document.getElementsByClassName(x),e=new Set;return Array.from(t).forEach(o=>{let g=o.getAttribute(T);g&&e.add(g)}),Array.from(e)}clearTabsPreferred(){localStorage.removeItem("tabsHistory"),this.updateQueryParamWithTabs({})}_selectTab(t,e){let{group:o,key:g,variant:I}=t;if(!o)return;this.saveTabPreferred({group:o,key:g,variant:I});let a=e&&Z(e),c=a&&Q(e,a);this.updateHTML({group:o,key:g,variant:I},e,I)>0&&(this.fireSelectTabEvent({group:o,key:g,variant:I},e==null?void 0:e.dataset.diplodocId),c&&this.resetScroll(e,a,c))}updateHTML(t,e,o){switch(o){case"radio":return this.updateHTMLRadio(t,e);case"accordion":return this.updateHTMLAccordion(t,e);case"regular":return this.updateHTMLRegular(t);case"dropdown":return this.updateHTMLDropdown(t);default:return 0}}saveTabPreferred(t){let e={};switch(this._options.saveTabsToLocalStorage&&(e=JSON.parse(localStorage.getItem("tabsHistory")||"{}")),e[t.group]={key:t.key,variant:t.variant},this._options.saveTabsToLocalStorage&&this.updateLocalStorageWithTabs(e),this._options.saveTabsToQueryStateMode){case"all":{this.updateQueryParamWithTabs(e);break}case"page":{this.updateQueryParamWithTabs(this.getCurrentPageTabHistory(e));break}}}updateHTMLRadio(t,e){let{group:o,key:g}=t,{isForced:I,root:a}=this.didTabOpenForce(e),c=I?`.yfm-vertical-tab[${F}="true"]`:"",i=this._document.querySelectorAll(`${n.TABS}[${T}="${o}"] ${n.TAB}[${G}="${g}"]${c}`);I&&(a==null||a.removeAttribute(F));let r=0;return i.forEach(s=>{let m=s.parentNode.children;for(let p=0;p<m.length;p+=2){let[d,b]=[m.item(p),m.item(p+1)],u=d.children.item(0);if(d===s){u.checked?(d.classList.remove("active"),b==null||b.classList.remove("active"),u.removeAttribute("checked")):(d.classList.add("active"),b==null||b.classList.add("active"),u.setAttribute("checked","true"));continue}u.hasAttribute("checked")&&(d.classList.remove("active"),b==null||b.classList.remove("active"),u.removeAttribute("checked")),r++}}),r}updateHTMLRegular(t){let{group:e,key:o}=t,g=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${o}"]`),I=0;return g.forEach(a=>{let c=a;if(!this.isValidTabElement(c)||c.dataset.diplodocIsActive==="true")return;I++;let i=a,r=i.parentNode,s=r==null?void 0:r.parentNode,A=Array.from((r==null?void 0:r.querySelectorAll(n.TAB))||[]),m=Array.from((s==null?void 0:s.children)||[]).filter(d=>d.classList.contains(O)),p=A.indexOf(i);A.forEach((d,b)=>{let u=m[b],B=b===p,N=d;N.dataset.diplodocIsActive=B?"true":"false",d.classList.toggle(l,B),d.setAttribute("aria-selected",B.toString()),d.setAttribute("tabindex",B?"0":"-1"),u.classList.toggle(l,B)})}),I}updateHTMLDropdown(t){let{group:e,key:o}=t,g=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${o}"]`),I=0;return g.forEach(a=>{let c=a.closest(`[${y}=dropdown]`);if(!(c!=null&&c.children))return;let i=c.children.item(0),r=c.children.item(1);i==null||i.classList.remove(l);let s=Array.from((r==null?void 0:r.children)||[]).indexOf(a)+2;for(let A=2;A<c.children.length;A++){let m=c.children.item(A),p=r==null?void 0:r.children.item(A-2);if(I++,s===A){m==null||m.classList.add(l),p.classList.add(l),i.innerHTML=a.innerHTML,i.classList.add("filled");continue}p.classList.remove(l),m.classList.remove(l)}}),I}updateHTMLAccordion(t,e){let{group:o,key:g}=t,I=this._document.querySelectorAll(`${n.TABS}[${T}="${o}"] ${n.TAB}[${G}="${g}"]`),a=0;return I.forEach(c=>{let i=c.closest(`[${y}=accordion]`);if(i!=null&&i.children)for(let r=0;r<i.children.length;r+=2){let s=i.children.item(r),A=i.children.item(r+1);if(a++,c===s){s==null||s.classList.toggle(l),A==null||A.classList.toggle(l);continue}s==null||s.classList.remove(l),A==null||A.classList.remove(l)}}),e&&!this.checkVisible(e)&&setTimeout(()=>{e.scrollIntoView({block:"nearest"})}),a}checkVisible(t){let e=t.getBoundingClientRect(),o=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-o>=0)}hideAllDropdown(t){this._document.querySelectorAll(".yfm-tabs-dropdown-select.active").forEach(o=>{o.contains(t)||o.classList.remove(l)})}resetScroll(t,e,o){let g=Q(t,e),I=g.top-o.top,a=g.left-o.left,c=g.scrollTop-o.scrollTop,i=g.scrollLeft-o.scrollLeft;e.scrollTo(e.scrollLeft+a-i,e.scrollTop+I-c)}didTabOpenForce(t){if(!t)return{};if(t.dataset.diplodocForced)return{root:t,isForced:!0};let e=t.dataset.diplodocVerticalTab?t:t.parentElement,o=typeof(e==null?void 0:e.dataset.diplodocForced)!="undefined";return{root:e,isForced:o}}fireSelectTabEvent(t,e){let{group:o,key:g,variant:I}=t,a=o.startsWith(U)?{key:g,variant:I}:t;this._onSelectTabHandlers.forEach(c=>{c({tab:a,currentTabId:e})})}getTabsType(t){let e=t.closest(`[${y}]`);if(e)return e.dataset.diplodocVariant}isValidTabElement(t){return!!this.getTabsType(t)}isElementDropdownSelect(t){return t.classList.contains(W)}getTabDataFromHTMLElement(t){var I,a,c;let e=this.getTabsType(t);if(e==="radio"){let i=t.dataset.diplodocVerticalTab?t:t.parentElement,r=i.dataset.diplodocKey,s=(I=i.closest(n.TABS))==null?void 0:I.dataset.diplodocGroup;return r&&s?{group:s,key:r,variant:"radio"}:null}if(e==="dropdown"||e==="accordion"){let i=t.dataset.diplodocKey,r=(a=t.closest(n.TABS))==null?void 0:a.dataset.diplodocGroup;return i&&r?{group:r,key:i,variant:e}:null}let o=t.dataset.diplodocKey,g=(c=t.closest(n.TABS))==null?void 0:c.dataset.diplodocGroup;return o&&g?{group:g,key:o,variant:"regular"}:null}getTabs(t){var I,a;let e=(I=t.closest(n.TABS))==null?void 0:I.dataset.diplodocGroup,o=(a=t.closest(n.TAB_LIST))==null?void 0:a.querySelectorAll(n.TAB),g=[];return o.forEach(c=>{let i=c==null?void 0:c.dataset.diplodocKey;i&&g.push({group:e,key:i,variant:"regular"})}),{tabs:g,nodes:o}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[X]&&(window[X]=new f(document));})();
1
+ "use strict";(()=>{var x="yfm-tabs",H="yfm-tab",O="yfm-tab-panel",L="yfm-tab-list",l="active";var T="data-diplodoc-group",G="data-diplodoc-key",y="data-diplodoc-variant",S="data-diplodoc-id",U="defaultTabsGroup-";var F="data-diplodoc-forced";var w="yfm-tabs-dropdown-select";var W="yfm-tabs-vertical";var v=(g=>(g.Regular="regular",g.Radio="radio",g.Dropdown="dropdown",g.Accordion="accordion",g))(v||{}),Z=Symbol.for("diplodocTabs");var h=C=>{let t=C.composedPath();return Array.isArray(t)&&t.length>0?t[0]:C.target},X=C=>{let t=h(C);return!t||!t.matches},R=C=>Math.abs(C.scrollHeight-C.clientHeight)>1?C:C.parentElement?R(C.parentElement):void 0,Q=(C,t)=>{let e=C.getBoundingClientRect(),o=t.getBoundingClientRect();return{top:e.top-o.top,left:e.left-o.left,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}};var n={TABS:`.${x}`,TAB_LIST:`.${L}`,TAB:`.${H}`,TAB_PANEL:`.${O}`,VERTICAL_TABS:`.${W}`},f=class{constructor(t,e={}){this._onSelectTabHandlers=new Set;this._currentPageTabGroups=[];this._isRestoringTabs=!1;this._document=t,this._options=Object.assign({saveTabsToLocalStorage:!1,saveTabsToQueryStateMode:"none"},e),this._document.addEventListener("click",o=>{let g=h(o);if(o.target&&this.hideAllDropdown(o.target),X(o))return;if(this.isElementDropdownSelect(g)){g.classList.toggle(l);return}if(!this.isValidTabElement(g))return;let I=this.getTabDataFromHTMLElement(g);I&&this._selectTab(I,g)}),this._document.addEventListener("keydown",o=>{let g=null;switch(o.key){case"ArrowLeft":{g="left";break}case"ArrowRight":{g="right";break}case"ArrowUp":{g="left";break}case"ArrowDown":{g="right";break}}if(!g)return;let I=h(o);if(X(o)||!this.isValidTabElement(I))return;let{tabs:a,nodes:c}=this.getTabs(I),i=this.getTabDataFromHTMLElement(I),r=a.findIndex(({key:A})=>(i==null?void 0:i.key)&&A===i.key);if(!i||a.length<=1||r===-1)return;let s=(r+(g==="left"?-1:1)+a.length)%a.length;this.selectTab(a[s]),c[s].focus()})}configure(t){this._options=Object.assign(this._options,t)}onSelectTab(t){return this._onSelectTabHandlers.add(t),()=>{this._onSelectTabHandlers.delete(t)}}selectTabById(t,e){let o=this._document.querySelector(`${n.TAB}[${S}="${t}"]`);if(!o||!this.isValidTabElement(o))return;let g=this.getTabDataFromHTMLElement(o);g&&this._selectTab(g,o),e!=null&&e.scrollToElement&&o.scrollIntoView()}selectTab(t){this._selectTab(t)}restoreTabs(t){this._isRestoringTabs=!0;try{for(let[e,o]of Object.entries(t))if(e){let g={group:e,...o};this.selectTab(g)}}finally{this._isRestoringTabs=!1}}getTabsFromLocalStorage(){return JSON.parse(localStorage.getItem("tabsHistory")||"{}")}getTabsFromSearchQuery(){let t={},e=new URLSearchParams(window.location.search);return e.has("tabs")&&(e.get("tabs")||"").split(",").forEach(I=>{let a=I.split("_"),[c,i]=a,r="regular";if(a.length===3&&(r=a[2]),c&&i&&Object.values(v).includes(r)){let s=i;t[c]={key:s,variant:r}}}),t}updateLocalStorageWithTabs(t){this._options.saveTabsToLocalStorage&&(this._isRestoringTabs||localStorage.setItem("tabsHistory",JSON.stringify(t)))}updateQueryParamWithTabs(t){if(this._isRestoringTabs)return;let e=new URLSearchParams(window.location.search),o=Object.entries(t).map(([a,{key:c,variant:i}])=>i==="regular"?`${a}_${c}`:`${a}_${c}_${i}`);o.length>0?e.set("tabs",o.join(",")):e.delete("tabs");let g=history.state||{},I=new URL(window.location.href);I.search=e.toString(),window.history.replaceState({...g},document.title,I.href)}getCurrentPageTabHistory(t){return Object.fromEntries(Object.entries(t).filter(([e])=>this._currentPageTabGroups.includes(e)))}onPageChanged(){this._currentPageTabGroups=this.getCurrentPageTabGroups()}getCurrentPageTabGroups(){let t=this._document.getElementsByClassName(x),e=new Set;return Array.from(t).forEach(o=>{let g=o.getAttribute(T);g&&e.add(g)}),Array.from(e)}clearTabsPreferred(){localStorage.removeItem("tabsHistory"),this.updateQueryParamWithTabs({})}_selectTab(t,e){let{group:o,key:g,variant:I}=t;if(!o)return;this.saveTabPreferred({group:o,key:g,variant:I});let a=e&&R(e),c=a&&Q(e,a);this.updateHTML({group:o,key:g,variant:I},e,I)>0&&(this.fireSelectTabEvent({group:o,key:g,variant:I},e==null?void 0:e.dataset.diplodocId),c&&this.resetScroll(e,a,c))}updateHTML(t,e,o){switch(o){case"radio":return this.updateHTMLRadio(t,e);case"accordion":return this.updateHTMLAccordion(t,e);case"regular":return this.updateHTMLRegular(t);case"dropdown":return this.updateHTMLDropdown(t);default:return 0}}saveTabPreferred(t){let e={};switch(this._options.saveTabsToLocalStorage&&(e=JSON.parse(localStorage.getItem("tabsHistory")||"{}")),e[t.group]={key:t.key,variant:t.variant},this._options.saveTabsToLocalStorage&&this.updateLocalStorageWithTabs(e),this._options.saveTabsToQueryStateMode){case"all":{this.updateQueryParamWithTabs(e);break}case"page":{this.updateQueryParamWithTabs(this.getCurrentPageTabHistory(e));break}}}updateHTMLRadio(t,e){let{group:o,key:g}=t,{isForced:I,root:a}=this.didTabOpenForce(e),c=I?`.yfm-vertical-tab[${F}="true"]`:"",i=this._document.querySelectorAll(`${n.TABS}[${T}="${o}"] ${n.TAB}[${G}="${g}"]${c}`);I&&(a==null||a.removeAttribute(F));let r=0;return i.forEach(s=>{let m=s.parentNode.children;for(let p=0;p<m.length;p+=2){let[d,b]=[m.item(p),m.item(p+1)],u=d.children.item(0);if(d===s){u.checked?(d.classList.remove("active"),b==null||b.classList.remove("active"),u.removeAttribute("checked")):(d.classList.add("active"),b==null||b.classList.add("active"),u.setAttribute("checked","true"));continue}u.hasAttribute("checked")&&(d.classList.remove("active"),b==null||b.classList.remove("active"),u.removeAttribute("checked")),r++}}),r}updateHTMLRegular(t){let{group:e,key:o}=t,g=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${o}"]`),I=0;return g.forEach(a=>{let c=a;if(!this.isValidTabElement(c)||c.dataset.diplodocIsActive==="true")return;I++;let i=a,r=i.parentNode,s=r==null?void 0:r.parentNode,A=Array.from((r==null?void 0:r.querySelectorAll(n.TAB))||[]),m=Array.from((s==null?void 0:s.children)||[]).filter(d=>d.classList.contains(O)),p=A.indexOf(i);A.forEach((d,b)=>{let u=m[b],B=b===p,N=d;N.dataset.diplodocIsActive=B?"true":"false",d.classList.toggle(l,B),d.setAttribute("aria-selected",B.toString()),d.setAttribute("tabindex",B?"0":"-1"),u.classList.toggle(l,B)})}),I}updateHTMLDropdown(t){let{group:e,key:o}=t,g=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${o}"]`),I=0;return g.forEach(a=>{let c=a.closest(`[${y}=dropdown]`);if(!(c!=null&&c.children))return;let i=c.children.item(0),r=c.children.item(1);i==null||i.classList.remove(l);let s=Array.from((r==null?void 0:r.children)||[]).indexOf(a)+2;for(let A=2;A<c.children.length;A++){let m=c.children.item(A),p=r==null?void 0:r.children.item(A-2);if(I++,s===A){m==null||m.classList.add(l),p.classList.add(l),i.innerHTML=a.innerHTML,i.classList.add("filled");continue}p.classList.remove(l),m.classList.remove(l)}}),I}updateHTMLAccordion(t,e){let{group:o,key:g}=t,I=this._document.querySelectorAll(`${n.TABS}[${T}="${o}"] ${n.TAB}[${G}="${g}"]`),a=0;return I.forEach(c=>{let i=c.closest(`[${y}=accordion]`);if(i!=null&&i.children)for(let r=0;r<i.children.length;r+=2){let s=i.children.item(r),A=i.children.item(r+1);if(a++,c===s){s==null||s.classList.toggle(l),A==null||A.classList.toggle(l);continue}s==null||s.classList.remove(l),A==null||A.classList.remove(l)}}),e&&!this.checkVisible(e)&&setTimeout(()=>{e.scrollIntoView({block:"nearest"})}),a}checkVisible(t){let e=t.getBoundingClientRect(),o=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-o>=0)}hideAllDropdown(t){this._document.querySelectorAll(".yfm-tabs-dropdown-select.active").forEach(o=>{o.contains(t)||o.classList.remove(l)})}resetScroll(t,e,o){let g=Q(t,e),I=g.top-o.top,a=g.left-o.left,c=g.scrollTop-o.scrollTop,i=g.scrollLeft-o.scrollLeft;e.scrollTo(e.scrollLeft+a-i,e.scrollTop+I-c)}didTabOpenForce(t){if(!t)return{};if(t.dataset.diplodocForced)return{root:t,isForced:!0};let e=t.dataset.diplodocVerticalTab?t:t.parentElement,o=typeof(e==null?void 0:e.dataset.diplodocForced)!="undefined";return{root:e,isForced:o}}fireSelectTabEvent(t,e){let{group:o,key:g,variant:I}=t,a=o.startsWith(U)?{key:g,variant:I}:t;this._onSelectTabHandlers.forEach(c=>{c({tab:a,currentTabId:e})})}getTabsType(t){let e=t.closest(`[${y}]`);if(e)return e.dataset.diplodocVariant}isValidTabElement(t){return!!this.getTabsType(t)}isElementDropdownSelect(t){return t.classList.contains(w)}getTabDataFromHTMLElement(t){var I,a,c;let e=this.getTabsType(t);if(e==="radio"){let i=t.dataset.diplodocVerticalTab?t:t.parentElement,r=i.dataset.diplodocKey,s=(I=i.closest(n.TABS))==null?void 0:I.dataset.diplodocGroup;return r&&s?{group:s,key:r,variant:"radio"}:null}if(e==="dropdown"||e==="accordion"){let i=t.dataset.diplodocKey,r=(a=t.closest(n.TABS))==null?void 0:a.dataset.diplodocGroup;return i&&r?{group:r,key:i,variant:e}:null}let o=t.dataset.diplodocKey,g=(c=t.closest(n.TABS))==null?void 0:c.dataset.diplodocGroup;return o&&g?{group:g,key:o,variant:"regular"}:null}getTabs(t){var I,a;let e=(I=t.closest(n.TABS))==null?void 0:I.dataset.diplodocGroup,o=(a=t.closest(n.TAB_LIST))==null?void 0:a.querySelectorAll(n.TAB),g=[];return o.forEach(c=>{let i=c==null?void 0:c.dataset.diplodocKey;i&&g.push({group:e,key:i,variant:"regular"})}),{tabs:g,nodes:o}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[Z]&&(window[Z]=new f(document));})();
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "name": "@diplodoc/tabs-extension",
3
- "version": "3.7.5",
3
+ "version": "3.8.0",
4
4
  "description": "Tabs plugin for Diplodoc transformer and builder",
5
5
  "main": "build/plugin/index.js",
6
6
  "types": "build/plugin/index.d.ts",
7
+ "engines": {
8
+ "node": ">=22",
9
+ "npm": ">=11.5.1"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git@github.com:diplodoc-platform/tabs-extension.git"
14
+ },
7
15
  "exports": {
8
16
  ".": {
9
17
  "types": "./build/plugin/index.d.ts",