@diplodoc/tabs-extension 3.4.0 → 3.5.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/github-slugger/regex.js", "../../node_modules/github-slugger/index.js", "../../src/plugin/index.ts", "../../src/plugin/transform.ts", "../../src/common.ts", "../../src/plugin/utils.ts", "../../src/plugin/copyRuntimeFiles.ts", "../../src/plugin/getTabId.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 MarkdownIt from 'markdown-it';\nimport StateCore from 'markdown-it/lib/rules_core/state_core';\nimport Token from 'markdown-it/lib/token';\n\nimport {\n ACTIVE_CLASSNAME,\n ACTIVE_TAB_TEXT,\n DEFAULT_TABS_GROUP_PREFIX,\n GROUP_DATA_KEY,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TABS_VERTICAL_CLASSNAME,\n TAB_ACTIVE_KEY,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VERTICAL_TAB,\n TAB_PANEL_CLASSNAME,\n VERTICAL_TAB_CLASSNAME,\n VERTICAL_TAB_FORCED_OPEN,\n} from '../common';\n\nimport {addHiddenProperty, generateID, trim, unquote} from './utils';\nimport {copyRuntimeFiles} from './copyRuntimeFiles';\nimport {getName, getTabId, getTabKey} from './getTabId';\n\nexport type PluginOptions = {\n runtimeJsPath: string;\n runtimeCssPath: string;\n containerClasses: string;\n bundle: boolean;\n};\n\nexport type TabsOrientation = 'radio' | 'horizontal';\n\nconst TAB_RE = /`?{% list tabs .*?%}`?/;\n\nlet runsCounter = 0;\n\nexport type Tab = {\n name: string;\n tokens: Token[];\n listItem: Token;\n};\n\ntype TransformOptions = {\n output?: string;\n};\n\nfunction findTabs(tokens: Token[], idx: number, closeTokenIdx: number) {\n const tabs = [];\n let i = idx,\n nestedLevel = -1,\n pending: Tab = {name: '', tokens: [], listItem: new Token('list_item_open', '', 0)};\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 nestedLevel++;\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 break;\n case 'list_item_close':\n if (nestedLevel) {\n pending.tokens.push(token);\n } else {\n tabs.push(pending);\n }\n break;\n case 'ordered_list_close':\n case 'bullet_list_close':\n if (!nestedLevel) {\n return {\n tabs,\n index: i,\n };\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 {\n tabs,\n index: i + 2,\n };\n }\n\n if (!pending.name && tokens[i + 1].type === 'inline') {\n pending.name = tokens[i + 1].content;\n i += 2;\n } else {\n pending.tokens.push(token);\n }\n break;\n default:\n pending.tokens.push(token);\n }\n\n i++;\n }\n\n return {\n tabs,\n index: i,\n };\n}\n\nfunction insertTabs(\n tabs: Tab[],\n state: StateCore,\n align: TabsOrientation,\n {start, end}: {start: number; end: number},\n {\n containerClasses,\n tabsGroup,\n runId,\n }: {containerClasses: string; tabsGroup: string; runId: string},\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 areTabsVerticalClass = align === 'radio' && TABS_VERTICAL_CLASSNAME;\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(\n 'class',\n [TABS_CLASSNAME, containerClasses, areTabsVerticalClass].filter(Boolean).join(' '),\n );\n tabsOpen.attrSet(GROUP_DATA_KEY, tabsGroup);\n tabListOpen.attrSet('class', TABS_LIST_CLASSNAME);\n tabListOpen.attrSet('role', 'tablist');\n\n if (align === '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\n ? didTabHasActiveAttr\n : align === 'horizontal' && 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 (align === 'radio') {\n tabOpen.attrSet(TAB_DATA_VERTICAL_TAB, 'true');\n tabOpen.attrJoin('class', VERTICAL_TAB_CLASSNAME);\n }\n\n if (isTabActive) {\n if (align === 'radio') {\n tabOpen.attrSet(VERTICAL_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 (align === '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 if (align === 'horizontal') {\n tabsTokens.push(tabsOpen);\n tabsTokens.push(tabListOpen);\n tabsTokens.push(...tabListTokens);\n tabsTokens.push(tabListClose);\n tabsTokens.push(...tabPanelsTokens);\n }\n\n tabsTokens.push(tabsClose);\n\n state.tokens.splice(start, end - start + 1, ...tabsTokens);\n\n return tabsTokens.length;\n}\n\nfunction isTabSelected(tab: Tab) {\n const {name} = tab;\n\n return name.includes(ACTIVE_TAB_TEXT);\n}\n\nfunction findCloseTokenIdx(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\ntype TabsProps = {\n content: string;\n orientation: TabsOrientation;\n group: string;\n};\n\nfunction matchOpenToken(tokens: Token[], i: number) {\n return (\n tokens[i].type === 'paragraph_open' &&\n tokens[i + 1].type === 'inline' &&\n props(tokens[i + 1].content)\n );\n}\n\nfunction props(target: string): TabsProps | undefined {\n const matched = target.match(TAB_RE);\n\n if (!matched) {\n return undefined;\n }\n\n const clean = trim(matched[0].replace('list tabs', ''));\n\n const props = clean.split(' ');\n const result: TabsProps = {\n content: clean,\n orientation: 'horizontal',\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 result.orientation = key as TabsOrientation;\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}\nexport function transform({\n runtimeJsPath = '_assets/tabs-extension.js',\n runtimeCssPath = '_assets/tabs-extension.css',\n containerClasses = '',\n bundle = true,\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 match = matchOpenToken(tokens, i);\n const openTag = match && match.content;\n const isNotEscaped = openTag && !(openTag.startsWith('`') && openTag.endsWith('`'));\n\n if (!match || !isNotEscaped) {\n i++;\n continue;\n }\n\n const closeTokenIdx = findCloseTokenIdx(tokens, i + 3);\n\n if (!closeTokenIdx) {\n tokens[i].attrSet('YFM005', 'true');\n i += 3;\n continue;\n }\n\n const tabsGroup = match.group;\n\n const {tabs} = findTabs(state.tokens, i + 3, closeTokenIdx);\n\n if (tabs.length > 0) {\n insertTabs(\n tabs,\n state,\n match.orientation,\n {start: i, end: closeTokenIdx + 2},\n {\n containerClasses,\n tabsGroup,\n runId,\n },\n );\n i++;\n tabsAreInserted = true;\n } else {\n state.tokens.splice(i, closeTokenIdx - 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", "import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const VERTICAL_TAB_FORCED_OPEN = 'data-diplodoc-radio-forced';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\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\nexport 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", "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", "import GithubSlugger from 'github-slugger';\n\nimport {ACTIVE_TAB_TEXT} from '../common';\n\nimport {Tab} from './transform';\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: Tab, {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 getTabKey(tab: Tab) {\n return encodeURIComponent(getRawId(tab)).toLocaleLowerCase();\n}\n\nexport function getName(tab: Tab) {\n return parseName(tab.name).name;\n}\n\nfunction getRawId(tab: Tab): string {\n const {customAnchor, name} = parseName(tab.name);\n\n return customAnchor || name;\n}\n"],
5
- "mappings": "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",
6
- "names": ["exports", "module", "exports", "module", "GithubSlugger", "Token", "start", "end", "props", "tabs"]
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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",
6
+ "names": ["exports", "module", "exports", "module", "GithubSlugger", "props", "props", "Token", "tabs"]
7
7
  }
@@ -1,19 +1,16 @@
1
- import MarkdownIt from 'markdown-it';
2
- import Token from 'markdown-it/lib/token';
1
+ import type MarkdownIt from 'markdown-it';
2
+ import { EnabledVariants } from '../common';
3
3
  export type PluginOptions = {
4
4
  runtimeJsPath: string;
5
5
  runtimeCssPath: string;
6
6
  containerClasses: string;
7
7
  bundle: boolean;
8
- };
9
- export type TabsOrientation = 'radio' | 'horizontal';
10
- export type Tab = {
11
- name: string;
12
- tokens: Token[];
13
- listItem: Token;
8
+ features: {
9
+ enabledVariants: EnabledVariants;
10
+ };
14
11
  };
15
12
  type TransformOptions = {
16
13
  output?: string;
17
14
  };
18
- export declare function transform({ runtimeJsPath, runtimeCssPath, containerClasses, bundle, }?: Partial<PluginOptions>): (md: MarkdownIt, options?: TransformOptions) => void;
15
+ export declare function transform({ runtimeJsPath, runtimeCssPath, containerClasses, bundle, features, }?: Partial<PluginOptions>): (md: MarkdownIt, options?: TransformOptions) => void;
19
16
  export {};
@@ -0,0 +1,12 @@
1
+ import type Token from 'markdown-it/lib/token';
2
+ import type { TabsVariants } from '../common';
3
+ export type RuntimeTab = {
4
+ name: string;
5
+ tokens: Token[];
6
+ listItem: Token;
7
+ };
8
+ export type TabsProps = {
9
+ content: string;
10
+ variant: TabsVariants;
11
+ group: string;
12
+ };
@@ -1,4 +1,4 @@
1
- export declare function generateID(): string;
2
- export declare function trim(target: string): string;
3
- export declare function unquote(target: string): string;
4
1
  export declare function addHiddenProperty<B extends Record<string | symbol, unknown>, F extends string | symbol, V>(box: B, field: F, value: V): B & { [P in F]: V; };
2
+ export * from './strings';
3
+ export * from './tabs';
4
+ export * from './files';
@@ -0,0 +1,3 @@
1
+ export declare function generateID(): string;
2
+ export declare function trim(target: string): string;
3
+ export declare function unquote(target: string): string;
@@ -0,0 +1,7 @@
1
+ import { RuntimeTab } from '../types';
2
+ export declare function getTabId(tab: RuntimeTab, { runId }: {
3
+ runId: string;
4
+ }): string;
5
+ export declare function isTabSelected(tab: RuntimeTab): boolean;
6
+ export declare function getTabKey(tab: RuntimeTab): string;
7
+ export declare function getName(tab: RuntimeTab): string;
@@ -0,0 +1,2 @@
1
+ import { type TabsTokensGenerator } from './types';
2
+ export declare const accordion: TabsTokensGenerator;
@@ -0,0 +1,2 @@
1
+ import { type TabsTokensGenerator } from './types';
2
+ export declare const dropdown: TabsTokensGenerator;
@@ -0,0 +1,3 @@
1
+ import { TabsVariants } from '../../common';
2
+ import { TabsTokensGenerator } from './types';
3
+ export declare const generateTokensByType: (type: TabsVariants) => TabsTokensGenerator;
@@ -0,0 +1,2 @@
1
+ import { type TabsTokensGenerator } from './types';
2
+ export declare const radio: TabsTokensGenerator;
@@ -0,0 +1,2 @@
1
+ import { TabsTokensGenerator } from './types';
2
+ export declare const regular: TabsTokensGenerator;
@@ -0,0 +1,15 @@
1
+ import type Token from 'markdown-it/lib/token';
2
+ import type StateCore from 'markdown-it/lib/rules_core/state_core';
3
+ import type { RuntimeTab } from '../types';
4
+ import { TabsVariants } from '../../common';
5
+ export type TokensRange = {
6
+ start: number;
7
+ end: number;
8
+ };
9
+ export type TabsGenerationProps = {
10
+ containerClasses: string;
11
+ tabsGroup: string;
12
+ runId: string;
13
+ variant: TabsVariants;
14
+ };
15
+ export type TabsTokensGenerator = (tabs: RuntimeTab[], state: StateCore, props: TabsGenerationProps) => Token[];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/react/index.ts", "../../src/react/useDiplodocTabs.ts", "../../src/common.ts"],
4
- "sourcesContent": ["export type {Tab, UseDiplodocTabsCallback} from './useDiplodocTabs';\nexport {useDiplodocTabs} from './useDiplodocTabs';\n", "import {useCallback, useEffect} from 'react';\n\nimport {GLOBAL_SYMBOL, SelectedTabEvent, Tab} from '../common';\nimport {ISelectTabByIdOptions} from '../runtime/TabsController';\n\nexport type {Tab};\n\nexport type UseDiplodocTabsCallback = (tab: Tab, currentTabId?: string) => void;\n\nexport function useDiplodocTabs(callback: UseDiplodocTabsCallback) {\n const selectTabHandle = useCallback(\n ({tab, currentTabId}: SelectedTabEvent) => {\n callback(tab, currentTabId);\n },\n [callback],\n );\n\n useEffect(() => window[GLOBAL_SYMBOL].onSelectTab(selectTabHandle), [selectTabHandle]);\n\n return {\n selectTabById: useCallback(\n (tabId: string, options?: ISelectTabByIdOptions) =>\n window[GLOBAL_SYMBOL].selectTabById(tabId, options),\n [],\n ),\n selectTab: useCallback((tab: Tab) => window[GLOBAL_SYMBOL].selectTab(tab), []),\n };\n}\n", "import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const VERTICAL_TAB_FORCED_OPEN = 'data-diplodoc-radio-forced';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\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"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAqC;;;ACiC9B,IAAM,gBAA+B,OAAO,IAAI,cAAc;;;ADxB9D,SAAS,gBAAgB,UAAmC;AAC/D,QAAM,sBAAkB;AAAA,IACpB,CAAC,EAAC,KAAK,aAAY,MAAwB;AACvC,eAAS,KAAK,YAAY;AAAA,IAC9B;AAAA,IACA,CAAC,QAAQ;AAAA,EACb;AAEA,8BAAU,MAAM,OAAO,aAAa,EAAE,YAAY,eAAe,GAAG,CAAC,eAAe,CAAC;AAErF,SAAO;AAAA,IACH,mBAAe;AAAA,MACX,CAAC,OAAe,YACZ,OAAO,aAAa,EAAE,cAAc,OAAO,OAAO;AAAA,MACtD,CAAC;AAAA,IACL;AAAA,IACA,eAAW,0BAAY,CAAC,QAAa,OAAO,aAAa,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;AAAA,EACjF;AACJ;",
4
+ "sourcesContent": ["export type {Tab, UseDiplodocTabsCallback} from './useDiplodocTabs';\nexport {useDiplodocTabs} from './useDiplodocTabs';\n", "import {useCallback, useEffect} from 'react';\n\nimport {GLOBAL_SYMBOL, SelectedTabEvent, Tab} from '../common';\nimport {ISelectTabByIdOptions} from '../runtime/TabsController';\n\nexport type {Tab};\n\nexport type UseDiplodocTabsCallback = (tab: Tab, currentTabId?: string) => void;\n\nexport function useDiplodocTabs(callback: UseDiplodocTabsCallback) {\n const selectTabHandle = useCallback(\n ({tab, currentTabId}: SelectedTabEvent) => {\n callback(tab, currentTabId);\n },\n [callback],\n );\n\n useEffect(() => window[GLOBAL_SYMBOL].onSelectTab(selectTabHandle), [selectTabHandle]);\n\n return {\n selectTabById: useCallback(\n (tabId: string, options?: ISelectTabByIdOptions) =>\n window[GLOBAL_SYMBOL].selectTabById(tabId, options),\n [],\n ),\n selectTab: useCallback((tab: Tab) => window[GLOBAL_SYMBOL].selectTab(tab), []),\n };\n}\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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAqC;;;ACkD9B,IAAM,gBAA+B,OAAO,IAAI,cAAc;;;ADzC9D,SAAS,gBAAgB,UAAmC;AAC/D,QAAM,sBAAkB;AAAA,IACpB,CAAC,EAAC,KAAK,aAAY,MAAwB;AACvC,eAAS,KAAK,YAAY;AAAA,IAC9B;AAAA,IACA,CAAC,QAAQ;AAAA,EACb;AAEA,8BAAU,MAAM,OAAO,aAAa,EAAE,YAAY,eAAe,GAAG,CAAC,eAAe,CAAC;AAErF,SAAO;AAAA,IACH,mBAAe;AAAA,MACX,CAAC,OAAe,YACZ,OAAO,aAAa,EAAE,cAAc,OAAO,OAAO;AAAA,MACtD,CAAC;AAAA,IACL;AAAA,IACA,eAAW,0BAAY,CAAC,QAAa,OAAO,aAAa,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;AAAA,EACjF;AACJ;",
6
6
  "names": []
7
7
  }
@@ -12,13 +12,18 @@ export declare class TabsController {
12
12
  selectTab(tab: Tab): void;
13
13
  private _selectTab;
14
14
  private updateHTML;
15
- private updateHTMLVertical;
16
- private updateHTMLHorizontal;
15
+ private updateHTMLRadio;
16
+ private updateHTMLRegular;
17
+ private updateHTMLDropdown;
18
+ private updateHTMLAccordion;
19
+ private checkVisible;
20
+ private hideAllDropdown;
17
21
  private resetScroll;
18
22
  private didTabOpenForce;
19
23
  private fireSelectTabEvent;
24
+ private getTabsType;
20
25
  private isValidTabElement;
21
- private areTabsVertical;
26
+ private isElementDropdownSelect;
22
27
  private getTabDataFromHTMLElement;
23
28
  private getTabs;
24
29
  }
@@ -1,2 +1,2 @@
1
- @charset "UTF-8";.yfm-tabs{margin-bottom:15px}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol{counter-reset:tabs-list}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol>li{counter-increment:tabs-list}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol>li:before{content:counters(tabs-list,".") ". "}.yfm-tab-list{display:flex;flex-wrap:wrap;margin-bottom:15px;border-bottom:1px solid rgba(0,0,0,.07)}.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;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}.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:relative;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{visibility:visible;height:auto}
1
+ @charset "UTF-8";.yfm-tabs{margin-bottom:15px}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol{counter-reset:tabs-list}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol>li{counter-increment:tabs-list}.yfm:not(.yfm_no-list-reset) .yfm-tabs ol>li:before{content:counters(tabs-list,".") ". "}.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:relative;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{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%}.yfm-tabs-accordion>.yfm-tab:first-of-type{border-top-color:transparent}.yfm-tabs-accordion .yfm-tab{padding:8px 0 12px 6px;position:relative;border-top:1px solid #E5E5E5;font-weight:500;scroll-margin-top:20px}.yfm-tabs-accordion .yfm-tab:after{content:"";position:absolute;display:block;right:10px;top:25%;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}.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;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 .yfm:not(.yfm_no-list-reset) & ol {\n counter-reset: tabs-list;\n\n & > li {\n counter-increment: tabs-list;\n\n &::before {\n content: counters(tabs-list, '.') '. ';\n }\n }\n }\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.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 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\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: relative;\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 visibility: visible;\n height: auto;\n }\n}\n"],
5
- "mappings": "iBAAA,CAAA,SACI,cAAA,KAEA,CAAA,GAAA,KAAA,CAAA,mBAAA,CAHJ,SAGI,GACI,cAAA,UAEA,CAHJ,GAGI,KAAA,CAHJ,mBAGI,CANR,SAMQ,EAAA,CAAA,GACI,kBAAA,UAEA,CANR,GAMQ,KAAA,CANR,mBAMQ,CATZ,SASY,EAAA,CAAA,EAAA,QACI,QAAA,SAAA,SAAA,CAAA,KAAA,KAMhB,CAAA,aACI,QAAA,KACA,UAAA,KACA,cAAA,KAEA,cAAA,IAAA,MAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAIA,CADJ,iBACI,CAAA,CATJ,aAUQ,eAAA,OACA,cAAA,MAGJ,CANJ,iBAMI,CAAA,CAAA,cACI,YAAA,KAGJ,CAVJ,iBAUI,CAAA,CAAA,cACI,QAAA,KACA,eAAA,IACA,cAAA,IAGJ,CAhBJ,kBAgBI,CAAA,gBAAA,CAAA,KAAA,CAAA,YACI,WAAA,OACA,MAAA,EACA,OAAA,EAGJ,CAtBJ,kBAsBI,CANA,gBAMA,CAAA,MACI,QAAA,aACA,OAAA,QACA,SAAA,SACA,aAAA,KACA,aAAA,EACA,YAAA,KACA,YAAA,KAGJ,CAhCJ,kBAgCI,CAhBA,gBAgBA,CAAA,KAAA,QACI,YAAA,kBACA,QAAA,GACA,SAAA,SACA,KAAA,EACA,OAAA,kBACA,IACA,MAAA,KACA,OAAA,KACA,OAAA,QAAA,IAAA,MACA,iBAAA,KAIJ,CA9CJ,kBA8CI,CA9BA,iBA8BA,KAAA,CAAA,WAAA,QAAA,CAAA,KAAA,QACI,QAAA,QACA,iBAAA,QACA,WAAA,OACA,eAAA,OACA,UAAA,KACA,YAAA,IACA,QAAA,YACA,gBAAA,OACA,YAAA,OACA,MAAA,KAGJ,CA3DJ,kBA2DI,CA3CA,iBA4CI,cAAA,gBAKR,CAAA,QACI,cAAA,KACA,aAAA,KACA,cAAA,IAAA,MAAA,oBAEA,IAAA,EAAA,IACA,YAAA,IACA,QAAA,KACA,OAAA,QACA,YAAA,KACA,YAAA,aAEA,CAZJ,OAYI,YACI,aAAA,EAGJ,CAhBJ,OAgBI,OAAA,CAhBJ,OAgBI,QACI,MAAA,QAGJ,CApBJ,OAoBI,CAAA,OACI,oBAAA,QAGJ,CAxBJ,OAwBI,OACI,QAAA,IAAA,MAAA,sBACA,IAEJ,CA5BJ,OA4BI,MAAA,KAAA,gBACI,QAAA,EAIR,CA5FI,cA6FA,SAAA,SACA,WAAA,OACA,SAAA,OACA,OAAA,EAEA,CAlGA,aAkGA,aACI,WAAA,YAGJ,CAtGA,aAsGA,YACI,cAAA,YAGJ,CA1GA,aA0GA,CA3BA,OA4BI,WAAA,QACA,OAAA",
4
+ "sourcesContent": [".yfm-tabs {\n margin-bottom: 15px;\n\n .yfm:not(.yfm_no-list-reset) & ol {\n counter-reset: tabs-list;\n\n & > li {\n counter-increment: tabs-list;\n\n &::before {\n content: counters(tabs-list, '.') '. ';\n }\n }\n }\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: relative;\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 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\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\n border-top: 1px solid #E5E5E5;\n font-weight: 500;\n\n scroll-margin-top: 20px;\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n right: 10px;\n top: 25%;\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 }\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 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",V="yfm-tabs-vertical",Q="yfm-tab-list",R="yfm-tab",f="yfm-tab-panel",G="active";var h="data-diplodoc-radio-forced",y="data-diplodoc-group",L="data-diplodoc-key",S="data-diplodoc-id";var v="defaultTabsGroup-";var x=Symbol.for("diplodocTabs");var u=r=>{let t=r.composedPath();return Array.isArray(t)&&t.length>0?t[0]:r.target},O=r=>{let t=u(r);return!t||!t.matches},E=r=>Math.abs(r.scrollHeight-r.clientHeight)>1?r:r.parentElement?E(r.parentElement):void 0,F=(r,t)=>{let e=r.getBoundingClientRect(),i=t.getBoundingClientRect();return{top:e.top-i.top,left:e.left-i.left,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}};var s={TABS:`.${X}`,TAB_LIST:`.${Q}`,TAB:`.${R}`,TAB_PANEL:`.${f}`,VERTICAL_TABS:`.${V}`},T=class{constructor(t){this._onSelectTabHandlers=new Set;this._document=t,this._document.addEventListener("click",e=>{let i=u(e),o=this.areTabsVertical(i);if(O(e)||!(this.isValidTabElement(i)||o))return;let c=this.getTabDataFromHTMLElement(i);c&&this._selectTab(c,i)}),this._document.addEventListener("keydown",e=>{let i=null;switch(e.key){case"ArrowLeft":{i="left";break}case"ArrowRight":{i="right";break}case"ArrowUp":{i="left";break}case"ArrowDown":{i="right";break}}if(!i)return;let o=u(e);if(O(e)||!this.isValidTabElement(o))return;let{tabs:c,nodes:a}=this.getTabs(o),l=this.getTabDataFromHTMLElement(o),n=c.findIndex(({key:d})=>(l==null?void 0:l.key)&&d===l.key);if(!l||c.length<=1||n===-1)return;let g=(n+(i==="left"?-1:1)+c.length)%c.length;this.selectTab(c[g]),a[g].focus()})}onSelectTab(t){return this._onSelectTabHandlers.add(t),()=>{this._onSelectTabHandlers.delete(t)}}selectTabById(t,e){let i=this._document.querySelector(`${s.TAB}[${S}="${t}"]`);if(!i||!this.isValidTabElement(i))return;let o=this.getTabDataFromHTMLElement(i);o&&this._selectTab(o,i),e!=null&&e.scrollToElement&&i.scrollIntoView()}selectTab(t){this._selectTab(t)}_selectTab(t,e){let{group:i,key:o,align:c}=t;if(!i)return;let a=e&&E(e),l=a&&F(e,a);this.updateHTML({group:i,key:o,align:c},e,c)>0&&(this.fireSelectTabEvent({group:i,key:o,align:c},e==null?void 0:e.dataset.diplodocId),l&&this.resetScroll(e,a,l))}updateHTML(t,e,i){switch(i){case"radio":return this.updateHTMLVertical(t,e);case"horizontal":return this.updateHTMLHorizontal(t)}return 0}updateHTMLVertical(t,e){let{group:i,key:o}=t,{isForced:c,root:a}=this.didTabOpenForce(e),l=c?`.yfm-vertical-tab[${h}="true"]`:"",n=this._document.querySelectorAll(`${s.TABS}[${y}="${i}"] ${s.TAB}[${L}="${o}"]${l}`);c&&(a==null||a.removeAttribute(h));let g=0;return n.forEach(d=>{let p=d.parentNode.children;for(let C=0;C<p.length;C+=2){let[A,I]=[p.item(C),p.item(C+1)],b=A.children.item(0);if(A===d){b.checked?(A.classList.remove("active"),I==null||I.classList.remove("active"),b.removeAttribute("checked")):(A.classList.add("active"),I==null||I.classList.add("active"),b.setAttribute("checked","true"));continue}b.hasAttribute("checked")&&(A.classList.remove("active"),I==null||I.classList.remove("active"),b.removeAttribute("checked")),g++}}),g}updateHTMLHorizontal(t){let{group:e,key:i}=t,o=this._document.querySelectorAll(`${s.TABS}[${y}="${e}"] ${s.TAB}[${L}="${i}"]`),c=0;return o.forEach(a=>{let l=a;if(!this.isValidTabElement(l)||l.dataset.diplodocIsActive==="true")return;c++;let n=a,g=n.parentNode,d=g==null?void 0:g.parentNode,B=Array.from((g==null?void 0:g.querySelectorAll(s.TAB))||[]),p=Array.from((d==null?void 0:d.children)||[]).filter(A=>A.classList.contains(f)),C=B.indexOf(n);B.forEach((A,I)=>{let b=p[I],m=I===C,H=A;H.dataset.diplodocIsActive=m?"true":"false",A.classList.toggle(G,m),A.setAttribute("aria-selected",m.toString()),A.setAttribute("tabindex",m?"0":"-1"),b.classList.toggle(G,m)})}),c}resetScroll(t,e,i){let o=F(t,e),c=o.top-i.top,a=o.left-i.left,l=o.scrollTop-i.scrollTop,n=o.scrollLeft-i.scrollLeft;e.scrollTo(e.scrollLeft+a-n,e.scrollTop+c-l)}didTabOpenForce(t){if(!t)return{};let e=t.dataset.diplodocVerticalTab?t:t.parentElement,i=typeof(e==null?void 0:e.dataset.diplodocRadioForced)!="undefined";return{root:e,isForced:i}}fireSelectTabEvent(t,e){let{group:i,key:o,align:c}=t,a=i.startsWith(v)?{key:o,align:c}:t;this._onSelectTabHandlers.forEach(l=>{l({tab:a,currentTabId:e})})}isValidTabElement(t){let e=t.matches(s.TAB)&&t.dataset.diplodocId?t.closest(s.TAB_LIST):null;return e==null?void 0:e.closest(s.TABS)}areTabsVertical(t){let e=t.parentElement;return t.dataset.diplodocVerticalTab||!!(e!=null&&e.dataset.diplodocVerticalTab)}getTabDataFromHTMLElement(t){var o,c;if(this.areTabsVertical(t)){let a=t.dataset.diplodocVerticalTab?t:t.parentElement,l=a.dataset.diplodocKey,n=(o=a.closest(s.TABS))==null?void 0:o.dataset.diplodocGroup;return l&&n?{group:n,key:l,align:"radio"}:null}let e=t.dataset.diplodocKey,i=(c=t.closest(s.TABS))==null?void 0:c.dataset.diplodocGroup;return e&&i?{group:i,key:e,align:"horizontal"}:null}getTabs(t){var c,a;let e=(c=t.closest(s.TABS))==null?void 0:c.dataset.diplodocGroup,i=(a=t.closest(s.TAB_LIST))==null?void 0:a.querySelectorAll(s.TAB),o=[];return i.forEach(l=>{let n=l==null?void 0:l.dataset.diplodocKey;n&&o.push({group:e,key:n,align:"horizontal"})}),{tabs:o,nodes:i}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[x]&&(window[x]=new T(document));})();
1
+ "use strict";(()=>{var W="yfm-tabs",R="yfm-tab",O="yfm-tab-panel",L="yfm-tab-list",r="active";var T="data-diplodoc-group",G="data-diplodoc-key",x="data-diplodoc-variant",v="data-diplodoc-id",H="defaultTabsGroup-";var h="data-diplodoc-forced";var N="yfm-tabs-dropdown-select";var U="yfm-tabs-vertical";var F=Symbol.for("diplodocTabs");var y=s=>{let t=s.composedPath();return Array.isArray(t)&&t.length>0?t[0]:s.target},Z=s=>{let t=y(s);return!t||!t.matches},Q=s=>Math.abs(s.scrollHeight-s.clientHeight)>1?s:s.parentElement?Q(s.parentElement):void 0,X=(s,t)=>{let e=s.getBoundingClientRect(),g=t.getBoundingClientRect();return{top:e.top-g.top,left:e.left-g.left,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}};var n={TABS:`.${W}`,TAB_LIST:`.${L}`,TAB:`.${R}`,TAB_PANEL:`.${O}`,VERTICAL_TABS:`.${U}`},f=class{constructor(t){this._onSelectTabHandlers=new Set;this._document=t,this._document.addEventListener("click",e=>{let g=y(e);if(e.target&&this.hideAllDropdown(e.target),Z(e))return;if(this.isElementDropdownSelect(g)){g.classList.toggle(r);return}if(!this.isValidTabElement(g))return;let o=this.getTabDataFromHTMLElement(g);o&&this._selectTab(o,g)}),this._document.addEventListener("keydown",e=>{let g=null;switch(e.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 o=y(e);if(Z(e)||!this.isValidTabElement(o))return;let{tabs:c,nodes:a}=this.getTabs(o),I=this.getTabDataFromHTMLElement(o),A=c.findIndex(({key:C})=>(I==null?void 0:I.key)&&C===I.key);if(!I||c.length<=1||A===-1)return;let i=(A+(g==="left"?-1:1)+c.length)%c.length;this.selectTab(c[i]),a[i].focus()})}onSelectTab(t){return this._onSelectTabHandlers.add(t),()=>{this._onSelectTabHandlers.delete(t)}}selectTabById(t,e){let g=this._document.querySelector(`${n.TAB}[${v}="${t}"]`);if(!g||!this.isValidTabElement(g))return;let o=this.getTabDataFromHTMLElement(g);o&&this._selectTab(o,g),e!=null&&e.scrollToElement&&g.scrollIntoView()}selectTab(t){this._selectTab(t)}_selectTab(t,e){let{group:g,key:o,variant:c}=t;if(!g)return;let a=e&&Q(e),I=a&&X(e,a);this.updateHTML({group:g,key:o,variant:c},e,c)>0&&(this.fireSelectTabEvent({group:g,key:o,variant:c},e==null?void 0:e.dataset.diplodocId),I&&this.resetScroll(e,a,I))}updateHTML(t,e,g){switch(g){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)}return 0}updateHTMLRadio(t,e){let{group:g,key:o}=t,{isForced:c,root:a}=this.didTabOpenForce(e),I=c?`.yfm-vertical-tab[${h}="true"]`:"",A=this._document.querySelectorAll(`${n.TABS}[${T}="${g}"] ${n.TAB}[${G}="${o}"]${I}`);c&&(a==null||a.removeAttribute(h));let i=0;return A.forEach(C=>{let m=C.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===C){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")),i++}}),i}updateHTMLRegular(t){let{group:e,key:g}=t,o=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${g}"]`),c=0;return o.forEach(a=>{let I=a;if(!this.isValidTabElement(I)||I.dataset.diplodocIsActive==="true")return;c++;let A=a,i=A.parentNode,C=i==null?void 0:i.parentNode,l=Array.from((i==null?void 0:i.querySelectorAll(n.TAB))||[]),m=Array.from((C==null?void 0:C.children)||[]).filter(d=>d.classList.contains(O)),p=l.indexOf(A);l.forEach((d,b)=>{let u=m[b],B=b===p,D=d;D.dataset.diplodocIsActive=B?"true":"false",d.classList.toggle(r,B),d.setAttribute("aria-selected",B.toString()),d.setAttribute("tabindex",B?"0":"-1"),u.classList.toggle(r,B)})}),c}updateHTMLDropdown(t){let{group:e,key:g}=t,o=this._document.querySelectorAll(`${n.TABS}[${T}="${e}"] ${n.TAB}[${G}="${g}"]`),c=0;return o.forEach(a=>{let I=a.closest(`[${x}=dropdown]`);if(!(I!=null&&I.children))return;let A=I.children.item(0),i=I.children.item(1);A==null||A.classList.remove(r);let C=Array.from((i==null?void 0:i.children)||[]).indexOf(a)+2;for(let l=2;l<I.children.length;l++){let m=I.children.item(l),p=i==null?void 0:i.children.item(l-2);if(c++,C===l){m==null||m.classList.add(r),p.classList.add(r),A.innerHTML=a.innerHTML,A.classList.add("filled");continue}p.classList.remove(r),m.classList.remove(r)}}),c}updateHTMLAccordion(t,e){let{group:g,key:o}=t,c=this._document.querySelectorAll(`${n.TABS}[${T}="${g}"] ${n.TAB}[${G}="${o}"]`),a=0;return c.forEach(I=>{let A=I.closest(`[${x}=accordion]`);if(A!=null&&A.children)for(let i=0;i<A.children.length;i+=2){let C=A.children.item(i),l=A.children.item(i+1);if(a++,I===C){C==null||C.classList.toggle(r),l==null||l.classList.toggle(r);continue}C==null||C.classList.remove(r),l==null||l.classList.remove(r)}}),e&&!this.checkVisible(e)&&setTimeout(()=>{e.scrollIntoView({block:"nearest"})}),a}checkVisible(t){let e=t.getBoundingClientRect(),g=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-g>=0)}hideAllDropdown(t){this._document.querySelectorAll(".yfm-tabs-dropdown-select.active").forEach(g=>{g.contains(t)||g.classList.remove(r)})}resetScroll(t,e,g){let o=X(t,e),c=o.top-g.top,a=o.left-g.left,I=o.scrollTop-g.scrollTop,A=o.scrollLeft-g.scrollLeft;e.scrollTo(e.scrollLeft+a-A,e.scrollTop+c-I)}didTabOpenForce(t){if(!t)return{};if(t.dataset.diplodocForced)return{root:t,isForced:!0};let e=t.dataset.diplodocVerticalTab?t:t.parentElement,g=typeof(e==null?void 0:e.dataset.diplodocForced)!="undefined";return{root:e,isForced:g}}fireSelectTabEvent(t,e){let{group:g,key:o,variant:c}=t,a=g.startsWith(H)?{key:o,variant:c}:t;this._onSelectTabHandlers.forEach(I=>{I({tab:a,currentTabId:e})})}getTabsType(t){let e=t.closest(`[${x}]`);if(e)return e.dataset.diplodocVariant}isValidTabElement(t){return!!this.getTabsType(t)}isElementDropdownSelect(t){return t.classList.contains(N)}getTabDataFromHTMLElement(t){var c,a,I;let e=this.getTabsType(t);if(e==="radio"){let A=t.dataset.diplodocVerticalTab?t:t.parentElement,i=A.dataset.diplodocKey,C=(c=A.closest(n.TABS))==null?void 0:c.dataset.diplodocGroup;return i&&C?{group:C,key:i,variant:"radio"}:null}if(e==="dropdown"||e==="accordion"){let A=t.dataset.diplodocKey,i=(a=t.closest(n.TABS))==null?void 0:a.dataset.diplodocGroup;return A&&i?{group:i,key:A,variant:e}:null}let g=t.dataset.diplodocKey,o=(I=t.closest(n.TABS))==null?void 0:I.dataset.diplodocGroup;return g&&o?{group:o,key:g,variant:"regular"}:null}getTabs(t){var c,a;let e=(c=t.closest(n.TABS))==null?void 0:c.dataset.diplodocGroup,g=(a=t.closest(n.TAB_LIST))==null?void 0:a.querySelectorAll(n.TAB),o=[];return g.forEach(I=>{let A=I==null?void 0:I.dataset.diplodocKey;A&&o.push({group:e,key:A,variant:"regular"})}),{tabs:o,nodes:g}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[F]&&(window[F]=new f(document));})();
2
2
  //# sourceMappingURL=index.js.map