@uva-glass/component-library 3.52.10 → 3.53.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.
- package/dist/{Lexical.prod-sd_e2sqT.js → Lexical.prod-DH2XfwvA.js} +58 -58
- package/dist/{Lexical.prod-sd_e2sqT.js.map → Lexical.prod-DH2XfwvA.js.map} +1 -1
- package/dist/{LexicalClipboard.prod-Co2PF1UJ.js → LexicalClipboard.prod-DTuNvXAS.js} +22 -22
- package/dist/{LexicalClipboard.prod-Co2PF1UJ.js.map → LexicalClipboard.prod-DTuNvXAS.js.map} +1 -1
- package/dist/{LexicalLink.prod-BCE6Bg2N.js → LexicalLink.prod-BV5Y2RYj.js} +8 -9
- package/dist/{LexicalLink.prod-BCE6Bg2N.js.map → LexicalLink.prod-BV5Y2RYj.js.map} +1 -1
- package/dist/{LexicalList.prod-CIB0K0ja.js → LexicalList.prod-DA9du3qx.js} +4 -4
- package/dist/{LexicalList.prod-CIB0K0ja.js.map → LexicalList.prod-DA9du3qx.js.map} +1 -1
- package/dist/{LexicalSelection.prod-CCmcTP6S.js → LexicalSelection.prod-mQk00-U_.js} +2 -2
- package/dist/{LexicalSelection.prod-CCmcTP6S.js.map → LexicalSelection.prod-mQk00-U_.js.map} +1 -1
- package/dist/{LexicalTable.prod-Oa2YPHLl.js → LexicalTable.prod-RGq0GKAR.js} +4 -4
- package/dist/{LexicalTable.prod-Oa2YPHLl.js.map → LexicalTable.prod-RGq0GKAR.js.map} +1 -1
- package/dist/{LexicalUtils.prod-CjKjgnmx.js → LexicalUtils.prod-DU4QwthB.js} +2 -2
- package/dist/{LexicalUtils.prod-CjKjgnmx.js.map → LexicalUtils.prod-DU4QwthB.js.map} +1 -1
- package/dist/RteEditor.module-DaBh86FK.js +41 -0
- package/dist/RteEditor.module-DaBh86FK.js.map +1 -0
- package/dist/{TableCellResizerPlugin-DATbSzfg.js → TableCellResizerPlugin-DRwI83s2.js} +4 -4
- package/dist/{TableCellResizerPlugin-DATbSzfg.js.map → TableCellResizerPlugin-DRwI83s2.js.map} +1 -1
- package/dist/{TablePlugin-CqCjNBW_.js → TablePlugin-DmE96vN7.js} +20 -20
- package/dist/{TablePlugin-CqCjNBW_.js.map → TablePlugin-DmE96vN7.js.map} +1 -1
- package/dist/assets/AddCatalogueLinkForm.css +1 -0
- package/dist/assets/Flyout.css +1 -1
- package/dist/assets/RteEditor.css +1 -1
- package/dist/assets/variables.css +72 -72
- package/dist/chunk-SS2NHR7W-qmI2h7CJ.js +4507 -0
- package/dist/chunk-SS2NHR7W-qmI2h7CJ.js.map +1 -0
- package/dist/{client-CFLMKOFW.js → client-D4oO7Spw.js} +11 -11
- package/dist/{client-CFLMKOFW.js.map → client-D4oO7Spw.js.map} +1 -1
- package/dist/components/Accordion/Accordion.test.js +2 -2
- package/dist/components/AccordionCard/AccordionCard.test.js +2 -2
- package/dist/components/ActionList/ActionList.test.js +2 -2
- package/dist/components/AppStatusBar/AppStatusBar.test.js +1 -1
- package/dist/components/Attention/Attention.test.js +1 -1
- package/dist/components/Backdrop/Backdrop.test.js +1 -1
- package/dist/components/Buttons/Button.stories.js +1 -1
- package/dist/components/Buttons/Button.test.js +1 -1
- package/dist/components/Buttons/LinkButton.stories.js +1 -1
- package/dist/components/Buttons/LinkButton.test.js +1 -1
- package/dist/components/Buttons/MenuButton.stories.js +1 -1
- package/dist/components/Buttons/MenuButton.test.js +1 -1
- package/dist/components/Card/Card.test.js +1 -1
- package/dist/components/Checkbox/Checkbox.stories.js +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +2 -2
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +111 -55
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/Chip/Chip.stories.js +1 -1
- package/dist/components/ControlsButton/ControlsButton.stories.js +1 -1
- package/dist/components/Drawer/Drawer.stories.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.test.js +1 -1
- package/dist/components/FormInput/FormInput.d.ts +3 -1
- package/dist/components/FormInput/FormInput.js +26 -24
- package/dist/components/FormInput/FormInput.js.map +1 -1
- package/dist/components/FormInput/FormInput.stories.js +1 -1
- package/dist/components/IconButton/IconButton.stories.js +1 -1
- package/dist/components/InputField/InputField.stories.js +2 -2
- package/dist/components/Label/Label.test.js +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -1
- package/dist/components/ModalDialog/ModalDialog.stories.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +2 -2
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js +1 -1
- package/dist/components/Notification/Notification.stories.js +1 -1
- package/dist/components/Notification/Notification.test.js +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
- package/dist/components/RadioGroup/Radiogroup.test.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.d.ts +22 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +108 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js.map +1 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.d.ts +1 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +5 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js.map +1 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.d.ts +8 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +182 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/index.d.ts +1 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/index.js +5 -0
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/index.js.map +1 -0
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +8 -8
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +2 -2
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.d.ts +0 -2
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +112 -132
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +2 -3
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +52 -57
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +3 -3
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +2 -2
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +6 -6
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +24 -23
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.d.ts +4 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +65 -52
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/index.js +8 -9
- package/dist/components/RteEditor/Providers/LanguageProvider.d.ts +2 -2
- package/dist/components/RteEditor/Providers/LanguageProvider.js +4 -4
- package/dist/components/RteEditor/Providers/LanguageProvider.js.map +1 -1
- package/dist/components/RteEditor/RteEditor.d.ts +8 -3
- package/dist/components/RteEditor/RteEditor.js +334 -309
- package/dist/components/RteEditor/RteEditor.js.map +1 -1
- package/dist/components/RteEditor/RteEditor.stories.js +69 -33
- package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
- package/dist/components/RteEditor/UvaTheme/UvaTheme.d.ts +1 -0
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js +3 -2
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js.map +1 -1
- package/dist/components/RteEditor/helpers.js +26 -23
- package/dist/components/RteEditor/helpers.js.map +1 -1
- package/dist/components/RteEditor/hooks/components/Flyout.js +6 -16
- package/dist/components/RteEditor/hooks/components/Flyout.js.map +1 -1
- package/dist/components/RteEditor/hooks/useTranslation.d.ts +39 -1
- package/dist/components/RteEditor/hooks/useTranslation.js +6 -6
- package/dist/components/RteEditor/hooks/useTranslation.js.map +1 -1
- package/dist/components/RteEditor/mockCatalogueSearchData.d.ts +18 -0
- package/dist/components/RteEditor/mockCatalogueSearchData.js +485 -0
- package/dist/components/RteEditor/mockCatalogueSearchData.js.map +1 -0
- package/dist/components/RteEditor/mockRteContent.d.ts +1 -1
- package/dist/components/RteEditor/mockRteContent.js +8 -6
- package/dist/components/RteEditor/mockRteContent.js.map +1 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.d.ts +29 -0
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +126 -0
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -0
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/index.d.ts +1 -0
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/index.js +11 -0
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/index.js.map +1 -0
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +58 -52
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
- package/dist/components/RteEditor/nodes/index.d.ts +1 -0
- package/dist/components/RteEditor/nodes/index.js +14 -6
- package/dist/components/RteEditor/nodes/index.js.map +1 -1
- package/dist/components/RteEditor/translations.d.ts +41 -3
- package/dist/components/RteEditor/translations.js +44 -6
- package/dist/components/RteEditor/translations.js.map +1 -1
- package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
- package/dist/components/Sortable/Sortable.stories.js +1 -1
- package/dist/components/StatusBadge/StatusBadge.test.js +1 -1
- package/dist/components/TextArea/TextArea.stories.js +1 -1
- package/dist/components/TextArea/TextArea.test.js +2 -2
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.test.js +2 -2
- package/dist/components/index.js +1 -1
- package/dist/{index-DRQMriwT.js → index-B4NxQN5d.js} +8668 -10004
- package/dist/index-B4NxQN5d.js.map +1 -0
- package/dist/{index-BKK3EWVW.js → index-ZQcmo1D_.js} +2 -2
- package/dist/{index-BKK3EWVW.js.map → index-ZQcmo1D_.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/react-18-BczhA0zC.js +41 -0
- package/dist/react-18-BczhA0zC.js.map +1 -0
- package/dist/{react.esm-BjO203QT.js → react.esm-BDo_tPxu.js} +2 -2
- package/dist/{react.esm-BjO203QT.js.map → react.esm-BDo_tPxu.js.map} +1 -1
- package/dist/storybook__react.d.js +4252 -4509
- package/dist/storybook__react.d.js.map +1 -1
- package/package.json +19 -19
- package/dist/RteEditor.module-CUi7Vqe8.js +0 -37
- package/dist/RteEditor.module-CUi7Vqe8.js.map +0 -1
- package/dist/chunk-HERDX7MO-DaYu-eWo.js +0 -11320
- package/dist/chunk-HERDX7MO-DaYu-eWo.js.map +0 -1
- package/dist/index-DRQMriwT.js.map +0 -1
- package/dist/react-18-C6foUf2n.js +0 -42
- package/dist/react-18-C6foUf2n.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-SS2NHR7W-qmI2h7CJ.js","sources":["../node_modules/storybook/dist/_browser-chunks/chunk-3OXGAGBE.js","../node_modules/storybook/dist/_browser-chunks/chunk-GFLS4VP3.js","../node_modules/storybook/dist/_browser-chunks/chunk-AIOS4NGK.js","../node_modules/storybook/dist/_browser-chunks/chunk-FQ7SLVLR.js","../node_modules/storybook/dist/_browser-chunks/chunk-2XZMBGTA.js","../node_modules/storybook/dist/_browser-chunks/chunk-VYJQ7RU5.js","../node_modules/storybook/dist/_browser-chunks/chunk-YKE5S47A.js","../node_modules/storybook/dist/_browser-chunks/chunk-WJYERY3R.js","../node_modules/storybook/dist/channels/index.js","../node_modules/storybook/dist/_browser-chunks/chunk-SS2NHR7W.js"],"sourcesContent":["import {\n __commonJS\n} from \"./chunk-A242L54C.js\";\n\n// ../node_modules/picoquery/lib/string-util.js\nvar require_string_util = __commonJS({\n \"../node_modules/picoquery/lib/string-util.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.encodeString = encodeString;\n var hexTable = Array.from({ length: 256 }, (_, i) => \"%\" + ((i < 16 ? \"0\" : \"\") + i.toString(16)).toUpperCase()), noEscape = new Int8Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 1,\n 1,\n 0,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n function encodeString(str) {\n let len = str.length;\n if (len === 0)\n return \"\";\n let out = \"\", lastPos = 0, i = 0;\n outer: for (; i < len; i++) {\n let c = str.charCodeAt(i);\n for (; c < 128; ) {\n if (noEscape[c] !== 1 && (lastPos < i && (out += str.slice(lastPos, i)), lastPos = i + 1, out += hexTable[c]), ++i === len)\n break outer;\n c = str.charCodeAt(i);\n }\n if (lastPos < i && (out += str.slice(lastPos, i)), c < 2048) {\n lastPos = i + 1, out += hexTable[192 | c >> 6] + hexTable[128 | c & 63];\n continue;\n }\n if (c < 55296 || c >= 57344) {\n lastPos = i + 1, out += hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];\n continue;\n }\n if (++i, i >= len)\n throw new Error(\"URI malformed\");\n let c2 = str.charCodeAt(i) & 1023;\n lastPos = i + 1, c = 65536 + ((c & 1023) << 10 | c2), out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];\n }\n return lastPos === 0 ? str : lastPos < len ? out + str.slice(lastPos) : out;\n }\n }\n});\n\n// ../node_modules/picoquery/lib/shared.js\nvar require_shared = __commonJS({\n \"../node_modules/picoquery/lib/shared.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.defaultOptions = exports.defaultShouldSerializeObject = exports.defaultValueSerializer = void 0;\n var string_util_js_1 = require_string_util(), defaultValueSerializer = (value) => {\n switch (typeof value) {\n case \"string\":\n return (0, string_util_js_1.encodeString)(value);\n case \"bigint\":\n case \"boolean\":\n return \"\" + value;\n case \"number\":\n if (Number.isFinite(value))\n return value < 1e21 ? \"\" + value : (0, string_util_js_1.encodeString)(\"\" + value);\n break;\n }\n return value instanceof Date ? (0, string_util_js_1.encodeString)(value.toISOString()) : \"\";\n };\n exports.defaultValueSerializer = defaultValueSerializer;\n var defaultShouldSerializeObject = (val) => val instanceof Date;\n exports.defaultShouldSerializeObject = defaultShouldSerializeObject;\n var identityFunc = (v) => v;\n exports.defaultOptions = {\n nesting: !0,\n nestingSyntax: \"dot\",\n arrayRepeat: !1,\n arrayRepeatSyntax: \"repeat\",\n delimiter: 38,\n valueDeserializer: identityFunc,\n valueSerializer: exports.defaultValueSerializer,\n keyDeserializer: identityFunc,\n shouldSerializeObject: exports.defaultShouldSerializeObject\n };\n }\n});\n\n// ../node_modules/picoquery/lib/object-util.js\nvar require_object_util = __commonJS({\n \"../node_modules/picoquery/lib/object-util.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.getDeepObject = getDeepObject;\n exports.stringifyObject = stringifyObject;\n var shared_js_1 = require_shared(), string_util_js_1 = require_string_util();\n function isPrototypeKey(value) {\n return value === \"__proto__\" || value === \"constructor\" || value === \"prototype\";\n }\n function getDeepObject(obj, key, nextKey, forceObject, forceArray) {\n if (isPrototypeKey(key))\n return obj;\n let currObj = obj[key];\n return typeof currObj == \"object\" && currObj !== null ? currObj : !forceObject && (forceArray || typeof nextKey == \"number\" || typeof nextKey == \"string\" && nextKey * 0 === 0 && nextKey.indexOf(\".\") === -1) ? obj[key] = [] : obj[key] = {};\n }\n var MAX_DEPTH = 20, strBracketPair = \"[]\", strBracketLeft = \"[\", strBracketRight = \"]\", strDot = \".\";\n function stringifyObject(obj, options, depth = 0, parentKey, isProbableArray) {\n let { nestingSyntax = shared_js_1.defaultOptions.nestingSyntax, arrayRepeat = shared_js_1.defaultOptions.arrayRepeat, arrayRepeatSyntax = shared_js_1.defaultOptions.arrayRepeatSyntax, nesting = shared_js_1.defaultOptions.nesting, delimiter = shared_js_1.defaultOptions.delimiter, valueSerializer = shared_js_1.defaultOptions.valueSerializer, shouldSerializeObject = shared_js_1.defaultOptions.shouldSerializeObject } = options, strDelimiter = typeof delimiter == \"number\" ? String.fromCharCode(delimiter) : delimiter, useArrayRepeatKey = isProbableArray === !0 && arrayRepeat, shouldUseDot = nestingSyntax === \"dot\" || nestingSyntax === \"js\" && !isProbableArray;\n if (depth > MAX_DEPTH)\n return \"\";\n let result = \"\", firstKey = !0, valueIsProbableArray = !1;\n for (let key in obj) {\n let value = obj[key];\n if (value === void 0)\n continue;\n let path;\n parentKey ? (path = parentKey, useArrayRepeatKey ? arrayRepeatSyntax === \"bracket\" && (path += strBracketPair) : shouldUseDot ? (path += strDot, path += key) : (path += strBracketLeft, path += key, path += strBracketRight)) : path = key, firstKey || (result += strDelimiter), typeof value == \"object\" && value !== null && !shouldSerializeObject(value) ? (valueIsProbableArray = value.pop !== void 0, (nesting || arrayRepeat && valueIsProbableArray) && (result += stringifyObject(value, options, depth + 1, path, valueIsProbableArray))) : (result += (0, string_util_js_1.encodeString)(path), result += \"=\", result += valueSerializer(value, key)), firstKey && (firstKey = !1);\n }\n return result;\n }\n }\n});\n\n// ../node_modules/picoquery/lib/decode-uri-component.js\nvar require_decode_uri_component = __commonJS({\n \"../node_modules/picoquery/lib/decode-uri-component.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.decodeURIComponent = decodeURIComponent;\n var UTF8_ACCEPT = 12, UTF8_REJECT = 0, UTF8_DATA = [\n // The first part of the table maps bytes to character to a transition.\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 8,\n 7,\n 7,\n 10,\n 9,\n 9,\n 9,\n 11,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n // The second part of the table maps a state to a new state when adding a\n // transition.\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 12,\n 0,\n 0,\n 0,\n 0,\n 24,\n 36,\n 48,\n 60,\n 72,\n 84,\n 96,\n 0,\n 12,\n 12,\n 12,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 24,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 24,\n 24,\n 24,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 24,\n 24,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 48,\n 48,\n 48,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 48,\n 48,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 48,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n // The third part maps the current transition to a mask that needs to apply\n // to the byte.\n 127,\n 63,\n 63,\n 63,\n 0,\n 31,\n 15,\n 15,\n 15,\n 7,\n 7,\n 7\n ];\n function decodeURIComponent(uri) {\n let percentPosition = uri.indexOf(\"%\");\n if (percentPosition === -1)\n return uri;\n let length = uri.length, decoded = \"\", last = 0, codepoint = 0, startOfOctets = percentPosition, state = UTF8_ACCEPT;\n for (; percentPosition > -1 && percentPosition < length; ) {\n let high = hexCodeToInt(uri[percentPosition + 1], 4), low = hexCodeToInt(uri[percentPosition + 2], 0), byte = high | low, type = UTF8_DATA[byte];\n if (state = UTF8_DATA[256 + state + type], codepoint = codepoint << 6 | byte & UTF8_DATA[364 + type], state === UTF8_ACCEPT)\n decoded += uri.slice(last, startOfOctets), decoded += codepoint <= 65535 ? String.fromCharCode(codepoint) : String.fromCharCode(55232 + (codepoint >> 10), 56320 + (codepoint & 1023)), codepoint = 0, last = percentPosition + 3, percentPosition = startOfOctets = uri.indexOf(\"%\", last);\n else {\n if (state === UTF8_REJECT)\n return null;\n if (percentPosition += 3, percentPosition < length && uri.charCodeAt(percentPosition) === 37)\n continue;\n return null;\n }\n }\n return decoded + uri.slice(last);\n }\n var HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n };\n function hexCodeToInt(c, shift) {\n let i = HEX[c];\n return i === void 0 ? 255 : i << shift;\n }\n }\n});\n\n// ../node_modules/picoquery/lib/parse.js\nvar require_parse = __commonJS({\n \"../node_modules/picoquery/lib/parse.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.numberValueDeserializer = exports.numberKeyDeserializer = void 0;\n exports.parse = parse;\n var object_util_js_1 = require_object_util(), shared_js_1 = require_shared(), decode_uri_component_js_1 = require_decode_uri_component(), numberKeyDeserializer = (key) => {\n let asNumber = Number(key);\n return Number.isNaN(asNumber) ? key : asNumber;\n };\n exports.numberKeyDeserializer = numberKeyDeserializer;\n var numberValueDeserializer = (value) => {\n let asNumber = Number(value);\n return Number.isNaN(asNumber) ? value : asNumber;\n };\n exports.numberValueDeserializer = numberValueDeserializer;\n var regexPlus = /\\+/g, Empty = function() {\n };\n Empty.prototype = /* @__PURE__ */ Object.create(null);\n function computeKeySlice(input, startIndex, endIndex, keyHasPlus, shouldDecodeKey) {\n let chunk = input.substring(startIndex, endIndex);\n return keyHasPlus && (chunk = chunk.replace(regexPlus, \" \")), shouldDecodeKey && (chunk = (0, decode_uri_component_js_1.decodeURIComponent)(chunk) || chunk), chunk;\n }\n function parse(input, options) {\n let { valueDeserializer = shared_js_1.defaultOptions.valueDeserializer, keyDeserializer = shared_js_1.defaultOptions.keyDeserializer, arrayRepeatSyntax = shared_js_1.defaultOptions.arrayRepeatSyntax, nesting = shared_js_1.defaultOptions.nesting, arrayRepeat = shared_js_1.defaultOptions.arrayRepeat, nestingSyntax = shared_js_1.defaultOptions.nestingSyntax, delimiter = shared_js_1.defaultOptions.delimiter } = options ?? {}, charDelimiter = typeof delimiter == \"string\" ? delimiter.charCodeAt(0) : delimiter, isJsNestingSyntax = nestingSyntax === \"js\", result = new Empty();\n if (typeof input != \"string\")\n return result;\n let inputLength = input.length, value = \"\", startingIndex = -1, equalityIndex = -1, keySeparatorIndex = -1, currentObj = result, lastKey, currentKey = \"\", keyChunk = \"\", shouldDecodeKey = !1, shouldDecodeValue = !1, keyHasPlus = !1, valueHasPlus = !1, keyIsDot = !1, hasBothKeyValuePair = !1, c = 0, arrayRepeatBracketIndex = -1, prevIndex = -1, prevChar = -1;\n for (let i = 0; i < inputLength + 1; i++) {\n if (c = i !== inputLength ? input.charCodeAt(i) : charDelimiter, c === charDelimiter) {\n if (hasBothKeyValuePair = equalityIndex > startingIndex, hasBothKeyValuePair || (equalityIndex = i), keySeparatorIndex !== equalityIndex - 1 && (keyChunk = computeKeySlice(input, keySeparatorIndex + 1, arrayRepeatBracketIndex > -1 ? arrayRepeatBracketIndex : equalityIndex, keyHasPlus, shouldDecodeKey), currentKey = keyDeserializer(keyChunk), lastKey !== void 0 && (currentObj = (0, object_util_js_1.getDeepObject)(currentObj, lastKey, currentKey, isJsNestingSyntax && keyIsDot, void 0))), hasBothKeyValuePair || currentKey !== \"\") {\n hasBothKeyValuePair && (value = input.slice(equalityIndex + 1, i), valueHasPlus && (value = value.replace(regexPlus, \" \")), shouldDecodeValue && (value = (0, decode_uri_component_js_1.decodeURIComponent)(value) || value));\n let newValue = valueDeserializer(value, currentKey);\n if (arrayRepeat) {\n let currentValue = currentObj[currentKey];\n currentValue === void 0 ? arrayRepeatBracketIndex > -1 ? currentObj[currentKey] = [newValue] : currentObj[currentKey] = newValue : currentValue.pop ? currentValue.push(newValue) : currentObj[currentKey] = [currentValue, newValue];\n } else\n currentObj[currentKey] = newValue;\n }\n value = \"\", startingIndex = i, equalityIndex = i, shouldDecodeKey = !1, shouldDecodeValue = !1, keyHasPlus = !1, valueHasPlus = !1, keyIsDot = !1, arrayRepeatBracketIndex = -1, keySeparatorIndex = i, currentObj = result, lastKey = void 0, currentKey = \"\";\n } else c === 93 ? (arrayRepeat && arrayRepeatSyntax === \"bracket\" && prevChar === 91 && (arrayRepeatBracketIndex = prevIndex), nesting && (nestingSyntax === \"index\" || isJsNestingSyntax) && equalityIndex <= startingIndex && (keySeparatorIndex !== prevIndex && (keyChunk = computeKeySlice(input, keySeparatorIndex + 1, i, keyHasPlus, shouldDecodeKey), currentKey = keyDeserializer(keyChunk), lastKey !== void 0 && (currentObj = (0, object_util_js_1.getDeepObject)(currentObj, lastKey, currentKey, void 0, void 0)), lastKey = currentKey, keyHasPlus = !1, shouldDecodeKey = !1), keySeparatorIndex = i, keyIsDot = !1)) : c === 46 ? nesting && (nestingSyntax === \"dot\" || isJsNestingSyntax) && equalityIndex <= startingIndex && (keySeparatorIndex !== prevIndex && (keyChunk = computeKeySlice(input, keySeparatorIndex + 1, i, keyHasPlus, shouldDecodeKey), currentKey = keyDeserializer(keyChunk), lastKey !== void 0 && (currentObj = (0, object_util_js_1.getDeepObject)(currentObj, lastKey, currentKey, isJsNestingSyntax)), lastKey = currentKey, keyHasPlus = !1, shouldDecodeKey = !1), keyIsDot = !0, keySeparatorIndex = i) : c === 91 ? nesting && (nestingSyntax === \"index\" || isJsNestingSyntax) && equalityIndex <= startingIndex && (keySeparatorIndex !== prevIndex && (keyChunk = computeKeySlice(input, keySeparatorIndex + 1, i, keyHasPlus, shouldDecodeKey), currentKey = keyDeserializer(keyChunk), isJsNestingSyntax && lastKey !== void 0 && (currentObj = (0, object_util_js_1.getDeepObject)(currentObj, lastKey, currentKey, isJsNestingSyntax)), lastKey = currentKey, keyHasPlus = !1, shouldDecodeKey = !1, keyIsDot = !1), keySeparatorIndex = i) : c === 61 ? equalityIndex <= startingIndex ? equalityIndex = i : shouldDecodeValue = !0 : c === 43 ? equalityIndex > startingIndex ? valueHasPlus = !0 : keyHasPlus = !0 : c === 37 && (equalityIndex > startingIndex ? shouldDecodeValue = !0 : shouldDecodeKey = !0);\n prevIndex = i, prevChar = c;\n }\n return result;\n }\n }\n});\n\n// ../node_modules/picoquery/lib/stringify.js\nvar require_stringify = __commonJS({\n \"../node_modules/picoquery/lib/stringify.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.stringify = stringify;\n var object_util_js_1 = require_object_util();\n function stringify(input, options) {\n if (input === null || typeof input != \"object\")\n return \"\";\n let optionsObj = options ?? {};\n return (0, object_util_js_1.stringifyObject)(input, optionsObj);\n }\n }\n});\n\n// ../node_modules/picoquery/lib/main.js\nvar require_main = __commonJS({\n \"../node_modules/picoquery/lib/main.js\"(exports) {\n \"use strict\";\n var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {\n k2 === void 0 && (k2 = k);\n var desc = Object.getOwnPropertyDescriptor(m, k);\n (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) && (desc = { enumerable: !0, get: function() {\n return m[k];\n } }), Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n k2 === void 0 && (k2 = k), o[k2] = m[k];\n })), __exportStar = exports && exports.__exportStar || function(m, exports2) {\n for (var p in m) p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports2, p) && __createBinding(exports2, m, p);\n };\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.stringify = exports.parse = void 0;\n var parse_js_1 = require_parse();\n Object.defineProperty(exports, \"parse\", { enumerable: !0, get: function() {\n return parse_js_1.parse;\n } });\n var stringify_js_1 = require_stringify();\n Object.defineProperty(exports, \"stringify\", { enumerable: !0, get: function() {\n return stringify_js_1.stringify;\n } });\n __exportStar(require_shared(), exports);\n }\n});\n\nexport {\n require_main\n};\n","// ../node_modules/es-toolkit/dist/predicate/isPlainObject.mjs\nfunction isPlainObject(value) {\n if (!value || typeof value != \"object\")\n return !1;\n let proto = Object.getPrototypeOf(value);\n return proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null ? Object.prototype.toString.call(value) === \"[object Object]\" : !1;\n}\n\n// ../node_modules/es-toolkit/dist/predicate/isPrimitive.mjs\nfunction isPrimitive(value) {\n return value == null || typeof value != \"object\" && typeof value != \"function\";\n}\n\n// ../node_modules/es-toolkit/dist/predicate/isTypedArray.mjs\nfunction isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\n// ../node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs\nfunction getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\n// ../node_modules/es-toolkit/dist/compat/_internal/getTag.mjs\nfunction getTag(value) {\n return value == null ? value === void 0 ? \"[object Undefined]\" : \"[object Null]\" : Object.prototype.toString.call(value);\n}\n\n// ../node_modules/es-toolkit/dist/compat/_internal/tags.mjs\nvar regexpTag = \"[object RegExp]\", stringTag = \"[object String]\", numberTag = \"[object Number]\", booleanTag = \"[object Boolean]\", argumentsTag = \"[object Arguments]\", symbolTag = \"[object Symbol]\", dateTag = \"[object Date]\", mapTag = \"[object Map]\", setTag = \"[object Set]\", arrayTag = \"[object Array]\", functionTag = \"[object Function]\", arrayBufferTag = \"[object ArrayBuffer]\", objectTag = \"[object Object]\", errorTag = \"[object Error]\", dataViewTag = \"[object DataView]\", uint8ArrayTag = \"[object Uint8Array]\", uint8ClampedArrayTag = \"[object Uint8ClampedArray]\", uint16ArrayTag = \"[object Uint16Array]\", uint32ArrayTag = \"[object Uint32Array]\", bigUint64ArrayTag = \"[object BigUint64Array]\", int8ArrayTag = \"[object Int8Array]\", int16ArrayTag = \"[object Int16Array]\", int32ArrayTag = \"[object Int32Array]\", bigInt64ArrayTag = \"[object BigInt64Array]\", float32ArrayTag = \"[object Float32Array]\", float64ArrayTag = \"[object Float64Array]\";\n\nexport {\n isPrimitive,\n isTypedArray,\n getSymbols,\n getTag,\n regexpTag,\n stringTag,\n numberTag,\n booleanTag,\n argumentsTag,\n symbolTag,\n dateTag,\n mapTag,\n setTag,\n arrayTag,\n functionTag,\n arrayBufferTag,\n objectTag,\n errorTag,\n dataViewTag,\n uint8ArrayTag,\n uint8ClampedArrayTag,\n uint16ArrayTag,\n uint32ArrayTag,\n bigUint64ArrayTag,\n int8ArrayTag,\n int16ArrayTag,\n int32ArrayTag,\n bigInt64ArrayTag,\n float32ArrayTag,\n float64ArrayTag,\n isPlainObject\n};\n","import {\n argumentsTag,\n arrayBufferTag,\n arrayTag,\n booleanTag,\n dataViewTag,\n dateTag,\n float32ArrayTag,\n float64ArrayTag,\n getSymbols,\n getTag,\n int16ArrayTag,\n int32ArrayTag,\n int8ArrayTag,\n isPlainObject,\n isPrimitive,\n isTypedArray,\n mapTag,\n numberTag,\n objectTag,\n regexpTag,\n setTag,\n stringTag,\n symbolTag,\n uint16ArrayTag,\n uint32ArrayTag,\n uint8ArrayTag,\n uint8ClampedArrayTag\n} from \"./chunk-GFLS4VP3.js\";\n\n// ../node_modules/es-toolkit/dist/object/mapValues.mjs\nfunction mapValues(object, getNewValue) {\n let result = {}, keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i], value = object[key];\n result[key] = getNewValue(value, key, object);\n }\n return result;\n}\n\n// ../node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs\nfunction isUnsafeProperty(key) {\n return key === \"__proto__\";\n}\n\n// ../node_modules/es-toolkit/dist/object/mergeWith.mjs\nfunction mergeWith(target, source, merge2) {\n let sourceKeys = Object.keys(source);\n for (let i = 0; i < sourceKeys.length; i++) {\n let key = sourceKeys[i];\n if (isUnsafeProperty(key))\n continue;\n let sourceValue = source[key], targetValue = target[key], merged = merge2(targetValue, sourceValue, key, target, source);\n merged !== void 0 ? target[key] = merged : Array.isArray(sourceValue) ? Array.isArray(targetValue) ? target[key] = mergeWith(targetValue, sourceValue, merge2) : target[key] = mergeWith([], sourceValue, merge2) : isPlainObject(sourceValue) ? isPlainObject(targetValue) ? target[key] = mergeWith(targetValue, sourceValue, merge2) : target[key] = mergeWith({}, sourceValue, merge2) : (targetValue === void 0 || sourceValue !== void 0) && (target[key] = sourceValue);\n }\n return target;\n}\n\n// ../node_modules/es-toolkit/dist/object/pick.mjs\nfunction pick(obj, keys) {\n let result = {};\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n Object.hasOwn(obj, key) && (result[key] = obj[key]);\n }\n return result;\n}\n\n// ../node_modules/es-toolkit/dist/object/pickBy.mjs\nfunction pickBy(obj, shouldPick) {\n let result = {}, keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i], value = obj[key];\n shouldPick(value, key) && (result[key] = value);\n }\n return result;\n}\n\n// ../node_modules/es-toolkit/dist/object/clone.mjs\nfunction clone(obj) {\n if (isPrimitive(obj))\n return obj;\n if (Array.isArray(obj) || isTypedArray(obj) || obj instanceof ArrayBuffer || typeof SharedArrayBuffer < \"u\" && obj instanceof SharedArrayBuffer)\n return obj.slice(0);\n let prototype = Object.getPrototypeOf(obj), Constructor = prototype.constructor;\n if (obj instanceof Date || obj instanceof Map || obj instanceof Set)\n return new Constructor(obj);\n if (obj instanceof RegExp) {\n let newRegExp = new Constructor(obj);\n return newRegExp.lastIndex = obj.lastIndex, newRegExp;\n }\n if (obj instanceof DataView)\n return new Constructor(obj.buffer.slice(0));\n if (obj instanceof Error) {\n let newError = new Constructor(obj.message);\n return newError.stack = obj.stack, newError.name = obj.name, newError.cause = obj.cause, newError;\n }\n if (typeof File < \"u\" && obj instanceof File)\n return new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });\n if (typeof obj == \"object\") {\n let newObject = Object.create(prototype);\n return Object.assign(newObject, obj);\n }\n return obj;\n}\n\n// ../node_modules/es-toolkit/dist/object/cloneDeepWith.mjs\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = /* @__PURE__ */ new Map(), cloneValue = void 0) {\n let cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== void 0)\n return cloned;\n if (isPrimitive(valueToClone))\n return valueToClone;\n if (stack.has(valueToClone))\n return stack.get(valueToClone);\n if (Array.isArray(valueToClone)) {\n let result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++)\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n return Object.hasOwn(valueToClone, \"index\") && (result.index = valueToClone.index), Object.hasOwn(valueToClone, \"input\") && (result.input = valueToClone.input), result;\n }\n if (valueToClone instanceof Date)\n return new Date(valueToClone.getTime());\n if (valueToClone instanceof RegExp) {\n let result = new RegExp(valueToClone.source, valueToClone.flags);\n return result.lastIndex = valueToClone.lastIndex, result;\n }\n if (valueToClone instanceof Map) {\n let result = /* @__PURE__ */ new Map();\n stack.set(valueToClone, result);\n for (let [key, value] of valueToClone)\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n return result;\n }\n if (valueToClone instanceof Set) {\n let result = /* @__PURE__ */ new Set();\n stack.set(valueToClone, result);\n for (let value of valueToClone)\n result.add(cloneDeepWithImpl(value, void 0, objectToClone, stack, cloneValue));\n return result;\n }\n if (typeof Buffer < \"u\" && Buffer.isBuffer(valueToClone))\n return valueToClone.subarray();\n if (isTypedArray(valueToClone)) {\n let result = new (Object.getPrototypeOf(valueToClone)).constructor(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++)\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof ArrayBuffer || typeof SharedArrayBuffer < \"u\" && valueToClone instanceof SharedArrayBuffer)\n return valueToClone.slice(0);\n if (valueToClone instanceof DataView) {\n let result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (typeof File < \"u\" && valueToClone instanceof File) {\n let result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type\n });\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (typeof Blob < \"u\" && valueToClone instanceof Blob) {\n let result = new Blob([valueToClone], { type: valueToClone.type });\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (valueToClone instanceof Error) {\n let result = new valueToClone.constructor();\n return stack.set(valueToClone, result), result.message = valueToClone.message, result.name = valueToClone.name, result.stack = valueToClone.stack, result.cause = valueToClone.cause, copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (valueToClone instanceof Boolean) {\n let result = new Boolean(valueToClone.valueOf());\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (valueToClone instanceof Number) {\n let result = new Number(valueToClone.valueOf());\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (valueToClone instanceof String) {\n let result = new String(valueToClone.valueOf());\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n if (typeof valueToClone == \"object\" && isCloneableObject(valueToClone)) {\n let result = Object.create(Object.getPrototypeOf(valueToClone));\n return stack.set(valueToClone, result), copyProperties(result, valueToClone, objectToClone, stack, cloneValue), result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n let keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i], descriptor = Object.getOwnPropertyDescriptor(target, key);\n (descriptor == null || descriptor.writable) && (target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue));\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag:\n return !0;\n default:\n return !1;\n }\n}\n\n// ../node_modules/es-toolkit/dist/object/cloneDeep.mjs\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, void 0, obj, /* @__PURE__ */ new Map(), void 0);\n}\n\n// ../node_modules/es-toolkit/dist/string/words.mjs\nvar CASE_SPLIT_PATTERN = new RegExp(\"\\\\p{Lu}?\\\\p{Ll}+|[0-9]+|\\\\p{Lu}+(?!\\\\p{Ll})|\\\\p{Emoji_Presentation}|\\\\p{Extended_Pictographic}|\\\\p{L}+\", \"gu\");\n\n// ../node_modules/es-toolkit/dist/object/toMerged.mjs\nfunction toMerged(target, source) {\n return mergeWith(clone(target), source, function mergeRecursively(targetValue, sourceValue) {\n if (Array.isArray(sourceValue))\n return Array.isArray(targetValue) ? mergeWith(clone(targetValue), sourceValue, mergeRecursively) : mergeWith([], sourceValue, mergeRecursively);\n if (isPlainObject(sourceValue))\n return isPlainObject(targetValue) ? mergeWith(clone(targetValue), sourceValue, mergeRecursively) : mergeWith({}, sourceValue, mergeRecursively);\n });\n}\n\nexport {\n cloneDeep,\n mapValues,\n mergeWith,\n pick,\n pickBy,\n toMerged\n};\n","// src/storybook-error.ts\nfunction parseErrorCode({\n code,\n category\n}) {\n let paddedCode = String(code).padStart(4, \"0\");\n return `SB_${category}_${paddedCode}`;\n}\nfunction appendErrorRef(url) {\n if (/^(?!.*storybook\\.js\\.org)|[?&]ref=error\\b/.test(url))\n return url;\n try {\n let urlObj = new URL(url);\n return urlObj.searchParams.set(\"ref\", \"error\"), urlObj.toString();\n } catch {\n return url;\n }\n}\nvar StorybookError = class _StorybookError extends Error {\n constructor(props) {\n super(_StorybookError.getFullMessage(props));\n /**\n * Data associated with the error. Used to provide additional information in the error message or\n * to be passed to telemetry.\n */\n this.data = {};\n /** Flag used to easily determine if the error originates from Storybook. */\n this.fromStorybook = !0;\n /**\n * Flag used to determine if the error is handled by us and should therefore not be shown to the\n * user.\n */\n this.isHandledError = !1;\n this.category = props.category, this.documentation = props.documentation ?? !1, this.code = props.code, this.isHandledError = props.isHandledError ?? !1, this.name = props.name;\n }\n get fullErrorCode() {\n return parseErrorCode({ code: this.code, category: this.category });\n }\n /** Overrides the default `Error.name` property in the format: SB_<CATEGORY>_<CODE>. */\n get name() {\n let errorName = this._name || this.constructor.name;\n return `${this.fullErrorCode} (${errorName})`;\n }\n set name(name) {\n this._name = name;\n }\n /** Generates the error message along with additional documentation link (if applicable). */\n static getFullMessage({\n documentation,\n code,\n category,\n message\n }) {\n let page;\n return documentation === !0 ? page = `https://storybook.js.org/error/${parseErrorCode({ code, category })}?ref=error` : typeof documentation == \"string\" ? page = appendErrorRef(documentation) : Array.isArray(documentation) && (page = `\n${documentation.map((doc) => `\t- ${appendErrorRef(doc)}`).join(`\n`)}`), `${message}${page != null ? `\n\nMore info: ${page}\n` : \"\"}`;\n }\n};\n\nexport {\n StorybookError\n};\n","import {\n StorybookError\n} from \"./chunk-FQ7SLVLR.js\";\nimport {\n dedent\n} from \"./chunk-JP7NCOJX.js\";\n\n// src/preview-errors.ts\nvar Category = /* @__PURE__ */ ((Category2) => (Category2.BLOCKS = \"BLOCKS\", Category2.DOCS_TOOLS = \"DOCS-TOOLS\", Category2.PREVIEW_CLIENT_LOGGER = \"PREVIEW_CLIENT-LOGGER\", Category2.PREVIEW_CHANNELS = \"PREVIEW_CHANNELS\", Category2.PREVIEW_CORE_EVENTS = \"PREVIEW_CORE-EVENTS\", Category2.PREVIEW_INSTRUMENTER = \"PREVIEW_INSTRUMENTER\", Category2.PREVIEW_API = \"PREVIEW_API\", Category2.PREVIEW_REACT_DOM_SHIM = \"PREVIEW_REACT-DOM-SHIM\", Category2.PREVIEW_ROUTER = \"PREVIEW_ROUTER\", Category2.PREVIEW_THEMING = \"PREVIEW_THEMING\", Category2.RENDERER_HTML = \"RENDERER_HTML\", Category2.RENDERER_PREACT = \"RENDERER_PREACT\", Category2.RENDERER_REACT = \"RENDERER_REACT\", Category2.RENDERER_SERVER = \"RENDERER_SERVER\", Category2.RENDERER_SVELTE = \"RENDERER_SVELTE\", Category2.RENDERER_VUE = \"RENDERER_VUE\", Category2.RENDERER_VUE3 = \"RENDERER_VUE3\", Category2.RENDERER_WEB_COMPONENTS = \"RENDERER_WEB-COMPONENTS\", Category2.FRAMEWORK_NEXTJS = \"FRAMEWORK_NEXTJS\", Category2.ADDON_VITEST = \"ADDON_VITEST\", Category2.ADDON_A11Y = \"ADDON_A11Y\", Category2))(Category || {}), MissingStoryAfterHmrError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"MissingStoryAfterHmrError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 1,\n message: dedent`\n Couldn't find story matching id '${data.storyId}' after HMR.\n - Did you just rename a story?\n - Did you remove it from your CSF file?\n - Are you sure a story with the id '${data.storyId}' exists?\n - Please check the values in the stories field of your main.js config and see if they would match your CSF File.\n - Also check the browser console and terminal for potential error messages.`\n });\n this.data = data;\n }\n}, ImplicitActionsDuringRendering = class extends StorybookError {\n constructor(data) {\n super({\n name: \"ImplicitActionsDuringRendering\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 2,\n documentation: \"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#using-implicit-actions-during-rendering-is-deprecated-for-example-in-the-play-function\",\n message: dedent`\n We detected that you use an implicit action arg while ${data.phase} of your story. \n ${data.deprecated ? `\nThis is deprecated and won't work in Storybook 8 anymore.\n` : \"\"}\n Please provide an explicit spy to your args like this:\n import { fn } from 'storybook/test';\n ... \n args: {\n ${data.name}: fn()\n }`\n });\n this.data = data;\n }\n}, CalledExtractOnStoreError = class extends StorybookError {\n constructor() {\n super({\n name: \"CalledExtractOnStoreError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 3,\n message: dedent`\n Cannot call \\`storyStore.extract()\\` without calling \\`storyStore.cacheAllCsfFiles()\\` first.\n\n You probably meant to call \\`await preview.extract()\\` which does the above for you.`\n });\n }\n}, MissingRenderToCanvasError = class extends StorybookError {\n constructor() {\n super({\n name: \"MissingRenderToCanvasError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 4,\n message: dedent`\n Expected your framework's preset to export a \\`renderToCanvas\\` field.\n\n Perhaps it needs to be upgraded for Storybook 7.0?`,\n documentation: \"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field\"\n });\n }\n}, CalledPreviewMethodBeforeInitializationError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"CalledPreviewMethodBeforeInitializationError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 5,\n message: dedent`\n Called \\`Preview.${data.methodName}()\\` before initialization.\n \n The preview needs to load the story index before most methods can be called. If you want\n to call \\`${data.methodName}\\`, try \\`await preview.initializationPromise;\\` first.\n \n If you didn't call the above code, then likely it was called by an addon that needs to\n do the above.`\n });\n this.data = data;\n }\n}, StoryIndexFetchError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"StoryIndexFetchError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 6,\n message: dedent`\n Error fetching \\`/index.json\\`:\n \n ${data.text}\n\n If you are in development, this likely indicates a problem with your Storybook process,\n check the terminal for errors.\n\n If you are in a deployed Storybook, there may have been an issue deploying the full Storybook\n build.`\n });\n this.data = data;\n }\n}, MdxFileWithNoCsfReferencesError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"MdxFileWithNoCsfReferencesError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 7,\n message: dedent`\n Tried to render docs entry ${data.storyId} but it is a MDX file that has no CSF\n references, or autodocs for a CSF file that some doesn't refer to itself.\n \n This likely is an internal error in Storybook's indexing, or you've attached the\n \\`attached-mdx\\` tag to an MDX file that is not attached.`\n });\n this.data = data;\n }\n}, EmptyIndexError = class extends StorybookError {\n constructor() {\n super({\n name: \"EmptyIndexError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 8,\n message: dedent`\n Couldn't find any stories in your Storybook.\n\n - Please check your stories field of your main.js config: does it match correctly?\n - Also check the browser console and terminal for error messages.`\n });\n }\n}, NoStoryMatchError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"NoStoryMatchError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 9,\n message: dedent`\n Couldn't find story matching '${data.storySpecifier}'.\n\n - Are you sure a story with that id exists?\n - Please check your stories field of your main.js config.\n - Also check the browser console and terminal for error messages.`\n });\n this.data = data;\n }\n}, MissingStoryFromCsfFileError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"MissingStoryFromCsfFileError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 10,\n message: dedent`\n Couldn't find story matching id '${data.storyId}' after importing a CSF file.\n\n The file was indexed as if the story was there, but then after importing the file in the browser\n we didn't find the story. Possible reasons:\n - You are using a custom story indexer that is misbehaving.\n - You have a custom file loader that is removing or renaming exports.\n\n Please check your browser console and terminal for errors that may explain the issue.`\n });\n this.data = data;\n }\n}, StoryStoreAccessedBeforeInitializationError = class extends StorybookError {\n constructor() {\n super({\n name: \"StoryStoreAccessedBeforeInitializationError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 11,\n message: dedent`\n Cannot access the Story Store until the index is ready.\n\n It is not recommended to use methods directly on the Story Store anyway, in Storybook 9 we will\n remove access to the store entirely`\n });\n }\n}, MountMustBeDestructuredError = class extends StorybookError {\n // name: 'MountMustBeDestructuredError';\n constructor(data) {\n super({\n name: \"MountMustBeDestructuredError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 12,\n message: dedent`\n Incorrect use of mount in the play function.\n \n To use mount in the play function, you must satisfy the following two requirements: \n \n 1. You *must* destructure the mount property from the \\`context\\` (the argument passed to your play function). \n This makes sure that Storybook does not start rendering the story before the play function begins.\n \n 2. Your Storybook framework or builder must be configured to transpile to ES2017 or newer. \n This is because destructuring statements and async/await usages are otherwise transpiled away, \n which prevents Storybook from recognizing your usage of \\`mount\\`.\n \n Note that Angular is not supported. As async/await is transpiled to support the zone.js polyfill. \n \n More info: https://storybook.js.org/docs/writing-tests/interaction-testing?ref=error#run-code-before-the-component-gets-rendered\n \n Received the following play function:\n ${data.playFunction}`\n });\n this.data = data;\n }\n}, NoRenderFunctionError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"NoRenderFunctionError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 14,\n message: dedent`\n No render function available for storyId '${data.id}'\n `\n });\n this.data = data;\n }\n}, NoStoryMountedError = class extends StorybookError {\n constructor() {\n super({\n name: \"NoStoryMountedError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 15,\n message: dedent`\n No component is mounted in your story.\n \n This usually occurs when you destructure mount in the play function, but forget to call it.\n \n For example:\n\n async play({ mount, canvasElement }) {\n // 👈 mount should be called: await mount(); \n const canvas = within(canvasElement);\n const button = await canvas.findByRole('button');\n await userEvent.click(button);\n };\n\n Make sure to either remove it or call mount in your play function.\n `\n });\n }\n}, StatusTypeIdMismatchError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"StatusTypeIdMismatchError\",\n category: \"PREVIEW_API\" /* PREVIEW_API */,\n code: 16,\n message: `Status has typeId \"${data.status.typeId}\" but was added to store with typeId \"${data.typeId}\". Full status: ${JSON.stringify(\n data.status,\n null,\n 2\n )}`\n });\n this.data = data;\n }\n}, NextJsSharpError = class extends StorybookError {\n constructor() {\n super({\n name: \"NextJsSharpError\",\n category: \"FRAMEWORK_NEXTJS\" /* FRAMEWORK_NEXTJS */,\n code: 1,\n documentation: \"https://storybook.js.org/docs/get-started/nextjs#faq\",\n message: dedent`\n You are importing avif images, but you don't have sharp installed.\n\n You have to install sharp in order to use image optimization features in Next.js.\n `\n });\n }\n}, NextjsRouterMocksNotAvailable = class extends StorybookError {\n constructor(data) {\n super({\n name: \"NextjsRouterMocksNotAvailable\",\n category: \"FRAMEWORK_NEXTJS\" /* FRAMEWORK_NEXTJS */,\n code: 2,\n message: dedent`\n Tried to access router mocks from \"${data.importType}\" but they were not created yet. You might be running code in an unsupported environment.\n `\n });\n this.data = data;\n }\n}, UnknownArgTypesError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"UnknownArgTypesError\",\n category: \"DOCS-TOOLS\" /* DOCS_TOOLS */,\n code: 1,\n documentation: \"https://github.com/storybookjs/storybook/issues/26606\",\n message: dedent`\n There was a failure when generating detailed ArgTypes in ${data.language} for:\n ${JSON.stringify(data.type, null, 2)} \n \n Storybook will fall back to use a generic type description instead.\n\n This type is either not supported or it is a bug in the docgen generation in Storybook.\n If you think this is a bug, please detail it as much as possible in the Github issue.\n `\n });\n this.data = data;\n }\n}, UnsupportedViewportDimensionError = class extends StorybookError {\n constructor(data) {\n super({\n name: \"UnsupportedViewportDimensionError\",\n category: \"ADDON_VITEST\" /* ADDON_VITEST */,\n code: 1,\n // TODO: Add documentation about viewports support\n // documentation: '',\n message: dedent`\n Encountered an unsupported value \"${data.value}\" when setting the viewport ${data.dimension} dimension.\n \n The Storybook plugin only supports values in the following units:\n - px, vh, vw, em, rem and %.\n \n You can either change the viewport for this story to use one of the supported units or skip the test by adding '!test' to the story's tags per https://storybook.js.org/docs/writing-stories/tags\n `\n });\n this.data = data;\n }\n}, ElementA11yParameterError = class extends StorybookError {\n constructor() {\n super({\n name: \"ElementA11yParameterError\",\n category: \"ADDON_A11Y\" /* ADDON_A11Y */,\n code: 1,\n documentation: \"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#a11y-addon-replace-element-parameter-with-context-parameter\",\n message: 'The \"element\" parameter in parameters.a11y has been removed. Use \"context\" instead.'\n });\n }\n};\n\nexport {\n Category,\n MissingStoryAfterHmrError,\n ImplicitActionsDuringRendering,\n CalledExtractOnStoreError,\n MissingRenderToCanvasError,\n CalledPreviewMethodBeforeInitializationError,\n StoryIndexFetchError,\n MdxFileWithNoCsfReferencesError,\n EmptyIndexError,\n NoStoryMatchError,\n MissingStoryFromCsfFileError,\n StoryStoreAccessedBeforeInitializationError,\n MountMustBeDestructuredError,\n NoRenderFunctionError,\n NoStoryMountedError,\n StatusTypeIdMismatchError,\n NextJsSharpError,\n NextjsRouterMocksNotAvailable,\n UnknownArgTypesError,\n UnsupportedViewportDimensionError,\n ElementA11yParameterError\n};\n","import {\n mapValues\n} from \"./chunk-AIOS4NGK.js\";\nimport {\n isPlainObject\n} from \"./chunk-GFLS4VP3.js\";\nimport {\n __commonJS,\n __toESM\n} from \"./chunk-A242L54C.js\";\n\n// ../node_modules/jsdoc-type-pratt-parser/dist/index.js\nvar require_dist = __commonJS({\n \"../node_modules/jsdoc-type-pratt-parser/dist/index.js\"(exports, module) {\n (function(global, factory) {\n typeof exports == \"object\" && typeof module < \"u\" ? factory(exports) : typeof define == \"function\" && define.amd ? define([\"exports\"], factory) : (global = typeof globalThis < \"u\" ? globalThis : global || self, factory(global.jtpp = {}));\n })(exports, (function(exports2) {\n \"use strict\";\n function tokenToString(token) {\n return token.text !== void 0 && token.text !== \"\" ? `'${token.type}' with value '${token.text}'` : `'${token.type}'`;\n }\n class NoParsletFoundError extends Error {\n constructor(token) {\n super(`No parslet found for token: ${tokenToString(token)}`), this.token = token, Object.setPrototypeOf(this, NoParsletFoundError.prototype);\n }\n getToken() {\n return this.token;\n }\n }\n class EarlyEndOfParseError extends Error {\n constructor(token) {\n super(`The parsing ended early. The next token was: ${tokenToString(token)}`), this.token = token, Object.setPrototypeOf(this, EarlyEndOfParseError.prototype);\n }\n getToken() {\n return this.token;\n }\n }\n class UnexpectedTypeError extends Error {\n constructor(result, message) {\n let error = `Unexpected type: '${result.type}'.`;\n message !== void 0 && (error += ` Message: ${message}`), super(error), Object.setPrototypeOf(this, UnexpectedTypeError.prototype);\n }\n }\n function makePunctuationRule(type) {\n return (text) => text.startsWith(type) ? { type, text: type } : null;\n }\n function getQuoted(text) {\n let position = 0, char, mark = text[0], escaped = !1;\n if (mark !== \"'\" && mark !== '\"')\n return null;\n for (; position < text.length; ) {\n if (position++, char = text[position], !escaped && char === mark) {\n position++;\n break;\n }\n escaped = !escaped && char === \"\\\\\";\n }\n if (char !== mark)\n throw new Error(\"Unterminated String\");\n return text.slice(0, position);\n }\n let identifierStartRegex = new RegExp(\"[$_\\\\p{ID_Start}]|\\\\\\\\u\\\\p{Hex_Digit}{4}|\\\\\\\\u\\\\{0*(?:\\\\p{Hex_Digit}{1,5}|10\\\\p{Hex_Digit}{4})\\\\}\", \"u\"), identifierContinueRegex = new RegExp(\"[$\\\\-\\\\p{ID_Continue}\\\\u200C\\\\u200D]|\\\\\\\\u\\\\p{Hex_Digit}{4}|\\\\\\\\u\\\\{0*(?:\\\\p{Hex_Digit}{1,5}|10\\\\p{Hex_Digit}{4})\\\\}\", \"u\");\n function getIdentifier(text) {\n let char = text[0];\n if (!identifierStartRegex.test(char))\n return null;\n let position = 1;\n do {\n if (char = text[position], !identifierContinueRegex.test(char))\n break;\n position++;\n } while (position < text.length);\n return text.slice(0, position);\n }\n let numberRegex = /^(NaN|-?((\\d*\\.\\d+|\\d+)([Ee][+-]?\\d+)?|Infinity))/;\n function getNumber(text) {\n var _a, _b;\n return (_b = (_a = numberRegex.exec(text)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;\n }\n let identifierRule = (text) => {\n let value = getIdentifier(text);\n return value == null ? null : {\n type: \"Identifier\",\n text: value\n };\n };\n function makeKeyWordRule(type) {\n return (text) => {\n if (!text.startsWith(type))\n return null;\n let prepends = text[type.length];\n return prepends !== void 0 && identifierContinueRegex.test(prepends) ? null : {\n type,\n text: type\n };\n };\n }\n let stringValueRule = (text) => {\n let value = getQuoted(text);\n return value == null ? null : {\n type: \"StringValue\",\n text: value\n };\n }, eofRule = (text) => text.length > 0 ? null : {\n type: \"EOF\",\n text: \"\"\n }, numberRule = (text) => {\n let value = getNumber(text);\n return value === null ? null : {\n type: \"Number\",\n text: value\n };\n }, rules = [\n eofRule,\n makePunctuationRule(\"=>\"),\n makePunctuationRule(\"(\"),\n makePunctuationRule(\")\"),\n makePunctuationRule(\"{\"),\n makePunctuationRule(\"}\"),\n makePunctuationRule(\"[\"),\n makePunctuationRule(\"]\"),\n makePunctuationRule(\"|\"),\n makePunctuationRule(\"&\"),\n makePunctuationRule(\"<\"),\n makePunctuationRule(\">\"),\n makePunctuationRule(\",\"),\n makePunctuationRule(\";\"),\n makePunctuationRule(\"*\"),\n makePunctuationRule(\"?\"),\n makePunctuationRule(\"!\"),\n makePunctuationRule(\"=\"),\n makePunctuationRule(\":\"),\n makePunctuationRule(\"...\"),\n makePunctuationRule(\".\"),\n makePunctuationRule(\"#\"),\n makePunctuationRule(\"~\"),\n makePunctuationRule(\"/\"),\n makePunctuationRule(\"@\"),\n makeKeyWordRule(\"undefined\"),\n makeKeyWordRule(\"null\"),\n makeKeyWordRule(\"function\"),\n makeKeyWordRule(\"this\"),\n makeKeyWordRule(\"new\"),\n makeKeyWordRule(\"module\"),\n makeKeyWordRule(\"event\"),\n makeKeyWordRule(\"extends\"),\n makeKeyWordRule(\"external\"),\n makeKeyWordRule(\"infer\"),\n makeKeyWordRule(\"typeof\"),\n makeKeyWordRule(\"keyof\"),\n makeKeyWordRule(\"readonly\"),\n makeKeyWordRule(\"import\"),\n makeKeyWordRule(\"is\"),\n makeKeyWordRule(\"in\"),\n makeKeyWordRule(\"asserts\"),\n numberRule,\n identifierRule,\n stringValueRule\n ], breakingWhitespaceRegex = /^\\s*\\n\\s*/;\n class Lexer {\n static create(text) {\n let current = this.read(text);\n text = current.text;\n let next = this.read(text);\n return text = next.text, new Lexer(text, void 0, current.token, next.token);\n }\n constructor(text, previous, current, next) {\n this.text = \"\", this.text = text, this.previous = previous, this.current = current, this.next = next;\n }\n static read(text, startOfLine = !1) {\n startOfLine = startOfLine || breakingWhitespaceRegex.test(text), text = text.trim();\n for (let rule of rules) {\n let partial = rule(text);\n if (partial !== null) {\n let token = Object.assign(Object.assign({}, partial), { startOfLine });\n return text = text.slice(token.text.length), { text, token };\n }\n }\n throw new Error(\"Unexpected Token \" + text);\n }\n advance() {\n let next = Lexer.read(this.text);\n return new Lexer(next.text, this.current, this.next, next.token);\n }\n }\n function assertRootResult(result) {\n if (result === void 0)\n throw new Error(\"Unexpected undefined\");\n if (result.type === \"JsdocTypeKeyValue\" || result.type === \"JsdocTypeParameterList\" || result.type === \"JsdocTypeProperty\" || result.type === \"JsdocTypeReadonlyProperty\" || result.type === \"JsdocTypeObjectField\" || result.type === \"JsdocTypeJsdocObjectField\" || result.type === \"JsdocTypeIndexSignature\" || result.type === \"JsdocTypeMappedType\" || result.type === \"JsdocTypeTypeParameter\")\n throw new UnexpectedTypeError(result);\n return result;\n }\n function assertPlainKeyValueOrRootResult(result) {\n return result.type === \"JsdocTypeKeyValue\" ? assertPlainKeyValueResult(result) : assertRootResult(result);\n }\n function assertPlainKeyValueOrNameResult(result) {\n return result.type === \"JsdocTypeName\" ? result : assertPlainKeyValueResult(result);\n }\n function assertPlainKeyValueResult(result) {\n if (result.type !== \"JsdocTypeKeyValue\")\n throw new UnexpectedTypeError(result);\n return result;\n }\n function assertNumberOrVariadicNameResult(result) {\n var _a;\n if (result.type === \"JsdocTypeVariadic\") {\n if (((_a = result.element) === null || _a === void 0 ? void 0 : _a.type) === \"JsdocTypeName\")\n return result;\n throw new UnexpectedTypeError(result);\n }\n if (result.type !== \"JsdocTypeNumber\" && result.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(result);\n return result;\n }\n function assertArrayOrTupleResult(result) {\n if (result.type === \"JsdocTypeTuple\" || result.type === \"JsdocTypeGeneric\" && result.meta.brackets === \"square\")\n return result;\n throw new UnexpectedTypeError(result);\n }\n function isSquaredProperty(result) {\n return result.type === \"JsdocTypeIndexSignature\" || result.type === \"JsdocTypeMappedType\";\n }\n var Precedence;\n (function(Precedence2) {\n Precedence2[Precedence2.ALL = 0] = \"ALL\", Precedence2[Precedence2.PARAMETER_LIST = 1] = \"PARAMETER_LIST\", Precedence2[Precedence2.OBJECT = 2] = \"OBJECT\", Precedence2[Precedence2.KEY_VALUE = 3] = \"KEY_VALUE\", Precedence2[Precedence2.INDEX_BRACKETS = 4] = \"INDEX_BRACKETS\", Precedence2[Precedence2.UNION = 5] = \"UNION\", Precedence2[Precedence2.INTERSECTION = 6] = \"INTERSECTION\", Precedence2[Precedence2.PREFIX = 7] = \"PREFIX\", Precedence2[Precedence2.INFIX = 8] = \"INFIX\", Precedence2[Precedence2.TUPLE = 9] = \"TUPLE\", Precedence2[Precedence2.SYMBOL = 10] = \"SYMBOL\", Precedence2[Precedence2.OPTIONAL = 11] = \"OPTIONAL\", Precedence2[Precedence2.NULLABLE = 12] = \"NULLABLE\", Precedence2[Precedence2.KEY_OF_TYPE_OF = 13] = \"KEY_OF_TYPE_OF\", Precedence2[Precedence2.FUNCTION = 14] = \"FUNCTION\", Precedence2[Precedence2.ARROW = 15] = \"ARROW\", Precedence2[Precedence2.ARRAY_BRACKETS = 16] = \"ARRAY_BRACKETS\", Precedence2[Precedence2.GENERIC = 17] = \"GENERIC\", Precedence2[Precedence2.NAME_PATH = 18] = \"NAME_PATH\", Precedence2[Precedence2.PARENTHESIS = 19] = \"PARENTHESIS\", Precedence2[Precedence2.SPECIAL_TYPES = 20] = \"SPECIAL_TYPES\";\n })(Precedence || (Precedence = {}));\n class Parser {\n constructor(grammar, textOrLexer, baseParser) {\n this.grammar = grammar, typeof textOrLexer == \"string\" ? this._lexer = Lexer.create(textOrLexer) : this._lexer = textOrLexer, this.baseParser = baseParser;\n }\n get lexer() {\n return this._lexer;\n }\n /**\n * Parses a given string and throws an error if the parse ended before the end of the string.\n */\n parse() {\n let result = this.parseType(Precedence.ALL);\n if (this.lexer.current.type !== \"EOF\")\n throw new EarlyEndOfParseError(this.lexer.current);\n return result;\n }\n /**\n * Parses with the current lexer and asserts that the result is a {@link RootResult}.\n */\n parseType(precedence) {\n return assertRootResult(this.parseIntermediateType(precedence));\n }\n /**\n * The main parsing function. First it tries to parse the current state in the prefix step, and then it continues\n * to parse the state in the infix step.\n */\n parseIntermediateType(precedence) {\n let result = this.tryParslets(null, precedence);\n if (result === null)\n throw new NoParsletFoundError(this.lexer.current);\n return this.parseInfixIntermediateType(result, precedence);\n }\n /**\n * In the infix parsing step the parser continues to parse the current state with all parslets until none returns\n * a result.\n */\n parseInfixIntermediateType(left, precedence) {\n let result = this.tryParslets(left, precedence);\n for (; result !== null; )\n left = result, result = this.tryParslets(left, precedence);\n return left;\n }\n /**\n * Tries to parse the current state with all parslets in the grammar and returns the first non null result.\n */\n tryParslets(left, precedence) {\n for (let parslet of this.grammar) {\n let result = parslet(this, precedence, left);\n if (result !== null)\n return result;\n }\n return null;\n }\n /**\n * If the given type equals the current type of the {@link Lexer} advance the lexer. Return true if the lexer was\n * advanced.\n */\n consume(types) {\n return Array.isArray(types) || (types = [types]), types.includes(this.lexer.current.type) ? (this._lexer = this.lexer.advance(), !0) : !1;\n }\n acceptLexerState(parser) {\n this._lexer = parser.lexer;\n }\n }\n function isQuestionMarkUnknownType(next) {\n return next === \"}\" || next === \"EOF\" || next === \"|\" || next === \",\" || next === \")\" || next === \">\";\n }\n let nullableParslet = (parser, precedence, left) => {\n let type = parser.lexer.current.type, next = parser.lexer.next.type;\n return left == null && type === \"?\" && !isQuestionMarkUnknownType(next) || left != null && type === \"?\" ? (parser.consume(\"?\"), left == null ? {\n type: \"JsdocTypeNullable\",\n element: parser.parseType(Precedence.NULLABLE),\n meta: {\n position: \"prefix\"\n }\n } : {\n type: \"JsdocTypeNullable\",\n element: assertRootResult(left),\n meta: {\n position: \"suffix\"\n }\n }) : null;\n };\n function composeParslet(options) {\n let parslet = (parser, curPrecedence, left) => {\n let type = parser.lexer.current.type, next = parser.lexer.next.type;\n if (left === null) {\n if (\"parsePrefix\" in options && options.accept(type, next))\n return options.parsePrefix(parser);\n } else if (\"parseInfix\" in options && options.precedence > curPrecedence && options.accept(type, next))\n return options.parseInfix(parser, left);\n return null;\n };\n return Object.defineProperty(parslet, \"name\", {\n value: options.name\n }), parslet;\n }\n let optionalParslet = composeParslet({\n name: \"optionalParslet\",\n accept: (type) => type === \"=\",\n precedence: Precedence.OPTIONAL,\n parsePrefix: (parser) => (parser.consume(\"=\"), {\n type: \"JsdocTypeOptional\",\n element: parser.parseType(Precedence.OPTIONAL),\n meta: {\n position: \"prefix\"\n }\n }),\n parseInfix: (parser, left) => (parser.consume(\"=\"), {\n type: \"JsdocTypeOptional\",\n element: assertRootResult(left),\n meta: {\n position: \"suffix\"\n }\n })\n }), numberParslet = composeParslet({\n name: \"numberParslet\",\n accept: (type) => type === \"Number\",\n parsePrefix: (parser) => {\n let value = parseFloat(parser.lexer.current.text);\n return parser.consume(\"Number\"), {\n type: \"JsdocTypeNumber\",\n value\n };\n }\n }), parenthesisParslet = composeParslet({\n name: \"parenthesisParslet\",\n accept: (type) => type === \"(\",\n parsePrefix: (parser) => {\n if (parser.consume(\"(\"), parser.consume(\")\"))\n return {\n type: \"JsdocTypeParameterList\",\n elements: []\n };\n let result = parser.parseIntermediateType(Precedence.ALL);\n if (!parser.consume(\")\"))\n throw new Error(\"Unterminated parenthesis\");\n return result.type === \"JsdocTypeParameterList\" ? result : result.type === \"JsdocTypeKeyValue\" ? {\n type: \"JsdocTypeParameterList\",\n elements: [result]\n } : {\n type: \"JsdocTypeParenthesis\",\n element: assertRootResult(result)\n };\n }\n }), specialTypesParslet = composeParslet({\n name: \"specialTypesParslet\",\n accept: (type, next) => type === \"?\" && isQuestionMarkUnknownType(next) || type === \"null\" || type === \"undefined\" || type === \"*\",\n parsePrefix: (parser) => {\n if (parser.consume(\"null\"))\n return {\n type: \"JsdocTypeNull\"\n };\n if (parser.consume(\"undefined\"))\n return {\n type: \"JsdocTypeUndefined\"\n };\n if (parser.consume(\"*\"))\n return {\n type: \"JsdocTypeAny\"\n };\n if (parser.consume(\"?\"))\n return {\n type: \"JsdocTypeUnknown\"\n };\n throw new Error(\"Unacceptable token: \" + parser.lexer.current.text);\n }\n }), notNullableParslet = composeParslet({\n name: \"notNullableParslet\",\n accept: (type) => type === \"!\",\n precedence: Precedence.NULLABLE,\n parsePrefix: (parser) => (parser.consume(\"!\"), {\n type: \"JsdocTypeNotNullable\",\n element: parser.parseType(Precedence.NULLABLE),\n meta: {\n position: \"prefix\"\n }\n }),\n parseInfix: (parser, left) => (parser.consume(\"!\"), {\n type: \"JsdocTypeNotNullable\",\n element: assertRootResult(left),\n meta: {\n position: \"suffix\"\n }\n })\n });\n function createParameterListParslet({ allowTrailingComma }) {\n return composeParslet({\n name: \"parameterListParslet\",\n accept: (type) => type === \",\",\n precedence: Precedence.PARAMETER_LIST,\n parseInfix: (parser, left) => {\n let elements = [\n assertPlainKeyValueOrRootResult(left)\n ];\n parser.consume(\",\");\n do\n try {\n let next = parser.parseIntermediateType(Precedence.PARAMETER_LIST);\n elements.push(assertPlainKeyValueOrRootResult(next));\n } catch (e) {\n if (e instanceof NoParsletFoundError)\n break;\n throw e;\n }\n while (parser.consume(\",\"));\n if (elements.length > 0 && elements.slice(0, -1).some((e) => e.type === \"JsdocTypeVariadic\"))\n throw new Error(\"Only the last parameter may be a rest parameter\");\n return {\n type: \"JsdocTypeParameterList\",\n elements\n };\n }\n });\n }\n let genericParslet = composeParslet({\n name: \"genericParslet\",\n accept: (type, next) => type === \"<\" || type === \".\" && next === \"<\",\n precedence: Precedence.GENERIC,\n parseInfix: (parser, left) => {\n let dot = parser.consume(\".\");\n parser.consume(\"<\");\n let objects = [], infer = !1;\n if (parser.consume(\"infer\")) {\n infer = !0;\n let left2 = parser.parseIntermediateType(Precedence.SYMBOL);\n if (left2.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(left2, \"A typescript asserts always has to have a name on the left side.\");\n objects.push(left2);\n } else\n do\n objects.push(parser.parseType(Precedence.PARAMETER_LIST));\n while (parser.consume(\",\"));\n if (!parser.consume(\">\"))\n throw new Error(\"Unterminated generic parameter list\");\n return Object.assign(Object.assign({ type: \"JsdocTypeGeneric\", left: assertRootResult(left), elements: objects }, infer ? { infer: !0 } : {}), { meta: {\n brackets: \"angle\",\n dot\n } });\n }\n }), unionParslet = composeParslet({\n name: \"unionParslet\",\n accept: (type) => type === \"|\",\n precedence: Precedence.UNION,\n parseInfix: (parser, left) => {\n parser.consume(\"|\");\n let elements = [];\n do\n elements.push(parser.parseType(Precedence.UNION));\n while (parser.consume(\"|\"));\n return {\n type: \"JsdocTypeUnion\",\n elements: [assertRootResult(left), ...elements]\n };\n }\n }), baseGrammar = [\n nullableParslet,\n optionalParslet,\n numberParslet,\n parenthesisParslet,\n specialTypesParslet,\n notNullableParslet,\n createParameterListParslet({\n allowTrailingComma: !0\n }),\n genericParslet,\n unionParslet,\n optionalParslet\n ];\n function createNamePathParslet({ allowSquareBracketsOnAnyType, allowJsdocNamePaths, pathGrammar: pathGrammar2 }) {\n return function(parser, precedence, left) {\n if (left == null || precedence >= Precedence.NAME_PATH)\n return null;\n let type = parser.lexer.current.type, next = parser.lexer.next.type;\n if (!(type === \".\" && next !== \"<\" || type === \"[\" && (allowSquareBracketsOnAnyType || left.type === \"JsdocTypeName\") || allowJsdocNamePaths && (type === \"~\" || type === \"#\")))\n return null;\n let pathType, brackets = !1;\n parser.consume(\".\") ? pathType = \"property\" : parser.consume(\"[\") ? (pathType = \"property-brackets\", brackets = !0) : parser.consume(\"~\") ? pathType = \"inner\" : (parser.consume(\"#\"), pathType = \"instance\");\n let pathParser = pathGrammar2 !== null ? new Parser(pathGrammar2, parser.lexer, parser) : parser, parsed = pathParser.parseIntermediateType(Precedence.NAME_PATH);\n parser.acceptLexerState(pathParser);\n let right;\n switch (parsed.type) {\n case \"JsdocTypeName\":\n right = {\n type: \"JsdocTypeProperty\",\n value: parsed.value,\n meta: {\n quote: void 0\n }\n };\n break;\n case \"JsdocTypeNumber\":\n right = {\n type: \"JsdocTypeProperty\",\n value: parsed.value.toString(10),\n meta: {\n quote: void 0\n }\n };\n break;\n case \"JsdocTypeStringValue\":\n right = {\n type: \"JsdocTypeProperty\",\n value: parsed.value,\n meta: {\n quote: parsed.meta.quote\n }\n };\n break;\n case \"JsdocTypeSpecialNamePath\":\n if (parsed.specialType === \"event\")\n right = parsed;\n else\n throw new UnexpectedTypeError(parsed, \"Type 'JsdocTypeSpecialNamePath' is only allowed with specialType 'event'\");\n break;\n default:\n throw new UnexpectedTypeError(parsed, \"Expecting 'JsdocTypeName', 'JsdocTypeNumber', 'JsdocStringValue' or 'JsdocTypeSpecialNamePath'\");\n }\n if (brackets && !parser.consume(\"]\")) {\n let token = parser.lexer.current;\n throw new Error(`Unterminated square brackets. Next token is '${token.type}' with text '${token.text}'`);\n }\n return {\n type: \"JsdocTypeNamePath\",\n left: assertRootResult(left),\n right,\n pathType\n };\n };\n }\n function createNameParslet({ allowedAdditionalTokens }) {\n return composeParslet({\n name: \"nameParslet\",\n accept: (type) => type === \"Identifier\" || type === \"this\" || type === \"new\" || allowedAdditionalTokens.includes(type),\n parsePrefix: (parser) => {\n let { type, text } = parser.lexer.current;\n return parser.consume(type), {\n type: \"JsdocTypeName\",\n value: text\n };\n }\n });\n }\n let stringValueParslet = composeParslet({\n name: \"stringValueParslet\",\n accept: (type) => type === \"StringValue\",\n parsePrefix: (parser) => {\n let text = parser.lexer.current.text;\n return parser.consume(\"StringValue\"), {\n type: \"JsdocTypeStringValue\",\n value: text.slice(1, -1),\n meta: {\n quote: text[0] === \"'\" ? \"single\" : \"double\"\n }\n };\n }\n });\n function createSpecialNamePathParslet({ pathGrammar: pathGrammar2, allowedTypes }) {\n return composeParslet({\n name: \"specialNamePathParslet\",\n accept: (type) => allowedTypes.includes(type),\n parsePrefix: (parser) => {\n let type = parser.lexer.current.type;\n if (parser.consume(type), !parser.consume(\":\"))\n return {\n type: \"JsdocTypeName\",\n value: type\n };\n let result, token = parser.lexer.current;\n if (parser.consume(\"StringValue\"))\n result = {\n type: \"JsdocTypeSpecialNamePath\",\n value: token.text.slice(1, -1),\n specialType: type,\n meta: {\n quote: token.text[0] === \"'\" ? \"single\" : \"double\"\n }\n };\n else {\n let value = \"\", allowed = [\"Identifier\", \"@\", \"/\"];\n for (; allowed.some((type2) => parser.consume(type2)); )\n value += token.text, token = parser.lexer.current;\n result = {\n type: \"JsdocTypeSpecialNamePath\",\n value,\n specialType: type,\n meta: {\n quote: void 0\n }\n };\n }\n let moduleParser = new Parser(pathGrammar2, parser.lexer, parser), moduleResult = moduleParser.parseInfixIntermediateType(result, Precedence.ALL);\n return parser.acceptLexerState(moduleParser), assertRootResult(moduleResult);\n }\n });\n }\n let basePathGrammar = [\n createNameParslet({\n allowedAdditionalTokens: [\"external\", \"module\"]\n }),\n stringValueParslet,\n numberParslet,\n createNamePathParslet({\n allowSquareBracketsOnAnyType: !1,\n allowJsdocNamePaths: !0,\n pathGrammar: null\n })\n ], pathGrammar = [\n ...basePathGrammar,\n createSpecialNamePathParslet({\n allowedTypes: [\"event\"],\n pathGrammar: basePathGrammar\n })\n ];\n function getParameters(value) {\n let parameters;\n if (value.type === \"JsdocTypeParameterList\")\n parameters = value.elements;\n else if (value.type === \"JsdocTypeParenthesis\")\n parameters = [value.element];\n else\n throw new UnexpectedTypeError(value);\n return parameters.map((p) => assertPlainKeyValueOrRootResult(p));\n }\n function getUnnamedParameters(value) {\n let parameters = getParameters(value);\n if (parameters.some((p) => p.type === \"JsdocTypeKeyValue\"))\n throw new Error(\"No parameter should be named\");\n return parameters;\n }\n function createFunctionParslet({ allowNamedParameters, allowNoReturnType, allowWithoutParenthesis, allowNewAsFunctionKeyword }) {\n return composeParslet({\n name: \"functionParslet\",\n accept: (type, next) => type === \"function\" || allowNewAsFunctionKeyword && type === \"new\" && next === \"(\",\n parsePrefix: (parser) => {\n let newKeyword = parser.consume(\"new\");\n parser.consume(\"function\");\n let hasParenthesis = parser.lexer.current.type === \"(\";\n if (!hasParenthesis) {\n if (!allowWithoutParenthesis)\n throw new Error(\"function is missing parameter list\");\n return {\n type: \"JsdocTypeName\",\n value: \"function\"\n };\n }\n let result = {\n type: \"JsdocTypeFunction\",\n parameters: [],\n arrow: !1,\n constructor: newKeyword,\n parenthesis: hasParenthesis\n }, value = parser.parseIntermediateType(Precedence.FUNCTION);\n if (allowNamedParameters === void 0)\n result.parameters = getUnnamedParameters(value);\n else {\n if (newKeyword && value.type === \"JsdocTypeFunction\" && value.arrow)\n return result = value, result.constructor = !0, result;\n result.parameters = getParameters(value);\n for (let p of result.parameters)\n if (p.type === \"JsdocTypeKeyValue\" && !allowNamedParameters.includes(p.key))\n throw new Error(`only allowed named parameters are ${allowNamedParameters.join(\", \")} but got ${p.type}`);\n }\n if (parser.consume(\":\"))\n result.returnType = parser.parseType(Precedence.PREFIX);\n else if (!allowNoReturnType)\n throw new Error(\"function is missing return type\");\n return result;\n }\n });\n }\n function createVariadicParslet({ allowPostfix, allowEnclosingBrackets }) {\n return composeParslet({\n name: \"variadicParslet\",\n accept: (type) => type === \"...\",\n precedence: Precedence.PREFIX,\n parsePrefix: (parser) => {\n parser.consume(\"...\");\n let brackets = allowEnclosingBrackets && parser.consume(\"[\");\n try {\n let element = parser.parseType(Precedence.PREFIX);\n if (brackets && !parser.consume(\"]\"))\n throw new Error(\"Unterminated variadic type. Missing ']'\");\n return {\n type: \"JsdocTypeVariadic\",\n element: assertRootResult(element),\n meta: {\n position: \"prefix\",\n squareBrackets: brackets\n }\n };\n } catch (e) {\n if (e instanceof NoParsletFoundError) {\n if (brackets)\n throw new Error(\"Empty square brackets for variadic are not allowed.\");\n return {\n type: \"JsdocTypeVariadic\",\n meta: {\n position: void 0,\n squareBrackets: !1\n }\n };\n } else\n throw e;\n }\n },\n parseInfix: allowPostfix ? (parser, left) => (parser.consume(\"...\"), {\n type: \"JsdocTypeVariadic\",\n element: assertRootResult(left),\n meta: {\n position: \"suffix\",\n squareBrackets: !1\n }\n }) : void 0\n });\n }\n let symbolParslet = composeParslet({\n name: \"symbolParslet\",\n accept: (type) => type === \"(\",\n precedence: Precedence.SYMBOL,\n parseInfix: (parser, left) => {\n if (left.type !== \"JsdocTypeName\")\n throw new Error(\"Symbol expects a name on the left side. (Reacting on '(')\");\n parser.consume(\"(\");\n let result = {\n type: \"JsdocTypeSymbol\",\n value: left.value\n };\n if (!parser.consume(\")\")) {\n let next = parser.parseIntermediateType(Precedence.SYMBOL);\n if (result.element = assertNumberOrVariadicNameResult(next), !parser.consume(\")\"))\n throw new Error(\"Symbol does not end after value\");\n }\n return result;\n }\n }), arrayBracketsParslet = composeParslet({\n name: \"arrayBracketsParslet\",\n precedence: Precedence.ARRAY_BRACKETS,\n accept: (type, next) => type === \"[\" && next === \"]\",\n parseInfix: (parser, left) => (parser.consume(\"[\"), parser.consume(\"]\"), {\n type: \"JsdocTypeGeneric\",\n left: {\n type: \"JsdocTypeName\",\n value: \"Array\"\n },\n elements: [\n assertRootResult(left)\n ],\n meta: {\n brackets: \"square\",\n dot: !1\n }\n })\n });\n function createObjectParslet({ objectFieldGrammar: objectFieldGrammar2, allowKeyTypes }) {\n return composeParslet({\n name: \"objectParslet\",\n accept: (type) => type === \"{\",\n parsePrefix: (parser) => {\n parser.consume(\"{\");\n let result = {\n type: \"JsdocTypeObject\",\n meta: {\n separator: \"comma\"\n },\n elements: []\n };\n if (!parser.consume(\"}\")) {\n let separator, fieldParser = new Parser(objectFieldGrammar2, parser.lexer, parser);\n for (; ; ) {\n fieldParser.acceptLexerState(parser);\n let field = fieldParser.parseIntermediateType(Precedence.OBJECT);\n parser.acceptLexerState(fieldParser), field === void 0 && allowKeyTypes && (field = parser.parseIntermediateType(Precedence.OBJECT));\n let optional = !1;\n if (field.type === \"JsdocTypeNullable\" && (optional = !0, field = field.element), field.type === \"JsdocTypeNumber\" || field.type === \"JsdocTypeName\" || field.type === \"JsdocTypeStringValue\") {\n let quote2;\n field.type === \"JsdocTypeStringValue\" && (quote2 = field.meta.quote), result.elements.push({\n type: \"JsdocTypeObjectField\",\n key: field.value.toString(),\n right: void 0,\n optional,\n readonly: !1,\n meta: {\n quote: quote2\n }\n });\n } else if (field.type === \"JsdocTypeObjectField\" || field.type === \"JsdocTypeJsdocObjectField\")\n result.elements.push(field);\n else\n throw new UnexpectedTypeError(field);\n if (parser.lexer.current.startOfLine)\n separator = \"linebreak\", parser.consume(\",\") || parser.consume(\";\");\n else if (parser.consume(\",\"))\n separator = \"comma\";\n else if (parser.consume(\";\"))\n separator = \"semicolon\";\n else\n break;\n if (parser.lexer.current.type === \"}\")\n break;\n }\n if (result.meta.separator = separator ?? \"comma\", separator === \"linebreak\" && (result.meta.propertyIndent = \" \"), !parser.consume(\"}\"))\n throw new Error(\"Unterminated record type. Missing '}'\");\n }\n return result;\n }\n });\n }\n function createObjectFieldParslet({ allowSquaredProperties, allowKeyTypes, allowReadonly, allowOptional }) {\n return composeParslet({\n name: \"objectFieldParslet\",\n precedence: Precedence.KEY_VALUE,\n accept: (type) => type === \":\",\n parseInfix: (parser, left) => {\n var _a;\n let optional = !1, readonlyProperty = !1;\n allowOptional && left.type === \"JsdocTypeNullable\" && (optional = !0, left = left.element), allowReadonly && left.type === \"JsdocTypeReadonlyProperty\" && (readonlyProperty = !0, left = left.element);\n let parentParser = (_a = parser.baseParser) !== null && _a !== void 0 ? _a : parser;\n if (parentParser.acceptLexerState(parser), left.type === \"JsdocTypeNumber\" || left.type === \"JsdocTypeName\" || left.type === \"JsdocTypeStringValue\" || isSquaredProperty(left)) {\n if (isSquaredProperty(left) && !allowSquaredProperties)\n throw new UnexpectedTypeError(left);\n parentParser.consume(\":\");\n let quote2;\n left.type === \"JsdocTypeStringValue\" && (quote2 = left.meta.quote);\n let right = parentParser.parseType(Precedence.KEY_VALUE);\n return parser.acceptLexerState(parentParser), {\n type: \"JsdocTypeObjectField\",\n key: isSquaredProperty(left) ? left : left.value.toString(),\n right,\n optional,\n readonly: readonlyProperty,\n meta: {\n quote: quote2\n }\n };\n } else {\n if (!allowKeyTypes)\n throw new UnexpectedTypeError(left);\n parentParser.consume(\":\");\n let right = parentParser.parseType(Precedence.KEY_VALUE);\n return parser.acceptLexerState(parentParser), {\n type: \"JsdocTypeJsdocObjectField\",\n left: assertRootResult(left),\n right\n };\n }\n }\n });\n }\n function createKeyValueParslet({ allowOptional, allowVariadic }) {\n return composeParslet({\n name: \"keyValueParslet\",\n precedence: Precedence.KEY_VALUE,\n accept: (type) => type === \":\",\n parseInfix: (parser, left) => {\n let optional = !1, variadic = !1;\n if (allowOptional && left.type === \"JsdocTypeNullable\" && (optional = !0, left = left.element), allowVariadic && left.type === \"JsdocTypeVariadic\" && left.element !== void 0 && (variadic = !0, left = left.element), left.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(left);\n parser.consume(\":\");\n let right = parser.parseType(Precedence.KEY_VALUE);\n return {\n type: \"JsdocTypeKeyValue\",\n key: left.value,\n right,\n optional,\n variadic\n };\n }\n });\n }\n let jsdocBaseGrammar = [\n ...baseGrammar,\n createFunctionParslet({\n allowWithoutParenthesis: !0,\n allowNamedParameters: [\"this\", \"new\"],\n allowNoReturnType: !0,\n allowNewAsFunctionKeyword: !1\n }),\n stringValueParslet,\n createSpecialNamePathParslet({\n allowedTypes: [\"module\", \"external\", \"event\"],\n pathGrammar\n }),\n createVariadicParslet({\n allowEnclosingBrackets: !0,\n allowPostfix: !0\n }),\n createNameParslet({\n allowedAdditionalTokens: [\"keyof\"]\n }),\n symbolParslet,\n arrayBracketsParslet,\n createNamePathParslet({\n allowSquareBracketsOnAnyType: !1,\n allowJsdocNamePaths: !0,\n pathGrammar\n })\n ], jsdocGrammar = [\n ...jsdocBaseGrammar,\n createObjectParslet({\n // jsdoc syntax allows full types as keys, so we need to pull in the full grammar here\n // we leave out the object type deliberately\n objectFieldGrammar: [\n createNameParslet({\n allowedAdditionalTokens: [\"typeof\", \"module\", \"in\"]\n }),\n createObjectFieldParslet({\n allowSquaredProperties: !1,\n allowKeyTypes: !0,\n allowOptional: !1,\n allowReadonly: !1\n }),\n ...jsdocBaseGrammar\n ],\n allowKeyTypes: !0\n }),\n createKeyValueParslet({\n allowOptional: !0,\n allowVariadic: !0\n })\n ], typeOfParslet = composeParslet({\n name: \"typeOfParslet\",\n accept: (type) => type === \"typeof\",\n parsePrefix: (parser) => (parser.consume(\"typeof\"), {\n type: \"JsdocTypeTypeof\",\n element: parser.parseType(Precedence.KEY_OF_TYPE_OF)\n })\n }), objectFieldGrammar$1 = [\n createNameParslet({\n allowedAdditionalTokens: [\"typeof\", \"module\", \"keyof\", \"event\", \"external\", \"in\"]\n }),\n nullableParslet,\n optionalParslet,\n stringValueParslet,\n numberParslet,\n createObjectFieldParslet({\n allowSquaredProperties: !1,\n allowKeyTypes: !1,\n allowOptional: !1,\n allowReadonly: !1\n })\n ], closureGrammar = [\n ...baseGrammar,\n createObjectParslet({\n allowKeyTypes: !1,\n objectFieldGrammar: objectFieldGrammar$1\n }),\n createNameParslet({\n allowedAdditionalTokens: [\"event\", \"external\", \"in\"]\n }),\n typeOfParslet,\n createFunctionParslet({\n allowWithoutParenthesis: !1,\n allowNamedParameters: [\"this\", \"new\"],\n allowNoReturnType: !0,\n allowNewAsFunctionKeyword: !1\n }),\n createVariadicParslet({\n allowEnclosingBrackets: !1,\n allowPostfix: !1\n }),\n // additional name parslet is needed for some special cases\n createNameParslet({\n allowedAdditionalTokens: [\"keyof\"]\n }),\n createSpecialNamePathParslet({\n allowedTypes: [\"module\"],\n pathGrammar\n }),\n createNamePathParslet({\n allowSquareBracketsOnAnyType: !1,\n allowJsdocNamePaths: !0,\n pathGrammar\n }),\n createKeyValueParslet({\n allowOptional: !1,\n allowVariadic: !1\n }),\n symbolParslet\n ], assertsParslet = composeParslet({\n name: \"assertsParslet\",\n accept: (type) => type === \"asserts\",\n parsePrefix: (parser) => {\n parser.consume(\"asserts\");\n let left = parser.parseIntermediateType(Precedence.SYMBOL);\n if (left.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(left, \"A typescript asserts always has to have a name on the left side.\");\n return parser.consume(\"is\") ? {\n type: \"JsdocTypeAsserts\",\n left,\n right: assertRootResult(parser.parseIntermediateType(Precedence.INFIX))\n } : {\n type: \"JsdocTypeAssertsPlain\",\n element: left\n };\n }\n });\n function createTupleParslet({ allowQuestionMark }) {\n return composeParslet({\n name: \"tupleParslet\",\n accept: (type) => type === \"[\",\n parsePrefix: (parser) => {\n parser.consume(\"[\");\n let result = {\n type: \"JsdocTypeTuple\",\n elements: []\n };\n if (parser.consume(\"]\"))\n return result;\n let typeList = parser.parseIntermediateType(Precedence.ALL);\n if (typeList.type === \"JsdocTypeParameterList\" ? typeList.elements[0].type === \"JsdocTypeKeyValue\" ? result.elements = typeList.elements.map(assertPlainKeyValueResult) : result.elements = typeList.elements.map(assertRootResult) : typeList.type === \"JsdocTypeKeyValue\" ? result.elements = [assertPlainKeyValueResult(typeList)] : result.elements = [assertRootResult(typeList)], !parser.consume(\"]\"))\n throw new Error(\"Unterminated '['\");\n if (result.elements.some((e) => e.type === \"JsdocTypeUnknown\"))\n throw new Error(\"Question mark in tuple not allowed\");\n return result;\n }\n });\n }\n let keyOfParslet = composeParslet({\n name: \"keyOfParslet\",\n accept: (type) => type === \"keyof\",\n parsePrefix: (parser) => (parser.consume(\"keyof\"), {\n type: \"JsdocTypeKeyof\",\n element: assertRootResult(parser.parseType(Precedence.KEY_OF_TYPE_OF))\n })\n }), importParslet = composeParslet({\n name: \"importParslet\",\n accept: (type) => type === \"import\",\n parsePrefix: (parser) => {\n if (parser.consume(\"import\"), !parser.consume(\"(\"))\n throw new Error(\"Missing parenthesis after import keyword\");\n let path = parser.parseType(Precedence.PREFIX);\n if (path.type !== \"JsdocTypeStringValue\")\n throw new Error(\"Only string values are allowed as paths for imports\");\n if (!parser.consume(\")\"))\n throw new Error(\"Missing closing parenthesis after import keyword\");\n return {\n type: \"JsdocTypeImport\",\n element: path\n };\n }\n }), readonlyPropertyParslet = composeParslet({\n name: \"readonlyPropertyParslet\",\n accept: (type) => type === \"readonly\",\n parsePrefix: (parser) => (parser.consume(\"readonly\"), {\n type: \"JsdocTypeReadonlyProperty\",\n element: parser.parseIntermediateType(Precedence.KEY_VALUE)\n })\n }), arrowFunctionParslet = composeParslet({\n name: \"arrowFunctionParslet\",\n precedence: Precedence.ARROW,\n accept: (type) => type === \"=>\",\n parseInfix: (parser, left) => (parser.consume(\"=>\"), {\n type: \"JsdocTypeFunction\",\n parameters: getParameters(left).map(assertPlainKeyValueOrNameResult),\n arrow: !0,\n constructor: !1,\n parenthesis: !0,\n returnType: parser.parseType(Precedence.OBJECT)\n })\n }), genericArrowFunctionParslet = composeParslet({\n name: \"genericArrowFunctionParslet\",\n accept: (type) => type === \"<\",\n parsePrefix: (parser) => {\n let typeParameters = [];\n parser.consume(\"<\");\n do {\n let defaultValue, name = parser.parseIntermediateType(Precedence.SYMBOL);\n if (name.type === \"JsdocTypeOptional\" && (name = name.element, defaultValue = parser.parseType(Precedence.SYMBOL)), name.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(name);\n let constraint;\n parser.consume(\"extends\") && (constraint = parser.parseType(Precedence.SYMBOL), constraint.type === \"JsdocTypeOptional\" && (constraint = constraint.element, defaultValue = parser.parseType(Precedence.SYMBOL)));\n let typeParameter = {\n type: \"JsdocTypeTypeParameter\",\n name\n };\n if (constraint !== void 0 && (typeParameter.constraint = constraint), defaultValue !== void 0 && (typeParameter.defaultValue = defaultValue), typeParameters.push(typeParameter), parser.consume(\">\"))\n break;\n } while (parser.consume(\",\"));\n let functionBase = parser.parseIntermediateType(Precedence.SYMBOL);\n return functionBase.typeParameters = typeParameters, functionBase;\n }\n }), intersectionParslet = composeParslet({\n name: \"intersectionParslet\",\n accept: (type) => type === \"&\",\n precedence: Precedence.INTERSECTION,\n parseInfix: (parser, left) => {\n parser.consume(\"&\");\n let elements = [];\n do\n elements.push(parser.parseType(Precedence.INTERSECTION));\n while (parser.consume(\"&\"));\n return {\n type: \"JsdocTypeIntersection\",\n elements: [assertRootResult(left), ...elements]\n };\n }\n }), predicateParslet = composeParslet({\n name: \"predicateParslet\",\n precedence: Precedence.INFIX,\n accept: (type) => type === \"is\",\n parseInfix: (parser, left) => {\n if (left.type !== \"JsdocTypeName\")\n throw new UnexpectedTypeError(left, \"A typescript predicate always has to have a name on the left side.\");\n return parser.consume(\"is\"), {\n type: \"JsdocTypePredicate\",\n left,\n right: assertRootResult(parser.parseIntermediateType(Precedence.INFIX))\n };\n }\n }), objectSquaredPropertyParslet = composeParslet({\n name: \"objectSquareBracketPropertyParslet\",\n accept: (type) => type === \"[\",\n parsePrefix: (parser) => {\n if (parser.baseParser === void 0)\n throw new Error(\"Only allowed inside object grammar\");\n parser.consume(\"[\");\n let key = parser.lexer.current.text;\n parser.consume(\"Identifier\");\n let result;\n if (parser.consume(\":\")) {\n let parentParser = parser.baseParser;\n parentParser.acceptLexerState(parser), result = {\n type: \"JsdocTypeIndexSignature\",\n key,\n right: parentParser.parseType(Precedence.INDEX_BRACKETS)\n }, parser.acceptLexerState(parentParser);\n } else if (parser.consume(\"in\")) {\n let parentParser = parser.baseParser;\n parentParser.acceptLexerState(parser), result = {\n type: \"JsdocTypeMappedType\",\n key,\n right: parentParser.parseType(Precedence.ARRAY_BRACKETS)\n }, parser.acceptLexerState(parentParser);\n } else\n throw new Error(\"Missing ':' or 'in' inside square bracketed property.\");\n if (!parser.consume(\"]\"))\n throw new Error(\"Unterminated square brackets\");\n return result;\n }\n }), readonlyArrayParslet = composeParslet({\n name: \"readonlyArrayParslet\",\n accept: (type) => type === \"readonly\",\n parsePrefix: (parser) => (parser.consume(\"readonly\"), {\n type: \"JsdocTypeReadonlyArray\",\n element: assertArrayOrTupleResult(parser.parseIntermediateType(Precedence.ALL))\n })\n }), conditionalParslet = composeParslet({\n name: \"conditionalParslet\",\n precedence: Precedence.INFIX,\n accept: (type) => type === \"extends\",\n parseInfix: (parser, left) => {\n parser.consume(\"extends\");\n let extendsType = parser.parseType(Precedence.KEY_OF_TYPE_OF).element, trueType = parser.parseType(Precedence.INFIX);\n return parser.consume(\":\"), {\n type: \"JsdocTypeConditional\",\n checksType: assertRootResult(left),\n extendsType,\n trueType,\n falseType: parser.parseType(Precedence.INFIX)\n };\n }\n }), objectFieldGrammar = [\n readonlyPropertyParslet,\n createNameParslet({\n allowedAdditionalTokens: [\"typeof\", \"module\", \"keyof\", \"event\", \"external\", \"in\"]\n }),\n nullableParslet,\n optionalParslet,\n stringValueParslet,\n numberParslet,\n createObjectFieldParslet({\n allowSquaredProperties: !0,\n allowKeyTypes: !1,\n allowOptional: !0,\n allowReadonly: !0\n }),\n objectSquaredPropertyParslet\n ], typescriptGrammar = [\n ...baseGrammar,\n createObjectParslet({\n allowKeyTypes: !1,\n objectFieldGrammar\n }),\n readonlyArrayParslet,\n typeOfParslet,\n keyOfParslet,\n importParslet,\n stringValueParslet,\n createFunctionParslet({\n allowWithoutParenthesis: !0,\n allowNoReturnType: !1,\n allowNamedParameters: [\"this\", \"new\", \"args\"],\n allowNewAsFunctionKeyword: !0\n }),\n createTupleParslet({\n allowQuestionMark: !1\n }),\n createVariadicParslet({\n allowEnclosingBrackets: !1,\n allowPostfix: !1\n }),\n assertsParslet,\n conditionalParslet,\n createNameParslet({\n allowedAdditionalTokens: [\"event\", \"external\", \"in\"]\n }),\n createSpecialNamePathParslet({\n allowedTypes: [\"module\"],\n pathGrammar\n }),\n arrayBracketsParslet,\n arrowFunctionParslet,\n genericArrowFunctionParslet,\n createNamePathParslet({\n allowSquareBracketsOnAnyType: !0,\n allowJsdocNamePaths: !1,\n pathGrammar\n }),\n intersectionParslet,\n predicateParslet,\n createKeyValueParslet({\n allowVariadic: !0,\n allowOptional: !0\n })\n ];\n function parse3(expression, mode) {\n switch (mode) {\n case \"closure\":\n return new Parser(closureGrammar, expression).parse();\n case \"jsdoc\":\n return new Parser(jsdocGrammar, expression).parse();\n case \"typescript\":\n return new Parser(typescriptGrammar, expression).parse();\n }\n }\n function tryParse(expression, modes = [\"typescript\", \"closure\", \"jsdoc\"]) {\n let error;\n for (let mode of modes)\n try {\n return parse3(expression, mode);\n } catch (e) {\n error = e;\n }\n throw error;\n }\n function transform(rules2, parseResult) {\n let rule = rules2[parseResult.type];\n if (rule === void 0)\n throw new Error(`In this set of transform rules exists no rule for type ${parseResult.type}.`);\n return rule(parseResult, (aParseResult) => transform(rules2, aParseResult));\n }\n function notAvailableTransform(parseResult) {\n throw new Error(\"This transform is not available. Are you trying the correct parsing mode?\");\n }\n function extractSpecialParams(source) {\n let result = {\n params: []\n };\n for (let param of source.parameters)\n param.type === \"JsdocTypeKeyValue\" ? param.key === \"this\" ? result.this = param.right : param.key === \"new\" ? result.new = param.right : result.params.push(param) : result.params.push(param);\n return result;\n }\n function applyPosition(position, target, value) {\n return position === \"prefix\" ? value + target : target + value;\n }\n function quote(value, quote2) {\n switch (quote2) {\n case \"double\":\n return `\"${value}\"`;\n case \"single\":\n return `'${value}'`;\n case void 0:\n return value;\n }\n }\n function stringifyRules2() {\n return {\n JsdocTypeParenthesis: (result, transform2) => `(${result.element !== void 0 ? transform2(result.element) : \"\"})`,\n JsdocTypeKeyof: (result, transform2) => `keyof ${transform2(result.element)}`,\n JsdocTypeFunction: (result, transform2) => {\n var _a;\n if (result.arrow) {\n if (result.returnType === void 0)\n throw new Error(\"Arrow function needs a return type.\");\n let stringified = `${result.typeParameters !== void 0 ? `<${(_a = result.typeParameters.map(transform2).join(\", \")) !== null && _a !== void 0 ? _a : \"\"}>` : \"\"}(${result.parameters.map(transform2).join(\", \")}) => ${transform2(result.returnType)}`;\n return result.constructor && (stringified = \"new \" + stringified), stringified;\n } else {\n let stringified = result.constructor ? \"new\" : \"function\";\n return result.parenthesis && (stringified += `(${result.parameters.map(transform2).join(\", \")})`, result.returnType !== void 0 && (stringified += `: ${transform2(result.returnType)}`)), stringified;\n }\n },\n JsdocTypeName: (result) => result.value,\n JsdocTypeTuple: (result, transform2) => `[${result.elements.map(transform2).join(\", \")}]`,\n JsdocTypeVariadic: (result, transform2) => result.meta.position === void 0 ? \"...\" : applyPosition(result.meta.position, transform2(result.element), \"...\"),\n JsdocTypeNamePath: (result, transform2) => {\n let left = transform2(result.left), right = transform2(result.right);\n switch (result.pathType) {\n case \"inner\":\n return `${left}~${right}`;\n case \"instance\":\n return `${left}#${right}`;\n case \"property\":\n return `${left}.${right}`;\n case \"property-brackets\":\n return `${left}[${right}]`;\n }\n },\n JsdocTypeStringValue: (result) => quote(result.value, result.meta.quote),\n JsdocTypeAny: () => \"*\",\n JsdocTypeGeneric: (result, transform2) => {\n if (result.meta.brackets === \"square\") {\n let element = result.elements[0], transformed = transform2(element);\n return element.type === \"JsdocTypeUnion\" || element.type === \"JsdocTypeIntersection\" ? `(${transformed})[]` : `${transformed}[]`;\n } else\n return `${transform2(result.left)}${result.meta.dot ? \".\" : \"\"}<${result.infer === !0 ? \"infer \" : \"\"}${result.elements.map(transform2).join(\", \")}>`;\n },\n JsdocTypeImport: (result, transform2) => `import(${transform2(result.element)})`,\n JsdocTypeObjectField: (result, transform2) => {\n let text = \"\";\n return result.readonly && (text += \"readonly \"), typeof result.key == \"string\" ? text += quote(result.key, result.meta.quote) : text += transform2(result.key), result.optional && (text += \"?\"), result.right === void 0 ? text : text + `: ${transform2(result.right)}`;\n },\n JsdocTypeJsdocObjectField: (result, transform2) => `${transform2(result.left)}: ${transform2(result.right)}`,\n JsdocTypeKeyValue: (result, transform2) => {\n let text = result.key;\n return result.optional && (text += \"?\"), result.variadic && (text = \"...\" + text), result.right === void 0 ? text : text + `: ${transform2(result.right)}`;\n },\n JsdocTypeSpecialNamePath: (result) => `${result.specialType}:${quote(result.value, result.meta.quote)}`,\n JsdocTypeNotNullable: (result, transform2) => applyPosition(result.meta.position, transform2(result.element), \"!\"),\n JsdocTypeNull: () => \"null\",\n JsdocTypeNullable: (result, transform2) => applyPosition(result.meta.position, transform2(result.element), \"?\"),\n JsdocTypeNumber: (result) => result.value.toString(),\n JsdocTypeObject: (result, transform2) => {\n var _a, _b;\n return `{${(result.meta.separator === \"linebreak\" && result.elements.length > 1 ? `\n` + ((_a = result.meta.propertyIndent) !== null && _a !== void 0 ? _a : \"\") : \"\") + result.elements.map(transform2).join(result.meta.separator === \"comma\" ? \", \" : result.meta.separator === \"linebreak\" ? `\n` + ((_b = result.meta.propertyIndent) !== null && _b !== void 0 ? _b : \"\") : \"; \") + (result.meta.separator === \"linebreak\" && result.elements.length > 1 ? `\n` : \"\")}}`;\n },\n JsdocTypeOptional: (result, transform2) => applyPosition(result.meta.position, transform2(result.element), \"=\"),\n JsdocTypeSymbol: (result, transform2) => `${result.value}(${result.element !== void 0 ? transform2(result.element) : \"\"})`,\n JsdocTypeTypeof: (result, transform2) => `typeof ${transform2(result.element)}`,\n JsdocTypeUndefined: () => \"undefined\",\n JsdocTypeUnion: (result, transform2) => result.elements.map(transform2).join(\" | \"),\n JsdocTypeUnknown: () => \"?\",\n JsdocTypeIntersection: (result, transform2) => result.elements.map(transform2).join(\" & \"),\n JsdocTypeProperty: (result) => quote(result.value, result.meta.quote),\n JsdocTypePredicate: (result, transform2) => `${transform2(result.left)} is ${transform2(result.right)}`,\n JsdocTypeIndexSignature: (result, transform2) => `[${result.key}: ${transform2(result.right)}]`,\n JsdocTypeMappedType: (result, transform2) => `[${result.key} in ${transform2(result.right)}]`,\n JsdocTypeAsserts: (result, transform2) => `asserts ${transform2(result.left)} is ${transform2(result.right)}`,\n JsdocTypeReadonlyArray: (result, transform2) => `readonly ${transform2(result.element)}`,\n JsdocTypeAssertsPlain: (result, transform2) => `asserts ${transform2(result.element)}`,\n JsdocTypeConditional: (result, transform2) => `${transform2(result.checksType)} extends ${transform2(result.extendsType)} ? ${transform2(result.trueType)} : ${transform2(result.falseType)}`,\n JsdocTypeTypeParameter: (result, transform2) => `${transform2(result.name)}${result.constraint !== void 0 ? ` extends ${transform2(result.constraint)}` : \"\"}${result.defaultValue !== void 0 ? ` = ${transform2(result.defaultValue)}` : \"\"}`\n };\n }\n let storedStringifyRules = stringifyRules2();\n function stringify2(result) {\n return transform(storedStringifyRules, result);\n }\n let reservedWords = [\n \"null\",\n \"true\",\n \"false\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\"\n ];\n function makeName(value) {\n let result = {\n type: \"NameExpression\",\n name: value\n };\n return reservedWords.includes(value) && (result.reservedWord = !0), result;\n }\n let catharsisTransformRules = {\n JsdocTypeOptional: (result, transform2) => {\n let transformed = transform2(result.element);\n return transformed.optional = !0, transformed;\n },\n JsdocTypeNullable: (result, transform2) => {\n let transformed = transform2(result.element);\n return transformed.nullable = !0, transformed;\n },\n JsdocTypeNotNullable: (result, transform2) => {\n let transformed = transform2(result.element);\n return transformed.nullable = !1, transformed;\n },\n JsdocTypeVariadic: (result, transform2) => {\n if (result.element === void 0)\n throw new Error(\"dots without value are not allowed in catharsis mode\");\n let transformed = transform2(result.element);\n return transformed.repeatable = !0, transformed;\n },\n JsdocTypeAny: () => ({\n type: \"AllLiteral\"\n }),\n JsdocTypeNull: () => ({\n type: \"NullLiteral\"\n }),\n JsdocTypeStringValue: (result) => makeName(quote(result.value, result.meta.quote)),\n JsdocTypeUndefined: () => ({\n type: \"UndefinedLiteral\"\n }),\n JsdocTypeUnknown: () => ({\n type: \"UnknownLiteral\"\n }),\n JsdocTypeFunction: (result, transform2) => {\n let params = extractSpecialParams(result), transformed = {\n type: \"FunctionType\",\n params: params.params.map(transform2)\n };\n return params.this !== void 0 && (transformed.this = transform2(params.this)), params.new !== void 0 && (transformed.new = transform2(params.new)), result.returnType !== void 0 && (transformed.result = transform2(result.returnType)), transformed;\n },\n JsdocTypeGeneric: (result, transform2) => ({\n type: \"TypeApplication\",\n applications: result.elements.map((o) => transform2(o)),\n expression: transform2(result.left)\n }),\n JsdocTypeSpecialNamePath: (result) => makeName(result.specialType + \":\" + quote(result.value, result.meta.quote)),\n JsdocTypeName: (result) => result.value !== \"function\" ? makeName(result.value) : {\n type: \"FunctionType\",\n params: []\n },\n JsdocTypeNumber: (result) => makeName(result.value.toString()),\n JsdocTypeObject: (result, transform2) => {\n let transformed = {\n type: \"RecordType\",\n fields: []\n };\n for (let field of result.elements)\n field.type !== \"JsdocTypeObjectField\" && field.type !== \"JsdocTypeJsdocObjectField\" ? transformed.fields.push({\n type: \"FieldType\",\n key: transform2(field),\n value: void 0\n }) : transformed.fields.push(transform2(field));\n return transformed;\n },\n JsdocTypeObjectField: (result, transform2) => {\n if (typeof result.key != \"string\")\n throw new Error(\"Index signatures and mapped types are not supported\");\n return {\n type: \"FieldType\",\n key: makeName(quote(result.key, result.meta.quote)),\n value: result.right === void 0 ? void 0 : transform2(result.right)\n };\n },\n JsdocTypeJsdocObjectField: (result, transform2) => ({\n type: \"FieldType\",\n key: transform2(result.left),\n value: transform2(result.right)\n }),\n JsdocTypeUnion: (result, transform2) => ({\n type: \"TypeUnion\",\n elements: result.elements.map((e) => transform2(e))\n }),\n JsdocTypeKeyValue: (result, transform2) => ({\n type: \"FieldType\",\n key: makeName(result.key),\n value: result.right === void 0 ? void 0 : transform2(result.right)\n }),\n JsdocTypeNamePath: (result, transform2) => {\n let leftResult = transform2(result.left), rightValue;\n result.right.type === \"JsdocTypeSpecialNamePath\" ? rightValue = transform2(result.right).name : rightValue = quote(result.right.value, result.right.meta.quote);\n let joiner = result.pathType === \"inner\" ? \"~\" : result.pathType === \"instance\" ? \"#\" : \".\";\n return makeName(`${leftResult.name}${joiner}${rightValue}`);\n },\n JsdocTypeSymbol: (result) => {\n let value = \"\", element = result.element, trailingDots = !1;\n return element?.type === \"JsdocTypeVariadic\" && (element.meta.position === \"prefix\" ? value = \"...\" : trailingDots = !0, element = element.element), element?.type === \"JsdocTypeName\" ? value += element.value : element?.type === \"JsdocTypeNumber\" && (value += element.value.toString()), trailingDots && (value += \"...\"), makeName(`${result.value}(${value})`);\n },\n JsdocTypeParenthesis: (result, transform2) => transform2(assertRootResult(result.element)),\n JsdocTypeMappedType: notAvailableTransform,\n JsdocTypeIndexSignature: notAvailableTransform,\n JsdocTypeImport: notAvailableTransform,\n JsdocTypeKeyof: notAvailableTransform,\n JsdocTypeTuple: notAvailableTransform,\n JsdocTypeTypeof: notAvailableTransform,\n JsdocTypeIntersection: notAvailableTransform,\n JsdocTypeProperty: notAvailableTransform,\n JsdocTypePredicate: notAvailableTransform,\n JsdocTypeAsserts: notAvailableTransform,\n JsdocTypeReadonlyArray: notAvailableTransform,\n JsdocTypeAssertsPlain: notAvailableTransform,\n JsdocTypeConditional: notAvailableTransform,\n JsdocTypeTypeParameter: notAvailableTransform\n };\n function catharsisTransform(result) {\n return transform(catharsisTransformRules, result);\n }\n function getQuoteStyle(quote2) {\n switch (quote2) {\n case void 0:\n return \"none\";\n case \"single\":\n return \"single\";\n case \"double\":\n return \"double\";\n }\n }\n function getMemberType(type) {\n switch (type) {\n case \"inner\":\n return \"INNER_MEMBER\";\n case \"instance\":\n return \"INSTANCE_MEMBER\";\n case \"property\":\n return \"MEMBER\";\n case \"property-brackets\":\n return \"MEMBER\";\n }\n }\n function nestResults(type, results) {\n return results.length === 2 ? {\n type,\n left: results[0],\n right: results[1]\n } : {\n type,\n left: results[0],\n right: nestResults(type, results.slice(1))\n };\n }\n let jtpRules = {\n JsdocTypeOptional: (result, transform2) => ({\n type: \"OPTIONAL\",\n value: transform2(result.element),\n meta: {\n syntax: result.meta.position === \"prefix\" ? \"PREFIX_EQUAL_SIGN\" : \"SUFFIX_EQUALS_SIGN\"\n }\n }),\n JsdocTypeNullable: (result, transform2) => ({\n type: \"NULLABLE\",\n value: transform2(result.element),\n meta: {\n syntax: result.meta.position === \"prefix\" ? \"PREFIX_QUESTION_MARK\" : \"SUFFIX_QUESTION_MARK\"\n }\n }),\n JsdocTypeNotNullable: (result, transform2) => ({\n type: \"NOT_NULLABLE\",\n value: transform2(result.element),\n meta: {\n syntax: result.meta.position === \"prefix\" ? \"PREFIX_BANG\" : \"SUFFIX_BANG\"\n }\n }),\n JsdocTypeVariadic: (result, transform2) => {\n let transformed = {\n type: \"VARIADIC\",\n meta: {\n syntax: result.meta.position === \"prefix\" ? \"PREFIX_DOTS\" : result.meta.position === \"suffix\" ? \"SUFFIX_DOTS\" : \"ONLY_DOTS\"\n }\n };\n return result.element !== void 0 && (transformed.value = transform2(result.element)), transformed;\n },\n JsdocTypeName: (result) => ({\n type: \"NAME\",\n name: result.value\n }),\n JsdocTypeTypeof: (result, transform2) => ({\n type: \"TYPE_QUERY\",\n name: transform2(result.element)\n }),\n JsdocTypeTuple: (result, transform2) => ({\n type: \"TUPLE\",\n entries: result.elements.map(transform2)\n }),\n JsdocTypeKeyof: (result, transform2) => ({\n type: \"KEY_QUERY\",\n value: transform2(result.element)\n }),\n JsdocTypeImport: (result) => ({\n type: \"IMPORT\",\n path: {\n type: \"STRING_VALUE\",\n quoteStyle: getQuoteStyle(result.element.meta.quote),\n string: result.element.value\n }\n }),\n JsdocTypeUndefined: () => ({\n type: \"NAME\",\n name: \"undefined\"\n }),\n JsdocTypeAny: () => ({\n type: \"ANY\"\n }),\n JsdocTypeFunction: (result, transform2) => {\n let specialParams = extractSpecialParams(result), transformed = {\n type: result.arrow ? \"ARROW\" : \"FUNCTION\",\n params: specialParams.params.map((param) => {\n if (param.type === \"JsdocTypeKeyValue\") {\n if (param.right === void 0)\n throw new Error(\"Function parameter without ':' is not expected to be 'KEY_VALUE'\");\n return {\n type: \"NAMED_PARAMETER\",\n name: param.key,\n typeName: transform2(param.right)\n };\n } else\n return transform2(param);\n }),\n new: null,\n returns: null\n };\n return specialParams.this !== void 0 ? transformed.this = transform2(specialParams.this) : result.arrow || (transformed.this = null), specialParams.new !== void 0 && (transformed.new = transform2(specialParams.new)), result.returnType !== void 0 && (transformed.returns = transform2(result.returnType)), transformed;\n },\n JsdocTypeGeneric: (result, transform2) => {\n let transformed = {\n type: \"GENERIC\",\n subject: transform2(result.left),\n objects: result.elements.map(transform2),\n meta: {\n syntax: result.meta.brackets === \"square\" ? \"SQUARE_BRACKET\" : result.meta.dot ? \"ANGLE_BRACKET_WITH_DOT\" : \"ANGLE_BRACKET\"\n }\n };\n return result.meta.brackets === \"square\" && result.elements[0].type === \"JsdocTypeFunction\" && !result.elements[0].parenthesis && (transformed.objects[0] = {\n type: \"NAME\",\n name: \"function\"\n }), transformed;\n },\n JsdocTypeObjectField: (result, transform2) => {\n if (typeof result.key != \"string\")\n throw new Error(\"Index signatures and mapped types are not supported\");\n if (result.right === void 0)\n return {\n type: \"RECORD_ENTRY\",\n key: result.key,\n quoteStyle: getQuoteStyle(result.meta.quote),\n value: null,\n readonly: !1\n };\n let right = transform2(result.right);\n return result.optional && (right = {\n type: \"OPTIONAL\",\n value: right,\n meta: {\n syntax: \"SUFFIX_KEY_QUESTION_MARK\"\n }\n }), {\n type: \"RECORD_ENTRY\",\n key: result.key.toString(),\n quoteStyle: getQuoteStyle(result.meta.quote),\n value: right,\n readonly: !1\n };\n },\n JsdocTypeJsdocObjectField: () => {\n throw new Error(\"Keys may not be typed in jsdoctypeparser.\");\n },\n JsdocTypeKeyValue: (result, transform2) => {\n if (result.right === void 0)\n return {\n type: \"RECORD_ENTRY\",\n key: result.key,\n quoteStyle: \"none\",\n value: null,\n readonly: !1\n };\n let right = transform2(result.right);\n return result.optional && (right = {\n type: \"OPTIONAL\",\n value: right,\n meta: {\n syntax: \"SUFFIX_KEY_QUESTION_MARK\"\n }\n }), {\n type: \"RECORD_ENTRY\",\n key: result.key,\n quoteStyle: \"none\",\n value: right,\n readonly: !1\n };\n },\n JsdocTypeObject: (result, transform2) => {\n let entries = [];\n for (let field of result.elements)\n (field.type === \"JsdocTypeObjectField\" || field.type === \"JsdocTypeJsdocObjectField\") && entries.push(transform2(field));\n return {\n type: \"RECORD\",\n entries\n };\n },\n JsdocTypeSpecialNamePath: (result) => {\n if (result.specialType !== \"module\")\n throw new Error(`jsdoctypeparser does not support type ${result.specialType} at this point.`);\n return {\n type: \"MODULE\",\n value: {\n type: \"FILE_PATH\",\n quoteStyle: getQuoteStyle(result.meta.quote),\n path: result.value\n }\n };\n },\n JsdocTypeNamePath: (result, transform2) => {\n let hasEventPrefix = !1, name, quoteStyle;\n result.right.type === \"JsdocTypeSpecialNamePath\" && result.right.specialType === \"event\" ? (hasEventPrefix = !0, name = result.right.value, quoteStyle = getQuoteStyle(result.right.meta.quote)) : (name = result.right.value, quoteStyle = getQuoteStyle(result.right.meta.quote));\n let transformed = {\n type: getMemberType(result.pathType),\n owner: transform2(result.left),\n name,\n quoteStyle,\n hasEventPrefix\n };\n if (transformed.owner.type === \"MODULE\") {\n let tModule = transformed.owner;\n return transformed.owner = transformed.owner.value, tModule.value = transformed, tModule;\n } else\n return transformed;\n },\n JsdocTypeUnion: (result, transform2) => nestResults(\"UNION\", result.elements.map(transform2)),\n JsdocTypeParenthesis: (result, transform2) => ({\n type: \"PARENTHESIS\",\n value: transform2(assertRootResult(result.element))\n }),\n JsdocTypeNull: () => ({\n type: \"NAME\",\n name: \"null\"\n }),\n JsdocTypeUnknown: () => ({\n type: \"UNKNOWN\"\n }),\n JsdocTypeStringValue: (result) => ({\n type: \"STRING_VALUE\",\n quoteStyle: getQuoteStyle(result.meta.quote),\n string: result.value\n }),\n JsdocTypeIntersection: (result, transform2) => nestResults(\"INTERSECTION\", result.elements.map(transform2)),\n JsdocTypeNumber: (result) => ({\n type: \"NUMBER_VALUE\",\n number: result.value.toString()\n }),\n JsdocTypeSymbol: notAvailableTransform,\n JsdocTypeProperty: notAvailableTransform,\n JsdocTypePredicate: notAvailableTransform,\n JsdocTypeMappedType: notAvailableTransform,\n JsdocTypeIndexSignature: notAvailableTransform,\n JsdocTypeAsserts: notAvailableTransform,\n JsdocTypeReadonlyArray: notAvailableTransform,\n JsdocTypeAssertsPlain: notAvailableTransform,\n JsdocTypeConditional: notAvailableTransform,\n JsdocTypeTypeParameter: notAvailableTransform\n };\n function jtpTransform(result) {\n return transform(jtpRules, result);\n }\n function identityTransformRules() {\n return {\n JsdocTypeIntersection: (result, transform2) => ({\n type: \"JsdocTypeIntersection\",\n elements: result.elements.map(transform2)\n }),\n JsdocTypeGeneric: (result, transform2) => ({\n type: \"JsdocTypeGeneric\",\n left: transform2(result.left),\n elements: result.elements.map(transform2),\n meta: {\n dot: result.meta.dot,\n brackets: result.meta.brackets\n }\n }),\n JsdocTypeNullable: (result) => result,\n JsdocTypeUnion: (result, transform2) => ({\n type: \"JsdocTypeUnion\",\n elements: result.elements.map(transform2)\n }),\n JsdocTypeUnknown: (result) => result,\n JsdocTypeUndefined: (result) => result,\n JsdocTypeTypeof: (result, transform2) => ({\n type: \"JsdocTypeTypeof\",\n element: transform2(result.element)\n }),\n JsdocTypeSymbol: (result, transform2) => {\n let transformed = {\n type: \"JsdocTypeSymbol\",\n value: result.value\n };\n return result.element !== void 0 && (transformed.element = transform2(result.element)), transformed;\n },\n JsdocTypeOptional: (result, transform2) => ({\n type: \"JsdocTypeOptional\",\n element: transform2(result.element),\n meta: {\n position: result.meta.position\n }\n }),\n JsdocTypeObject: (result, transform2) => ({\n type: \"JsdocTypeObject\",\n meta: {\n separator: \"comma\"\n },\n elements: result.elements.map(transform2)\n }),\n JsdocTypeNumber: (result) => result,\n JsdocTypeNull: (result) => result,\n JsdocTypeNotNullable: (result, transform2) => ({\n type: \"JsdocTypeNotNullable\",\n element: transform2(result.element),\n meta: {\n position: result.meta.position\n }\n }),\n JsdocTypeSpecialNamePath: (result) => result,\n JsdocTypeObjectField: (result, transform2) => ({\n type: \"JsdocTypeObjectField\",\n key: result.key,\n right: result.right === void 0 ? void 0 : transform2(result.right),\n optional: result.optional,\n readonly: result.readonly,\n meta: result.meta\n }),\n JsdocTypeJsdocObjectField: (result, transform2) => ({\n type: \"JsdocTypeJsdocObjectField\",\n left: transform2(result.left),\n right: transform2(result.right)\n }),\n JsdocTypeKeyValue: (result, transform2) => ({\n type: \"JsdocTypeKeyValue\",\n key: result.key,\n right: result.right === void 0 ? void 0 : transform2(result.right),\n optional: result.optional,\n variadic: result.variadic\n }),\n JsdocTypeImport: (result, transform2) => ({\n type: \"JsdocTypeImport\",\n element: transform2(result.element)\n }),\n JsdocTypeAny: (result) => result,\n JsdocTypeStringValue: (result) => result,\n JsdocTypeNamePath: (result) => result,\n JsdocTypeVariadic: (result, transform2) => {\n let transformed = {\n type: \"JsdocTypeVariadic\",\n meta: {\n position: result.meta.position,\n squareBrackets: result.meta.squareBrackets\n }\n };\n return result.element !== void 0 && (transformed.element = transform2(result.element)), transformed;\n },\n JsdocTypeTuple: (result, transform2) => ({\n type: \"JsdocTypeTuple\",\n elements: result.elements.map(transform2)\n }),\n JsdocTypeName: (result) => result,\n JsdocTypeFunction: (result, transform2) => {\n let transformed = {\n type: \"JsdocTypeFunction\",\n arrow: result.arrow,\n parameters: result.parameters.map(transform2),\n constructor: result.constructor,\n parenthesis: result.parenthesis\n };\n return result.returnType !== void 0 && (transformed.returnType = transform2(result.returnType)), transformed;\n },\n JsdocTypeKeyof: (result, transform2) => ({\n type: \"JsdocTypeKeyof\",\n element: transform2(result.element)\n }),\n JsdocTypeParenthesis: (result, transform2) => ({\n type: \"JsdocTypeParenthesis\",\n element: transform2(result.element)\n }),\n JsdocTypeProperty: (result) => result,\n JsdocTypePredicate: (result, transform2) => ({\n type: \"JsdocTypePredicate\",\n left: transform2(result.left),\n right: transform2(result.right)\n }),\n JsdocTypeIndexSignature: (result, transform2) => ({\n type: \"JsdocTypeIndexSignature\",\n key: result.key,\n right: transform2(result.right)\n }),\n JsdocTypeMappedType: (result, transform2) => ({\n type: \"JsdocTypeMappedType\",\n key: result.key,\n right: transform2(result.right)\n }),\n JsdocTypeAsserts: (result, transform2) => ({\n type: \"JsdocTypeAsserts\",\n left: transform2(result.left),\n right: transform2(result.right)\n }),\n JsdocTypeReadonlyArray: (result, transform2) => ({\n type: \"JsdocTypeReadonlyArray\",\n element: transform2(result.element)\n }),\n JsdocTypeAssertsPlain: (result, transform2) => ({\n type: \"JsdocTypeAssertsPlain\",\n element: transform2(result.element)\n }),\n JsdocTypeConditional: (result, transform2) => ({\n type: \"JsdocTypeConditional\",\n checksType: transform2(result.checksType),\n extendsType: transform2(result.extendsType),\n trueType: transform2(result.trueType),\n falseType: transform2(result.falseType)\n }),\n JsdocTypeTypeParameter: (result, transform2) => ({\n type: \"JsdocTypeTypeParameter\",\n name: transform2(result.name),\n constraint: result.constraint !== void 0 ? transform2(result.constraint) : void 0,\n defaultValue: result.defaultValue !== void 0 ? transform2(result.defaultValue) : void 0\n })\n };\n }\n let visitorKeys = {\n JsdocTypeAny: [],\n JsdocTypeFunction: [\"parameters\", \"returnType\"],\n JsdocTypeGeneric: [\"left\", \"elements\"],\n JsdocTypeImport: [],\n JsdocTypeIndexSignature: [\"right\"],\n JsdocTypeIntersection: [\"elements\"],\n JsdocTypeKeyof: [\"element\"],\n JsdocTypeKeyValue: [\"right\"],\n JsdocTypeMappedType: [\"right\"],\n JsdocTypeName: [],\n JsdocTypeNamePath: [\"left\", \"right\"],\n JsdocTypeNotNullable: [\"element\"],\n JsdocTypeNull: [],\n JsdocTypeNullable: [\"element\"],\n JsdocTypeNumber: [],\n JsdocTypeObject: [\"elements\"],\n JsdocTypeObjectField: [\"right\"],\n JsdocTypeJsdocObjectField: [\"left\", \"right\"],\n JsdocTypeOptional: [\"element\"],\n JsdocTypeParenthesis: [\"element\"],\n JsdocTypeSpecialNamePath: [],\n JsdocTypeStringValue: [],\n JsdocTypeSymbol: [\"element\"],\n JsdocTypeTuple: [\"elements\"],\n JsdocTypeTypeof: [\"element\"],\n JsdocTypeUndefined: [],\n JsdocTypeUnion: [\"elements\"],\n JsdocTypeUnknown: [],\n JsdocTypeVariadic: [\"element\"],\n JsdocTypeProperty: [],\n JsdocTypePredicate: [\"left\", \"right\"],\n JsdocTypeAsserts: [\"left\", \"right\"],\n JsdocTypeReadonlyArray: [\"element\"],\n JsdocTypeAssertsPlain: [\"element\"],\n JsdocTypeConditional: [\"checksType\", \"extendsType\", \"trueType\", \"falseType\"],\n JsdocTypeTypeParameter: [\"name\", \"constraint\", \"defaultValue\"]\n };\n function _traverse(node, parentNode, property, onEnter, onLeave) {\n onEnter?.(node, parentNode, property);\n let keysToVisit = visitorKeys[node.type];\n for (let key of keysToVisit) {\n let value = node[key];\n if (value !== void 0)\n if (Array.isArray(value))\n for (let element of value)\n _traverse(element, node, key, onEnter, onLeave);\n else\n _traverse(value, node, key, onEnter, onLeave);\n }\n onLeave?.(node, parentNode, property);\n }\n function traverse(node, onEnter, onLeave) {\n _traverse(node, void 0, void 0, onEnter, onLeave);\n }\n exports2.catharsisTransform = catharsisTransform, exports2.identityTransformRules = identityTransformRules, exports2.jtpTransform = jtpTransform, exports2.parse = parse3, exports2.stringify = stringify2, exports2.stringifyRules = stringifyRules2, exports2.transform = transform, exports2.traverse = traverse, exports2.tryParse = tryParse, exports2.visitorKeys = visitorKeys;\n }));\n }\n});\n\n// src/docs-tools/argTypes/convert/flow/convert.ts\nimport { UnknownArgTypesError } from \"storybook/internal/preview-errors\";\nvar isLiteral = (type) => type.name === \"literal\", toEnumOption = (element) => element.value.replace(/['|\"]/g, \"\"), convertSig = (type) => {\n switch (type.type) {\n case \"function\":\n return { name: \"function\" };\n case \"object\":\n let values = {};\n return type.signature.properties.forEach((prop) => {\n values[prop.key] = convert(prop.value);\n }), {\n name: \"object\",\n value: values\n };\n default:\n throw new UnknownArgTypesError({ type, language: \"Flow\" });\n }\n}, convert = (type) => {\n let { name, raw } = type, base = {};\n switch (typeof raw < \"u\" && (base.raw = raw), type.name) {\n case \"literal\":\n return { ...base, name: \"other\", value: type.value };\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"boolean\":\n return { ...base, name };\n case \"Array\":\n return { ...base, name: \"array\", value: type.elements.map(convert) };\n case \"signature\":\n return { ...base, ...convertSig(type) };\n case \"union\":\n return type.elements?.every(isLiteral) ? { ...base, name: \"enum\", value: type.elements?.map(toEnumOption) } : { ...base, name, value: type.elements?.map(convert) };\n case \"intersection\":\n return { ...base, name, value: type.elements?.map(convert) };\n default:\n return { ...base, name: \"other\", value: name };\n }\n};\n\n// src/docs-tools/argTypes/convert/utils.ts\nvar QUOTE_REGEX = /^['\"]|['\"]$/g, trimQuotes = (str2) => str2.replace(QUOTE_REGEX, \"\"), includesQuotes = (str2) => QUOTE_REGEX.test(str2), parseLiteral = (str2) => {\n let trimmedValue = trimQuotes(str2);\n return includesQuotes(str2) || Number.isNaN(Number(trimmedValue)) ? trimmedValue : Number(trimmedValue);\n};\n\n// src/docs-tools/argTypes/convert/proptypes/convert.ts\nvar SIGNATURE_REGEXP = /^\\(.*\\) => /, convert2 = (type) => {\n let { name, raw, computed, value } = type, base = {};\n switch (typeof raw < \"u\" && (base.raw = raw), name) {\n case \"enum\": {\n let values2 = computed ? value : value.map((v) => parseLiteral(v.value));\n return { ...base, name, value: values2 };\n }\n case \"string\":\n case \"number\":\n case \"symbol\":\n return { ...base, name };\n case \"func\":\n return { ...base, name: \"function\" };\n case \"bool\":\n case \"boolean\":\n return { ...base, name: \"boolean\" };\n case \"arrayOf\":\n case \"array\":\n return { ...base, name: \"array\", value: value && convert2(value) };\n case \"object\":\n return { ...base, name };\n case \"objectOf\":\n return { ...base, name, value: convert2(value) };\n case \"shape\":\n case \"exact\":\n let values = mapValues(value, (field) => convert2(field));\n return { ...base, name: \"object\", value: values };\n case \"union\":\n return { ...base, name: \"union\", value: value.map((v) => convert2(v)) };\n case \"instanceOf\":\n case \"element\":\n case \"elementType\":\n default: {\n if (name?.indexOf(\"|\") > 0)\n try {\n let literalValues = name.split(\"|\").map((v) => JSON.parse(v));\n return { ...base, name: \"enum\", value: literalValues };\n } catch {\n }\n let otherVal = value ? `${name}(${value})` : name, otherName = SIGNATURE_REGEXP.test(name) ? \"function\" : \"other\";\n return { ...base, name: otherName, value: otherVal };\n }\n }\n};\n\n// src/docs-tools/argTypes/convert/typescript/convert.ts\nimport { UnknownArgTypesError as UnknownArgTypesError2 } from \"storybook/internal/preview-errors\";\nvar convertSig2 = (type) => {\n switch (type.type) {\n case \"function\":\n return { name: \"function\" };\n case \"object\":\n let values = {};\n return type.signature.properties.forEach((prop) => {\n values[prop.key] = convert3(prop.value);\n }), {\n name: \"object\",\n value: values\n };\n default:\n throw new UnknownArgTypesError2({ type, language: \"Typescript\" });\n }\n}, convert3 = (type) => {\n let { name, raw } = type, base = {};\n switch (typeof raw < \"u\" && (base.raw = raw), type.name) {\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"boolean\":\n return { ...base, name };\n case \"Array\":\n return { ...base, name: \"array\", value: type.elements.map(convert3) };\n case \"signature\":\n return { ...base, ...convertSig2(type) };\n case \"union\":\n let result;\n return type.elements?.every((element) => element.name === \"literal\") ? result = {\n ...base,\n name: \"enum\",\n // @ts-expect-error fix types\n value: type.elements?.map((v) => parseLiteral(v.value))\n } : result = { ...base, name, value: type.elements?.map(convert3) }, result;\n case \"intersection\":\n return { ...base, name, value: type.elements?.map(convert3) };\n default:\n return { ...base, name: \"other\", value: name };\n }\n};\n\n// src/docs-tools/argTypes/convert/index.ts\nvar convert4 = (docgenInfo) => {\n let { type, tsType, flowType } = docgenInfo;\n try {\n if (type != null)\n return convert2(type);\n if (tsType != null)\n return convert3(tsType);\n if (flowType != null)\n return convert(flowType);\n } catch (err) {\n console.error(err);\n }\n return null;\n};\n\n// src/docs-tools/argTypes/docgen/types.ts\nvar TypeSystem = /* @__PURE__ */ ((TypeSystem2) => (TypeSystem2.JAVASCRIPT = \"JavaScript\", TypeSystem2.FLOW = \"Flow\", TypeSystem2.TYPESCRIPT = \"TypeScript\", TypeSystem2.UNKNOWN = \"Unknown\", TypeSystem2))(TypeSystem || {});\n\n// src/docs-tools/argTypes/docgen/utils/defaultValue.ts\nvar BLACKLIST = [\"null\", \"undefined\"];\nfunction isDefaultValueBlacklisted(value) {\n return BLACKLIST.some((x) => x === value);\n}\n\n// src/docs-tools/argTypes/docgen/utils/string.ts\nvar str = (obj) => {\n if (!obj)\n return \"\";\n if (typeof obj == \"string\")\n return obj;\n throw new Error(`Description: expected string, got: ${JSON.stringify(obj)}`);\n};\n\n// src/docs-tools/argTypes/docgen/utils/docgenInfo.ts\nfunction hasDocgen(component) {\n return !!component.__docgenInfo;\n}\nfunction isValidDocgenSection(docgenSection) {\n return docgenSection != null && Object.keys(docgenSection).length > 0;\n}\nfunction getDocgenSection(component, section) {\n return hasDocgen(component) ? component.__docgenInfo[section] : null;\n}\nfunction getDocgenDescription(component) {\n return hasDocgen(component) ? str(component.__docgenInfo.description) : \"\";\n}\n\n// ../node_modules/comment-parser/es6/primitives.js\nvar Markers;\n(function(Markers2) {\n Markers2.start = \"/**\", Markers2.nostart = \"/***\", Markers2.delim = \"*\", Markers2.end = \"*/\";\n})(Markers = Markers || (Markers = {}));\n\n// ../node_modules/comment-parser/es6/util.js\nfunction isSpace(source) {\n return /^\\s+$/.test(source);\n}\nfunction splitCR(source) {\n let matches = source.match(/\\r+$/);\n return matches == null ? [\"\", source] : [source.slice(-matches[0].length), source.slice(0, -matches[0].length)];\n}\nfunction splitSpace(source) {\n let matches = source.match(/^\\s+/);\n return matches == null ? [\"\", source] : [source.slice(0, matches[0].length), source.slice(matches[0].length)];\n}\nfunction splitLines(source) {\n return source.split(/\\n/);\n}\nfunction seedSpec(spec = {}) {\n return Object.assign({ tag: \"\", name: \"\", type: \"\", optional: !1, description: \"\", problems: [], source: [] }, spec);\n}\nfunction seedTokens(tokens = {}) {\n return Object.assign({ start: \"\", delimiter: \"\", postDelimiter: \"\", tag: \"\", postTag: \"\", name: \"\", postName: \"\", type: \"\", postType: \"\", description: \"\", end: \"\", lineEnd: \"\" }, tokens);\n}\n\n// ../node_modules/comment-parser/es6/parser/block-parser.js\nvar reTag = /^@\\S+/;\nfunction getParser({ fence = \"```\" } = {}) {\n let fencer = getFencer(fence), toggleFence = (source, isFenced) => fencer(source) ? !isFenced : isFenced;\n return function(source) {\n let sections = [[]], isFenced = !1;\n for (let line of source)\n reTag.test(line.tokens.description) && !isFenced ? sections.push([line]) : sections[sections.length - 1].push(line), isFenced = toggleFence(line.tokens.description, isFenced);\n return sections;\n };\n}\nfunction getFencer(fence) {\n return typeof fence == \"string\" ? (source) => source.split(fence).length % 2 === 0 : fence;\n}\n\n// ../node_modules/comment-parser/es6/parser/source-parser.js\nfunction getParser2({ startLine = 0, markers = Markers } = {}) {\n let block = null, num = startLine;\n return function(source) {\n let rest = source, tokens = seedTokens();\n if ([tokens.lineEnd, rest] = splitCR(rest), [tokens.start, rest] = splitSpace(rest), block === null && rest.startsWith(markers.start) && !rest.startsWith(markers.nostart) && (block = [], tokens.delimiter = rest.slice(0, markers.start.length), rest = rest.slice(markers.start.length), [tokens.postDelimiter, rest] = splitSpace(rest)), block === null)\n return num++, null;\n let isClosed = rest.trimRight().endsWith(markers.end);\n if (tokens.delimiter === \"\" && rest.startsWith(markers.delim) && !rest.startsWith(markers.end) && (tokens.delimiter = markers.delim, rest = rest.slice(markers.delim.length), [tokens.postDelimiter, rest] = splitSpace(rest)), isClosed) {\n let trimmed = rest.trimRight();\n tokens.end = rest.slice(trimmed.length - markers.end.length), rest = trimmed.slice(0, -markers.end.length);\n }\n if (tokens.description = rest, block.push({ number: num, source, tokens }), num++, isClosed) {\n let result = block.slice();\n return block = null, result;\n }\n return null;\n };\n}\n\n// ../node_modules/comment-parser/es6/parser/spec-parser.js\nfunction getParser3({ tokenizers }) {\n return function(source) {\n var _a;\n let spec = seedSpec({ source });\n for (let tokenize of tokenizers)\n if (spec = tokenize(spec), !((_a = spec.problems[spec.problems.length - 1]) === null || _a === void 0) && _a.critical)\n break;\n return spec;\n };\n}\n\n// ../node_modules/comment-parser/es6/parser/tokenizers/tag.js\nfunction tagTokenizer() {\n return (spec) => {\n let { tokens } = spec.source[0], match = tokens.description.match(/\\s*(@(\\S+))(\\s*)/);\n return match === null ? (spec.problems.push({\n code: \"spec:tag:prefix\",\n message: 'tag should start with \"@\" symbol',\n line: spec.source[0].number,\n critical: !0\n }), spec) : (tokens.tag = match[1], tokens.postTag = match[3], tokens.description = tokens.description.slice(match[0].length), spec.tag = match[2], spec);\n };\n}\n\n// ../node_modules/comment-parser/es6/parser/tokenizers/type.js\nfunction typeTokenizer(spacing = \"compact\") {\n let join2 = getJoiner(spacing);\n return (spec) => {\n let curlies = 0, lines = [];\n for (let [i, { tokens }] of spec.source.entries()) {\n let type = \"\";\n if (i === 0 && tokens.description[0] !== \"{\")\n return spec;\n for (let ch of tokens.description)\n if (ch === \"{\" && curlies++, ch === \"}\" && curlies--, type += ch, curlies === 0)\n break;\n if (lines.push([tokens, type]), curlies === 0)\n break;\n }\n if (curlies !== 0)\n return spec.problems.push({\n code: \"spec:type:unpaired-curlies\",\n message: \"unpaired curlies\",\n line: spec.source[0].number,\n critical: !0\n }), spec;\n let parts = [], offset = lines[0][0].postDelimiter.length;\n for (let [i, [tokens, type]] of lines.entries())\n tokens.type = type, i > 0 && (tokens.type = tokens.postDelimiter.slice(offset) + type, tokens.postDelimiter = tokens.postDelimiter.slice(0, offset)), [tokens.postType, tokens.description] = splitSpace(tokens.description.slice(type.length)), parts.push(tokens.type);\n return parts[0] = parts[0].slice(1), parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1), spec.type = join2(parts), spec;\n };\n}\nvar trim = (x) => x.trim();\nfunction getJoiner(spacing) {\n return spacing === \"compact\" ? (t) => t.map(trim).join(\"\") : spacing === \"preserve\" ? (t) => t.join(`\n`) : spacing;\n}\n\n// ../node_modules/comment-parser/es6/parser/tokenizers/name.js\nvar isQuoted = (s) => s && s.startsWith('\"') && s.endsWith('\"');\nfunction nameTokenizer() {\n let typeEnd = (num, { tokens }, i) => tokens.type === \"\" ? num : i;\n return (spec) => {\n let { tokens } = spec.source[spec.source.reduce(typeEnd, 0)], source = tokens.description.trimLeft(), quotedGroups = source.split('\"');\n if (quotedGroups.length > 1 && quotedGroups[0] === \"\" && quotedGroups.length % 2 === 1)\n return spec.name = quotedGroups[1], tokens.name = `\"${quotedGroups[1]}\"`, [tokens.postName, tokens.description] = splitSpace(source.slice(tokens.name.length)), spec;\n let brackets = 0, name = \"\", optional = !1, defaultValue;\n for (let ch of source) {\n if (brackets === 0 && isSpace(ch))\n break;\n ch === \"[\" && brackets++, ch === \"]\" && brackets--, name += ch;\n }\n if (brackets !== 0)\n return spec.problems.push({\n code: \"spec:name:unpaired-brackets\",\n message: \"unpaired brackets\",\n line: spec.source[0].number,\n critical: !0\n }), spec;\n let nameToken = name;\n if (name[0] === \"[\" && name[name.length - 1] === \"]\") {\n optional = !0, name = name.slice(1, -1);\n let parts = name.split(\"=\");\n if (name = parts[0].trim(), parts[1] !== void 0 && (defaultValue = parts.slice(1).join(\"=\").trim()), name === \"\")\n return spec.problems.push({\n code: \"spec:name:empty-name\",\n message: \"empty name\",\n line: spec.source[0].number,\n critical: !0\n }), spec;\n if (defaultValue === \"\")\n return spec.problems.push({\n code: \"spec:name:empty-default\",\n message: \"empty default value\",\n line: spec.source[0].number,\n critical: !0\n }), spec;\n if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue))\n return spec.problems.push({\n code: \"spec:name:invalid-default\",\n message: \"invalid default value syntax\",\n line: spec.source[0].number,\n critical: !0\n }), spec;\n }\n return spec.optional = optional, spec.name = name, tokens.name = nameToken, defaultValue !== void 0 && (spec.default = defaultValue), [tokens.postName, tokens.description] = splitSpace(source.slice(tokens.name.length)), spec;\n };\n}\n\n// ../node_modules/comment-parser/es6/parser/tokenizers/description.js\nfunction descriptionTokenizer(spacing = \"compact\", markers = Markers) {\n let join2 = getJoiner2(spacing);\n return (spec) => (spec.description = join2(spec.source, markers), spec);\n}\nfunction getJoiner2(spacing) {\n return spacing === \"compact\" ? compactJoiner : spacing === \"preserve\" ? preserveJoiner : spacing;\n}\nfunction compactJoiner(lines, markers = Markers) {\n return lines.map(({ tokens: { description } }) => description.trim()).filter((description) => description !== \"\").join(\" \");\n}\nvar lineNo = (num, { tokens }, i) => tokens.type === \"\" ? num : i, getDescription = ({ tokens }) => (tokens.delimiter === \"\" ? tokens.start : tokens.postDelimiter.slice(1)) + tokens.description;\nfunction preserveJoiner(lines, markers = Markers) {\n if (lines.length === 0)\n return \"\";\n lines[0].tokens.description === \"\" && lines[0].tokens.delimiter === markers.start && (lines = lines.slice(1));\n let lastLine = lines[lines.length - 1];\n return lastLine !== void 0 && lastLine.tokens.description === \"\" && lastLine.tokens.end.endsWith(markers.end) && (lines = lines.slice(0, -1)), lines = lines.slice(lines.reduce(lineNo, 0)), lines.map(getDescription).join(`\n`);\n}\n\n// ../node_modules/comment-parser/es6/parser/index.js\nfunction getParser4({ startLine = 0, fence = \"```\", spacing = \"compact\", markers = Markers, tokenizers = [\n tagTokenizer(),\n typeTokenizer(spacing),\n nameTokenizer(),\n descriptionTokenizer(spacing)\n] } = {}) {\n if (startLine < 0 || startLine % 1 > 0)\n throw new Error(\"Invalid startLine\");\n let parseSource = getParser2({ startLine, markers }), parseBlock = getParser({ fence }), parseSpec = getParser3({ tokenizers }), joinDescription = getJoiner2(spacing);\n return function(source) {\n let blocks = [];\n for (let line of splitLines(source)) {\n let lines = parseSource(line);\n if (lines === null)\n continue;\n let sections = parseBlock(lines), specs = sections.slice(1).map(parseSpec);\n blocks.push({\n description: joinDescription(sections[0], markers),\n tags: specs,\n source: lines,\n problems: specs.reduce((acc, spec) => acc.concat(spec.problems), [])\n });\n }\n return blocks;\n };\n}\n\n// ../node_modules/comment-parser/es6/stringifier/index.js\nfunction join(tokens) {\n return tokens.start + tokens.delimiter + tokens.postDelimiter + tokens.tag + tokens.postTag + tokens.type + tokens.postType + tokens.name + tokens.postName + tokens.description + tokens.end + tokens.lineEnd;\n}\nfunction getStringifier() {\n return (block) => block.source.map(({ tokens }) => join(tokens)).join(`\n`);\n}\n\n// ../node_modules/comment-parser/es6/stringifier/inspect.js\nvar zeroWidth = {\n line: 0,\n start: 0,\n delimiter: 0,\n postDelimiter: 0,\n tag: 0,\n postTag: 0,\n name: 0,\n postName: 0,\n type: 0,\n postType: 0,\n description: 0,\n end: 0,\n lineEnd: 0\n};\nvar fields = Object.keys(zeroWidth);\n\n// ../node_modules/comment-parser/es6/index.js\nfunction parse(source, options = {}) {\n return getParser4(options)(source);\n}\nvar stringify = getStringifier();\n\n// src/docs-tools/argTypes/jsdocParser.ts\nvar import_jsdoc_type_pratt_parser = __toESM(require_dist(), 1);\nfunction containsJsDoc(value) {\n return value != null && value.includes(\"@\");\n}\nfunction parse2(content) {\n let normalisedContent = `/**\n` + (content ?? \"\").split(`\n`).map((line) => ` * ${line}`).join(`\n`) + `\n*/`, ast = parse(normalisedContent, {\n spacing: \"preserve\"\n });\n if (!ast || ast.length === 0)\n throw new Error(\"Cannot parse JSDoc tags.\");\n return ast[0];\n}\nvar DEFAULT_OPTIONS = {\n tags: [\"param\", \"arg\", \"argument\", \"returns\", \"ignore\", \"deprecated\"]\n}, parseJsDoc = (value, options = DEFAULT_OPTIONS) => {\n if (!containsJsDoc(value))\n return {\n includesJsDoc: !1,\n ignore: !1\n };\n let jsDocAst = parse2(value), extractedTags = extractJsDocTags(jsDocAst, options.tags);\n return extractedTags.ignore ? {\n includesJsDoc: !0,\n ignore: !0\n } : {\n includesJsDoc: !0,\n ignore: !1,\n // Always use the parsed description to ensure JSDoc is removed from the description.\n description: jsDocAst.description.trim(),\n extractedTags\n };\n};\nfunction extractJsDocTags(ast, tags) {\n let extractedTags = {\n params: null,\n deprecated: null,\n returns: null,\n ignore: !1\n };\n for (let tagSpec of ast.tags)\n if (!(tags !== void 0 && !tags.includes(tagSpec.tag)))\n if (tagSpec.tag === \"ignore\") {\n extractedTags.ignore = !0;\n break;\n } else\n switch (tagSpec.tag) {\n // arg & argument are aliases for param.\n case \"param\":\n case \"arg\":\n case \"argument\": {\n let paramTag = extractParam(tagSpec);\n paramTag != null && (extractedTags.params == null && (extractedTags.params = []), extractedTags.params.push(paramTag));\n break;\n }\n case \"deprecated\": {\n let deprecatedTag = extractDeprecated(tagSpec);\n deprecatedTag != null && (extractedTags.deprecated = deprecatedTag);\n break;\n }\n case \"returns\": {\n let returnsTag = extractReturns(tagSpec);\n returnsTag != null && (extractedTags.returns = returnsTag);\n break;\n }\n default:\n break;\n }\n return extractedTags;\n}\nfunction normaliseParamName(name) {\n return name.replace(/[\\.-]$/, \"\");\n}\nfunction extractParam(tag) {\n if (!tag.name || tag.name === \"-\")\n return null;\n let type = extractType(tag.type);\n return {\n name: tag.name,\n type,\n description: normaliseDescription(tag.description),\n getPrettyName: () => normaliseParamName(tag.name),\n getTypeName: () => type ? extractTypeName(type) : null\n };\n}\nfunction extractDeprecated(tag) {\n return tag.name ? joinNameAndDescription(tag.name, tag.description) : null;\n}\nfunction joinNameAndDescription(name, desc) {\n let joined = name === \"\" ? desc : `${name} ${desc}`;\n return normaliseDescription(joined);\n}\nfunction normaliseDescription(text) {\n let normalised = text.replace(/^- /g, \"\").trim();\n return normalised === \"\" ? null : normalised;\n}\nfunction extractReturns(tag) {\n let type = extractType(tag.type);\n return type ? {\n type,\n description: joinNameAndDescription(tag.name, tag.description),\n getTypeName: () => extractTypeName(type)\n } : null;\n}\nvar jsdocStringifyRules = (0, import_jsdoc_type_pratt_parser.stringifyRules)(), originalJsdocStringifyObject = jsdocStringifyRules.JsdocTypeObject;\njsdocStringifyRules.JsdocTypeAny = () => \"any\";\njsdocStringifyRules.JsdocTypeObject = (result, transform) => `(${originalJsdocStringifyObject(result, transform)})`;\njsdocStringifyRules.JsdocTypeOptional = (result, transform) => transform(result.element);\njsdocStringifyRules.JsdocTypeNullable = (result, transform) => transform(result.element);\njsdocStringifyRules.JsdocTypeNotNullable = (result, transform) => transform(result.element);\njsdocStringifyRules.JsdocTypeUnion = (result, transform) => result.elements.map(transform).join(\"|\");\nfunction extractType(typeString) {\n try {\n return (0, import_jsdoc_type_pratt_parser.parse)(typeString, \"typescript\");\n } catch {\n return null;\n }\n}\nfunction extractTypeName(type) {\n return (0, import_jsdoc_type_pratt_parser.transform)(jsdocStringifyRules, type);\n}\n\n// src/docs-tools/argTypes/utils.ts\nvar MAX_TYPE_SUMMARY_LENGTH = 90, MAX_DEFAULT_VALUE_SUMMARY_LENGTH = 50;\nfunction isTooLongForTypeSummary(value) {\n return value.length > 90;\n}\nfunction isTooLongForDefaultValueSummary(value) {\n return value.length > 50;\n}\nfunction createSummaryValue(summary, detail) {\n return summary === detail ? { summary } : { summary, detail };\n}\nvar normalizeNewlines = (string) => string.replace(/\\\\r\\\\n/g, \"\\\\n\");\n\n// src/docs-tools/argTypes/docgen/flow/createDefaultValue.ts\nfunction createDefaultValue(defaultValue, type) {\n if (defaultValue != null) {\n let { value } = defaultValue;\n if (!isDefaultValueBlacklisted(value))\n return isTooLongForDefaultValueSummary(value) ? createSummaryValue(type?.name, value) : createSummaryValue(value);\n }\n return null;\n}\n\n// src/docs-tools/argTypes/docgen/flow/createType.ts\nfunction generateUnionElement({ name, value, elements, raw }) {\n return value ?? (elements != null ? elements.map(generateUnionElement).join(\" | \") : raw ?? name);\n}\nfunction generateUnion({ name, raw, elements }) {\n return elements != null ? createSummaryValue(elements.map(generateUnionElement).join(\" | \")) : raw != null ? createSummaryValue(raw.replace(/^\\|\\s*/, \"\")) : createSummaryValue(name);\n}\nfunction generateFuncSignature({ type, raw }) {\n return raw != null ? createSummaryValue(raw) : createSummaryValue(type);\n}\nfunction generateObjectSignature({ type, raw }) {\n return raw != null ? isTooLongForTypeSummary(raw) ? createSummaryValue(type, raw) : createSummaryValue(raw) : createSummaryValue(type);\n}\nfunction generateSignature(flowType) {\n let { type } = flowType;\n return type === \"object\" ? generateObjectSignature(flowType) : generateFuncSignature(flowType);\n}\nfunction generateDefault({ name, raw }) {\n return raw != null ? isTooLongForTypeSummary(raw) ? createSummaryValue(name, raw) : createSummaryValue(raw) : createSummaryValue(name);\n}\nfunction createType(type) {\n if (type == null)\n return null;\n switch (type.name) {\n case \"union\" /* UNION */:\n return generateUnion(type);\n case \"signature\" /* SIGNATURE */:\n return generateSignature(type);\n default:\n return generateDefault(type);\n }\n}\n\n// src/docs-tools/argTypes/docgen/flow/createPropDef.ts\nvar createFlowPropDef = (propName, docgenInfo) => {\n let { flowType, description, required, defaultValue } = docgenInfo;\n return {\n name: propName,\n type: createType(flowType),\n required,\n description,\n defaultValue: createDefaultValue(defaultValue ?? null, flowType ?? null)\n };\n};\n\n// src/docs-tools/argTypes/docgen/typeScript/createDefaultValue.ts\nfunction createDefaultValue2({ defaultValue }) {\n if (defaultValue != null) {\n let { value } = defaultValue;\n if (!isDefaultValueBlacklisted(value))\n return createSummaryValue(value);\n }\n return null;\n}\n\n// src/docs-tools/argTypes/docgen/typeScript/createType.ts\nfunction createType2({ tsType, required }) {\n if (tsType == null)\n return null;\n let typeName = tsType.name;\n return required || (typeName = typeName.replace(\" | undefined\", \"\")), createSummaryValue(\n [\"Array\", \"Record\", \"signature\"].includes(tsType.name) ? tsType.raw : typeName\n );\n}\n\n// src/docs-tools/argTypes/docgen/typeScript/createPropDef.ts\nvar createTsPropDef = (propName, docgenInfo) => {\n let { description, required } = docgenInfo;\n return {\n name: propName,\n type: createType2(docgenInfo),\n required,\n description,\n defaultValue: createDefaultValue2(docgenInfo)\n };\n};\n\n// src/docs-tools/argTypes/docgen/createPropDef.ts\nfunction createType3(type) {\n return type != null ? createSummaryValue(type.name) : null;\n}\nfunction isReactDocgenTypescript(defaultValue) {\n let { computed, func } = defaultValue;\n return typeof computed > \"u\" && typeof func > \"u\";\n}\nfunction isStringValued(type) {\n return type ? type.name === \"string\" ? !0 : type.name === \"enum\" ? Array.isArray(type.value) && type.value.every(\n ({ value: tv }) => typeof tv == \"string\" && tv[0] === '\"' && tv[tv.length - 1] === '\"'\n ) : !1 : !1;\n}\nfunction createDefaultValue3(defaultValue, type) {\n if (defaultValue != null) {\n let { value } = defaultValue;\n if (!isDefaultValueBlacklisted(value))\n return isReactDocgenTypescript(defaultValue) && isStringValued(type) ? createSummaryValue(JSON.stringify(value)) : createSummaryValue(value);\n }\n return null;\n}\nfunction createBasicPropDef(name, type, docgenInfo) {\n let { description, required, defaultValue } = docgenInfo;\n return {\n name,\n type: createType3(type),\n required,\n description,\n defaultValue: createDefaultValue3(defaultValue, type)\n };\n}\nfunction applyJsDocResult(propDef, jsDocParsingResult) {\n if (jsDocParsingResult?.includesJsDoc) {\n let { description, extractedTags } = jsDocParsingResult;\n description != null && (propDef.description = jsDocParsingResult.description);\n let value = {\n ...extractedTags,\n params: extractedTags?.params?.map(\n (x) => ({\n name: x.getPrettyName(),\n description: x.description\n })\n )\n };\n Object.values(value).filter(Boolean).length > 0 && (propDef.jsDocTags = value);\n }\n return propDef;\n}\nvar javaScriptFactory = (propName, docgenInfo, jsDocParsingResult) => {\n let propDef = createBasicPropDef(propName, docgenInfo.type, docgenInfo);\n return propDef.sbType = convert4(docgenInfo), applyJsDocResult(propDef, jsDocParsingResult);\n}, tsFactory = (propName, docgenInfo, jsDocParsingResult) => {\n let propDef = createTsPropDef(propName, docgenInfo);\n return propDef.sbType = convert4(docgenInfo), applyJsDocResult(propDef, jsDocParsingResult);\n}, flowFactory = (propName, docgenInfo, jsDocParsingResult) => {\n let propDef = createFlowPropDef(propName, docgenInfo);\n return propDef.sbType = convert4(docgenInfo), applyJsDocResult(propDef, jsDocParsingResult);\n}, unknownFactory = (propName, docgenInfo, jsDocParsingResult) => {\n let propDef = createBasicPropDef(propName, { name: \"unknown\" }, docgenInfo);\n return applyJsDocResult(propDef, jsDocParsingResult);\n}, getPropDefFactory = (typeSystem) => {\n switch (typeSystem) {\n case \"JavaScript\" /* JAVASCRIPT */:\n return javaScriptFactory;\n case \"TypeScript\" /* TYPESCRIPT */:\n return tsFactory;\n case \"Flow\" /* FLOW */:\n return flowFactory;\n default:\n return unknownFactory;\n }\n};\n\n// src/docs-tools/argTypes/docgen/extractDocgenProps.ts\nvar getTypeSystem = (docgenInfo) => docgenInfo.type != null ? \"JavaScript\" /* JAVASCRIPT */ : docgenInfo.flowType != null ? \"Flow\" /* FLOW */ : docgenInfo.tsType != null ? \"TypeScript\" /* TYPESCRIPT */ : \"Unknown\" /* UNKNOWN */, extractComponentSectionArray = (docgenSection) => {\n let typeSystem = getTypeSystem(docgenSection[0]), createPropDef = getPropDefFactory(typeSystem);\n return docgenSection.map((item) => {\n let sanitizedItem = item;\n return item.type?.elements && (sanitizedItem = {\n ...item,\n type: {\n ...item.type,\n value: item.type.elements\n }\n }), extractProp(sanitizedItem.name, sanitizedItem, typeSystem, createPropDef);\n });\n}, extractComponentSectionObject = (docgenSection) => {\n let docgenPropsKeys = Object.keys(docgenSection), typeSystem = getTypeSystem(docgenSection[docgenPropsKeys[0]]), createPropDef = getPropDefFactory(typeSystem);\n return docgenPropsKeys.map((propName) => {\n let docgenInfo = docgenSection[propName];\n return docgenInfo != null ? extractProp(propName, docgenInfo, typeSystem, createPropDef) : null;\n }).filter(Boolean);\n}, extractComponentProps = (component, section) => {\n let docgenSection = getDocgenSection(component, section);\n return isValidDocgenSection(docgenSection) ? Array.isArray(docgenSection) ? extractComponentSectionArray(docgenSection) : extractComponentSectionObject(docgenSection) : [];\n};\nfunction extractProp(propName, docgenInfo, typeSystem, createPropDef) {\n let jsDocParsingResult = parseJsDoc(docgenInfo.description);\n return jsDocParsingResult.includesJsDoc && jsDocParsingResult.ignore ? null : {\n propDef: createPropDef(propName, docgenInfo, jsDocParsingResult),\n jsDocTags: jsDocParsingResult.extractedTags,\n docgenInfo,\n typeSystem\n };\n}\nfunction extractComponentDescription(component) {\n return component != null ? getDocgenDescription(component) : \"\";\n}\n\n// src/preview-api/modules/store/parameters.ts\nvar combineParameters = (...parameterSets) => {\n let mergeKeys = {}, definedParametersSets = parameterSets.filter(Boolean), combined = definedParametersSets.reduce((acc, parameters) => (Object.entries(parameters).forEach(([key, value]) => {\n let existing = acc[key];\n Array.isArray(value) || typeof existing > \"u\" ? acc[key] = value : isPlainObject(value) && isPlainObject(existing) ? mergeKeys[key] = !0 : typeof value < \"u\" && (acc[key] = value);\n }), acc), {});\n return Object.keys(mergeKeys).forEach((key) => {\n let mergeValues = definedParametersSets.filter(Boolean).map((p) => p[key]).filter((value) => typeof value < \"u\");\n mergeValues.every((value) => isPlainObject(value)) ? combined[key] = combineParameters(...mergeValues) : combined[key] = mergeValues[mergeValues.length - 1];\n }), combined;\n};\n\n// src/docs-tools/argTypes/enhanceArgTypes.ts\nvar enhanceArgTypes = (context) => {\n let {\n component,\n argTypes: userArgTypes,\n parameters: { docs = {} }\n } = context, { extractArgTypes } = docs;\n if (!extractArgTypes || !component)\n return userArgTypes;\n let extractedArgTypes = extractArgTypes(component);\n return extractedArgTypes ? combineParameters(extractedArgTypes, userArgTypes) : userArgTypes;\n};\n\n// src/docs-tools/shared.ts\nvar ADDON_ID = \"storybook/docs\", PANEL_ID = `${ADDON_ID}/panel`, PARAM_KEY = \"docs\", SNIPPET_RENDERED = `${ADDON_ID}/snippet-rendered`, SourceType = /* @__PURE__ */ ((SourceType2) => (SourceType2.AUTO = \"auto\", SourceType2.CODE = \"code\", SourceType2.DYNAMIC = \"dynamic\", SourceType2))(SourceType || {});\n\nexport {\n combineParameters,\n convert4 as convert,\n TypeSystem,\n isDefaultValueBlacklisted,\n str,\n hasDocgen,\n isValidDocgenSection,\n getDocgenSection,\n getDocgenDescription,\n parseJsDoc,\n MAX_TYPE_SUMMARY_LENGTH,\n MAX_DEFAULT_VALUE_SUMMARY_LENGTH,\n isTooLongForTypeSummary,\n isTooLongForDefaultValueSummary,\n createSummaryValue,\n normalizeNewlines,\n extractComponentSectionArray,\n extractComponentSectionObject,\n extractComponentProps,\n extractComponentDescription,\n enhanceArgTypes,\n ADDON_ID,\n PANEL_ID,\n PARAM_KEY,\n SNIPPET_RENDERED,\n SourceType\n};\n","import {\n __commonJS\n} from \"./chunk-A242L54C.js\";\n\n// ../node_modules/entities/lib/maps/entities.json\nvar require_entities = __commonJS({\n \"../node_modules/entities/lib/maps/entities.json\"(exports, module) {\n module.exports = { Aacute: \"\\xC1\", aacute: \"\\xE1\", Abreve: \"\\u0102\", abreve: \"\\u0103\", ac: \"\\u223E\", acd: \"\\u223F\", acE: \"\\u223E\\u0333\", Acirc: \"\\xC2\", acirc: \"\\xE2\", acute: \"\\xB4\", Acy: \"\\u0410\", acy: \"\\u0430\", AElig: \"\\xC6\", aelig: \"\\xE6\", af: \"\\u2061\", Afr: \"\\u{1D504}\", afr: \"\\u{1D51E}\", Agrave: \"\\xC0\", agrave: \"\\xE0\", alefsym: \"\\u2135\", aleph: \"\\u2135\", Alpha: \"\\u0391\", alpha: \"\\u03B1\", Amacr: \"\\u0100\", amacr: \"\\u0101\", amalg: \"\\u2A3F\", amp: \"&\", AMP: \"&\", andand: \"\\u2A55\", And: \"\\u2A53\", and: \"\\u2227\", andd: \"\\u2A5C\", andslope: \"\\u2A58\", andv: \"\\u2A5A\", ang: \"\\u2220\", ange: \"\\u29A4\", angle: \"\\u2220\", angmsdaa: \"\\u29A8\", angmsdab: \"\\u29A9\", angmsdac: \"\\u29AA\", angmsdad: \"\\u29AB\", angmsdae: \"\\u29AC\", angmsdaf: \"\\u29AD\", angmsdag: \"\\u29AE\", angmsdah: \"\\u29AF\", angmsd: \"\\u2221\", angrt: \"\\u221F\", angrtvb: \"\\u22BE\", angrtvbd: \"\\u299D\", angsph: \"\\u2222\", angst: \"\\xC5\", angzarr: \"\\u237C\", Aogon: \"\\u0104\", aogon: \"\\u0105\", Aopf: \"\\u{1D538}\", aopf: \"\\u{1D552}\", apacir: \"\\u2A6F\", ap: \"\\u2248\", apE: \"\\u2A70\", ape: \"\\u224A\", apid: \"\\u224B\", apos: \"'\", ApplyFunction: \"\\u2061\", approx: \"\\u2248\", approxeq: \"\\u224A\", Aring: \"\\xC5\", aring: \"\\xE5\", Ascr: \"\\u{1D49C}\", ascr: \"\\u{1D4B6}\", Assign: \"\\u2254\", ast: \"*\", asymp: \"\\u2248\", asympeq: \"\\u224D\", Atilde: \"\\xC3\", atilde: \"\\xE3\", Auml: \"\\xC4\", auml: \"\\xE4\", awconint: \"\\u2233\", awint: \"\\u2A11\", backcong: \"\\u224C\", backepsilon: \"\\u03F6\", backprime: \"\\u2035\", backsim: \"\\u223D\", backsimeq: \"\\u22CD\", Backslash: \"\\u2216\", Barv: \"\\u2AE7\", barvee: \"\\u22BD\", barwed: \"\\u2305\", Barwed: \"\\u2306\", barwedge: \"\\u2305\", bbrk: \"\\u23B5\", bbrktbrk: \"\\u23B6\", bcong: \"\\u224C\", Bcy: \"\\u0411\", bcy: \"\\u0431\", bdquo: \"\\u201E\", becaus: \"\\u2235\", because: \"\\u2235\", Because: \"\\u2235\", bemptyv: \"\\u29B0\", bepsi: \"\\u03F6\", bernou: \"\\u212C\", Bernoullis: \"\\u212C\", Beta: \"\\u0392\", beta: \"\\u03B2\", beth: \"\\u2136\", between: \"\\u226C\", Bfr: \"\\u{1D505}\", bfr: \"\\u{1D51F}\", bigcap: \"\\u22C2\", bigcirc: \"\\u25EF\", bigcup: \"\\u22C3\", bigodot: \"\\u2A00\", bigoplus: \"\\u2A01\", bigotimes: \"\\u2A02\", bigsqcup: \"\\u2A06\", bigstar: \"\\u2605\", bigtriangledown: \"\\u25BD\", bigtriangleup: \"\\u25B3\", biguplus: \"\\u2A04\", bigvee: \"\\u22C1\", bigwedge: \"\\u22C0\", bkarow: \"\\u290D\", blacklozenge: \"\\u29EB\", blacksquare: \"\\u25AA\", blacktriangle: \"\\u25B4\", blacktriangledown: \"\\u25BE\", blacktriangleleft: \"\\u25C2\", blacktriangleright: \"\\u25B8\", blank: \"\\u2423\", blk12: \"\\u2592\", blk14: \"\\u2591\", blk34: \"\\u2593\", block: \"\\u2588\", bne: \"=\\u20E5\", bnequiv: \"\\u2261\\u20E5\", bNot: \"\\u2AED\", bnot: \"\\u2310\", Bopf: \"\\u{1D539}\", bopf: \"\\u{1D553}\", bot: \"\\u22A5\", bottom: \"\\u22A5\", bowtie: \"\\u22C8\", boxbox: \"\\u29C9\", boxdl: \"\\u2510\", boxdL: \"\\u2555\", boxDl: \"\\u2556\", boxDL: \"\\u2557\", boxdr: \"\\u250C\", boxdR: \"\\u2552\", boxDr: \"\\u2553\", boxDR: \"\\u2554\", boxh: \"\\u2500\", boxH: \"\\u2550\", boxhd: \"\\u252C\", boxHd: \"\\u2564\", boxhD: \"\\u2565\", boxHD: \"\\u2566\", boxhu: \"\\u2534\", boxHu: \"\\u2567\", boxhU: \"\\u2568\", boxHU: \"\\u2569\", boxminus: \"\\u229F\", boxplus: \"\\u229E\", boxtimes: \"\\u22A0\", boxul: \"\\u2518\", boxuL: \"\\u255B\", boxUl: \"\\u255C\", boxUL: \"\\u255D\", boxur: \"\\u2514\", boxuR: \"\\u2558\", boxUr: \"\\u2559\", boxUR: \"\\u255A\", boxv: \"\\u2502\", boxV: \"\\u2551\", boxvh: \"\\u253C\", boxvH: \"\\u256A\", boxVh: \"\\u256B\", boxVH: \"\\u256C\", boxvl: \"\\u2524\", boxvL: \"\\u2561\", boxVl: \"\\u2562\", boxVL: \"\\u2563\", boxvr: \"\\u251C\", boxvR: \"\\u255E\", boxVr: \"\\u255F\", boxVR: \"\\u2560\", bprime: \"\\u2035\", breve: \"\\u02D8\", Breve: \"\\u02D8\", brvbar: \"\\xA6\", bscr: \"\\u{1D4B7}\", Bscr: \"\\u212C\", bsemi: \"\\u204F\", bsim: \"\\u223D\", bsime: \"\\u22CD\", bsolb: \"\\u29C5\", bsol: \"\\\\\", bsolhsub: \"\\u27C8\", bull: \"\\u2022\", bullet: \"\\u2022\", bump: \"\\u224E\", bumpE: \"\\u2AAE\", bumpe: \"\\u224F\", Bumpeq: \"\\u224E\", bumpeq: \"\\u224F\", Cacute: \"\\u0106\", cacute: \"\\u0107\", capand: \"\\u2A44\", capbrcup: \"\\u2A49\", capcap: \"\\u2A4B\", cap: \"\\u2229\", Cap: \"\\u22D2\", capcup: \"\\u2A47\", capdot: \"\\u2A40\", CapitalDifferentialD: \"\\u2145\", caps: \"\\u2229\\uFE00\", caret: \"\\u2041\", caron: \"\\u02C7\", Cayleys: \"\\u212D\", ccaps: \"\\u2A4D\", Ccaron: \"\\u010C\", ccaron: \"\\u010D\", Ccedil: \"\\xC7\", ccedil: \"\\xE7\", Ccirc: \"\\u0108\", ccirc: \"\\u0109\", Cconint: \"\\u2230\", ccups: \"\\u2A4C\", ccupssm: \"\\u2A50\", Cdot: \"\\u010A\", cdot: \"\\u010B\", cedil: \"\\xB8\", Cedilla: \"\\xB8\", cemptyv: \"\\u29B2\", cent: \"\\xA2\", centerdot: \"\\xB7\", CenterDot: \"\\xB7\", cfr: \"\\u{1D520}\", Cfr: \"\\u212D\", CHcy: \"\\u0427\", chcy: \"\\u0447\", check: \"\\u2713\", checkmark: \"\\u2713\", Chi: \"\\u03A7\", chi: \"\\u03C7\", circ: \"\\u02C6\", circeq: \"\\u2257\", circlearrowleft: \"\\u21BA\", circlearrowright: \"\\u21BB\", circledast: \"\\u229B\", circledcirc: \"\\u229A\", circleddash: \"\\u229D\", CircleDot: \"\\u2299\", circledR: \"\\xAE\", circledS: \"\\u24C8\", CircleMinus: \"\\u2296\", CirclePlus: \"\\u2295\", CircleTimes: \"\\u2297\", cir: \"\\u25CB\", cirE: \"\\u29C3\", cire: \"\\u2257\", cirfnint: \"\\u2A10\", cirmid: \"\\u2AEF\", cirscir: \"\\u29C2\", ClockwiseContourIntegral: \"\\u2232\", CloseCurlyDoubleQuote: \"\\u201D\", CloseCurlyQuote: \"\\u2019\", clubs: \"\\u2663\", clubsuit: \"\\u2663\", colon: \":\", Colon: \"\\u2237\", Colone: \"\\u2A74\", colone: \"\\u2254\", coloneq: \"\\u2254\", comma: \",\", commat: \"@\", comp: \"\\u2201\", compfn: \"\\u2218\", complement: \"\\u2201\", complexes: \"\\u2102\", cong: \"\\u2245\", congdot: \"\\u2A6D\", Congruent: \"\\u2261\", conint: \"\\u222E\", Conint: \"\\u222F\", ContourIntegral: \"\\u222E\", copf: \"\\u{1D554}\", Copf: \"\\u2102\", coprod: \"\\u2210\", Coproduct: \"\\u2210\", copy: \"\\xA9\", COPY: \"\\xA9\", copysr: \"\\u2117\", CounterClockwiseContourIntegral: \"\\u2233\", crarr: \"\\u21B5\", cross: \"\\u2717\", Cross: \"\\u2A2F\", Cscr: \"\\u{1D49E}\", cscr: \"\\u{1D4B8}\", csub: \"\\u2ACF\", csube: \"\\u2AD1\", csup: \"\\u2AD0\", csupe: \"\\u2AD2\", ctdot: \"\\u22EF\", cudarrl: \"\\u2938\", cudarrr: \"\\u2935\", cuepr: \"\\u22DE\", cuesc: \"\\u22DF\", cularr: \"\\u21B6\", cularrp: \"\\u293D\", cupbrcap: \"\\u2A48\", cupcap: \"\\u2A46\", CupCap: \"\\u224D\", cup: \"\\u222A\", Cup: \"\\u22D3\", cupcup: \"\\u2A4A\", cupdot: \"\\u228D\", cupor: \"\\u2A45\", cups: \"\\u222A\\uFE00\", curarr: \"\\u21B7\", curarrm: \"\\u293C\", curlyeqprec: \"\\u22DE\", curlyeqsucc: \"\\u22DF\", curlyvee: \"\\u22CE\", curlywedge: \"\\u22CF\", curren: \"\\xA4\", curvearrowleft: \"\\u21B6\", curvearrowright: \"\\u21B7\", cuvee: \"\\u22CE\", cuwed: \"\\u22CF\", cwconint: \"\\u2232\", cwint: \"\\u2231\", cylcty: \"\\u232D\", dagger: \"\\u2020\", Dagger: \"\\u2021\", daleth: \"\\u2138\", darr: \"\\u2193\", Darr: \"\\u21A1\", dArr: \"\\u21D3\", dash: \"\\u2010\", Dashv: \"\\u2AE4\", dashv: \"\\u22A3\", dbkarow: \"\\u290F\", dblac: \"\\u02DD\", Dcaron: \"\\u010E\", dcaron: \"\\u010F\", Dcy: \"\\u0414\", dcy: \"\\u0434\", ddagger: \"\\u2021\", ddarr: \"\\u21CA\", DD: \"\\u2145\", dd: \"\\u2146\", DDotrahd: \"\\u2911\", ddotseq: \"\\u2A77\", deg: \"\\xB0\", Del: \"\\u2207\", Delta: \"\\u0394\", delta: \"\\u03B4\", demptyv: \"\\u29B1\", dfisht: \"\\u297F\", Dfr: \"\\u{1D507}\", dfr: \"\\u{1D521}\", dHar: \"\\u2965\", dharl: \"\\u21C3\", dharr: \"\\u21C2\", DiacriticalAcute: \"\\xB4\", DiacriticalDot: \"\\u02D9\", DiacriticalDoubleAcute: \"\\u02DD\", DiacriticalGrave: \"`\", DiacriticalTilde: \"\\u02DC\", diam: \"\\u22C4\", diamond: \"\\u22C4\", Diamond: \"\\u22C4\", diamondsuit: \"\\u2666\", diams: \"\\u2666\", die: \"\\xA8\", DifferentialD: \"\\u2146\", digamma: \"\\u03DD\", disin: \"\\u22F2\", div: \"\\xF7\", divide: \"\\xF7\", divideontimes: \"\\u22C7\", divonx: \"\\u22C7\", DJcy: \"\\u0402\", djcy: \"\\u0452\", dlcorn: \"\\u231E\", dlcrop: \"\\u230D\", dollar: \"$\", Dopf: \"\\u{1D53B}\", dopf: \"\\u{1D555}\", Dot: \"\\xA8\", dot: \"\\u02D9\", DotDot: \"\\u20DC\", doteq: \"\\u2250\", doteqdot: \"\\u2251\", DotEqual: \"\\u2250\", dotminus: \"\\u2238\", dotplus: \"\\u2214\", dotsquare: \"\\u22A1\", doublebarwedge: \"\\u2306\", DoubleContourIntegral: \"\\u222F\", DoubleDot: \"\\xA8\", DoubleDownArrow: \"\\u21D3\", DoubleLeftArrow: \"\\u21D0\", DoubleLeftRightArrow: \"\\u21D4\", DoubleLeftTee: \"\\u2AE4\", DoubleLongLeftArrow: \"\\u27F8\", DoubleLongLeftRightArrow: \"\\u27FA\", DoubleLongRightArrow: \"\\u27F9\", DoubleRightArrow: \"\\u21D2\", DoubleRightTee: \"\\u22A8\", DoubleUpArrow: \"\\u21D1\", DoubleUpDownArrow: \"\\u21D5\", DoubleVerticalBar: \"\\u2225\", DownArrowBar: \"\\u2913\", downarrow: \"\\u2193\", DownArrow: \"\\u2193\", Downarrow: \"\\u21D3\", DownArrowUpArrow: \"\\u21F5\", DownBreve: \"\\u0311\", downdownarrows: \"\\u21CA\", downharpoonleft: \"\\u21C3\", downharpoonright: \"\\u21C2\", DownLeftRightVector: \"\\u2950\", DownLeftTeeVector: \"\\u295E\", DownLeftVectorBar: \"\\u2956\", DownLeftVector: \"\\u21BD\", DownRightTeeVector: \"\\u295F\", DownRightVectorBar: \"\\u2957\", DownRightVector: \"\\u21C1\", DownTeeArrow: \"\\u21A7\", DownTee: \"\\u22A4\", drbkarow: \"\\u2910\", drcorn: \"\\u231F\", drcrop: \"\\u230C\", Dscr: \"\\u{1D49F}\", dscr: \"\\u{1D4B9}\", DScy: \"\\u0405\", dscy: \"\\u0455\", dsol: \"\\u29F6\", Dstrok: \"\\u0110\", dstrok: \"\\u0111\", dtdot: \"\\u22F1\", dtri: \"\\u25BF\", dtrif: \"\\u25BE\", duarr: \"\\u21F5\", duhar: \"\\u296F\", dwangle: \"\\u29A6\", DZcy: \"\\u040F\", dzcy: \"\\u045F\", dzigrarr: \"\\u27FF\", Eacute: \"\\xC9\", eacute: \"\\xE9\", easter: \"\\u2A6E\", Ecaron: \"\\u011A\", ecaron: \"\\u011B\", Ecirc: \"\\xCA\", ecirc: \"\\xEA\", ecir: \"\\u2256\", ecolon: \"\\u2255\", Ecy: \"\\u042D\", ecy: \"\\u044D\", eDDot: \"\\u2A77\", Edot: \"\\u0116\", edot: \"\\u0117\", eDot: \"\\u2251\", ee: \"\\u2147\", efDot: \"\\u2252\", Efr: \"\\u{1D508}\", efr: \"\\u{1D522}\", eg: \"\\u2A9A\", Egrave: \"\\xC8\", egrave: \"\\xE8\", egs: \"\\u2A96\", egsdot: \"\\u2A98\", el: \"\\u2A99\", Element: \"\\u2208\", elinters: \"\\u23E7\", ell: \"\\u2113\", els: \"\\u2A95\", elsdot: \"\\u2A97\", Emacr: \"\\u0112\", emacr: \"\\u0113\", empty: \"\\u2205\", emptyset: \"\\u2205\", EmptySmallSquare: \"\\u25FB\", emptyv: \"\\u2205\", EmptyVerySmallSquare: \"\\u25AB\", emsp13: \"\\u2004\", emsp14: \"\\u2005\", emsp: \"\\u2003\", ENG: \"\\u014A\", eng: \"\\u014B\", ensp: \"\\u2002\", Eogon: \"\\u0118\", eogon: \"\\u0119\", Eopf: \"\\u{1D53C}\", eopf: \"\\u{1D556}\", epar: \"\\u22D5\", eparsl: \"\\u29E3\", eplus: \"\\u2A71\", epsi: \"\\u03B5\", Epsilon: \"\\u0395\", epsilon: \"\\u03B5\", epsiv: \"\\u03F5\", eqcirc: \"\\u2256\", eqcolon: \"\\u2255\", eqsim: \"\\u2242\", eqslantgtr: \"\\u2A96\", eqslantless: \"\\u2A95\", Equal: \"\\u2A75\", equals: \"=\", EqualTilde: \"\\u2242\", equest: \"\\u225F\", Equilibrium: \"\\u21CC\", equiv: \"\\u2261\", equivDD: \"\\u2A78\", eqvparsl: \"\\u29E5\", erarr: \"\\u2971\", erDot: \"\\u2253\", escr: \"\\u212F\", Escr: \"\\u2130\", esdot: \"\\u2250\", Esim: \"\\u2A73\", esim: \"\\u2242\", Eta: \"\\u0397\", eta: \"\\u03B7\", ETH: \"\\xD0\", eth: \"\\xF0\", Euml: \"\\xCB\", euml: \"\\xEB\", euro: \"\\u20AC\", excl: \"!\", exist: \"\\u2203\", Exists: \"\\u2203\", expectation: \"\\u2130\", exponentiale: \"\\u2147\", ExponentialE: \"\\u2147\", fallingdotseq: \"\\u2252\", Fcy: \"\\u0424\", fcy: \"\\u0444\", female: \"\\u2640\", ffilig: \"\\uFB03\", fflig: \"\\uFB00\", ffllig: \"\\uFB04\", Ffr: \"\\u{1D509}\", ffr: \"\\u{1D523}\", filig: \"\\uFB01\", FilledSmallSquare: \"\\u25FC\", FilledVerySmallSquare: \"\\u25AA\", fjlig: \"fj\", flat: \"\\u266D\", fllig: \"\\uFB02\", fltns: \"\\u25B1\", fnof: \"\\u0192\", Fopf: \"\\u{1D53D}\", fopf: \"\\u{1D557}\", forall: \"\\u2200\", ForAll: \"\\u2200\", fork: \"\\u22D4\", forkv: \"\\u2AD9\", Fouriertrf: \"\\u2131\", fpartint: \"\\u2A0D\", frac12: \"\\xBD\", frac13: \"\\u2153\", frac14: \"\\xBC\", frac15: \"\\u2155\", frac16: \"\\u2159\", frac18: \"\\u215B\", frac23: \"\\u2154\", frac25: \"\\u2156\", frac34: \"\\xBE\", frac35: \"\\u2157\", frac38: \"\\u215C\", frac45: \"\\u2158\", frac56: \"\\u215A\", frac58: \"\\u215D\", frac78: \"\\u215E\", frasl: \"\\u2044\", frown: \"\\u2322\", fscr: \"\\u{1D4BB}\", Fscr: \"\\u2131\", gacute: \"\\u01F5\", Gamma: \"\\u0393\", gamma: \"\\u03B3\", Gammad: \"\\u03DC\", gammad: \"\\u03DD\", gap: \"\\u2A86\", Gbreve: \"\\u011E\", gbreve: \"\\u011F\", Gcedil: \"\\u0122\", Gcirc: \"\\u011C\", gcirc: \"\\u011D\", Gcy: \"\\u0413\", gcy: \"\\u0433\", Gdot: \"\\u0120\", gdot: \"\\u0121\", ge: \"\\u2265\", gE: \"\\u2267\", gEl: \"\\u2A8C\", gel: \"\\u22DB\", geq: \"\\u2265\", geqq: \"\\u2267\", geqslant: \"\\u2A7E\", gescc: \"\\u2AA9\", ges: \"\\u2A7E\", gesdot: \"\\u2A80\", gesdoto: \"\\u2A82\", gesdotol: \"\\u2A84\", gesl: \"\\u22DB\\uFE00\", gesles: \"\\u2A94\", Gfr: \"\\u{1D50A}\", gfr: \"\\u{1D524}\", gg: \"\\u226B\", Gg: \"\\u22D9\", ggg: \"\\u22D9\", gimel: \"\\u2137\", GJcy: \"\\u0403\", gjcy: \"\\u0453\", gla: \"\\u2AA5\", gl: \"\\u2277\", glE: \"\\u2A92\", glj: \"\\u2AA4\", gnap: \"\\u2A8A\", gnapprox: \"\\u2A8A\", gne: \"\\u2A88\", gnE: \"\\u2269\", gneq: \"\\u2A88\", gneqq: \"\\u2269\", gnsim: \"\\u22E7\", Gopf: \"\\u{1D53E}\", gopf: \"\\u{1D558}\", grave: \"`\", GreaterEqual: \"\\u2265\", GreaterEqualLess: \"\\u22DB\", GreaterFullEqual: \"\\u2267\", GreaterGreater: \"\\u2AA2\", GreaterLess: \"\\u2277\", GreaterSlantEqual: \"\\u2A7E\", GreaterTilde: \"\\u2273\", Gscr: \"\\u{1D4A2}\", gscr: \"\\u210A\", gsim: \"\\u2273\", gsime: \"\\u2A8E\", gsiml: \"\\u2A90\", gtcc: \"\\u2AA7\", gtcir: \"\\u2A7A\", gt: \">\", GT: \">\", Gt: \"\\u226B\", gtdot: \"\\u22D7\", gtlPar: \"\\u2995\", gtquest: \"\\u2A7C\", gtrapprox: \"\\u2A86\", gtrarr: \"\\u2978\", gtrdot: \"\\u22D7\", gtreqless: \"\\u22DB\", gtreqqless: \"\\u2A8C\", gtrless: \"\\u2277\", gtrsim: \"\\u2273\", gvertneqq: \"\\u2269\\uFE00\", gvnE: \"\\u2269\\uFE00\", Hacek: \"\\u02C7\", hairsp: \"\\u200A\", half: \"\\xBD\", hamilt: \"\\u210B\", HARDcy: \"\\u042A\", hardcy: \"\\u044A\", harrcir: \"\\u2948\", harr: \"\\u2194\", hArr: \"\\u21D4\", harrw: \"\\u21AD\", Hat: \"^\", hbar: \"\\u210F\", Hcirc: \"\\u0124\", hcirc: \"\\u0125\", hearts: \"\\u2665\", heartsuit: \"\\u2665\", hellip: \"\\u2026\", hercon: \"\\u22B9\", hfr: \"\\u{1D525}\", Hfr: \"\\u210C\", HilbertSpace: \"\\u210B\", hksearow: \"\\u2925\", hkswarow: \"\\u2926\", hoarr: \"\\u21FF\", homtht: \"\\u223B\", hookleftarrow: \"\\u21A9\", hookrightarrow: \"\\u21AA\", hopf: \"\\u{1D559}\", Hopf: \"\\u210D\", horbar: \"\\u2015\", HorizontalLine: \"\\u2500\", hscr: \"\\u{1D4BD}\", Hscr: \"\\u210B\", hslash: \"\\u210F\", Hstrok: \"\\u0126\", hstrok: \"\\u0127\", HumpDownHump: \"\\u224E\", HumpEqual: \"\\u224F\", hybull: \"\\u2043\", hyphen: \"\\u2010\", Iacute: \"\\xCD\", iacute: \"\\xED\", ic: \"\\u2063\", Icirc: \"\\xCE\", icirc: \"\\xEE\", Icy: \"\\u0418\", icy: \"\\u0438\", Idot: \"\\u0130\", IEcy: \"\\u0415\", iecy: \"\\u0435\", iexcl: \"\\xA1\", iff: \"\\u21D4\", ifr: \"\\u{1D526}\", Ifr: \"\\u2111\", Igrave: \"\\xCC\", igrave: \"\\xEC\", ii: \"\\u2148\", iiiint: \"\\u2A0C\", iiint: \"\\u222D\", iinfin: \"\\u29DC\", iiota: \"\\u2129\", IJlig: \"\\u0132\", ijlig: \"\\u0133\", Imacr: \"\\u012A\", imacr: \"\\u012B\", image: \"\\u2111\", ImaginaryI: \"\\u2148\", imagline: \"\\u2110\", imagpart: \"\\u2111\", imath: \"\\u0131\", Im: \"\\u2111\", imof: \"\\u22B7\", imped: \"\\u01B5\", Implies: \"\\u21D2\", incare: \"\\u2105\", in: \"\\u2208\", infin: \"\\u221E\", infintie: \"\\u29DD\", inodot: \"\\u0131\", intcal: \"\\u22BA\", int: \"\\u222B\", Int: \"\\u222C\", integers: \"\\u2124\", Integral: \"\\u222B\", intercal: \"\\u22BA\", Intersection: \"\\u22C2\", intlarhk: \"\\u2A17\", intprod: \"\\u2A3C\", InvisibleComma: \"\\u2063\", InvisibleTimes: \"\\u2062\", IOcy: \"\\u0401\", iocy: \"\\u0451\", Iogon: \"\\u012E\", iogon: \"\\u012F\", Iopf: \"\\u{1D540}\", iopf: \"\\u{1D55A}\", Iota: \"\\u0399\", iota: \"\\u03B9\", iprod: \"\\u2A3C\", iquest: \"\\xBF\", iscr: \"\\u{1D4BE}\", Iscr: \"\\u2110\", isin: \"\\u2208\", isindot: \"\\u22F5\", isinE: \"\\u22F9\", isins: \"\\u22F4\", isinsv: \"\\u22F3\", isinv: \"\\u2208\", it: \"\\u2062\", Itilde: \"\\u0128\", itilde: \"\\u0129\", Iukcy: \"\\u0406\", iukcy: \"\\u0456\", Iuml: \"\\xCF\", iuml: \"\\xEF\", Jcirc: \"\\u0134\", jcirc: \"\\u0135\", Jcy: \"\\u0419\", jcy: \"\\u0439\", Jfr: \"\\u{1D50D}\", jfr: \"\\u{1D527}\", jmath: \"\\u0237\", Jopf: \"\\u{1D541}\", jopf: \"\\u{1D55B}\", Jscr: \"\\u{1D4A5}\", jscr: \"\\u{1D4BF}\", Jsercy: \"\\u0408\", jsercy: \"\\u0458\", Jukcy: \"\\u0404\", jukcy: \"\\u0454\", Kappa: \"\\u039A\", kappa: \"\\u03BA\", kappav: \"\\u03F0\", Kcedil: \"\\u0136\", kcedil: \"\\u0137\", Kcy: \"\\u041A\", kcy: \"\\u043A\", Kfr: \"\\u{1D50E}\", kfr: \"\\u{1D528}\", kgreen: \"\\u0138\", KHcy: \"\\u0425\", khcy: \"\\u0445\", KJcy: \"\\u040C\", kjcy: \"\\u045C\", Kopf: \"\\u{1D542}\", kopf: \"\\u{1D55C}\", Kscr: \"\\u{1D4A6}\", kscr: \"\\u{1D4C0}\", lAarr: \"\\u21DA\", Lacute: \"\\u0139\", lacute: \"\\u013A\", laemptyv: \"\\u29B4\", lagran: \"\\u2112\", Lambda: \"\\u039B\", lambda: \"\\u03BB\", lang: \"\\u27E8\", Lang: \"\\u27EA\", langd: \"\\u2991\", langle: \"\\u27E8\", lap: \"\\u2A85\", Laplacetrf: \"\\u2112\", laquo: \"\\xAB\", larrb: \"\\u21E4\", larrbfs: \"\\u291F\", larr: \"\\u2190\", Larr: \"\\u219E\", lArr: \"\\u21D0\", larrfs: \"\\u291D\", larrhk: \"\\u21A9\", larrlp: \"\\u21AB\", larrpl: \"\\u2939\", larrsim: \"\\u2973\", larrtl: \"\\u21A2\", latail: \"\\u2919\", lAtail: \"\\u291B\", lat: \"\\u2AAB\", late: \"\\u2AAD\", lates: \"\\u2AAD\\uFE00\", lbarr: \"\\u290C\", lBarr: \"\\u290E\", lbbrk: \"\\u2772\", lbrace: \"{\", lbrack: \"[\", lbrke: \"\\u298B\", lbrksld: \"\\u298F\", lbrkslu: \"\\u298D\", Lcaron: \"\\u013D\", lcaron: \"\\u013E\", Lcedil: \"\\u013B\", lcedil: \"\\u013C\", lceil: \"\\u2308\", lcub: \"{\", Lcy: \"\\u041B\", lcy: \"\\u043B\", ldca: \"\\u2936\", ldquo: \"\\u201C\", ldquor: \"\\u201E\", ldrdhar: \"\\u2967\", ldrushar: \"\\u294B\", ldsh: \"\\u21B2\", le: \"\\u2264\", lE: \"\\u2266\", LeftAngleBracket: \"\\u27E8\", LeftArrowBar: \"\\u21E4\", leftarrow: \"\\u2190\", LeftArrow: \"\\u2190\", Leftarrow: \"\\u21D0\", LeftArrowRightArrow: \"\\u21C6\", leftarrowtail: \"\\u21A2\", LeftCeiling: \"\\u2308\", LeftDoubleBracket: \"\\u27E6\", LeftDownTeeVector: \"\\u2961\", LeftDownVectorBar: \"\\u2959\", LeftDownVector: \"\\u21C3\", LeftFloor: \"\\u230A\", leftharpoondown: \"\\u21BD\", leftharpoonup: \"\\u21BC\", leftleftarrows: \"\\u21C7\", leftrightarrow: \"\\u2194\", LeftRightArrow: \"\\u2194\", Leftrightarrow: \"\\u21D4\", leftrightarrows: \"\\u21C6\", leftrightharpoons: \"\\u21CB\", leftrightsquigarrow: \"\\u21AD\", LeftRightVector: \"\\u294E\", LeftTeeArrow: \"\\u21A4\", LeftTee: \"\\u22A3\", LeftTeeVector: \"\\u295A\", leftthreetimes: \"\\u22CB\", LeftTriangleBar: \"\\u29CF\", LeftTriangle: \"\\u22B2\", LeftTriangleEqual: \"\\u22B4\", LeftUpDownVector: \"\\u2951\", LeftUpTeeVector: \"\\u2960\", LeftUpVectorBar: \"\\u2958\", LeftUpVector: \"\\u21BF\", LeftVectorBar: \"\\u2952\", LeftVector: \"\\u21BC\", lEg: \"\\u2A8B\", leg: \"\\u22DA\", leq: \"\\u2264\", leqq: \"\\u2266\", leqslant: \"\\u2A7D\", lescc: \"\\u2AA8\", les: \"\\u2A7D\", lesdot: \"\\u2A7F\", lesdoto: \"\\u2A81\", lesdotor: \"\\u2A83\", lesg: \"\\u22DA\\uFE00\", lesges: \"\\u2A93\", lessapprox: \"\\u2A85\", lessdot: \"\\u22D6\", lesseqgtr: \"\\u22DA\", lesseqqgtr: \"\\u2A8B\", LessEqualGreater: \"\\u22DA\", LessFullEqual: \"\\u2266\", LessGreater: \"\\u2276\", lessgtr: \"\\u2276\", LessLess: \"\\u2AA1\", lesssim: \"\\u2272\", LessSlantEqual: \"\\u2A7D\", LessTilde: \"\\u2272\", lfisht: \"\\u297C\", lfloor: \"\\u230A\", Lfr: \"\\u{1D50F}\", lfr: \"\\u{1D529}\", lg: \"\\u2276\", lgE: \"\\u2A91\", lHar: \"\\u2962\", lhard: \"\\u21BD\", lharu: \"\\u21BC\", lharul: \"\\u296A\", lhblk: \"\\u2584\", LJcy: \"\\u0409\", ljcy: \"\\u0459\", llarr: \"\\u21C7\", ll: \"\\u226A\", Ll: \"\\u22D8\", llcorner: \"\\u231E\", Lleftarrow: \"\\u21DA\", llhard: \"\\u296B\", lltri: \"\\u25FA\", Lmidot: \"\\u013F\", lmidot: \"\\u0140\", lmoustache: \"\\u23B0\", lmoust: \"\\u23B0\", lnap: \"\\u2A89\", lnapprox: \"\\u2A89\", lne: \"\\u2A87\", lnE: \"\\u2268\", lneq: \"\\u2A87\", lneqq: \"\\u2268\", lnsim: \"\\u22E6\", loang: \"\\u27EC\", loarr: \"\\u21FD\", lobrk: \"\\u27E6\", longleftarrow: \"\\u27F5\", LongLeftArrow: \"\\u27F5\", Longleftarrow: \"\\u27F8\", longleftrightarrow: \"\\u27F7\", LongLeftRightArrow: \"\\u27F7\", Longleftrightarrow: \"\\u27FA\", longmapsto: \"\\u27FC\", longrightarrow: \"\\u27F6\", LongRightArrow: \"\\u27F6\", Longrightarrow: \"\\u27F9\", looparrowleft: \"\\u21AB\", looparrowright: \"\\u21AC\", lopar: \"\\u2985\", Lopf: \"\\u{1D543}\", lopf: \"\\u{1D55D}\", loplus: \"\\u2A2D\", lotimes: \"\\u2A34\", lowast: \"\\u2217\", lowbar: \"_\", LowerLeftArrow: \"\\u2199\", LowerRightArrow: \"\\u2198\", loz: \"\\u25CA\", lozenge: \"\\u25CA\", lozf: \"\\u29EB\", lpar: \"(\", lparlt: \"\\u2993\", lrarr: \"\\u21C6\", lrcorner: \"\\u231F\", lrhar: \"\\u21CB\", lrhard: \"\\u296D\", lrm: \"\\u200E\", lrtri: \"\\u22BF\", lsaquo: \"\\u2039\", lscr: \"\\u{1D4C1}\", Lscr: \"\\u2112\", lsh: \"\\u21B0\", Lsh: \"\\u21B0\", lsim: \"\\u2272\", lsime: \"\\u2A8D\", lsimg: \"\\u2A8F\", lsqb: \"[\", lsquo: \"\\u2018\", lsquor: \"\\u201A\", Lstrok: \"\\u0141\", lstrok: \"\\u0142\", ltcc: \"\\u2AA6\", ltcir: \"\\u2A79\", lt: \"<\", LT: \"<\", Lt: \"\\u226A\", ltdot: \"\\u22D6\", lthree: \"\\u22CB\", ltimes: \"\\u22C9\", ltlarr: \"\\u2976\", ltquest: \"\\u2A7B\", ltri: \"\\u25C3\", ltrie: \"\\u22B4\", ltrif: \"\\u25C2\", ltrPar: \"\\u2996\", lurdshar: \"\\u294A\", luruhar: \"\\u2966\", lvertneqq: \"\\u2268\\uFE00\", lvnE: \"\\u2268\\uFE00\", macr: \"\\xAF\", male: \"\\u2642\", malt: \"\\u2720\", maltese: \"\\u2720\", Map: \"\\u2905\", map: \"\\u21A6\", mapsto: \"\\u21A6\", mapstodown: \"\\u21A7\", mapstoleft: \"\\u21A4\", mapstoup: \"\\u21A5\", marker: \"\\u25AE\", mcomma: \"\\u2A29\", Mcy: \"\\u041C\", mcy: \"\\u043C\", mdash: \"\\u2014\", mDDot: \"\\u223A\", measuredangle: \"\\u2221\", MediumSpace: \"\\u205F\", Mellintrf: \"\\u2133\", Mfr: \"\\u{1D510}\", mfr: \"\\u{1D52A}\", mho: \"\\u2127\", micro: \"\\xB5\", midast: \"*\", midcir: \"\\u2AF0\", mid: \"\\u2223\", middot: \"\\xB7\", minusb: \"\\u229F\", minus: \"\\u2212\", minusd: \"\\u2238\", minusdu: \"\\u2A2A\", MinusPlus: \"\\u2213\", mlcp: \"\\u2ADB\", mldr: \"\\u2026\", mnplus: \"\\u2213\", models: \"\\u22A7\", Mopf: \"\\u{1D544}\", mopf: \"\\u{1D55E}\", mp: \"\\u2213\", mscr: \"\\u{1D4C2}\", Mscr: \"\\u2133\", mstpos: \"\\u223E\", Mu: \"\\u039C\", mu: \"\\u03BC\", multimap: \"\\u22B8\", mumap: \"\\u22B8\", nabla: \"\\u2207\", Nacute: \"\\u0143\", nacute: \"\\u0144\", nang: \"\\u2220\\u20D2\", nap: \"\\u2249\", napE: \"\\u2A70\\u0338\", napid: \"\\u224B\\u0338\", napos: \"\\u0149\", napprox: \"\\u2249\", natural: \"\\u266E\", naturals: \"\\u2115\", natur: \"\\u266E\", nbsp: \"\\xA0\", nbump: \"\\u224E\\u0338\", nbumpe: \"\\u224F\\u0338\", ncap: \"\\u2A43\", Ncaron: \"\\u0147\", ncaron: \"\\u0148\", Ncedil: \"\\u0145\", ncedil: \"\\u0146\", ncong: \"\\u2247\", ncongdot: \"\\u2A6D\\u0338\", ncup: \"\\u2A42\", Ncy: \"\\u041D\", ncy: \"\\u043D\", ndash: \"\\u2013\", nearhk: \"\\u2924\", nearr: \"\\u2197\", neArr: \"\\u21D7\", nearrow: \"\\u2197\", ne: \"\\u2260\", nedot: \"\\u2250\\u0338\", NegativeMediumSpace: \"\\u200B\", NegativeThickSpace: \"\\u200B\", NegativeThinSpace: \"\\u200B\", NegativeVeryThinSpace: \"\\u200B\", nequiv: \"\\u2262\", nesear: \"\\u2928\", nesim: \"\\u2242\\u0338\", NestedGreaterGreater: \"\\u226B\", NestedLessLess: \"\\u226A\", NewLine: `\n`, nexist: \"\\u2204\", nexists: \"\\u2204\", Nfr: \"\\u{1D511}\", nfr: \"\\u{1D52B}\", ngE: \"\\u2267\\u0338\", nge: \"\\u2271\", ngeq: \"\\u2271\", ngeqq: \"\\u2267\\u0338\", ngeqslant: \"\\u2A7E\\u0338\", nges: \"\\u2A7E\\u0338\", nGg: \"\\u22D9\\u0338\", ngsim: \"\\u2275\", nGt: \"\\u226B\\u20D2\", ngt: \"\\u226F\", ngtr: \"\\u226F\", nGtv: \"\\u226B\\u0338\", nharr: \"\\u21AE\", nhArr: \"\\u21CE\", nhpar: \"\\u2AF2\", ni: \"\\u220B\", nis: \"\\u22FC\", nisd: \"\\u22FA\", niv: \"\\u220B\", NJcy: \"\\u040A\", njcy: \"\\u045A\", nlarr: \"\\u219A\", nlArr: \"\\u21CD\", nldr: \"\\u2025\", nlE: \"\\u2266\\u0338\", nle: \"\\u2270\", nleftarrow: \"\\u219A\", nLeftarrow: \"\\u21CD\", nleftrightarrow: \"\\u21AE\", nLeftrightarrow: \"\\u21CE\", nleq: \"\\u2270\", nleqq: \"\\u2266\\u0338\", nleqslant: \"\\u2A7D\\u0338\", nles: \"\\u2A7D\\u0338\", nless: \"\\u226E\", nLl: \"\\u22D8\\u0338\", nlsim: \"\\u2274\", nLt: \"\\u226A\\u20D2\", nlt: \"\\u226E\", nltri: \"\\u22EA\", nltrie: \"\\u22EC\", nLtv: \"\\u226A\\u0338\", nmid: \"\\u2224\", NoBreak: \"\\u2060\", NonBreakingSpace: \"\\xA0\", nopf: \"\\u{1D55F}\", Nopf: \"\\u2115\", Not: \"\\u2AEC\", not: \"\\xAC\", NotCongruent: \"\\u2262\", NotCupCap: \"\\u226D\", NotDoubleVerticalBar: \"\\u2226\", NotElement: \"\\u2209\", NotEqual: \"\\u2260\", NotEqualTilde: \"\\u2242\\u0338\", NotExists: \"\\u2204\", NotGreater: \"\\u226F\", NotGreaterEqual: \"\\u2271\", NotGreaterFullEqual: \"\\u2267\\u0338\", NotGreaterGreater: \"\\u226B\\u0338\", NotGreaterLess: \"\\u2279\", NotGreaterSlantEqual: \"\\u2A7E\\u0338\", NotGreaterTilde: \"\\u2275\", NotHumpDownHump: \"\\u224E\\u0338\", NotHumpEqual: \"\\u224F\\u0338\", notin: \"\\u2209\", notindot: \"\\u22F5\\u0338\", notinE: \"\\u22F9\\u0338\", notinva: \"\\u2209\", notinvb: \"\\u22F7\", notinvc: \"\\u22F6\", NotLeftTriangleBar: \"\\u29CF\\u0338\", NotLeftTriangle: \"\\u22EA\", NotLeftTriangleEqual: \"\\u22EC\", NotLess: \"\\u226E\", NotLessEqual: \"\\u2270\", NotLessGreater: \"\\u2278\", NotLessLess: \"\\u226A\\u0338\", NotLessSlantEqual: \"\\u2A7D\\u0338\", NotLessTilde: \"\\u2274\", NotNestedGreaterGreater: \"\\u2AA2\\u0338\", NotNestedLessLess: \"\\u2AA1\\u0338\", notni: \"\\u220C\", notniva: \"\\u220C\", notnivb: \"\\u22FE\", notnivc: \"\\u22FD\", NotPrecedes: \"\\u2280\", NotPrecedesEqual: \"\\u2AAF\\u0338\", NotPrecedesSlantEqual: \"\\u22E0\", NotReverseElement: \"\\u220C\", NotRightTriangleBar: \"\\u29D0\\u0338\", NotRightTriangle: \"\\u22EB\", NotRightTriangleEqual: \"\\u22ED\", NotSquareSubset: \"\\u228F\\u0338\", NotSquareSubsetEqual: \"\\u22E2\", NotSquareSuperset: \"\\u2290\\u0338\", NotSquareSupersetEqual: \"\\u22E3\", NotSubset: \"\\u2282\\u20D2\", NotSubsetEqual: \"\\u2288\", NotSucceeds: \"\\u2281\", NotSucceedsEqual: \"\\u2AB0\\u0338\", NotSucceedsSlantEqual: \"\\u22E1\", NotSucceedsTilde: \"\\u227F\\u0338\", NotSuperset: \"\\u2283\\u20D2\", NotSupersetEqual: \"\\u2289\", NotTilde: \"\\u2241\", NotTildeEqual: \"\\u2244\", NotTildeFullEqual: \"\\u2247\", NotTildeTilde: \"\\u2249\", NotVerticalBar: \"\\u2224\", nparallel: \"\\u2226\", npar: \"\\u2226\", nparsl: \"\\u2AFD\\u20E5\", npart: \"\\u2202\\u0338\", npolint: \"\\u2A14\", npr: \"\\u2280\", nprcue: \"\\u22E0\", nprec: \"\\u2280\", npreceq: \"\\u2AAF\\u0338\", npre: \"\\u2AAF\\u0338\", nrarrc: \"\\u2933\\u0338\", nrarr: \"\\u219B\", nrArr: \"\\u21CF\", nrarrw: \"\\u219D\\u0338\", nrightarrow: \"\\u219B\", nRightarrow: \"\\u21CF\", nrtri: \"\\u22EB\", nrtrie: \"\\u22ED\", nsc: \"\\u2281\", nsccue: \"\\u22E1\", nsce: \"\\u2AB0\\u0338\", Nscr: \"\\u{1D4A9}\", nscr: \"\\u{1D4C3}\", nshortmid: \"\\u2224\", nshortparallel: \"\\u2226\", nsim: \"\\u2241\", nsime: \"\\u2244\", nsimeq: \"\\u2244\", nsmid: \"\\u2224\", nspar: \"\\u2226\", nsqsube: \"\\u22E2\", nsqsupe: \"\\u22E3\", nsub: \"\\u2284\", nsubE: \"\\u2AC5\\u0338\", nsube: \"\\u2288\", nsubset: \"\\u2282\\u20D2\", nsubseteq: \"\\u2288\", nsubseteqq: \"\\u2AC5\\u0338\", nsucc: \"\\u2281\", nsucceq: \"\\u2AB0\\u0338\", nsup: \"\\u2285\", nsupE: \"\\u2AC6\\u0338\", nsupe: \"\\u2289\", nsupset: \"\\u2283\\u20D2\", nsupseteq: \"\\u2289\", nsupseteqq: \"\\u2AC6\\u0338\", ntgl: \"\\u2279\", Ntilde: \"\\xD1\", ntilde: \"\\xF1\", ntlg: \"\\u2278\", ntriangleleft: \"\\u22EA\", ntrianglelefteq: \"\\u22EC\", ntriangleright: \"\\u22EB\", ntrianglerighteq: \"\\u22ED\", Nu: \"\\u039D\", nu: \"\\u03BD\", num: \"#\", numero: \"\\u2116\", numsp: \"\\u2007\", nvap: \"\\u224D\\u20D2\", nvdash: \"\\u22AC\", nvDash: \"\\u22AD\", nVdash: \"\\u22AE\", nVDash: \"\\u22AF\", nvge: \"\\u2265\\u20D2\", nvgt: \">\\u20D2\", nvHarr: \"\\u2904\", nvinfin: \"\\u29DE\", nvlArr: \"\\u2902\", nvle: \"\\u2264\\u20D2\", nvlt: \"<\\u20D2\", nvltrie: \"\\u22B4\\u20D2\", nvrArr: \"\\u2903\", nvrtrie: \"\\u22B5\\u20D2\", nvsim: \"\\u223C\\u20D2\", nwarhk: \"\\u2923\", nwarr: \"\\u2196\", nwArr: \"\\u21D6\", nwarrow: \"\\u2196\", nwnear: \"\\u2927\", Oacute: \"\\xD3\", oacute: \"\\xF3\", oast: \"\\u229B\", Ocirc: \"\\xD4\", ocirc: \"\\xF4\", ocir: \"\\u229A\", Ocy: \"\\u041E\", ocy: \"\\u043E\", odash: \"\\u229D\", Odblac: \"\\u0150\", odblac: \"\\u0151\", odiv: \"\\u2A38\", odot: \"\\u2299\", odsold: \"\\u29BC\", OElig: \"\\u0152\", oelig: \"\\u0153\", ofcir: \"\\u29BF\", Ofr: \"\\u{1D512}\", ofr: \"\\u{1D52C}\", ogon: \"\\u02DB\", Ograve: \"\\xD2\", ograve: \"\\xF2\", ogt: \"\\u29C1\", ohbar: \"\\u29B5\", ohm: \"\\u03A9\", oint: \"\\u222E\", olarr: \"\\u21BA\", olcir: \"\\u29BE\", olcross: \"\\u29BB\", oline: \"\\u203E\", olt: \"\\u29C0\", Omacr: \"\\u014C\", omacr: \"\\u014D\", Omega: \"\\u03A9\", omega: \"\\u03C9\", Omicron: \"\\u039F\", omicron: \"\\u03BF\", omid: \"\\u29B6\", ominus: \"\\u2296\", Oopf: \"\\u{1D546}\", oopf: \"\\u{1D560}\", opar: \"\\u29B7\", OpenCurlyDoubleQuote: \"\\u201C\", OpenCurlyQuote: \"\\u2018\", operp: \"\\u29B9\", oplus: \"\\u2295\", orarr: \"\\u21BB\", Or: \"\\u2A54\", or: \"\\u2228\", ord: \"\\u2A5D\", order: \"\\u2134\", orderof: \"\\u2134\", ordf: \"\\xAA\", ordm: \"\\xBA\", origof: \"\\u22B6\", oror: \"\\u2A56\", orslope: \"\\u2A57\", orv: \"\\u2A5B\", oS: \"\\u24C8\", Oscr: \"\\u{1D4AA}\", oscr: \"\\u2134\", Oslash: \"\\xD8\", oslash: \"\\xF8\", osol: \"\\u2298\", Otilde: \"\\xD5\", otilde: \"\\xF5\", otimesas: \"\\u2A36\", Otimes: \"\\u2A37\", otimes: \"\\u2297\", Ouml: \"\\xD6\", ouml: \"\\xF6\", ovbar: \"\\u233D\", OverBar: \"\\u203E\", OverBrace: \"\\u23DE\", OverBracket: \"\\u23B4\", OverParenthesis: \"\\u23DC\", para: \"\\xB6\", parallel: \"\\u2225\", par: \"\\u2225\", parsim: \"\\u2AF3\", parsl: \"\\u2AFD\", part: \"\\u2202\", PartialD: \"\\u2202\", Pcy: \"\\u041F\", pcy: \"\\u043F\", percnt: \"%\", period: \".\", permil: \"\\u2030\", perp: \"\\u22A5\", pertenk: \"\\u2031\", Pfr: \"\\u{1D513}\", pfr: \"\\u{1D52D}\", Phi: \"\\u03A6\", phi: \"\\u03C6\", phiv: \"\\u03D5\", phmmat: \"\\u2133\", phone: \"\\u260E\", Pi: \"\\u03A0\", pi: \"\\u03C0\", pitchfork: \"\\u22D4\", piv: \"\\u03D6\", planck: \"\\u210F\", planckh: \"\\u210E\", plankv: \"\\u210F\", plusacir: \"\\u2A23\", plusb: \"\\u229E\", pluscir: \"\\u2A22\", plus: \"+\", plusdo: \"\\u2214\", plusdu: \"\\u2A25\", pluse: \"\\u2A72\", PlusMinus: \"\\xB1\", plusmn: \"\\xB1\", plussim: \"\\u2A26\", plustwo: \"\\u2A27\", pm: \"\\xB1\", Poincareplane: \"\\u210C\", pointint: \"\\u2A15\", popf: \"\\u{1D561}\", Popf: \"\\u2119\", pound: \"\\xA3\", prap: \"\\u2AB7\", Pr: \"\\u2ABB\", pr: \"\\u227A\", prcue: \"\\u227C\", precapprox: \"\\u2AB7\", prec: \"\\u227A\", preccurlyeq: \"\\u227C\", Precedes: \"\\u227A\", PrecedesEqual: \"\\u2AAF\", PrecedesSlantEqual: \"\\u227C\", PrecedesTilde: \"\\u227E\", preceq: \"\\u2AAF\", precnapprox: \"\\u2AB9\", precneqq: \"\\u2AB5\", precnsim: \"\\u22E8\", pre: \"\\u2AAF\", prE: \"\\u2AB3\", precsim: \"\\u227E\", prime: \"\\u2032\", Prime: \"\\u2033\", primes: \"\\u2119\", prnap: \"\\u2AB9\", prnE: \"\\u2AB5\", prnsim: \"\\u22E8\", prod: \"\\u220F\", Product: \"\\u220F\", profalar: \"\\u232E\", profline: \"\\u2312\", profsurf: \"\\u2313\", prop: \"\\u221D\", Proportional: \"\\u221D\", Proportion: \"\\u2237\", propto: \"\\u221D\", prsim: \"\\u227E\", prurel: \"\\u22B0\", Pscr: \"\\u{1D4AB}\", pscr: \"\\u{1D4C5}\", Psi: \"\\u03A8\", psi: \"\\u03C8\", puncsp: \"\\u2008\", Qfr: \"\\u{1D514}\", qfr: \"\\u{1D52E}\", qint: \"\\u2A0C\", qopf: \"\\u{1D562}\", Qopf: \"\\u211A\", qprime: \"\\u2057\", Qscr: \"\\u{1D4AC}\", qscr: \"\\u{1D4C6}\", quaternions: \"\\u210D\", quatint: \"\\u2A16\", quest: \"?\", questeq: \"\\u225F\", quot: '\"', QUOT: '\"', rAarr: \"\\u21DB\", race: \"\\u223D\\u0331\", Racute: \"\\u0154\", racute: \"\\u0155\", radic: \"\\u221A\", raemptyv: \"\\u29B3\", rang: \"\\u27E9\", Rang: \"\\u27EB\", rangd: \"\\u2992\", range: \"\\u29A5\", rangle: \"\\u27E9\", raquo: \"\\xBB\", rarrap: \"\\u2975\", rarrb: \"\\u21E5\", rarrbfs: \"\\u2920\", rarrc: \"\\u2933\", rarr: \"\\u2192\", Rarr: \"\\u21A0\", rArr: \"\\u21D2\", rarrfs: \"\\u291E\", rarrhk: \"\\u21AA\", rarrlp: \"\\u21AC\", rarrpl: \"\\u2945\", rarrsim: \"\\u2974\", Rarrtl: \"\\u2916\", rarrtl: \"\\u21A3\", rarrw: \"\\u219D\", ratail: \"\\u291A\", rAtail: \"\\u291C\", ratio: \"\\u2236\", rationals: \"\\u211A\", rbarr: \"\\u290D\", rBarr: \"\\u290F\", RBarr: \"\\u2910\", rbbrk: \"\\u2773\", rbrace: \"}\", rbrack: \"]\", rbrke: \"\\u298C\", rbrksld: \"\\u298E\", rbrkslu: \"\\u2990\", Rcaron: \"\\u0158\", rcaron: \"\\u0159\", Rcedil: \"\\u0156\", rcedil: \"\\u0157\", rceil: \"\\u2309\", rcub: \"}\", Rcy: \"\\u0420\", rcy: \"\\u0440\", rdca: \"\\u2937\", rdldhar: \"\\u2969\", rdquo: \"\\u201D\", rdquor: \"\\u201D\", rdsh: \"\\u21B3\", real: \"\\u211C\", realine: \"\\u211B\", realpart: \"\\u211C\", reals: \"\\u211D\", Re: \"\\u211C\", rect: \"\\u25AD\", reg: \"\\xAE\", REG: \"\\xAE\", ReverseElement: \"\\u220B\", ReverseEquilibrium: \"\\u21CB\", ReverseUpEquilibrium: \"\\u296F\", rfisht: \"\\u297D\", rfloor: \"\\u230B\", rfr: \"\\u{1D52F}\", Rfr: \"\\u211C\", rHar: \"\\u2964\", rhard: \"\\u21C1\", rharu: \"\\u21C0\", rharul: \"\\u296C\", Rho: \"\\u03A1\", rho: \"\\u03C1\", rhov: \"\\u03F1\", RightAngleBracket: \"\\u27E9\", RightArrowBar: \"\\u21E5\", rightarrow: \"\\u2192\", RightArrow: \"\\u2192\", Rightarrow: \"\\u21D2\", RightArrowLeftArrow: \"\\u21C4\", rightarrowtail: \"\\u21A3\", RightCeiling: \"\\u2309\", RightDoubleBracket: \"\\u27E7\", RightDownTeeVector: \"\\u295D\", RightDownVectorBar: \"\\u2955\", RightDownVector: \"\\u21C2\", RightFloor: \"\\u230B\", rightharpoondown: \"\\u21C1\", rightharpoonup: \"\\u21C0\", rightleftarrows: \"\\u21C4\", rightleftharpoons: \"\\u21CC\", rightrightarrows: \"\\u21C9\", rightsquigarrow: \"\\u219D\", RightTeeArrow: \"\\u21A6\", RightTee: \"\\u22A2\", RightTeeVector: \"\\u295B\", rightthreetimes: \"\\u22CC\", RightTriangleBar: \"\\u29D0\", RightTriangle: \"\\u22B3\", RightTriangleEqual: \"\\u22B5\", RightUpDownVector: \"\\u294F\", RightUpTeeVector: \"\\u295C\", RightUpVectorBar: \"\\u2954\", RightUpVector: \"\\u21BE\", RightVectorBar: \"\\u2953\", RightVector: \"\\u21C0\", ring: \"\\u02DA\", risingdotseq: \"\\u2253\", rlarr: \"\\u21C4\", rlhar: \"\\u21CC\", rlm: \"\\u200F\", rmoustache: \"\\u23B1\", rmoust: \"\\u23B1\", rnmid: \"\\u2AEE\", roang: \"\\u27ED\", roarr: \"\\u21FE\", robrk: \"\\u27E7\", ropar: \"\\u2986\", ropf: \"\\u{1D563}\", Ropf: \"\\u211D\", roplus: \"\\u2A2E\", rotimes: \"\\u2A35\", RoundImplies: \"\\u2970\", rpar: \")\", rpargt: \"\\u2994\", rppolint: \"\\u2A12\", rrarr: \"\\u21C9\", Rrightarrow: \"\\u21DB\", rsaquo: \"\\u203A\", rscr: \"\\u{1D4C7}\", Rscr: \"\\u211B\", rsh: \"\\u21B1\", Rsh: \"\\u21B1\", rsqb: \"]\", rsquo: \"\\u2019\", rsquor: \"\\u2019\", rthree: \"\\u22CC\", rtimes: \"\\u22CA\", rtri: \"\\u25B9\", rtrie: \"\\u22B5\", rtrif: \"\\u25B8\", rtriltri: \"\\u29CE\", RuleDelayed: \"\\u29F4\", ruluhar: \"\\u2968\", rx: \"\\u211E\", Sacute: \"\\u015A\", sacute: \"\\u015B\", sbquo: \"\\u201A\", scap: \"\\u2AB8\", Scaron: \"\\u0160\", scaron: \"\\u0161\", Sc: \"\\u2ABC\", sc: \"\\u227B\", sccue: \"\\u227D\", sce: \"\\u2AB0\", scE: \"\\u2AB4\", Scedil: \"\\u015E\", scedil: \"\\u015F\", Scirc: \"\\u015C\", scirc: \"\\u015D\", scnap: \"\\u2ABA\", scnE: \"\\u2AB6\", scnsim: \"\\u22E9\", scpolint: \"\\u2A13\", scsim: \"\\u227F\", Scy: \"\\u0421\", scy: \"\\u0441\", sdotb: \"\\u22A1\", sdot: \"\\u22C5\", sdote: \"\\u2A66\", searhk: \"\\u2925\", searr: \"\\u2198\", seArr: \"\\u21D8\", searrow: \"\\u2198\", sect: \"\\xA7\", semi: \";\", seswar: \"\\u2929\", setminus: \"\\u2216\", setmn: \"\\u2216\", sext: \"\\u2736\", Sfr: \"\\u{1D516}\", sfr: \"\\u{1D530}\", sfrown: \"\\u2322\", sharp: \"\\u266F\", SHCHcy: \"\\u0429\", shchcy: \"\\u0449\", SHcy: \"\\u0428\", shcy: \"\\u0448\", ShortDownArrow: \"\\u2193\", ShortLeftArrow: \"\\u2190\", shortmid: \"\\u2223\", shortparallel: \"\\u2225\", ShortRightArrow: \"\\u2192\", ShortUpArrow: \"\\u2191\", shy: \"\\xAD\", Sigma: \"\\u03A3\", sigma: \"\\u03C3\", sigmaf: \"\\u03C2\", sigmav: \"\\u03C2\", sim: \"\\u223C\", simdot: \"\\u2A6A\", sime: \"\\u2243\", simeq: \"\\u2243\", simg: \"\\u2A9E\", simgE: \"\\u2AA0\", siml: \"\\u2A9D\", simlE: \"\\u2A9F\", simne: \"\\u2246\", simplus: \"\\u2A24\", simrarr: \"\\u2972\", slarr: \"\\u2190\", SmallCircle: \"\\u2218\", smallsetminus: \"\\u2216\", smashp: \"\\u2A33\", smeparsl: \"\\u29E4\", smid: \"\\u2223\", smile: \"\\u2323\", smt: \"\\u2AAA\", smte: \"\\u2AAC\", smtes: \"\\u2AAC\\uFE00\", SOFTcy: \"\\u042C\", softcy: \"\\u044C\", solbar: \"\\u233F\", solb: \"\\u29C4\", sol: \"/\", Sopf: \"\\u{1D54A}\", sopf: \"\\u{1D564}\", spades: \"\\u2660\", spadesuit: \"\\u2660\", spar: \"\\u2225\", sqcap: \"\\u2293\", sqcaps: \"\\u2293\\uFE00\", sqcup: \"\\u2294\", sqcups: \"\\u2294\\uFE00\", Sqrt: \"\\u221A\", sqsub: \"\\u228F\", sqsube: \"\\u2291\", sqsubset: \"\\u228F\", sqsubseteq: \"\\u2291\", sqsup: \"\\u2290\", sqsupe: \"\\u2292\", sqsupset: \"\\u2290\", sqsupseteq: \"\\u2292\", square: \"\\u25A1\", Square: \"\\u25A1\", SquareIntersection: \"\\u2293\", SquareSubset: \"\\u228F\", SquareSubsetEqual: \"\\u2291\", SquareSuperset: \"\\u2290\", SquareSupersetEqual: \"\\u2292\", SquareUnion: \"\\u2294\", squarf: \"\\u25AA\", squ: \"\\u25A1\", squf: \"\\u25AA\", srarr: \"\\u2192\", Sscr: \"\\u{1D4AE}\", sscr: \"\\u{1D4C8}\", ssetmn: \"\\u2216\", ssmile: \"\\u2323\", sstarf: \"\\u22C6\", Star: \"\\u22C6\", star: \"\\u2606\", starf: \"\\u2605\", straightepsilon: \"\\u03F5\", straightphi: \"\\u03D5\", strns: \"\\xAF\", sub: \"\\u2282\", Sub: \"\\u22D0\", subdot: \"\\u2ABD\", subE: \"\\u2AC5\", sube: \"\\u2286\", subedot: \"\\u2AC3\", submult: \"\\u2AC1\", subnE: \"\\u2ACB\", subne: \"\\u228A\", subplus: \"\\u2ABF\", subrarr: \"\\u2979\", subset: \"\\u2282\", Subset: \"\\u22D0\", subseteq: \"\\u2286\", subseteqq: \"\\u2AC5\", SubsetEqual: \"\\u2286\", subsetneq: \"\\u228A\", subsetneqq: \"\\u2ACB\", subsim: \"\\u2AC7\", subsub: \"\\u2AD5\", subsup: \"\\u2AD3\", succapprox: \"\\u2AB8\", succ: \"\\u227B\", succcurlyeq: \"\\u227D\", Succeeds: \"\\u227B\", SucceedsEqual: \"\\u2AB0\", SucceedsSlantEqual: \"\\u227D\", SucceedsTilde: \"\\u227F\", succeq: \"\\u2AB0\", succnapprox: \"\\u2ABA\", succneqq: \"\\u2AB6\", succnsim: \"\\u22E9\", succsim: \"\\u227F\", SuchThat: \"\\u220B\", sum: \"\\u2211\", Sum: \"\\u2211\", sung: \"\\u266A\", sup1: \"\\xB9\", sup2: \"\\xB2\", sup3: \"\\xB3\", sup: \"\\u2283\", Sup: \"\\u22D1\", supdot: \"\\u2ABE\", supdsub: \"\\u2AD8\", supE: \"\\u2AC6\", supe: \"\\u2287\", supedot: \"\\u2AC4\", Superset: \"\\u2283\", SupersetEqual: \"\\u2287\", suphsol: \"\\u27C9\", suphsub: \"\\u2AD7\", suplarr: \"\\u297B\", supmult: \"\\u2AC2\", supnE: \"\\u2ACC\", supne: \"\\u228B\", supplus: \"\\u2AC0\", supset: \"\\u2283\", Supset: \"\\u22D1\", supseteq: \"\\u2287\", supseteqq: \"\\u2AC6\", supsetneq: \"\\u228B\", supsetneqq: \"\\u2ACC\", supsim: \"\\u2AC8\", supsub: \"\\u2AD4\", supsup: \"\\u2AD6\", swarhk: \"\\u2926\", swarr: \"\\u2199\", swArr: \"\\u21D9\", swarrow: \"\\u2199\", swnwar: \"\\u292A\", szlig: \"\\xDF\", Tab: \"\t\", target: \"\\u2316\", Tau: \"\\u03A4\", tau: \"\\u03C4\", tbrk: \"\\u23B4\", Tcaron: \"\\u0164\", tcaron: \"\\u0165\", Tcedil: \"\\u0162\", tcedil: \"\\u0163\", Tcy: \"\\u0422\", tcy: \"\\u0442\", tdot: \"\\u20DB\", telrec: \"\\u2315\", Tfr: \"\\u{1D517}\", tfr: \"\\u{1D531}\", there4: \"\\u2234\", therefore: \"\\u2234\", Therefore: \"\\u2234\", Theta: \"\\u0398\", theta: \"\\u03B8\", thetasym: \"\\u03D1\", thetav: \"\\u03D1\", thickapprox: \"\\u2248\", thicksim: \"\\u223C\", ThickSpace: \"\\u205F\\u200A\", ThinSpace: \"\\u2009\", thinsp: \"\\u2009\", thkap: \"\\u2248\", thksim: \"\\u223C\", THORN: \"\\xDE\", thorn: \"\\xFE\", tilde: \"\\u02DC\", Tilde: \"\\u223C\", TildeEqual: \"\\u2243\", TildeFullEqual: \"\\u2245\", TildeTilde: \"\\u2248\", timesbar: \"\\u2A31\", timesb: \"\\u22A0\", times: \"\\xD7\", timesd: \"\\u2A30\", tint: \"\\u222D\", toea: \"\\u2928\", topbot: \"\\u2336\", topcir: \"\\u2AF1\", top: \"\\u22A4\", Topf: \"\\u{1D54B}\", topf: \"\\u{1D565}\", topfork: \"\\u2ADA\", tosa: \"\\u2929\", tprime: \"\\u2034\", trade: \"\\u2122\", TRADE: \"\\u2122\", triangle: \"\\u25B5\", triangledown: \"\\u25BF\", triangleleft: \"\\u25C3\", trianglelefteq: \"\\u22B4\", triangleq: \"\\u225C\", triangleright: \"\\u25B9\", trianglerighteq: \"\\u22B5\", tridot: \"\\u25EC\", trie: \"\\u225C\", triminus: \"\\u2A3A\", TripleDot: \"\\u20DB\", triplus: \"\\u2A39\", trisb: \"\\u29CD\", tritime: \"\\u2A3B\", trpezium: \"\\u23E2\", Tscr: \"\\u{1D4AF}\", tscr: \"\\u{1D4C9}\", TScy: \"\\u0426\", tscy: \"\\u0446\", TSHcy: \"\\u040B\", tshcy: \"\\u045B\", Tstrok: \"\\u0166\", tstrok: \"\\u0167\", twixt: \"\\u226C\", twoheadleftarrow: \"\\u219E\", twoheadrightarrow: \"\\u21A0\", Uacute: \"\\xDA\", uacute: \"\\xFA\", uarr: \"\\u2191\", Uarr: \"\\u219F\", uArr: \"\\u21D1\", Uarrocir: \"\\u2949\", Ubrcy: \"\\u040E\", ubrcy: \"\\u045E\", Ubreve: \"\\u016C\", ubreve: \"\\u016D\", Ucirc: \"\\xDB\", ucirc: \"\\xFB\", Ucy: \"\\u0423\", ucy: \"\\u0443\", udarr: \"\\u21C5\", Udblac: \"\\u0170\", udblac: \"\\u0171\", udhar: \"\\u296E\", ufisht: \"\\u297E\", Ufr: \"\\u{1D518}\", ufr: \"\\u{1D532}\", Ugrave: \"\\xD9\", ugrave: \"\\xF9\", uHar: \"\\u2963\", uharl: \"\\u21BF\", uharr: \"\\u21BE\", uhblk: \"\\u2580\", ulcorn: \"\\u231C\", ulcorner: \"\\u231C\", ulcrop: \"\\u230F\", ultri: \"\\u25F8\", Umacr: \"\\u016A\", umacr: \"\\u016B\", uml: \"\\xA8\", UnderBar: \"_\", UnderBrace: \"\\u23DF\", UnderBracket: \"\\u23B5\", UnderParenthesis: \"\\u23DD\", Union: \"\\u22C3\", UnionPlus: \"\\u228E\", Uogon: \"\\u0172\", uogon: \"\\u0173\", Uopf: \"\\u{1D54C}\", uopf: \"\\u{1D566}\", UpArrowBar: \"\\u2912\", uparrow: \"\\u2191\", UpArrow: \"\\u2191\", Uparrow: \"\\u21D1\", UpArrowDownArrow: \"\\u21C5\", updownarrow: \"\\u2195\", UpDownArrow: \"\\u2195\", Updownarrow: \"\\u21D5\", UpEquilibrium: \"\\u296E\", upharpoonleft: \"\\u21BF\", upharpoonright: \"\\u21BE\", uplus: \"\\u228E\", UpperLeftArrow: \"\\u2196\", UpperRightArrow: \"\\u2197\", upsi: \"\\u03C5\", Upsi: \"\\u03D2\", upsih: \"\\u03D2\", Upsilon: \"\\u03A5\", upsilon: \"\\u03C5\", UpTeeArrow: \"\\u21A5\", UpTee: \"\\u22A5\", upuparrows: \"\\u21C8\", urcorn: \"\\u231D\", urcorner: \"\\u231D\", urcrop: \"\\u230E\", Uring: \"\\u016E\", uring: \"\\u016F\", urtri: \"\\u25F9\", Uscr: \"\\u{1D4B0}\", uscr: \"\\u{1D4CA}\", utdot: \"\\u22F0\", Utilde: \"\\u0168\", utilde: \"\\u0169\", utri: \"\\u25B5\", utrif: \"\\u25B4\", uuarr: \"\\u21C8\", Uuml: \"\\xDC\", uuml: \"\\xFC\", uwangle: \"\\u29A7\", vangrt: \"\\u299C\", varepsilon: \"\\u03F5\", varkappa: \"\\u03F0\", varnothing: \"\\u2205\", varphi: \"\\u03D5\", varpi: \"\\u03D6\", varpropto: \"\\u221D\", varr: \"\\u2195\", vArr: \"\\u21D5\", varrho: \"\\u03F1\", varsigma: \"\\u03C2\", varsubsetneq: \"\\u228A\\uFE00\", varsubsetneqq: \"\\u2ACB\\uFE00\", varsupsetneq: \"\\u228B\\uFE00\", varsupsetneqq: \"\\u2ACC\\uFE00\", vartheta: \"\\u03D1\", vartriangleleft: \"\\u22B2\", vartriangleright: \"\\u22B3\", vBar: \"\\u2AE8\", Vbar: \"\\u2AEB\", vBarv: \"\\u2AE9\", Vcy: \"\\u0412\", vcy: \"\\u0432\", vdash: \"\\u22A2\", vDash: \"\\u22A8\", Vdash: \"\\u22A9\", VDash: \"\\u22AB\", Vdashl: \"\\u2AE6\", veebar: \"\\u22BB\", vee: \"\\u2228\", Vee: \"\\u22C1\", veeeq: \"\\u225A\", vellip: \"\\u22EE\", verbar: \"|\", Verbar: \"\\u2016\", vert: \"|\", Vert: \"\\u2016\", VerticalBar: \"\\u2223\", VerticalLine: \"|\", VerticalSeparator: \"\\u2758\", VerticalTilde: \"\\u2240\", VeryThinSpace: \"\\u200A\", Vfr: \"\\u{1D519}\", vfr: \"\\u{1D533}\", vltri: \"\\u22B2\", vnsub: \"\\u2282\\u20D2\", vnsup: \"\\u2283\\u20D2\", Vopf: \"\\u{1D54D}\", vopf: \"\\u{1D567}\", vprop: \"\\u221D\", vrtri: \"\\u22B3\", Vscr: \"\\u{1D4B1}\", vscr: \"\\u{1D4CB}\", vsubnE: \"\\u2ACB\\uFE00\", vsubne: \"\\u228A\\uFE00\", vsupnE: \"\\u2ACC\\uFE00\", vsupne: \"\\u228B\\uFE00\", Vvdash: \"\\u22AA\", vzigzag: \"\\u299A\", Wcirc: \"\\u0174\", wcirc: \"\\u0175\", wedbar: \"\\u2A5F\", wedge: \"\\u2227\", Wedge: \"\\u22C0\", wedgeq: \"\\u2259\", weierp: \"\\u2118\", Wfr: \"\\u{1D51A}\", wfr: \"\\u{1D534}\", Wopf: \"\\u{1D54E}\", wopf: \"\\u{1D568}\", wp: \"\\u2118\", wr: \"\\u2240\", wreath: \"\\u2240\", Wscr: \"\\u{1D4B2}\", wscr: \"\\u{1D4CC}\", xcap: \"\\u22C2\", xcirc: \"\\u25EF\", xcup: \"\\u22C3\", xdtri: \"\\u25BD\", Xfr: \"\\u{1D51B}\", xfr: \"\\u{1D535}\", xharr: \"\\u27F7\", xhArr: \"\\u27FA\", Xi: \"\\u039E\", xi: \"\\u03BE\", xlarr: \"\\u27F5\", xlArr: \"\\u27F8\", xmap: \"\\u27FC\", xnis: \"\\u22FB\", xodot: \"\\u2A00\", Xopf: \"\\u{1D54F}\", xopf: \"\\u{1D569}\", xoplus: \"\\u2A01\", xotime: \"\\u2A02\", xrarr: \"\\u27F6\", xrArr: \"\\u27F9\", Xscr: \"\\u{1D4B3}\", xscr: \"\\u{1D4CD}\", xsqcup: \"\\u2A06\", xuplus: \"\\u2A04\", xutri: \"\\u25B3\", xvee: \"\\u22C1\", xwedge: \"\\u22C0\", Yacute: \"\\xDD\", yacute: \"\\xFD\", YAcy: \"\\u042F\", yacy: \"\\u044F\", Ycirc: \"\\u0176\", ycirc: \"\\u0177\", Ycy: \"\\u042B\", ycy: \"\\u044B\", yen: \"\\xA5\", Yfr: \"\\u{1D51C}\", yfr: \"\\u{1D536}\", YIcy: \"\\u0407\", yicy: \"\\u0457\", Yopf: \"\\u{1D550}\", yopf: \"\\u{1D56A}\", Yscr: \"\\u{1D4B4}\", yscr: \"\\u{1D4CE}\", YUcy: \"\\u042E\", yucy: \"\\u044E\", yuml: \"\\xFF\", Yuml: \"\\u0178\", Zacute: \"\\u0179\", zacute: \"\\u017A\", Zcaron: \"\\u017D\", zcaron: \"\\u017E\", Zcy: \"\\u0417\", zcy: \"\\u0437\", Zdot: \"\\u017B\", zdot: \"\\u017C\", zeetrf: \"\\u2128\", ZeroWidthSpace: \"\\u200B\", Zeta: \"\\u0396\", zeta: \"\\u03B6\", zfr: \"\\u{1D537}\", Zfr: \"\\u2128\", ZHcy: \"\\u0416\", zhcy: \"\\u0436\", zigrarr: \"\\u21DD\", zopf: \"\\u{1D56B}\", Zopf: \"\\u2124\", Zscr: \"\\u{1D4B5}\", zscr: \"\\u{1D4CF}\", zwj: \"\\u200D\", zwnj: \"\\u200C\" };\n }\n});\n\n// ../node_modules/entities/lib/maps/legacy.json\nvar require_legacy = __commonJS({\n \"../node_modules/entities/lib/maps/legacy.json\"(exports, module) {\n module.exports = { Aacute: \"\\xC1\", aacute: \"\\xE1\", Acirc: \"\\xC2\", acirc: \"\\xE2\", acute: \"\\xB4\", AElig: \"\\xC6\", aelig: \"\\xE6\", Agrave: \"\\xC0\", agrave: \"\\xE0\", amp: \"&\", AMP: \"&\", Aring: \"\\xC5\", aring: \"\\xE5\", Atilde: \"\\xC3\", atilde: \"\\xE3\", Auml: \"\\xC4\", auml: \"\\xE4\", brvbar: \"\\xA6\", Ccedil: \"\\xC7\", ccedil: \"\\xE7\", cedil: \"\\xB8\", cent: \"\\xA2\", copy: \"\\xA9\", COPY: \"\\xA9\", curren: \"\\xA4\", deg: \"\\xB0\", divide: \"\\xF7\", Eacute: \"\\xC9\", eacute: \"\\xE9\", Ecirc: \"\\xCA\", ecirc: \"\\xEA\", Egrave: \"\\xC8\", egrave: \"\\xE8\", ETH: \"\\xD0\", eth: \"\\xF0\", Euml: \"\\xCB\", euml: \"\\xEB\", frac12: \"\\xBD\", frac14: \"\\xBC\", frac34: \"\\xBE\", gt: \">\", GT: \">\", Iacute: \"\\xCD\", iacute: \"\\xED\", Icirc: \"\\xCE\", icirc: \"\\xEE\", iexcl: \"\\xA1\", Igrave: \"\\xCC\", igrave: \"\\xEC\", iquest: \"\\xBF\", Iuml: \"\\xCF\", iuml: \"\\xEF\", laquo: \"\\xAB\", lt: \"<\", LT: \"<\", macr: \"\\xAF\", micro: \"\\xB5\", middot: \"\\xB7\", nbsp: \"\\xA0\", not: \"\\xAC\", Ntilde: \"\\xD1\", ntilde: \"\\xF1\", Oacute: \"\\xD3\", oacute: \"\\xF3\", Ocirc: \"\\xD4\", ocirc: \"\\xF4\", Ograve: \"\\xD2\", ograve: \"\\xF2\", ordf: \"\\xAA\", ordm: \"\\xBA\", Oslash: \"\\xD8\", oslash: \"\\xF8\", Otilde: \"\\xD5\", otilde: \"\\xF5\", Ouml: \"\\xD6\", ouml: \"\\xF6\", para: \"\\xB6\", plusmn: \"\\xB1\", pound: \"\\xA3\", quot: '\"', QUOT: '\"', raquo: \"\\xBB\", reg: \"\\xAE\", REG: \"\\xAE\", sect: \"\\xA7\", shy: \"\\xAD\", sup1: \"\\xB9\", sup2: \"\\xB2\", sup3: \"\\xB3\", szlig: \"\\xDF\", THORN: \"\\xDE\", thorn: \"\\xFE\", times: \"\\xD7\", Uacute: \"\\xDA\", uacute: \"\\xFA\", Ucirc: \"\\xDB\", ucirc: \"\\xFB\", Ugrave: \"\\xD9\", ugrave: \"\\xF9\", uml: \"\\xA8\", Uuml: \"\\xDC\", uuml: \"\\xFC\", Yacute: \"\\xDD\", yacute: \"\\xFD\", yen: \"\\xA5\", yuml: \"\\xFF\" };\n }\n});\n\n// ../node_modules/entities/lib/maps/xml.json\nvar require_xml = __commonJS({\n \"../node_modules/entities/lib/maps/xml.json\"(exports, module) {\n module.exports = { amp: \"&\", apos: \"'\", gt: \">\", lt: \"<\", quot: '\"' };\n }\n});\n\n// ../node_modules/entities/lib/maps/decode.json\nvar require_decode = __commonJS({\n \"../node_modules/entities/lib/maps/decode.json\"(exports, module) {\n module.exports = { \"0\": 65533, \"128\": 8364, \"130\": 8218, \"131\": 402, \"132\": 8222, \"133\": 8230, \"134\": 8224, \"135\": 8225, \"136\": 710, \"137\": 8240, \"138\": 352, \"139\": 8249, \"140\": 338, \"142\": 381, \"145\": 8216, \"146\": 8217, \"147\": 8220, \"148\": 8221, \"149\": 8226, \"150\": 8211, \"151\": 8212, \"152\": 732, \"153\": 8482, \"154\": 353, \"155\": 8250, \"156\": 339, \"158\": 382, \"159\": 376 };\n }\n});\n\n// ../node_modules/entities/lib/decode_codepoint.js\nvar require_decode_codepoint = __commonJS({\n \"../node_modules/entities/lib/decode_codepoint.js\"(exports) {\n \"use strict\";\n var __importDefault = exports && exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : { default: mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n var decode_json_1 = __importDefault(require_decode()), fromCodePoint = (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n String.fromCodePoint || function(codePoint) {\n var output = \"\";\n return codePoint > 65535 && (codePoint -= 65536, output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296), codePoint = 56320 | codePoint & 1023), output += String.fromCharCode(codePoint), output;\n }\n );\n function decodeCodePoint(codePoint) {\n return codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111 ? \"\\uFFFD\" : (codePoint in decode_json_1.default && (codePoint = decode_json_1.default[codePoint]), fromCodePoint(codePoint));\n }\n exports.default = decodeCodePoint;\n }\n});\n\n// ../node_modules/entities/lib/decode.js\nvar require_decode2 = __commonJS({\n \"../node_modules/entities/lib/decode.js\"(exports) {\n \"use strict\";\n var __importDefault = exports && exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : { default: mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\n var entities_json_1 = __importDefault(require_entities()), legacy_json_1 = __importDefault(require_legacy()), xml_json_1 = __importDefault(require_xml()), decode_codepoint_1 = __importDefault(require_decode_codepoint()), strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\n exports.decodeXML = getStrictDecoder(xml_json_1.default);\n exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\n function getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function(str) {\n return String(str).replace(strictEntityRe, replace);\n };\n }\n var sorter = function(a, b) {\n return a < b ? 1 : -1;\n };\n exports.decodeHTML = (function() {\n for (var legacy = Object.keys(legacy_json_1.default).sort(sorter), keys = Object.keys(entities_json_1.default).sort(sorter), i = 0, j = 0; i < keys.length; i++)\n legacy[j] === keys[i] ? (keys[i] += \";?\", j++) : keys[i] += \";\";\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\"), replace = getReplacer(entities_json_1.default);\n function replacer(str) {\n return str.substr(-1) !== \";\" && (str += \";\"), replace(str);\n }\n return function(str) {\n return String(str).replace(re, replacer);\n };\n })();\n function getReplacer(map) {\n return function(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n return secondChar === \"X\" || secondChar === \"x\" ? decode_codepoint_1.default(parseInt(str.substr(3), 16)) : decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n return map[str.slice(1, -1)] || str;\n };\n }\n }\n});\n\n// ../node_modules/entities/lib/encode.js\nvar require_encode = __commonJS({\n \"../node_modules/entities/lib/encode.js\"(exports) {\n \"use strict\";\n var __importDefault = exports && exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : { default: mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;\n var xml_json_1 = __importDefault(require_xml()), inverseXML = getInverseObj(xml_json_1.default), xmlReplacer = getInverseReplacer(inverseXML);\n exports.encodeXML = getASCIIEncoder(inverseXML);\n var entities_json_1 = __importDefault(require_entities()), inverseHTML = getInverseObj(entities_json_1.default), htmlReplacer = getInverseReplacer(inverseHTML);\n exports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n exports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\n function getInverseObj(obj) {\n return Object.keys(obj).sort().reduce(function(inverse, name) {\n return inverse[obj[name]] = \"&\" + name + \";\", inverse;\n }, {});\n }\n function getInverseReplacer(inverse) {\n for (var single = [], multiple = [], _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n k.length === 1 ? single.push(\"\\\\\" + k) : multiple.push(k);\n }\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n for (var end = start; end < single.length - 1 && single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1); )\n end += 1;\n var count = 1 + end - start;\n count < 3 || single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n return multiple.unshift(\"[\" + single.join(\"\") + \"]\"), new RegExp(multiple.join(\"|\"), \"g\");\n }\n var reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g, getCodePoint = (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n String.prototype.codePointAt != null ? (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function(str) {\n return str.codePointAt(0);\n }\n ) : (\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function(c) {\n return (c.charCodeAt(0) - 55296) * 1024 + c.charCodeAt(1) - 56320 + 65536;\n }\n )\n );\n function singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0)).toString(16).toUpperCase() + \";\";\n }\n function getInverse(inverse, re) {\n return function(data) {\n return data.replace(re, function(name) {\n return inverse[name];\n }).replace(reNonASCII, singleCharReplacer);\n };\n }\n var reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n function escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n }\n exports.escape = escape;\n function escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n }\n exports.escapeUTF8 = escapeUTF8;\n function getASCIIEncoder(obj) {\n return function(data) {\n return data.replace(reEscapeChars, function(c) {\n return obj[c] || singleCharReplacer(c);\n });\n };\n }\n }\n});\n\n// ../node_modules/entities/lib/index.js\nvar require_lib = __commonJS({\n \"../node_modules/entities/lib/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: !0 });\n exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\n var decode_1 = require_decode2(), encode_1 = require_encode();\n function decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n }\n exports.decode = decode;\n function decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n }\n exports.decodeStrict = decodeStrict;\n function encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n }\n exports.encode = encode;\n var encode_2 = require_encode();\n Object.defineProperty(exports, \"encodeXML\", { enumerable: !0, get: function() {\n return encode_2.encodeXML;\n } });\n Object.defineProperty(exports, \"encodeHTML\", { enumerable: !0, get: function() {\n return encode_2.encodeHTML;\n } });\n Object.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: !0, get: function() {\n return encode_2.encodeNonAsciiHTML;\n } });\n Object.defineProperty(exports, \"escape\", { enumerable: !0, get: function() {\n return encode_2.escape;\n } });\n Object.defineProperty(exports, \"escapeUTF8\", { enumerable: !0, get: function() {\n return encode_2.escapeUTF8;\n } });\n Object.defineProperty(exports, \"encodeHTML4\", { enumerable: !0, get: function() {\n return encode_2.encodeHTML;\n } });\n Object.defineProperty(exports, \"encodeHTML5\", { enumerable: !0, get: function() {\n return encode_2.encodeHTML;\n } });\n var decode_2 = require_decode2();\n Object.defineProperty(exports, \"decodeXML\", { enumerable: !0, get: function() {\n return decode_2.decodeXML;\n } });\n Object.defineProperty(exports, \"decodeHTML\", { enumerable: !0, get: function() {\n return decode_2.decodeHTML;\n } });\n Object.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: !0, get: function() {\n return decode_2.decodeHTMLStrict;\n } });\n Object.defineProperty(exports, \"decodeHTML4\", { enumerable: !0, get: function() {\n return decode_2.decodeHTML;\n } });\n Object.defineProperty(exports, \"decodeHTML5\", { enumerable: !0, get: function() {\n return decode_2.decodeHTML;\n } });\n Object.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: !0, get: function() {\n return decode_2.decodeHTMLStrict;\n } });\n Object.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: !0, get: function() {\n return decode_2.decodeHTMLStrict;\n } });\n Object.defineProperty(exports, \"decodeXMLStrict\", { enumerable: !0, get: function() {\n return decode_2.decodeXML;\n } });\n }\n});\n\n// ../node_modules/ansi-to-html/lib/ansi_to_html.js\nvar require_ansi_to_html = __commonJS({\n \"../node_modules/ansi-to-html/lib/ansi_to_html.js\"(exports, module) {\n \"use strict\";\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor))\n throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, \"value\" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;\n }\n function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol < \"u\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length == \"number\") {\n it && (o = it);\n var i = 0, F = function() {\n };\n return { s: F, n: function() {\n return i >= o.length ? { done: !0 } : { done: !1, value: o[i++] };\n }, e: function(_e) {\n throw _e;\n }, f: F };\n }\n throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n }\n var normalCompletion = !0, didErr = !1, err;\n return { s: function() {\n it = it.call(o);\n }, n: function() {\n var step = it.next();\n return normalCompletion = step.done, step;\n }, e: function(_e2) {\n didErr = !0, err = _e2;\n }, f: function() {\n try {\n !normalCompletion && it.return != null && it.return();\n } finally {\n if (didErr) throw err;\n }\n } };\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (o) {\n if (typeof o == \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor && (n = o.constructor.name), n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n }\n function _arrayLikeToArray(arr, len) {\n (len == null || len > arr.length) && (len = arr.length);\n for (var i = 0, arr2 = new Array(len); i < len; i++)\n arr2[i] = arr[i];\n return arr2;\n }\n var entities = require_lib(), defaults = {\n fg: \"#FFF\",\n bg: \"#000\",\n newline: !1,\n escapeXML: !1,\n stream: !1,\n colors: getDefaultColors()\n };\n function getDefaultColors() {\n var colors = {\n 0: \"#000\",\n 1: \"#A00\",\n 2: \"#0A0\",\n 3: \"#A50\",\n 4: \"#00A\",\n 5: \"#A0A\",\n 6: \"#0AA\",\n 7: \"#AAA\",\n 8: \"#555\",\n 9: \"#F55\",\n 10: \"#5F5\",\n 11: \"#FF5\",\n 12: \"#55F\",\n 13: \"#F5F\",\n 14: \"#5FF\",\n 15: \"#FFF\"\n };\n return range(0, 5).forEach(function(red) {\n range(0, 5).forEach(function(green) {\n range(0, 5).forEach(function(blue) {\n return setStyleColor(red, green, blue, colors);\n });\n });\n }), range(0, 23).forEach(function(gray) {\n var c = gray + 232, l = toHexString(gray * 10 + 8);\n colors[c] = \"#\" + l + l + l;\n }), colors;\n }\n function setStyleColor(red, green, blue, colors) {\n var c = 16 + red * 36 + green * 6 + blue, r = red > 0 ? red * 40 + 55 : 0, g = green > 0 ? green * 40 + 55 : 0, b = blue > 0 ? blue * 40 + 55 : 0;\n colors[c] = toColorHexString([r, g, b]);\n }\n function toHexString(num) {\n for (var str = num.toString(16); str.length < 2; )\n str = \"0\" + str;\n return str;\n }\n function toColorHexString(ref) {\n var results = [], _iterator = _createForOfIteratorHelper(ref), _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n var r = _step.value;\n results.push(toHexString(r));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return \"#\" + results.join(\"\");\n }\n function generateOutput(stack, token, data, options) {\n var result;\n return token === \"text\" ? result = pushText(data, options) : token === \"display\" ? result = handleDisplay(stack, data, options) : token === \"xterm256Foreground\" ? result = pushForegroundColor(stack, options.colors[data]) : token === \"xterm256Background\" ? result = pushBackgroundColor(stack, options.colors[data]) : token === \"rgb\" && (result = handleRgb(stack, data)), result;\n }\n function handleRgb(stack, data) {\n data = data.substring(2).slice(0, -1);\n var operation = +data.substr(0, 2), color = data.substring(5).split(\";\"), rgb = color.map(function(value) {\n return (\"0\" + Number(value).toString(16)).substr(-2);\n }).join(\"\");\n return pushStyle(stack, (operation === 38 ? \"color:#\" : \"background-color:#\") + rgb);\n }\n function handleDisplay(stack, code, options) {\n code = parseInt(code, 10);\n var codeMap = {\n \"-1\": function() {\n return \"<br/>\";\n },\n 0: function() {\n return stack.length && resetStyles(stack);\n },\n 1: function() {\n return pushTag(stack, \"b\");\n },\n 3: function() {\n return pushTag(stack, \"i\");\n },\n 4: function() {\n return pushTag(stack, \"u\");\n },\n 8: function() {\n return pushStyle(stack, \"display:none\");\n },\n 9: function() {\n return pushTag(stack, \"strike\");\n },\n 22: function() {\n return pushStyle(stack, \"font-weight:normal;text-decoration:none;font-style:normal\");\n },\n 23: function() {\n return closeTag(stack, \"i\");\n },\n 24: function() {\n return closeTag(stack, \"u\");\n },\n 39: function() {\n return pushForegroundColor(stack, options.fg);\n },\n 49: function() {\n return pushBackgroundColor(stack, options.bg);\n },\n 53: function() {\n return pushStyle(stack, \"text-decoration:overline\");\n }\n }, result;\n return codeMap[code] ? result = codeMap[code]() : 4 < code && code < 7 ? result = pushTag(stack, \"blink\") : 29 < code && code < 38 ? result = pushForegroundColor(stack, options.colors[code - 30]) : 39 < code && code < 48 ? result = pushBackgroundColor(stack, options.colors[code - 40]) : 89 < code && code < 98 ? result = pushForegroundColor(stack, options.colors[8 + (code - 90)]) : 99 < code && code < 108 && (result = pushBackgroundColor(stack, options.colors[8 + (code - 100)])), result;\n }\n function resetStyles(stack) {\n var stackClone = stack.slice(0);\n return stack.length = 0, stackClone.reverse().map(function(tag) {\n return \"</\" + tag + \">\";\n }).join(\"\");\n }\n function range(low, high) {\n for (var results = [], j = low; j <= high; j++)\n results.push(j);\n return results;\n }\n function notCategory(category) {\n return function(e) {\n return (category === null || e.category !== category) && category !== \"all\";\n };\n }\n function categoryForCode(code) {\n code = parseInt(code, 10);\n var result = null;\n return code === 0 ? result = \"all\" : code === 1 ? result = \"bold\" : 2 < code && code < 5 ? result = \"underline\" : 4 < code && code < 7 ? result = \"blink\" : code === 8 ? result = \"hide\" : code === 9 ? result = \"strike\" : 29 < code && code < 38 || code === 39 || 89 < code && code < 98 ? result = \"foreground-color\" : (39 < code && code < 48 || code === 49 || 99 < code && code < 108) && (result = \"background-color\"), result;\n }\n function pushText(text, options) {\n return options.escapeXML ? entities.encodeXML(text) : text;\n }\n function pushTag(stack, tag, style) {\n return style || (style = \"\"), stack.push(tag), \"<\".concat(tag).concat(style ? ' style=\"'.concat(style, '\"') : \"\", \">\");\n }\n function pushStyle(stack, style) {\n return pushTag(stack, \"span\", style);\n }\n function pushForegroundColor(stack, color) {\n return pushTag(stack, \"span\", \"color:\" + color);\n }\n function pushBackgroundColor(stack, color) {\n return pushTag(stack, \"span\", \"background-color:\" + color);\n }\n function closeTag(stack, style) {\n var last;\n if (stack.slice(-1)[0] === style && (last = stack.pop()), last)\n return \"</\" + style + \">\";\n }\n function tokenize(text, options, callback) {\n var ansiMatch = !1, ansiHandler = 3;\n function remove() {\n return \"\";\n }\n function removeXterm256Foreground(m, g1) {\n return callback(\"xterm256Foreground\", g1), \"\";\n }\n function removeXterm256Background(m, g1) {\n return callback(\"xterm256Background\", g1), \"\";\n }\n function newline(m) {\n return options.newline ? callback(\"display\", -1) : callback(\"text\", m), \"\";\n }\n function ansiMess(m, g1) {\n ansiMatch = !0, g1.trim().length === 0 && (g1 = \"0\"), g1 = g1.trimRight(\";\").split(\";\");\n var _iterator2 = _createForOfIteratorHelper(g1), _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n var g = _step2.value;\n callback(\"display\", g);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return \"\";\n }\n function realText(m) {\n return callback(\"text\", m), \"\";\n }\n function rgb(m) {\n return callback(\"rgb\", m), \"\";\n }\n var tokens = [{\n pattern: /^\\x08+/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[[012]?K/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[\\(B/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[[34]8;2;\\d+;\\d+;\\d+m/,\n sub: rgb\n }, {\n pattern: /^\\x1b\\[38;5;(\\d+)m/,\n sub: removeXterm256Foreground\n }, {\n pattern: /^\\x1b\\[48;5;(\\d+)m/,\n sub: removeXterm256Background\n }, {\n pattern: /^\\n/,\n sub: newline\n }, {\n pattern: /^\\r+\\n/,\n sub: newline\n }, {\n pattern: /^\\r/,\n sub: newline\n }, {\n pattern: /^\\x1b\\[((?:\\d{1,3};?)+|)m/,\n sub: ansiMess\n }, {\n // CSI n J\n // ED - Erase in Display Clears part of the screen.\n // If n is 0 (or missing), clear from cursor to end of screen.\n // If n is 1, clear from cursor to beginning of the screen.\n // If n is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS).\n // If n is 3, clear entire screen and delete all lines saved in the scrollback buffer\n // (this feature was added for xterm and is supported by other terminal applications).\n pattern: /^\\x1b\\[\\d?J/,\n sub: remove\n }, {\n // CSI n ; m f\n // HVP - Horizontal Vertical Position Same as CUP\n pattern: /^\\x1b\\[\\d{0,3};\\d{0,3}f/,\n sub: remove\n }, {\n // catch-all for CSI sequences?\n pattern: /^\\x1b\\[?[\\d;]{0,3}/,\n sub: remove\n }, {\n /**\n * extracts real text - not containing:\n * - `\\x1b' - ESC - escape (Ascii 27)\n * - '\\x08' - BS - backspace (Ascii 8)\n * - `\\n` - Newline - linefeed (LF) (ascii 10)\n * - `\\r` - Windows Carriage Return (CR)\n */\n pattern: /^(([^\\x1b\\x08\\r\\n])+)/,\n sub: realText\n }];\n function process(handler2, i2) {\n i2 > ansiHandler && ansiMatch || (ansiMatch = !1, text = text.replace(handler2.pattern, handler2.sub));\n }\n var results1 = [], _text = text, length = _text.length;\n outer: for (; length > 0; ) {\n for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) {\n var handler = tokens[i];\n if (process(handler, i), text.length !== length) {\n length = text.length;\n continue outer;\n }\n }\n if (text.length === length)\n break;\n results1.push(0), length = text.length;\n }\n return results1;\n }\n function updateStickyStack(stickyStack, token, data) {\n return token !== \"text\" && (stickyStack = stickyStack.filter(notCategory(categoryForCode(data))), stickyStack.push({\n token,\n data,\n category: categoryForCode(data)\n })), stickyStack;\n }\n var Filter = (function() {\n function Filter2(options) {\n _classCallCheck(this, Filter2), options = options || {}, options.colors && (options.colors = Object.assign({}, defaults.colors, options.colors)), this.options = Object.assign({}, defaults, options), this.stack = [], this.stickyStack = [];\n }\n return _createClass(Filter2, [{\n key: \"toHtml\",\n value: function(input) {\n var _this = this;\n input = typeof input == \"string\" ? [input] : input;\n var stack = this.stack, options = this.options, buf = [];\n return this.stickyStack.forEach(function(element) {\n var output = generateOutput(stack, element.token, element.data, options);\n output && buf.push(output);\n }), tokenize(input.join(\"\"), options, function(token, data) {\n var output = generateOutput(stack, token, data, options);\n output && buf.push(output), options.stream && (_this.stickyStack = updateStickyStack(_this.stickyStack, token, data));\n }), stack.length && buf.push(resetStyles(stack)), buf.join(\"\");\n }\n }]), Filter2;\n })();\n module.exports = Filter;\n }\n});\n\nexport {\n require_ansi_to_html\n};\n","import {\n __commonJS,\n __require\n} from \"./chunk-A242L54C.js\";\n\n// ../node_modules/memoizerific/memoizerific.js\nvar require_memoizerific = __commonJS({\n \"../node_modules/memoizerific/memoizerific.js\"(exports, module) {\n (function(f) {\n if (typeof exports == \"object\" && typeof module < \"u\")\n module.exports = f();\n else if (typeof define == \"function\" && define.amd)\n define([], f);\n else {\n var g;\n typeof window < \"u\" ? g = window : typeof global < \"u\" ? g = global : typeof self < \"u\" ? g = self : g = this, g.memoizerific = f();\n }\n })(function() {\n var define2, module2, exports2;\n return (function e(t, n, r) {\n function s(o2, u) {\n if (!n[o2]) {\n if (!t[o2]) {\n var a = typeof __require == \"function\" && __require;\n if (!u && a) return a(o2, !0);\n if (i) return i(o2, !0);\n var f = new Error(\"Cannot find module '\" + o2 + \"'\");\n throw f.code = \"MODULE_NOT_FOUND\", f;\n }\n var l = n[o2] = { exports: {} };\n t[o2][0].call(l.exports, function(e2) {\n var n2 = t[o2][1][e2];\n return s(n2 || e2);\n }, l, l.exports, e, t, n, r);\n }\n return n[o2].exports;\n }\n for (var i = typeof __require == \"function\" && __require, o = 0; o < r.length; o++) s(r[o]);\n return s;\n })({ 1: [function(_dereq_, module3, exports3) {\n module3.exports = function(forceSimilar) {\n if (typeof Map != \"function\" || forceSimilar) {\n var Similar = _dereq_(\"./similar\");\n return new Similar();\n } else\n return /* @__PURE__ */ new Map();\n };\n }, { \"./similar\": 2 }], 2: [function(_dereq_, module3, exports3) {\n function Similar() {\n return this.list = [], this.lastItem = void 0, this.size = 0, this;\n }\n Similar.prototype.get = function(key) {\n var index;\n if (this.lastItem && this.isEqual(this.lastItem.key, key))\n return this.lastItem.val;\n if (index = this.indexOf(key), index >= 0)\n return this.lastItem = this.list[index], this.list[index].val;\n }, Similar.prototype.set = function(key, val) {\n var index;\n return this.lastItem && this.isEqual(this.lastItem.key, key) ? (this.lastItem.val = val, this) : (index = this.indexOf(key), index >= 0 ? (this.lastItem = this.list[index], this.list[index].val = val, this) : (this.lastItem = { key, val }, this.list.push(this.lastItem), this.size++, this));\n }, Similar.prototype.delete = function(key) {\n var index;\n if (this.lastItem && this.isEqual(this.lastItem.key, key) && (this.lastItem = void 0), index = this.indexOf(key), index >= 0)\n return this.size--, this.list.splice(index, 1)[0];\n }, Similar.prototype.has = function(key) {\n var index;\n return this.lastItem && this.isEqual(this.lastItem.key, key) ? !0 : (index = this.indexOf(key), index >= 0 ? (this.lastItem = this.list[index], !0) : !1);\n }, Similar.prototype.forEach = function(callback, thisArg) {\n var i;\n for (i = 0; i < this.size; i++)\n callback.call(thisArg || this, this.list[i].val, this.list[i].key, this);\n }, Similar.prototype.indexOf = function(key) {\n var i;\n for (i = 0; i < this.size; i++)\n if (this.isEqual(this.list[i].key, key))\n return i;\n return -1;\n }, Similar.prototype.isEqual = function(val1, val2) {\n return val1 === val2 || val1 !== val1 && val2 !== val2;\n }, module3.exports = Similar;\n }, {}], 3: [function(_dereq_, module3, exports3) {\n var MapOrSimilar = _dereq_(\"map-or-similar\");\n module3.exports = function(limit) {\n var cache = new MapOrSimilar(!1), lru = [];\n return function(fn) {\n var memoizerific = function() {\n var currentCache = cache, newMap, fnResult, argsLengthMinusOne = arguments.length - 1, lruPath = Array(argsLengthMinusOne + 1), isMemoized = !0, i;\n if ((memoizerific.numArgs || memoizerific.numArgs === 0) && memoizerific.numArgs !== argsLengthMinusOne + 1)\n throw new Error(\"Memoizerific functions should always be called with the same number of arguments\");\n for (i = 0; i < argsLengthMinusOne; i++) {\n if (lruPath[i] = {\n cacheItem: currentCache,\n arg: arguments[i]\n }, currentCache.has(arguments[i])) {\n currentCache = currentCache.get(arguments[i]);\n continue;\n }\n isMemoized = !1, newMap = new MapOrSimilar(!1), currentCache.set(arguments[i], newMap), currentCache = newMap;\n }\n return isMemoized && (currentCache.has(arguments[argsLengthMinusOne]) ? fnResult = currentCache.get(arguments[argsLengthMinusOne]) : isMemoized = !1), isMemoized || (fnResult = fn.apply(null, arguments), currentCache.set(arguments[argsLengthMinusOne], fnResult)), limit > 0 && (lruPath[argsLengthMinusOne] = {\n cacheItem: currentCache,\n arg: arguments[argsLengthMinusOne]\n }, isMemoized ? moveToMostRecentLru(lru, lruPath) : lru.push(lruPath), lru.length > limit && removeCachedResult(lru.shift())), memoizerific.wasMemoized = isMemoized, memoizerific.numArgs = argsLengthMinusOne + 1, fnResult;\n };\n return memoizerific.limit = limit, memoizerific.wasMemoized = !1, memoizerific.cache = cache, memoizerific.lru = lru, memoizerific;\n };\n };\n function moveToMostRecentLru(lru, lruPath) {\n var lruLen = lru.length, lruPathLen = lruPath.length, isMatch, i, ii;\n for (i = 0; i < lruLen; i++) {\n for (isMatch = !0, ii = 0; ii < lruPathLen; ii++)\n if (!isEqual(lru[i][ii].arg, lruPath[ii].arg)) {\n isMatch = !1;\n break;\n }\n if (isMatch)\n break;\n }\n lru.push(lru.splice(i, 1)[0]);\n }\n function removeCachedResult(removedLru) {\n var removedLruLen = removedLru.length, currentLru = removedLru[removedLruLen - 1], tmp, i;\n for (currentLru.cacheItem.delete(currentLru.arg), i = removedLruLen - 2; i >= 0 && (currentLru = removedLru[i], tmp = currentLru.cacheItem.get(currentLru.arg), !tmp || !tmp.size); i--)\n currentLru.cacheItem.delete(currentLru.arg);\n }\n function isEqual(val1, val2) {\n return val1 === val2 || val1 !== val1 && val2 !== val2;\n }\n }, { \"map-or-similar\": 1 }] }, {}, [3])(3);\n });\n }\n});\n\nexport {\n require_memoizerific\n};\n","import {\n UniversalStore,\n isJSON,\n parse,\n stringify\n} from \"../_browser-chunks/chunk-UD6FQLAF.js\";\nimport {\n invariant\n} from \"../_browser-chunks/chunk-AS2HQEYC.js\";\nimport \"../_browser-chunks/chunk-JP7NCOJX.js\";\nimport \"../_browser-chunks/chunk-A242L54C.js\";\n\n// src/channels/index.ts\nimport { global as global3 } from \"@storybook/global\";\n\n// src/channels/main.ts\nvar isMulti = (args) => args.transports !== void 0, generateRandomId = () => Math.random().toString(16).slice(2), Channel = class {\n constructor(input = {}) {\n this.sender = generateRandomId();\n this.events = {};\n this.data = {};\n this.transports = [];\n this.isAsync = input.async || !1, isMulti(input) ? (this.transports = input.transports || [], this.transports.forEach((t) => {\n t.setHandler((event) => this.handleEvent(event));\n })) : this.transports = input.transport ? [input.transport] : [], this.transports.forEach((t) => {\n t.setHandler((event) => this.handleEvent(event));\n });\n }\n get hasTransport() {\n return this.transports.length > 0;\n }\n addListener(eventName, listener) {\n this.events[eventName] = this.events[eventName] || [], this.events[eventName].push(listener);\n }\n emit(eventName, ...args) {\n let event = { type: eventName, args, from: this.sender }, options = {};\n args.length >= 1 && args[0] && args[0].options && (options = args[0].options);\n let handler = () => {\n this.transports.forEach((t) => {\n t.send(event, options);\n }), this.handleEvent(event);\n };\n this.isAsync ? setImmediate(handler) : handler();\n }\n last(eventName) {\n return this.data[eventName];\n }\n eventNames() {\n return Object.keys(this.events);\n }\n listenerCount(eventName) {\n let listeners = this.listeners(eventName);\n return listeners ? listeners.length : 0;\n }\n listeners(eventName) {\n return this.events[eventName] || void 0;\n }\n once(eventName, listener) {\n let onceListener = this.onceListener(eventName, listener);\n this.addListener(eventName, onceListener);\n }\n removeAllListeners(eventName) {\n eventName ? this.events[eventName] && delete this.events[eventName] : this.events = {};\n }\n removeListener(eventName, listener) {\n let listeners = this.listeners(eventName);\n listeners && (this.events[eventName] = listeners.filter((l) => l !== listener));\n }\n on(eventName, listener) {\n this.addListener(eventName, listener);\n }\n off(eventName, listener) {\n this.removeListener(eventName, listener);\n }\n handleEvent(event) {\n let listeners = this.listeners(event.type);\n listeners && listeners.length && listeners.forEach((fn) => {\n fn.apply(event, event.args);\n }), this.data[event.type] = event.args;\n }\n onceListener(eventName, listener) {\n let onceListener = (...args) => (this.removeListener(eventName, onceListener), listener(...args));\n return onceListener;\n }\n};\n\n// src/channels/postmessage/index.ts\nimport { logger as logger2, pretty } from \"storybook/internal/client-logger\";\nimport * as EVENTS from \"storybook/internal/core-events\";\nimport { global } from \"@storybook/global\";\n\n// src/channels/postmessage/getEventSourceUrl.ts\nimport { logger } from \"storybook/internal/client-logger\";\nvar getEventSourceUrl = (event) => {\n let frames = Array.from(\n document.querySelectorAll(\"iframe[data-is-storybook]\")\n ), [frame, ...remainder] = frames.filter((element) => {\n try {\n return element.contentWindow?.location.origin === event.source.location.origin && element.contentWindow?.location.pathname === event.source.location.pathname;\n } catch {\n }\n try {\n return element.contentWindow === event.source;\n } catch {\n }\n let src2 = element.getAttribute(\"src\"), origin;\n try {\n if (!src2)\n return !1;\n ({ origin } = new URL(src2, document.location.toString()));\n } catch {\n return !1;\n }\n return origin === event.origin;\n }), src = frame?.getAttribute(\"src\");\n if (src && remainder.length === 0) {\n let { protocol, host, pathname } = new URL(src, document.location.toString());\n return `${protocol}//${host}${pathname}`;\n }\n return remainder.length > 0 && logger.error(\"found multiple candidates for event source\"), null;\n};\n\n// src/channels/postmessage/index.ts\nvar { document: document2, location } = global, KEY = \"storybook-channel\", defaultEventOptions = { maxDepth: 25 }, PostMessageTransport = class {\n constructor(config) {\n this.config = config;\n this.connected = !1;\n if (this.buffer = [], typeof global?.addEventListener == \"function\" && global.addEventListener(\"message\", this.handleEvent.bind(this), !1), config.page !== \"manager\" && config.page !== \"preview\")\n throw new Error(`postmsg-channel: \"config.page\" cannot be \"${config.page}\"`);\n }\n setHandler(handler) {\n this.handler = (...args) => {\n handler.apply(this, args), !this.connected && this.getLocalFrame().length && (this.flush(), this.connected = !0);\n };\n }\n /**\n * Sends `event` to the associated window. If the window does not yet exist the event will be\n * stored in a buffer and sent when the window exists.\n *\n * @param event\n */\n send(event, options) {\n let {\n target,\n // telejson options\n allowRegExp,\n allowSymbol,\n allowDate,\n allowError,\n allowUndefined,\n maxDepth,\n space\n } = options || {}, eventOptions = Object.fromEntries(\n Object.entries({\n allowRegExp,\n allowSymbol,\n allowDate,\n allowError,\n allowUndefined,\n maxDepth,\n space\n }).filter(([k, v]) => typeof v < \"u\")\n ), stringifyOptions = {\n ...defaultEventOptions,\n ...global.CHANNEL_OPTIONS || {},\n ...eventOptions\n }, frames = this.getFrames(target), query = new URLSearchParams(location?.search || \"\"), data = stringify(\n {\n key: KEY,\n event,\n refId: query.get(\"refId\")\n },\n stringifyOptions\n );\n return frames.length ? (this.buffer.length && this.flush(), frames.forEach((f) => {\n try {\n f.postMessage(data, \"*\");\n } catch {\n logger2.error(\"sending over postmessage fail\");\n }\n }), Promise.resolve(null)) : new Promise((resolve, reject) => {\n this.buffer.push({ event, resolve, reject });\n });\n }\n flush() {\n let { buffer } = this;\n this.buffer = [], buffer.forEach((item) => {\n this.send(item.event).then(item.resolve).catch(item.reject);\n });\n }\n getFrames(target) {\n if (this.config.page === \"manager\") {\n let list = Array.from(\n document2.querySelectorAll(\"iframe[data-is-storybook][data-is-loaded]\")\n ).flatMap((e) => {\n try {\n return e.contentWindow && e.dataset.isStorybook !== void 0 && e.id === target ? [e.contentWindow] : [];\n } catch {\n return [];\n }\n });\n return list?.length ? list : this.getCurrentFrames();\n }\n return global && global.parent && global.parent !== global.self ? [global.parent] : [];\n }\n getCurrentFrames() {\n return this.config.page === \"manager\" ? Array.from(\n document2.querySelectorAll('[data-is-storybook=\"true\"]')\n ).flatMap((e) => e.contentWindow ? [e.contentWindow] : []) : global && global.parent ? [global.parent] : [];\n }\n getLocalFrame() {\n return this.config.page === \"manager\" ? Array.from(\n document2.querySelectorAll(\"#storybook-preview-iframe\")\n ).flatMap((e) => e.contentWindow ? [e.contentWindow] : []) : global && global.parent ? [global.parent] : [];\n }\n handleEvent(rawEvent) {\n try {\n let { data } = rawEvent, { key, event, refId } = typeof data == \"string\" && isJSON(data) ? parse(data, global.CHANNEL_OPTIONS || {}) : data;\n if (key === KEY) {\n let pageString = this.config.page === \"manager\" ? '<span style=\"color: #37D5D3; background: black\"> manager </span>' : '<span style=\"color: #1EA7FD; background: black\"> preview </span>', eventString = Object.values(EVENTS).includes(event.type) ? `<span style=\"color: #FF4785\">${event.type}</span>` : `<span style=\"color: #FFAE00\">${event.type}</span>`;\n if (refId && (event.refId = refId), event.source = this.config.page === \"preview\" ? rawEvent.origin : getEventSourceUrl(rawEvent), !event.source) {\n pretty.error(\n `${pageString} received ${eventString} but was unable to determine the source of the event`\n );\n return;\n }\n let message = `${pageString} received ${eventString} (${data.length})`;\n pretty.debug(\n location.origin !== event.source ? message : `${message} <span style=\"color: gray\">(on ${location.origin} from ${event.source})</span>`,\n ...event.args\n ), invariant(this.handler, \"ChannelHandler should be set\"), this.handler(event);\n }\n } catch (error) {\n logger2.error(error);\n }\n }\n};\n\n// src/channels/websocket/index.ts\nimport * as EVENTS2 from \"storybook/internal/core-events\";\nimport { global as global2 } from \"@storybook/global\";\nvar { WebSocket } = global2, HEARTBEAT_INTERVAL = 15e3, HEARTBEAT_MAX_LATENCY = 5e3, WebsocketTransport = class {\n constructor({ url, onError, page }) {\n this.buffer = [];\n this.isReady = !1;\n this.isClosed = !1;\n this.pingTimeout = 0;\n this.socket = new WebSocket(url), this.socket.onopen = () => {\n this.isReady = !0, this.heartbeat(), this.flush();\n }, this.socket.onmessage = ({ data }) => {\n let event = typeof data == \"string\" && isJSON(data) ? parse(data) : data;\n invariant(this.handler, \"WebsocketTransport handler should be set\"), this.handler(event), event.type === \"ping\" && (this.heartbeat(), this.send({ type: \"pong\" }));\n }, this.socket.onerror = (e) => {\n onError && onError(e);\n }, this.socket.onclose = (ev) => {\n invariant(this.handler, \"WebsocketTransport handler should be set\"), this.handler({\n type: EVENTS2.CHANNEL_WS_DISCONNECT,\n args: [{ reason: ev.reason, code: ev.code }],\n from: page || \"preview\"\n }), this.isClosed = !0, clearTimeout(this.pingTimeout);\n };\n }\n heartbeat() {\n clearTimeout(this.pingTimeout), this.pingTimeout = setTimeout(() => {\n this.socket.close(3008, \"timeout\");\n }, HEARTBEAT_INTERVAL + HEARTBEAT_MAX_LATENCY);\n }\n setHandler(handler) {\n this.handler = handler;\n }\n send(event) {\n this.isClosed || (this.isReady ? this.sendNow(event) : this.sendLater(event));\n }\n sendLater(event) {\n this.buffer.push(event);\n }\n sendNow(event) {\n let data = stringify(event, {\n maxDepth: 15,\n ...global2.CHANNEL_OPTIONS\n });\n this.socket.send(data);\n }\n flush() {\n let { buffer } = this;\n this.buffer = [], buffer.forEach((event) => this.send(event));\n }\n};\n\n// src/channels/index.ts\nvar { CONFIG_TYPE } = global3, channels_default = Channel;\nfunction createBrowserChannel({ page, extraTransports = [] }) {\n let transports = [new PostMessageTransport({ page }), ...extraTransports];\n if (CONFIG_TYPE === \"DEVELOPMENT\") {\n let protocol = window.location.protocol === \"http:\" ? \"ws\" : \"wss\", { hostname, port } = window.location, channelUrl = `${protocol}://${hostname}:${port}/storybook-server-channel`;\n transports.push(new WebsocketTransport({ url: channelUrl, onError: () => {\n }, page }));\n }\n let channel = new Channel({ transports });\n return UniversalStore.__prepare(\n channel,\n page === \"manager\" ? UniversalStore.Environment.MANAGER : UniversalStore.Environment.PREVIEW\n ), channel;\n}\nexport {\n Channel,\n HEARTBEAT_INTERVAL,\n HEARTBEAT_MAX_LATENCY,\n PostMessageTransport,\n WebsocketTransport,\n createBrowserChannel,\n channels_default as default\n};\n","import {\n isTestEnvironment,\n pauseAnimations,\n waitForAnimations\n} from \"./chunk-IPA5A322.js\";\nimport {\n require_main\n} from \"./chunk-3OXGAGBE.js\";\nimport {\n SNIPPET_RENDERED,\n combineParameters\n} from \"./chunk-VYJQ7RU5.js\";\nimport {\n isEqual\n} from \"./chunk-3IAH5M2U.js\";\nimport {\n invariant\n} from \"./chunk-AS2HQEYC.js\";\nimport {\n require_ansi_to_html\n} from \"./chunk-YKE5S47A.js\";\nimport {\n mapValues,\n pickBy\n} from \"./chunk-AIOS4NGK.js\";\nimport {\n isPlainObject\n} from \"./chunk-GFLS4VP3.js\";\nimport {\n require_memoizerific\n} from \"./chunk-WJYERY3R.js\";\nimport {\n dedent\n} from \"./chunk-JP7NCOJX.js\";\nimport {\n __toESM\n} from \"./chunk-A242L54C.js\";\n\n// src/preview-api/modules/addons/main.ts\nimport { global } from \"@storybook/global\";\n\n// src/preview-api/modules/addons/storybook-channel-mock.ts\nimport { Channel } from \"storybook/internal/channels\";\nfunction mockChannel() {\n let transport = {\n setHandler: () => {\n },\n send: () => {\n }\n };\n return new Channel({ transport });\n}\n\n// src/preview-api/modules/addons/main.ts\nvar AddonStore = class {\n constructor() {\n this.getChannel = () => {\n if (!this.channel) {\n let channel = mockChannel();\n return this.setChannel(channel), channel;\n }\n return this.channel;\n };\n this.ready = () => this.promise;\n this.hasChannel = () => !!this.channel;\n this.setChannel = (channel) => {\n this.channel = channel, this.resolve();\n };\n this.promise = new Promise((res) => {\n this.resolve = () => res(this.getChannel());\n });\n }\n}, KEY = \"__STORYBOOK_ADDONS_PREVIEW\";\nfunction getAddonsStore() {\n return global[KEY] || (global[KEY] = new AddonStore()), global[KEY];\n}\nvar addons = getAddonsStore();\n\n// src/preview-api/modules/addons/hooks.ts\nimport { logger } from \"storybook/internal/client-logger\";\nimport {\n FORCE_RE_RENDER,\n RESET_STORY_ARGS,\n STORY_RENDERED,\n UPDATE_GLOBALS,\n UPDATE_STORY_ARGS\n} from \"storybook/internal/core-events\";\nimport { global as global2 } from \"@storybook/global\";\nvar HooksContext = class {\n constructor() {\n this.hookListsMap = void 0;\n this.mountedDecorators = void 0;\n this.prevMountedDecorators = void 0;\n this.currentHooks = void 0;\n this.nextHookIndex = void 0;\n this.currentPhase = void 0;\n this.currentEffects = void 0;\n this.prevEffects = void 0;\n this.currentDecoratorName = void 0;\n this.hasUpdates = void 0;\n this.currentContext = void 0;\n this.renderListener = (storyId) => {\n storyId === this.currentContext?.id && (this.triggerEffects(), this.currentContext = null, this.removeRenderListeners());\n };\n this.init();\n }\n init() {\n this.hookListsMap = /* @__PURE__ */ new WeakMap(), this.mountedDecorators = /* @__PURE__ */ new Set(), this.prevMountedDecorators = /* @__PURE__ */ new Set(), this.currentHooks = [], this.nextHookIndex = 0, this.currentPhase = \"NONE\", this.currentEffects = [], this.prevEffects = [], this.currentDecoratorName = null, this.hasUpdates = !1, this.currentContext = null;\n }\n clean() {\n this.prevEffects.forEach((effect) => {\n effect.destroy && effect.destroy();\n }), this.init(), this.removeRenderListeners();\n }\n getNextHook() {\n let hook = this.currentHooks[this.nextHookIndex];\n return this.nextHookIndex += 1, hook;\n }\n triggerEffects() {\n this.prevEffects.forEach((effect) => {\n !this.currentEffects.includes(effect) && effect.destroy && effect.destroy();\n }), this.currentEffects.forEach((effect) => {\n this.prevEffects.includes(effect) || (effect.destroy = effect.create());\n }), this.prevEffects = this.currentEffects, this.currentEffects = [];\n }\n addRenderListeners() {\n this.removeRenderListeners(), addons.getChannel().on(STORY_RENDERED, this.renderListener);\n }\n removeRenderListeners() {\n addons.getChannel().removeListener(STORY_RENDERED, this.renderListener);\n }\n};\nfunction hookify(fn) {\n let hookified = (...args) => {\n let { hooks } = typeof args[0] == \"function\" ? args[1] : args[0], prevPhase = hooks.currentPhase, prevHooks = hooks.currentHooks, prevNextHookIndex = hooks.nextHookIndex, prevDecoratorName = hooks.currentDecoratorName;\n hooks.currentDecoratorName = fn.name, hooks.prevMountedDecorators.has(fn) ? (hooks.currentPhase = \"UPDATE\", hooks.currentHooks = hooks.hookListsMap.get(fn) || []) : (hooks.currentPhase = \"MOUNT\", hooks.currentHooks = [], hooks.hookListsMap.set(fn, hooks.currentHooks), hooks.prevMountedDecorators.add(fn)), hooks.nextHookIndex = 0;\n let prevContext = global2.STORYBOOK_HOOKS_CONTEXT;\n global2.STORYBOOK_HOOKS_CONTEXT = hooks;\n let result = fn(...args);\n if (global2.STORYBOOK_HOOKS_CONTEXT = prevContext, hooks.currentPhase === \"UPDATE\" && hooks.getNextHook() != null)\n throw new Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return hooks.currentPhase = prevPhase, hooks.currentHooks = prevHooks, hooks.nextHookIndex = prevNextHookIndex, hooks.currentDecoratorName = prevDecoratorName, result;\n };\n return hookified.originalFn = fn, hookified;\n}\nvar numberOfRenders = 0, RENDER_LIMIT = 25, applyHooks = (applyDecorators) => (storyFn, decorators) => {\n let decorated = applyDecorators(\n hookify(storyFn),\n decorators.map((decorator) => hookify(decorator))\n );\n return (context) => {\n let { hooks } = context;\n hooks.prevMountedDecorators ??= /* @__PURE__ */ new Set(), hooks.mountedDecorators = /* @__PURE__ */ new Set([storyFn, ...decorators]), hooks.currentContext = context, hooks.hasUpdates = !1;\n let result = decorated(context);\n for (numberOfRenders = 1; hooks.hasUpdates; )\n if (hooks.hasUpdates = !1, hooks.currentEffects = [], result = decorated(context), numberOfRenders += 1, numberOfRenders > RENDER_LIMIT)\n throw new Error(\n \"Too many re-renders. Storybook limits the number of renders to prevent an infinite loop.\"\n );\n return hooks.addRenderListeners(), result;\n };\n}, areDepsEqual = (deps, nextDeps) => deps.length === nextDeps.length && deps.every((dep, i) => dep === nextDeps[i]), invalidHooksError = () => new Error(\"Storybook preview hooks can only be called inside decorators and story functions.\");\nfunction getHooksContextOrNull() {\n return global2.STORYBOOK_HOOKS_CONTEXT || null;\n}\nfunction getHooksContextOrThrow() {\n let hooks = getHooksContextOrNull();\n if (hooks == null)\n throw invalidHooksError();\n return hooks;\n}\nfunction useHook(name, callback, deps) {\n let hooks = getHooksContextOrThrow();\n if (hooks.currentPhase === \"MOUNT\") {\n deps != null && !Array.isArray(deps) && logger.warn(\n `${name} received a final argument that is not an array (instead, received ${deps}). When specified, the final argument must be an array.`\n );\n let hook = { name, deps };\n return hooks.currentHooks.push(hook), callback(hook), hook;\n }\n if (hooks.currentPhase === \"UPDATE\") {\n let hook = hooks.getNextHook();\n if (hook == null)\n throw new Error(\"Rendered more hooks than during the previous render.\");\n return hook.name !== name && logger.warn(\n `Storybook has detected a change in the order of Hooks${hooks.currentDecoratorName ? ` called by ${hooks.currentDecoratorName}` : \"\"}. This will lead to bugs and errors if not fixed.`\n ), deps != null && hook.deps == null && logger.warn(\n `${name} received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.`\n ), deps != null && hook.deps != null && deps.length !== hook.deps.length && logger.warn(`The final argument passed to ${name} changed size between renders. The order and size of this array must remain constant.\nPrevious: ${hook.deps}\nIncoming: ${deps}`), (deps == null || hook.deps == null || !areDepsEqual(deps, hook.deps)) && (callback(hook), hook.deps = deps), hook;\n }\n throw invalidHooksError();\n}\nfunction useMemoLike(name, nextCreate, deps) {\n let { memoizedState } = useHook(\n name,\n (hook) => {\n hook.memoizedState = nextCreate();\n },\n deps\n );\n return memoizedState;\n}\nfunction useMemo(nextCreate, deps) {\n return useMemoLike(\"useMemo\", nextCreate, deps);\n}\nfunction useCallback(callback, deps) {\n return useMemoLike(\"useCallback\", () => callback, deps);\n}\nfunction useRefLike(name, initialValue) {\n return useMemoLike(name, () => ({ current: initialValue }), []);\n}\nfunction useRef(initialValue) {\n return useRefLike(\"useRef\", initialValue);\n}\nfunction triggerUpdate() {\n let hooks = getHooksContextOrNull();\n if (hooks != null && hooks.currentPhase !== \"NONE\")\n hooks.hasUpdates = !0;\n else\n try {\n addons.getChannel().emit(FORCE_RE_RENDER);\n } catch {\n logger.warn(\"State updates of Storybook preview hooks work only in browser\");\n }\n}\nfunction useStateLike(name, initialState) {\n let stateRef = useRefLike(\n name,\n // @ts-expect-error S type should never be function, but there's no way to tell that to TypeScript\n typeof initialState == \"function\" ? initialState() : initialState\n ), setState = (update) => {\n stateRef.current = typeof update == \"function\" ? update(stateRef.current) : update, triggerUpdate();\n };\n return [stateRef.current, setState];\n}\nfunction useState(initialState) {\n return useStateLike(\"useState\", initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n let initialState = init != null ? () => init(initialArg) : initialArg, [state, setState] = useStateLike(\"useReducer\", initialState);\n return [state, (action) => setState((prevState) => reducer(prevState, action))];\n}\nfunction useEffect(create, deps) {\n let hooks = getHooksContextOrThrow(), effect = useMemoLike(\"useEffect\", () => ({ create }), deps);\n hooks.currentEffects.includes(effect) || hooks.currentEffects.push(effect);\n}\nfunction useChannel(eventMap, deps = []) {\n let channel = addons.getChannel();\n return useEffect(() => (Object.entries(eventMap).forEach(([type, listener]) => channel.on(type, listener)), () => {\n Object.entries(eventMap).forEach(\n ([type, listener]) => channel.removeListener(type, listener)\n );\n }), [...Object.keys(eventMap), ...deps]), useCallback(channel.emit.bind(channel), [channel]);\n}\nfunction useStoryContext() {\n let { currentContext } = getHooksContextOrThrow();\n if (currentContext == null)\n throw invalidHooksError();\n return currentContext;\n}\nfunction useParameter(parameterKey, defaultValue) {\n let { parameters } = useStoryContext();\n if (parameterKey)\n return parameters[parameterKey] ?? defaultValue;\n}\nfunction useArgs() {\n let channel = addons.getChannel(), { id: storyId, args } = useStoryContext(), updateArgs = useCallback(\n (updatedArgs) => channel.emit(UPDATE_STORY_ARGS, { storyId, updatedArgs }),\n [channel, storyId]\n ), resetArgs = useCallback(\n (argNames) => channel.emit(RESET_STORY_ARGS, { storyId, argNames }),\n [channel, storyId]\n );\n return [args, updateArgs, resetArgs];\n}\nfunction useGlobals() {\n let channel = addons.getChannel(), { globals } = useStoryContext(), updateGlobals = useCallback(\n (newGlobals) => channel.emit(UPDATE_GLOBALS, { globals: newGlobals }),\n [channel]\n );\n return [globals, updateGlobals];\n}\n\n// src/preview-api/modules/addons/make-decorator.ts\nvar makeDecorator = ({\n name,\n parameterName,\n wrapper,\n skipIfNoParametersOrOptions = !1\n}) => {\n let decorator = (options) => (storyFn, context) => {\n let parameters = context.parameters && context.parameters[parameterName];\n return parameters && parameters.disable || skipIfNoParametersOrOptions && !options && !parameters ? storyFn(context) : wrapper(storyFn, context, {\n options,\n parameters\n });\n };\n return (...args) => typeof args[0] == \"function\" ? decorator()(...args) : (...innerArgs) => {\n if (innerArgs.length > 1)\n return args.length > 1 ? decorator(args)(...innerArgs) : decorator(...args)(...innerArgs);\n throw new Error(\n `Passing stories directly into ${name}() is not allowed,\n instead use addDecorator(${name}) and pass options with the '${parameterName}' parameter`\n );\n };\n};\n\n// src/preview-api/modules/store/StoryStore.ts\nimport { getCoreAnnotations as getCoreAnnotations2 } from \"storybook/internal/csf\";\nimport {\n CalledExtractOnStoreError,\n MissingStoryFromCsfFileError\n} from \"storybook/internal/preview-errors\";\nvar import_memoizerific2 = __toESM(require_memoizerific(), 1);\n\n// src/preview-api/modules/store/args.ts\nimport { once } from \"storybook/internal/client-logger\";\nvar INCOMPATIBLE = Symbol(\"incompatible\"), map = (arg, argType) => {\n let type = argType.type;\n if (arg == null || !type || argType.mapping)\n return arg;\n switch (type.name) {\n case \"string\":\n return String(arg);\n case \"enum\":\n return arg;\n case \"number\":\n return Number(arg);\n case \"boolean\":\n return String(arg) === \"true\";\n case \"array\":\n return !type.value || !Array.isArray(arg) ? INCOMPATIBLE : arg.reduce((acc, item, index) => {\n let mapped = map(item, { type: type.value });\n return mapped !== INCOMPATIBLE && (acc[index] = mapped), acc;\n }, new Array(arg.length));\n case \"object\":\n return typeof arg == \"string\" || typeof arg == \"number\" ? arg : !type.value || typeof arg != \"object\" ? INCOMPATIBLE : Object.entries(arg).reduce((acc, [key, val]) => {\n let mapped = map(val, { type: type.value[key] });\n return mapped === INCOMPATIBLE ? acc : Object.assign(acc, { [key]: mapped });\n }, {});\n case \"other\": {\n let isPrimitiveArg = typeof arg == \"string\" || typeof arg == \"number\" || typeof arg == \"boolean\";\n return type.value === \"ReactNode\" && isPrimitiveArg ? arg : INCOMPATIBLE;\n }\n default:\n return INCOMPATIBLE;\n }\n}, mapArgsToTypes = (args, argTypes) => Object.entries(args).reduce((acc, [key, value]) => {\n if (!argTypes[key])\n return acc;\n let mapped = map(value, argTypes[key]);\n return mapped === INCOMPATIBLE ? acc : Object.assign(acc, { [key]: mapped });\n}, {}), combineArgs = (value, update) => Array.isArray(value) && Array.isArray(update) ? update.reduce(\n (acc, upd, index) => (acc[index] = combineArgs(value[index], update[index]), acc),\n [...value]\n).filter((v) => v !== void 0) : !isPlainObject(value) || !isPlainObject(update) ? update : Object.keys({ ...value, ...update }).reduce((acc, key) => {\n if (key in update) {\n let combined = combineArgs(value[key], update[key]);\n combined !== void 0 && (acc[key] = combined);\n } else\n acc[key] = value[key];\n return acc;\n}, {}), validateOptions = (args, argTypes) => Object.entries(argTypes).reduce((acc, [key, { options }]) => {\n function allowArg() {\n return key in args && (acc[key] = args[key]), acc;\n }\n if (!options)\n return allowArg();\n if (!Array.isArray(options))\n return once.error(dedent`\n Invalid argType: '${key}.options' should be an array.\n\n More info: https://storybook.js.org/docs/api/arg-types?ref=error\n `), allowArg();\n if (options.some((opt) => opt && [\"object\", \"function\"].includes(typeof opt)))\n return once.error(dedent`\n Invalid argType: '${key}.options' should only contain primitives. Use a 'mapping' for complex values.\n\n More info: https://storybook.js.org/docs/writing-stories/args?ref=error#mapping-to-complex-arg-values\n `), allowArg();\n let isArray = Array.isArray(args[key]), invalidIndex = isArray && args[key].findIndex((val) => !options.includes(val)), isValidArray = isArray && invalidIndex === -1;\n if (args[key] === void 0 || options.includes(args[key]) || isValidArray)\n return allowArg();\n let field = isArray ? `${key}[${invalidIndex}]` : key, supportedOptions = options.map((opt) => typeof opt == \"string\" ? `'${opt}'` : String(opt)).join(\", \");\n return once.warn(`Received illegal value for '${field}'. Supported options: ${supportedOptions}`), acc;\n}, {}), DEEPLY_EQUAL = Symbol(\"Deeply equal\"), deepDiff = (value, update) => {\n if (typeof value != typeof update)\n return update;\n if (isEqual(value, update))\n return DEEPLY_EQUAL;\n if (Array.isArray(value) && Array.isArray(update)) {\n let res = update.reduce((acc, upd, index) => {\n let diff = deepDiff(value[index], upd);\n return diff !== DEEPLY_EQUAL && (acc[index] = diff), acc;\n }, new Array(update.length));\n return update.length >= value.length ? res : res.concat(new Array(value.length - update.length).fill(void 0));\n }\n return isPlainObject(value) && isPlainObject(update) ? Object.keys({ ...value, ...update }).reduce((acc, key) => {\n let diff = deepDiff(value?.[key], update?.[key]);\n return diff === DEEPLY_EQUAL ? acc : Object.assign(acc, { [key]: diff });\n }, {}) : update;\n}, UNTARGETED = \"UNTARGETED\";\nfunction groupArgsByTarget({\n args,\n argTypes\n}) {\n let groupedArgs = {};\n return Object.entries(args).forEach(([name, value]) => {\n let { target = UNTARGETED } = argTypes[name] || {};\n groupedArgs[target] = groupedArgs[target] || {}, groupedArgs[target][name] = value;\n }), groupedArgs;\n}\n\n// src/preview-api/modules/store/ArgsStore.ts\nfunction deleteUndefined(obj) {\n return Object.keys(obj).forEach((key) => obj[key] === void 0 && delete obj[key]), obj;\n}\nvar ArgsStore = class {\n constructor() {\n this.initialArgsByStoryId = {};\n this.argsByStoryId = {};\n }\n get(storyId) {\n if (!(storyId in this.argsByStoryId))\n throw new Error(`No args known for ${storyId} -- has it been rendered yet?`);\n return this.argsByStoryId[storyId];\n }\n setInitial(story) {\n if (!this.initialArgsByStoryId[story.id])\n this.initialArgsByStoryId[story.id] = story.initialArgs, this.argsByStoryId[story.id] = story.initialArgs;\n else if (this.initialArgsByStoryId[story.id] !== story.initialArgs) {\n let delta = deepDiff(this.initialArgsByStoryId[story.id], this.argsByStoryId[story.id]);\n this.initialArgsByStoryId[story.id] = story.initialArgs, this.argsByStoryId[story.id] = story.initialArgs, delta !== DEEPLY_EQUAL && this.updateFromDelta(story, delta);\n }\n }\n updateFromDelta(story, delta) {\n let validatedDelta = validateOptions(delta, story.argTypes);\n this.argsByStoryId[story.id] = combineArgs(this.argsByStoryId[story.id], validatedDelta);\n }\n updateFromPersisted(story, persisted) {\n let mappedPersisted = mapArgsToTypes(persisted, story.argTypes);\n return this.updateFromDelta(story, mappedPersisted);\n }\n update(storyId, argsUpdate) {\n if (!(storyId in this.argsByStoryId))\n throw new Error(`No args known for ${storyId} -- has it been rendered yet?`);\n this.argsByStoryId[storyId] = deleteUndefined({\n ...this.argsByStoryId[storyId],\n ...argsUpdate\n });\n }\n};\n\n// src/preview-api/modules/store/GlobalsStore.ts\nimport { logger as logger2 } from \"storybook/internal/client-logger\";\n\n// src/preview-api/modules/store/csf/getValuesFromArgTypes.ts\nvar getValuesFromArgTypes = (argTypes = {}) => Object.entries(argTypes).reduce((acc, [arg, { defaultValue }]) => (typeof defaultValue < \"u\" && (acc[arg] = defaultValue), acc), {});\n\n// src/preview-api/modules/store/GlobalsStore.ts\nvar GlobalsStore = class {\n constructor({\n globals = {},\n globalTypes = {}\n }) {\n this.set({ globals, globalTypes });\n }\n set({ globals = {}, globalTypes = {} }) {\n let delta = this.initialGlobals && deepDiff(this.initialGlobals, this.globals);\n this.allowedGlobalNames = /* @__PURE__ */ new Set([...Object.keys(globals), ...Object.keys(globalTypes)]);\n let defaultGlobals = getValuesFromArgTypes(globalTypes);\n this.initialGlobals = { ...defaultGlobals, ...globals }, this.globals = this.initialGlobals, delta && delta !== DEEPLY_EQUAL && this.updateFromPersisted(delta);\n }\n filterAllowedGlobals(globals) {\n return Object.entries(globals).reduce((acc, [key, value]) => (this.allowedGlobalNames.has(key) ? acc[key] = value : logger2.warn(\n `Attempted to set a global (${key}) that is not defined in initial globals or globalTypes`\n ), acc), {});\n }\n updateFromPersisted(persisted) {\n let allowedUrlGlobals = this.filterAllowedGlobals(persisted);\n this.globals = { ...this.globals, ...allowedUrlGlobals };\n }\n get() {\n return this.globals;\n }\n update(newGlobals) {\n this.globals = { ...this.globals, ...this.filterAllowedGlobals(newGlobals) };\n for (let key in newGlobals)\n newGlobals[key] === void 0 && (this.globals[key] = this.initialGlobals[key]);\n }\n};\n\n// src/preview-api/modules/store/StoryIndexStore.ts\nvar import_memoizerific = __toESM(require_memoizerific(), 1);\nimport { MissingStoryAfterHmrError } from \"storybook/internal/preview-errors\";\nvar getImportPathMap = (0, import_memoizerific.default)(1)(\n (entries) => Object.values(entries).reduce(\n (acc, entry) => (acc[entry.importPath] = acc[entry.importPath] || entry, acc),\n {}\n )\n), StoryIndexStore = class {\n constructor({ entries } = { v: 5, entries: {} }) {\n this.entries = entries;\n }\n entryFromSpecifier(specifier) {\n let entries = Object.values(this.entries);\n if (specifier === \"*\")\n return entries[0];\n if (typeof specifier == \"string\")\n return this.entries[specifier] ? this.entries[specifier] : entries.find((entry) => entry.id.startsWith(specifier));\n let { name, title } = specifier;\n return entries.find((entry) => entry.name === name && entry.title === title);\n }\n storyIdToEntry(storyId) {\n let storyEntry = this.entries[storyId];\n if (!storyEntry)\n throw new MissingStoryAfterHmrError({ storyId });\n return storyEntry;\n }\n importPathToEntry(importPath) {\n return getImportPathMap(this.entries)[importPath];\n }\n};\n\n// src/preview-api/modules/store/csf/normalizeInputTypes.ts\nvar normalizeType = (type) => typeof type == \"string\" ? { name: type } : type, normalizeControl = (control) => typeof control == \"string\" ? { type: control } : control, normalizeInputType = (inputType, key) => {\n let { type, control, ...rest } = inputType, normalized = {\n name: key,\n ...rest\n };\n return type && (normalized.type = normalizeType(type)), control ? normalized.control = normalizeControl(control) : control === !1 && (normalized.control = { disable: !0 }), normalized;\n}, normalizeInputTypes = (inputTypes) => mapValues(inputTypes, normalizeInputType);\n\n// src/preview-api/modules/store/csf/normalizeStory.ts\nimport { deprecate, logger as logger3 } from \"storybook/internal/client-logger\";\nimport { storyNameFromExport, toId } from \"storybook/internal/csf\";\n\n// src/preview-api/modules/store/csf/normalizeArrays.ts\nvar normalizeArrays = (array) => Array.isArray(array) ? array : array ? [array] : [];\n\n// src/preview-api/modules/store/csf/normalizeStory.ts\nvar deprecatedStoryAnnotation = dedent`\nCSF .story annotations deprecated; annotate story functions directly:\n- StoryFn.story.name => StoryFn.storyName\n- StoryFn.story.(parameters|decorators) => StoryFn.(parameters|decorators)\nSee https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#hoisted-csf-annotations for details and codemod.\n`;\nfunction normalizeStory(key, storyAnnotations, meta) {\n let storyObject = storyAnnotations, userStoryFn = typeof storyAnnotations == \"function\" ? storyAnnotations : null, { story } = storyObject;\n story && (logger3.debug(\"deprecated story\", story), deprecate(deprecatedStoryAnnotation));\n let exportName = storyNameFromExport(key), name = typeof storyObject != \"function\" && storyObject.name || storyObject.storyName || story?.name || exportName, decorators = [\n ...normalizeArrays(storyObject.decorators),\n ...normalizeArrays(story?.decorators)\n ], parameters = { ...story?.parameters, ...storyObject.parameters }, args = { ...story?.args, ...storyObject.args }, argTypes = { ...story?.argTypes, ...storyObject.argTypes }, loaders = [...normalizeArrays(storyObject.loaders), ...normalizeArrays(story?.loaders)], beforeEach = [\n ...normalizeArrays(storyObject.beforeEach),\n ...normalizeArrays(story?.beforeEach)\n ], afterEach = [\n ...normalizeArrays(storyObject.afterEach),\n ...normalizeArrays(story?.afterEach)\n ], { render, play, tags = [], globals = {} } = storyObject, id = parameters.__id || toId(meta.id, exportName);\n return {\n moduleExport: storyAnnotations,\n id,\n name,\n tags,\n decorators,\n parameters,\n args,\n argTypes: normalizeInputTypes(argTypes),\n loaders,\n beforeEach,\n afterEach,\n globals,\n ...render && { render },\n ...userStoryFn && { userStoryFn },\n ...play && { play }\n };\n}\n\n// src/preview-api/modules/store/csf/processCSFFile.ts\nimport { logger as logger4 } from \"storybook/internal/client-logger\";\nimport { getStoryChildren, isExportStory, isStory, toTestId } from \"storybook/internal/csf\";\n\n// src/preview-api/modules/store/csf/normalizeComponentAnnotations.ts\nimport { sanitize } from \"storybook/internal/csf\";\nfunction normalizeComponentAnnotations(defaultExport, title = defaultExport.title, importPath) {\n let { id, argTypes } = defaultExport;\n return {\n id: sanitize(id || title),\n ...defaultExport,\n title,\n ...argTypes && { argTypes: normalizeInputTypes(argTypes) },\n parameters: {\n fileName: importPath,\n ...defaultExport.parameters\n }\n };\n}\n\n// src/preview-api/modules/store/csf/processCSFFile.ts\nvar checkGlobals = (parameters) => {\n let { globals, globalTypes } = parameters;\n (globals || globalTypes) && logger4.error(\n \"Global args/argTypes can only be set globally\",\n JSON.stringify({\n globals,\n globalTypes\n })\n );\n}, checkStorySort = (parameters) => {\n let { options } = parameters;\n options?.storySort && logger4.error(\"The storySort option parameter can only be set globally\");\n}, checkDisallowedParameters = (parameters) => {\n parameters && (checkGlobals(parameters), checkStorySort(parameters));\n};\nfunction processCSFFile(moduleExports, importPath, title) {\n let { default: defaultExport, __namedExportsOrder, ...namedExports } = moduleExports, firstStory = Object.values(namedExports)[0];\n if (isStory(firstStory)) {\n let meta2 = normalizeComponentAnnotations(firstStory.meta.input, title, importPath);\n checkDisallowedParameters(meta2.parameters);\n let csfFile2 = { meta: meta2, stories: {}, moduleExports };\n return Object.keys(namedExports).forEach((key) => {\n if (isExportStory(key, meta2)) {\n let story = namedExports[key], storyMeta = normalizeStory(key, story.input, meta2);\n checkDisallowedParameters(storyMeta.parameters), csfFile2.stories[storyMeta.id] = storyMeta, getStoryChildren(story).forEach((child) => {\n let name = child.input.name, childId = toTestId(storyMeta.id, name);\n child.input.parameters ??= {}, child.input.parameters.__id = childId, csfFile2.stories[childId] = normalizeStory(name, child.input, meta2);\n });\n }\n }), csfFile2.projectAnnotations = firstStory.meta.preview.composed, csfFile2;\n }\n let meta = normalizeComponentAnnotations(\n defaultExport,\n title,\n importPath\n );\n checkDisallowedParameters(meta.parameters);\n let csfFile = { meta, stories: {}, moduleExports };\n return Object.keys(namedExports).forEach((key) => {\n if (isExportStory(key, meta)) {\n let storyMeta = normalizeStory(key, namedExports[key], meta);\n checkDisallowedParameters(storyMeta.parameters), csfFile.stories[storyMeta.id] = storyMeta;\n }\n }), csfFile;\n}\n\n// src/preview-api/modules/store/csf/prepareStory.ts\nimport { combineTags, includeConditionalArg } from \"storybook/internal/csf\";\nimport { NoRenderFunctionError } from \"storybook/internal/preview-errors\";\nimport { global as global3 } from \"@storybook/global\";\nimport { global as globalThis2 } from \"@storybook/global\";\n\n// src/preview-api/modules/preview-web/render/mount-utils.ts\nfunction mountDestructured(playFunction) {\n return playFunction != null && getUsedProps(playFunction).includes(\"mount\");\n}\nfunction getUsedProps(fn) {\n let match = fn.toString().match(/[^(]*\\(([^)]*)/);\n if (!match)\n return [];\n let args = splitByComma(match[1]);\n if (!args.length)\n return [];\n let first = args[0];\n return first.startsWith(\"{\") && first.endsWith(\"}\") ? splitByComma(first.slice(1, -1).replace(/\\s/g, \"\")).map((prop) => prop.replace(/:.*|=.*/g, \"\")) : [];\n}\nfunction splitByComma(s) {\n let result = [], stack = [], start = 0;\n for (let i = 0; i < s.length; i++)\n if (s[i] === \"{\" || s[i] === \"[\")\n stack.push(s[i] === \"{\" ? \"}\" : \"]\");\n else if (s[i] === stack[stack.length - 1])\n stack.pop();\n else if (!stack.length && s[i] === \",\") {\n let token = s.substring(start, i).trim();\n token && result.push(token), start = i + 1;\n }\n let lastToken = s.substring(start).trim();\n return lastToken && result.push(lastToken), result;\n}\n\n// src/preview-api/modules/store/decorators.ts\nfunction decorateStory(storyFn, decorator, bindWithContext) {\n let boundStoryFunction = bindWithContext(storyFn);\n return (context) => decorator(boundStoryFunction, context);\n}\nfunction sanitizeStoryContextUpdate({\n componentId,\n title,\n kind,\n id,\n name,\n story,\n parameters,\n initialArgs,\n argTypes,\n ...update\n} = {}) {\n return update;\n}\nfunction defaultDecorateStory(storyFn, decorators) {\n let contextStore = {}, bindWithContext = (decoratedStoryFn) => (update) => {\n if (!contextStore.value)\n throw new Error(\"Decorated function called without init\");\n return contextStore.value = {\n ...contextStore.value,\n ...sanitizeStoryContextUpdate(update)\n }, decoratedStoryFn(contextStore.value);\n }, decoratedWithContextStore = decorators.reduce(\n (story, decorator) => decorateStory(story, decorator, bindWithContext),\n storyFn\n );\n return (context) => (contextStore.value = context, decoratedWithContextStore(context));\n}\n\n// src/preview-api/modules/store/csf/prepareStory.ts\nfunction prepareStory(storyAnnotations, componentAnnotations, projectAnnotations) {\n let { moduleExport, id, name } = storyAnnotations || {}, partialAnnotations = preparePartialAnnotations(\n storyAnnotations,\n componentAnnotations,\n projectAnnotations\n ), applyLoaders = async (context) => {\n let loaded = {};\n for (let loaders of [\n normalizeArrays(projectAnnotations.loaders),\n normalizeArrays(componentAnnotations.loaders),\n normalizeArrays(storyAnnotations.loaders)\n ]) {\n if (context.abortSignal.aborted)\n return loaded;\n let loadResults = await Promise.all(loaders.map((loader) => loader(context)));\n Object.assign(loaded, ...loadResults);\n }\n return loaded;\n }, applyBeforeEach = async (context) => {\n let cleanupCallbacks = new Array();\n for (let beforeEach of [\n ...normalizeArrays(projectAnnotations.beforeEach),\n ...normalizeArrays(componentAnnotations.beforeEach),\n ...normalizeArrays(storyAnnotations.beforeEach)\n ]) {\n if (context.abortSignal.aborted)\n return cleanupCallbacks;\n let cleanup = await beforeEach(context);\n cleanup && cleanupCallbacks.push(cleanup);\n }\n return cleanupCallbacks;\n }, applyAfterEach = async (context) => {\n let reversedFinalizers = [\n ...normalizeArrays(projectAnnotations.afterEach),\n ...normalizeArrays(componentAnnotations.afterEach),\n ...normalizeArrays(storyAnnotations.afterEach)\n ].reverse();\n for (let finalizer of reversedFinalizers) {\n if (context.abortSignal.aborted)\n return;\n await finalizer(context);\n }\n }, undecoratedStoryFn = (context) => context.originalStoryFn(context.args, context), { applyDecorators = defaultDecorateStory, runStep } = projectAnnotations, decorators = [\n ...normalizeArrays(storyAnnotations?.decorators),\n ...normalizeArrays(componentAnnotations?.decorators),\n ...normalizeArrays(projectAnnotations?.decorators)\n ], render = storyAnnotations?.userStoryFn || storyAnnotations?.render || componentAnnotations.render || projectAnnotations.render, decoratedStoryFn = applyHooks(applyDecorators)(undecoratedStoryFn, decorators), unboundStoryFn = (context) => decoratedStoryFn(context), playFunction = storyAnnotations?.play ?? componentAnnotations?.play, usesMount = mountDestructured(playFunction);\n if (!render && !usesMount)\n throw new NoRenderFunctionError({ id });\n let defaultMount = (context) => async () => (await context.renderToCanvas(), context.canvas), mount = storyAnnotations.mount ?? componentAnnotations.mount ?? projectAnnotations.mount ?? defaultMount, testingLibraryRender = projectAnnotations.testingLibraryRender;\n return {\n storyGlobals: {},\n ...partialAnnotations,\n moduleExport,\n id,\n name,\n story: name,\n originalStoryFn: render,\n undecoratedStoryFn,\n unboundStoryFn,\n applyLoaders,\n applyBeforeEach,\n applyAfterEach,\n playFunction,\n runStep,\n mount,\n testingLibraryRender,\n renderToCanvas: projectAnnotations.renderToCanvas,\n usesMount\n };\n}\nfunction prepareMeta(componentAnnotations, projectAnnotations, moduleExport) {\n return {\n ...preparePartialAnnotations(void 0, componentAnnotations, projectAnnotations),\n moduleExport\n };\n}\nfunction preparePartialAnnotations(storyAnnotations, componentAnnotations, projectAnnotations) {\n let defaultTags = [\"dev\", \"test\"], extraTags = globalThis2.DOCS_OPTIONS?.autodocs === !0 ? [\"autodocs\"] : [], overrideTags = storyAnnotations?.tags?.includes(\"test-fn\") ? [\"!autodocs\"] : [], tags = combineTags(\n ...defaultTags,\n ...extraTags,\n ...projectAnnotations.tags ?? [],\n ...componentAnnotations.tags ?? [],\n ...overrideTags,\n ...storyAnnotations?.tags ?? []\n ), parameters = combineParameters(\n projectAnnotations.parameters,\n componentAnnotations.parameters,\n storyAnnotations?.parameters\n ), { argTypesEnhancers = [], argsEnhancers = [] } = projectAnnotations, passedArgTypes = combineParameters(\n projectAnnotations.argTypes,\n componentAnnotations.argTypes,\n storyAnnotations?.argTypes\n );\n if (storyAnnotations) {\n let render = storyAnnotations?.userStoryFn || storyAnnotations?.render || componentAnnotations.render || projectAnnotations.render;\n parameters.__isArgsStory = render && render.length > 0;\n }\n let passedArgs = {\n ...projectAnnotations.args,\n ...componentAnnotations.args,\n ...storyAnnotations?.args\n }, storyGlobals = {\n ...componentAnnotations.globals,\n ...storyAnnotations?.globals\n }, contextForEnhancers = {\n componentId: componentAnnotations.id,\n title: componentAnnotations.title,\n kind: componentAnnotations.title,\n // Back compat\n id: storyAnnotations?.id || componentAnnotations.id,\n // if there's no story name, we create a fake one since enhancers expect a name\n name: storyAnnotations?.name || \"__meta\",\n story: storyAnnotations?.name || \"__meta\",\n // Back compat\n component: componentAnnotations.component,\n subcomponents: componentAnnotations.subcomponents,\n tags,\n parameters,\n initialArgs: passedArgs,\n argTypes: passedArgTypes,\n storyGlobals\n };\n contextForEnhancers.argTypes = argTypesEnhancers.reduce(\n (accumulatedArgTypes, enhancer) => enhancer({ ...contextForEnhancers, argTypes: accumulatedArgTypes }),\n contextForEnhancers.argTypes\n );\n let initialArgsBeforeEnhancers = { ...passedArgs };\n contextForEnhancers.initialArgs = [...argsEnhancers].reduce(\n (accumulatedArgs, enhancer) => ({\n ...accumulatedArgs,\n ...enhancer({\n ...contextForEnhancers,\n initialArgs: accumulatedArgs\n })\n }),\n initialArgsBeforeEnhancers\n );\n let { name, story, ...withoutStoryIdentifiers } = contextForEnhancers;\n return withoutStoryIdentifiers;\n}\nfunction prepareContext(context) {\n let { args: unmappedArgs } = context, targetedContext = {\n ...context,\n allArgs: void 0,\n argsByTarget: void 0\n };\n if (global3.FEATURES?.argTypeTargetsV7) {\n let argsByTarget = groupArgsByTarget(context);\n targetedContext = {\n ...context,\n allArgs: context.args,\n argsByTarget,\n args: argsByTarget[UNTARGETED] || {}\n };\n }\n let mappedArgs = Object.entries(targetedContext.args).reduce((acc, [key, val]) => {\n if (!targetedContext.argTypes[key]?.mapping)\n return acc[key] = val, acc;\n let mappingFn = (originalValue) => {\n let mapping = targetedContext.argTypes[key].mapping;\n return mapping && originalValue in mapping ? mapping[originalValue] : originalValue;\n };\n return acc[key] = Array.isArray(val) ? val.map(mappingFn) : mappingFn(val), acc;\n }, {}), includedArgs = Object.entries(mappedArgs).reduce((acc, [key, val]) => {\n let argType = targetedContext.argTypes[key] || {};\n return includeConditionalArg(argType, mappedArgs, targetedContext.globals) && (acc[key] = val), acc;\n }, {});\n return { ...targetedContext, unmappedArgs, args: includedArgs };\n}\n\n// src/preview-api/modules/store/inferArgTypes.ts\nimport { logger as logger5 } from \"storybook/internal/client-logger\";\nvar inferType = (value, name, visited) => {\n let type = typeof value;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"function\":\n case \"symbol\":\n return { name: type };\n default:\n break;\n }\n return value ? visited.has(value) ? (logger5.warn(dedent`\n We've detected a cycle in arg '${name}'. Args should be JSON-serializable.\n\n Consider using the mapping feature or fully custom args:\n - Mapping: https://storybook.js.org/docs/writing-stories/args#mapping-to-complex-arg-values\n - Custom args: https://storybook.js.org/docs/essentials/controls#fully-custom-args\n `), { name: \"other\", value: \"cyclic object\" }) : (visited.add(value), Array.isArray(value) ? { name: \"array\", value: value.length > 0 ? inferType(value[0], name, new Set(visited)) : { name: \"other\", value: \"unknown\" } } : { name: \"object\", value: mapValues(value, (field) => inferType(field, name, new Set(visited))) }) : { name: \"object\", value: {} };\n}, inferArgTypes = (context) => {\n let { id, argTypes: userArgTypes = {}, initialArgs = {} } = context, argTypes = mapValues(initialArgs, (arg, key) => ({\n name: key,\n type: inferType(arg, `${id}.${key}`, /* @__PURE__ */ new Set())\n })), userArgTypesNames = mapValues(userArgTypes, (argType, key) => ({\n name: key\n }));\n return combineParameters(argTypes, userArgTypesNames, userArgTypes);\n};\ninferArgTypes.secondPass = !0;\n\n// src/preview-api/modules/store/inferControls.ts\nimport { logger as logger6 } from \"storybook/internal/client-logger\";\n\n// src/preview-api/modules/store/filterArgTypes.ts\nvar matches = (name, descriptor) => Array.isArray(descriptor) ? descriptor.includes(name) : name.match(descriptor), filterArgTypes = (argTypes, include, exclude) => !include && !exclude ? argTypes : argTypes && pickBy(argTypes, (argType, key) => {\n let name = argType.name || key.toString();\n return !!(!include || matches(name, include)) && (!exclude || !matches(name, exclude));\n});\n\n// src/preview-api/modules/store/inferControls.ts\nvar inferControl = (argType, name, matchers) => {\n let { type, options } = argType;\n if (type) {\n if (matchers.color && matchers.color.test(name)) {\n let controlType = type.name;\n if (controlType === \"string\")\n return { control: { type: \"color\" } };\n controlType !== \"enum\" && logger6.warn(\n `Addon controls: Control of type color only supports string, received \"${controlType}\" instead`\n );\n }\n if (matchers.date && matchers.date.test(name))\n return { control: { type: \"date\" } };\n switch (type.name) {\n case \"array\":\n return { control: { type: \"object\" } };\n case \"boolean\":\n return { control: { type: \"boolean\" } };\n case \"string\":\n return { control: { type: \"text\" } };\n case \"number\":\n return { control: { type: \"number\" } };\n case \"enum\": {\n let { value } = type;\n return { control: { type: value?.length <= 5 ? \"radio\" : \"select\" }, options: value };\n }\n case \"function\":\n case \"symbol\":\n return null;\n default:\n return { control: { type: options ? \"select\" : \"object\" } };\n }\n }\n}, inferControls = (context) => {\n let {\n argTypes,\n parameters: { __isArgsStory, controls: { include = null, exclude = null, matchers = {} } = {} }\n } = context;\n if (!__isArgsStory)\n return argTypes;\n let filteredArgTypes = filterArgTypes(argTypes, include, exclude), withControls = mapValues(filteredArgTypes, (argType, name) => argType?.type && inferControl(argType, name.toString(), matchers));\n return combineParameters(withControls, filteredArgTypes);\n};\ninferControls.secondPass = !0;\n\n// src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts\nfunction normalizeProjectAnnotations({\n argTypes,\n globalTypes,\n argTypesEnhancers,\n decorators,\n loaders,\n beforeEach,\n afterEach,\n initialGlobals,\n ...annotations\n}) {\n return {\n ...argTypes && { argTypes: normalizeInputTypes(argTypes) },\n ...globalTypes && { globalTypes: normalizeInputTypes(globalTypes) },\n decorators: normalizeArrays(decorators),\n loaders: normalizeArrays(loaders),\n beforeEach: normalizeArrays(beforeEach),\n afterEach: normalizeArrays(afterEach),\n argTypesEnhancers: [\n ...argTypesEnhancers || [],\n inferArgTypes,\n // There's an architectural decision to be made regarding embedded addons in core:\n //\n // Option 1: Keep embedded addons but ensure consistency by moving addon-specific code\n // (like inferControls) to live alongside the addon code itself. This maintains the\n // concept of core addons while improving code organization.\n //\n // Option 2: Fully integrate these addons into core, potentially moving UI components\n // into the manager and treating them as core features rather than addons. This is a\n // bigger architectural change requiring careful consideration.\n //\n // For now, we're keeping inferControls here as we need time to properly evaluate\n // these options and their implications. Some features (like Angular's cleanArgsDecorator)\n // currently rely on this behavior.\n //\n // TODO: Make an architectural decision on the handling of core addons\n inferControls\n ],\n initialGlobals,\n ...annotations\n };\n}\n\n// src/preview-api/modules/store/csf/composeConfigs.ts\nimport { global as global4 } from \"@storybook/global\";\n\n// src/preview-api/modules/store/csf/beforeAll.ts\nvar composeBeforeAllHooks = (hooks) => async () => {\n let cleanups2 = [];\n for (let hook of hooks) {\n let cleanup = await hook();\n cleanup && cleanups2.unshift(cleanup);\n }\n return async () => {\n for (let cleanup of cleanups2)\n await cleanup();\n };\n};\n\n// src/preview-api/modules/store/csf/stepRunners.ts\nfunction composeStepRunners(stepRunners) {\n return async (label, play, playContext) => {\n await stepRunners.reduceRight(\n (innerPlay, stepRunner) => async () => stepRunner(label, innerPlay, playContext),\n async () => play(playContext)\n )();\n };\n}\n\n// src/preview-api/modules/store/csf/composeConfigs.ts\nfunction getField(moduleExportList, field) {\n return moduleExportList.map((xs) => xs.default?.[field] ?? xs[field]).filter(Boolean);\n}\nfunction getArrayField(moduleExportList, field, options = {}) {\n return getField(moduleExportList, field).reduce((prev, cur) => {\n let normalized = normalizeArrays(cur);\n return options.reverseFileOrder ? [...normalized, ...prev] : [...prev, ...normalized];\n }, []);\n}\nfunction getObjectField(moduleExportList, field) {\n return Object.assign({}, ...getField(moduleExportList, field));\n}\nfunction getSingletonField(moduleExportList, field) {\n return getField(moduleExportList, field).pop();\n}\nfunction composeConfigs(moduleExportList) {\n let allArgTypeEnhancers = getArrayField(moduleExportList, \"argTypesEnhancers\"), stepRunners = getField(moduleExportList, \"runStep\"), beforeAllHooks = getArrayField(moduleExportList, \"beforeAll\");\n return {\n parameters: combineParameters(...getField(moduleExportList, \"parameters\")),\n decorators: getArrayField(moduleExportList, \"decorators\", {\n reverseFileOrder: !(global4.FEATURES?.legacyDecoratorFileOrder ?? !1)\n }),\n args: getObjectField(moduleExportList, \"args\"),\n argsEnhancers: getArrayField(moduleExportList, \"argsEnhancers\"),\n argTypes: getObjectField(moduleExportList, \"argTypes\"),\n argTypesEnhancers: [\n ...allArgTypeEnhancers.filter((e) => !e.secondPass),\n ...allArgTypeEnhancers.filter((e) => e.secondPass)\n ],\n initialGlobals: getObjectField(moduleExportList, \"initialGlobals\"),\n globalTypes: getObjectField(moduleExportList, \"globalTypes\"),\n loaders: getArrayField(moduleExportList, \"loaders\"),\n beforeAll: composeBeforeAllHooks(beforeAllHooks),\n beforeEach: getArrayField(moduleExportList, \"beforeEach\"),\n afterEach: getArrayField(moduleExportList, \"afterEach\"),\n render: getSingletonField(moduleExportList, \"render\"),\n renderToCanvas: getSingletonField(moduleExportList, \"renderToCanvas\"),\n applyDecorators: getSingletonField(moduleExportList, \"applyDecorators\"),\n runStep: composeStepRunners(stepRunners),\n tags: getArrayField(moduleExportList, \"tags\"),\n mount: getSingletonField(moduleExportList, \"mount\"),\n testingLibraryRender: getSingletonField(moduleExportList, \"testingLibraryRender\")\n };\n}\n\n// src/preview-api/modules/store/csf/portable-stories.ts\nimport { isExportStory as isExportStory2 } from \"storybook/internal/csf\";\nimport { getCoreAnnotations } from \"storybook/internal/csf\";\nimport { MountMustBeDestructuredError } from \"storybook/internal/preview-errors\";\n\n// src/preview-api/modules/store/reporter-api.ts\nvar ReporterAPI = class {\n constructor() {\n this.reports = [];\n }\n async addReport(report) {\n this.reports.push(report);\n }\n};\n\n// src/preview-api/modules/store/csf/csf-factory-utils.ts\nimport { isMeta, isStory as isStory2 } from \"storybook/internal/csf\";\nfunction getCsfFactoryAnnotations(story, meta, projectAnnotations) {\n return isStory2(story) ? {\n story: story.input,\n meta: story.meta.input,\n preview: story.meta.preview.composed\n } : { story, meta: isMeta(meta) ? meta.input : meta, preview: projectAnnotations };\n}\n\n// src/preview-api/modules/store/csf/portable-stories.ts\nfunction setDefaultProjectAnnotations(_defaultProjectAnnotations) {\n globalThis.defaultProjectAnnotations = _defaultProjectAnnotations;\n}\nvar DEFAULT_STORY_TITLE = \"ComposedStory\", DEFAULT_STORY_NAME = \"Unnamed Story\";\nfunction extractAnnotation(annotation) {\n return annotation ? composeConfigs([annotation]) : {};\n}\nfunction setProjectAnnotations(projectAnnotations) {\n let annotations = Array.isArray(projectAnnotations) ? projectAnnotations : [projectAnnotations];\n return globalThis.globalProjectAnnotations = composeConfigs([\n ...getCoreAnnotations(),\n globalThis.defaultProjectAnnotations ?? {},\n composeConfigs(annotations.map(extractAnnotation))\n ]), globalThis.globalProjectAnnotations ?? {};\n}\nvar cleanups = [];\nfunction composeStory(storyAnnotations, componentAnnotations, projectAnnotations, defaultConfig, exportsName) {\n if (storyAnnotations === void 0)\n throw new Error(\"Expected a story but received undefined.\");\n componentAnnotations.title = componentAnnotations.title ?? DEFAULT_STORY_TITLE;\n let normalizedComponentAnnotations = normalizeComponentAnnotations(componentAnnotations), storyName = exportsName || storyAnnotations.storyName || storyAnnotations.story?.name || storyAnnotations.name || DEFAULT_STORY_NAME, normalizedStory = normalizeStory(\n storyName,\n storyAnnotations,\n normalizedComponentAnnotations\n ), normalizedProjectAnnotations = normalizeProjectAnnotations(\n composeConfigs([\n defaultConfig ?? globalThis.globalProjectAnnotations ?? {},\n projectAnnotations ?? {}\n ])\n ), story = prepareStory(\n normalizedStory,\n normalizedComponentAnnotations,\n normalizedProjectAnnotations\n ), globals = {\n ...getValuesFromArgTypes(normalizedProjectAnnotations.globalTypes),\n ...normalizedProjectAnnotations.initialGlobals,\n ...story.storyGlobals\n }, reporting = new ReporterAPI(), initializeContext = () => {\n let context = prepareContext({\n hooks: new HooksContext(),\n globals,\n args: { ...story.initialArgs },\n viewMode: \"story\",\n reporting,\n loaded: {},\n abortSignal: new AbortController().signal,\n step: (label, play2) => story.runStep(label, play2, context),\n canvasElement: null,\n canvas: {},\n userEvent: {},\n globalTypes: normalizedProjectAnnotations.globalTypes,\n ...story,\n context: null,\n mount: null\n });\n return context.parameters.__isPortableStory = !0, context.context = context, story.renderToCanvas && (context.renderToCanvas = async () => {\n let unmount = await story.renderToCanvas?.(\n {\n componentId: story.componentId,\n title: story.title,\n id: story.id,\n name: story.name,\n tags: story.tags,\n showMain: () => {\n },\n showError: (error) => {\n throw new Error(`${error.title}\n${error.description}`);\n },\n showException: (error) => {\n throw error;\n },\n forceRemount: !0,\n storyContext: context,\n storyFn: () => story.unboundStoryFn(context),\n unboundStoryFn: story.unboundStoryFn\n },\n context.canvasElement\n );\n unmount && cleanups.push(unmount);\n }), context.mount = story.mount(context), context;\n }, loadedContext, play = async (extraContext) => {\n let context = initializeContext();\n return context.canvasElement ??= globalThis?.document?.body, loadedContext && (context.loaded = loadedContext.loaded), Object.assign(context, extraContext), story.playFunction(context);\n }, run = (extraContext) => {\n let context = initializeContext();\n return Object.assign(context, extraContext), runStory(story, context);\n }, playFunction = story.playFunction ? play : void 0;\n return Object.assign(\n function(extraArgs) {\n let context = initializeContext();\n return loadedContext && (context.loaded = loadedContext.loaded), context.args = {\n ...context.initialArgs,\n ...extraArgs\n }, story.unboundStoryFn(context);\n },\n {\n id: story.id,\n storyName,\n load: async () => {\n for (let callback of [...cleanups].reverse())\n await callback();\n cleanups.length = 0;\n let context = initializeContext();\n context.loaded = await story.applyLoaders(context), cleanups.push(...(await story.applyBeforeEach(context)).filter(Boolean)), loadedContext = context;\n },\n globals,\n args: story.initialArgs,\n parameters: story.parameters,\n argTypes: story.argTypes,\n play: playFunction,\n run,\n reporting,\n tags: story.tags\n }\n );\n}\nvar defaultComposeStory = (story, component, project, exportsName) => composeStory(story, component, project, {}, exportsName);\nfunction composeStories(storiesImport, globalConfig, composeStoryFn = defaultComposeStory) {\n let { default: metaExport, __esModule, __namedExportsOrder, ...stories } = storiesImport, meta = metaExport;\n return Object.entries(stories).reduce(\n (storiesMap, [exportsName, story]) => {\n let { story: storyAnnotations, meta: componentAnnotations } = getCsfFactoryAnnotations(story);\n return !meta && componentAnnotations && (meta = componentAnnotations), isExportStory2(exportsName, meta) ? Object.assign(storiesMap, {\n [exportsName]: composeStoryFn(storyAnnotations, meta, globalConfig, exportsName)\n }) : storiesMap;\n },\n {}\n );\n}\nfunction createPlaywrightTest(baseTest) {\n return baseTest.extend({\n mount: async ({ mount, page }, use) => {\n await use(async (storyRef, ...restArgs) => {\n if (!(\"__pw_type\" in storyRef) || \"__pw_type\" in storyRef && storyRef.__pw_type !== \"jsx\")\n throw new Error(dedent`\n Portable stories in Playwright CT only work when referencing JSX elements.\n Please use JSX format for your components such as:\n\n instead of:\n await mount(MyComponent, { props: { foo: 'bar' } })\n\n do:\n await mount(<MyComponent foo=\"bar\"/>)\n\n More info: https://storybook.js.org/docs/api/portable-stories/portable-stories-playwright?ref=error\n `);\n let { props, ...storyRefWithoutProps } = storyRef;\n await page.evaluate(async (wrappedStoryRef) => {\n let unwrappedStoryRef = await globalThis.__pwUnwrapObject?.(wrappedStoryRef);\n return (\"__pw_type\" in unwrappedStoryRef ? unwrappedStoryRef.type : unwrappedStoryRef)?.load?.();\n }, storyRefWithoutProps);\n let mountResult = await mount(storyRef, ...restArgs);\n return await page.evaluate(async (wrappedStoryRef) => {\n let unwrappedStoryRef = await globalThis.__pwUnwrapObject?.(wrappedStoryRef), story = \"__pw_type\" in unwrappedStoryRef ? unwrappedStoryRef.type : unwrappedStoryRef, canvasElement = document.querySelector(\"#root\");\n return story?.play?.({ canvasElement });\n }, storyRefWithoutProps), mountResult;\n });\n }\n });\n}\nasync function runStory(story, context) {\n for (let callback of [...cleanups].reverse())\n await callback();\n if (cleanups.length = 0, !context.canvasElement) {\n let container = document.createElement(\"div\");\n globalThis?.document?.body?.appendChild(container), context.canvasElement = container, cleanups.push(() => {\n globalThis?.document?.body?.contains(container) && globalThis?.document?.body?.removeChild(container);\n });\n }\n if (context.loaded = await story.applyLoaders(context), context.abortSignal.aborted)\n return;\n cleanups.push(...(await story.applyBeforeEach(context)).filter(Boolean));\n let playFunction = story.playFunction, isMountDestructured = story.usesMount;\n if (isMountDestructured || await context.mount(), context.abortSignal.aborted)\n return;\n playFunction && (isMountDestructured || (context.mount = async () => {\n throw new MountMustBeDestructuredError({ playFunction: playFunction.toString() });\n }), await playFunction(context));\n let cleanUp;\n isTestEnvironment() ? cleanUp = pauseAnimations() : await waitForAnimations(context.abortSignal), await story.applyAfterEach(context), await cleanUp?.();\n}\n\n// src/preview-api/modules/store/StoryStore.ts\nvar CSF_CACHE_SIZE = 1e3, STORY_CACHE_SIZE = 1e4, StoryStore = class {\n constructor(storyIndex, importFn, projectAnnotations) {\n this.importFn = importFn;\n this.storyIndex = new StoryIndexStore(storyIndex), this.projectAnnotations = normalizeProjectAnnotations(\n composeConfigs([...getCoreAnnotations2(), projectAnnotations])\n );\n let { initialGlobals, globalTypes } = this.projectAnnotations;\n this.args = new ArgsStore(), this.userGlobals = new GlobalsStore({ globals: initialGlobals, globalTypes }), this.hooks = {}, this.cleanupCallbacks = {}, this.processCSFFileWithCache = (0, import_memoizerific2.default)(CSF_CACHE_SIZE)(processCSFFile), this.prepareMetaWithCache = (0, import_memoizerific2.default)(CSF_CACHE_SIZE)(prepareMeta), this.prepareStoryWithCache = (0, import_memoizerific2.default)(STORY_CACHE_SIZE)(prepareStory);\n }\n setProjectAnnotations(projectAnnotations) {\n this.projectAnnotations = normalizeProjectAnnotations(projectAnnotations);\n let { initialGlobals, globalTypes } = projectAnnotations;\n this.userGlobals.set({ globals: initialGlobals, globalTypes });\n }\n // This means that one of the CSF files has changed.\n // If the `importFn` has changed, we will invalidate both caches.\n // If the `storyIndex` data has changed, we may or may not invalidate the caches, depending\n // on whether we've loaded the relevant files yet.\n async onStoriesChanged({\n importFn,\n storyIndex\n }) {\n importFn && (this.importFn = importFn), storyIndex && (this.storyIndex.entries = storyIndex.entries), this.cachedCSFFiles && await this.cacheAllCSFFiles();\n }\n // Get an entry from the index, waiting on initialization if necessary\n async storyIdToEntry(storyId) {\n return this.storyIndex.storyIdToEntry(storyId);\n }\n // To load a single CSF file to service a story we need to look up the importPath in the index\n async loadCSFFileByStoryId(storyId) {\n let { importPath, title } = this.storyIndex.storyIdToEntry(storyId), moduleExports = await this.importFn(importPath);\n return this.processCSFFileWithCache(moduleExports, importPath, title);\n }\n async loadAllCSFFiles() {\n let importPaths = {};\n return Object.entries(this.storyIndex.entries).forEach(([storyId, { importPath }]) => {\n importPaths[importPath] = storyId;\n }), (await Promise.all(\n Object.entries(importPaths).map(async ([importPath, storyId]) => ({\n importPath,\n csfFile: await this.loadCSFFileByStoryId(storyId)\n }))\n )).reduce(\n (acc, { importPath, csfFile }) => (acc[importPath] = csfFile, acc),\n {}\n );\n }\n async cacheAllCSFFiles() {\n this.cachedCSFFiles = await this.loadAllCSFFiles();\n }\n preparedMetaFromCSFFile({ csfFile }) {\n let componentAnnotations = csfFile.meta;\n return this.prepareMetaWithCache(\n componentAnnotations,\n this.projectAnnotations,\n csfFile.moduleExports.default\n );\n }\n // Load the CSF file for a story and prepare the story from it and the project annotations.\n async loadStory({ storyId }) {\n let csfFile = await this.loadCSFFileByStoryId(storyId);\n return this.storyFromCSFFile({ storyId, csfFile });\n }\n // This function is synchronous for convenience -- often times if you have a CSF file already\n // it is easier not to have to await `loadStory`.\n storyFromCSFFile({\n storyId,\n csfFile\n }) {\n let storyAnnotations = csfFile.stories[storyId];\n if (!storyAnnotations)\n throw new MissingStoryFromCsfFileError({ storyId });\n let componentAnnotations = csfFile.meta, story = this.prepareStoryWithCache(\n storyAnnotations,\n componentAnnotations,\n csfFile.projectAnnotations ?? this.projectAnnotations\n );\n return this.args.setInitial(story), this.hooks[story.id] = this.hooks[story.id] || new HooksContext(), story;\n }\n // If we have a CSF file we can get all the stories from it synchronously\n componentStoriesFromCSFFile({\n csfFile\n }) {\n return Object.keys(this.storyIndex.entries).filter((storyId) => !!csfFile.stories[storyId]).map((storyId) => this.storyFromCSFFile({ storyId, csfFile }));\n }\n async loadEntry(id) {\n let entry = await this.storyIdToEntry(id), storyImports = entry.type === \"docs\" ? entry.storiesImports : [], [entryExports, ...csfFiles] = await Promise.all([\n this.importFn(entry.importPath),\n ...storyImports.map((storyImportPath) => {\n let firstStoryEntry = this.storyIndex.importPathToEntry(storyImportPath);\n return this.loadCSFFileByStoryId(firstStoryEntry.id);\n })\n ]);\n return { entryExports, csfFiles };\n }\n // A prepared story does not include args, globals or hooks. These are stored in the story store\n // and updated separately to the (immutable) story.\n getStoryContext(story, { forceInitialArgs = !1 } = {}) {\n let userGlobals = this.userGlobals.get(), { initialGlobals } = this.userGlobals, reporting = new ReporterAPI();\n return prepareContext({\n ...story,\n args: forceInitialArgs ? story.initialArgs : this.args.get(story.id),\n initialGlobals,\n globalTypes: this.projectAnnotations.globalTypes,\n userGlobals,\n reporting,\n globals: {\n ...userGlobals,\n ...story.storyGlobals\n },\n hooks: this.hooks[story.id]\n });\n }\n addCleanupCallbacks(story, ...callbacks) {\n this.cleanupCallbacks[story.id] = (this.cleanupCallbacks[story.id] || []).concat(callbacks);\n }\n async cleanupStory(story) {\n this.hooks[story.id].clean();\n let callbacks = this.cleanupCallbacks[story.id];\n if (callbacks)\n for (let callback of [...callbacks].reverse())\n await callback();\n delete this.cleanupCallbacks[story.id];\n }\n extract(options = { includeDocsOnly: !1 }) {\n let { cachedCSFFiles } = this;\n if (console.log(\"extract: extracting stories\", cachedCSFFiles), !cachedCSFFiles)\n throw new CalledExtractOnStoreError();\n let stories = Object.entries(this.storyIndex.entries).reduce(\n (acc, [storyId, entry]) => {\n if (entry.type === \"docs\")\n return acc;\n let csfFile = cachedCSFFiles[entry.importPath], story = this.storyFromCSFFile({ storyId, csfFile });\n return !options.includeDocsOnly && story.parameters.docsOnly || (acc[storyId] = Object.entries(story).reduce(\n (storyAcc, [key, value]) => key === \"story\" && entry.subtype === \"test\" ? { ...storyAcc, story: entry.parentName } : key === \"moduleExport\" || typeof value == \"function\" ? storyAcc : Array.isArray(value) ? Object.assign(storyAcc, { [key]: value.slice().sort() }) : Object.assign(storyAcc, { [key]: value }),\n {\n args: story.initialArgs,\n globals: {\n ...this.userGlobals.initialGlobals,\n ...this.userGlobals.globals,\n ...story.storyGlobals\n },\n storyId: entry.parent ? entry.parent : storyId\n }\n )), acc;\n },\n {}\n );\n return console.log(\"extract: stories\", stories), stories;\n }\n};\n\n// src/preview-api/modules/store/autoTitle.ts\nimport { once as once2 } from \"storybook/internal/client-logger\";\n\n// ../node_modules/slash/index.js\nfunction slash(path) {\n return path.startsWith(\"\\\\\\\\?\\\\\") ? path : path.replace(/\\\\/g, \"/\");\n}\n\n// src/preview-api/modules/store/autoTitle.ts\nvar sanitize2 = (parts) => {\n if (parts.length === 0)\n return parts;\n let last = parts[parts.length - 1], lastStripped = last?.replace(/(?:[.](?:story|stories))?([.][^.]+)$/i, \"\");\n if (parts.length === 1)\n return [lastStripped];\n let nextToLast = parts[parts.length - 2];\n return lastStripped && nextToLast && lastStripped.toLowerCase() === nextToLast.toLowerCase() ? [...parts.slice(0, -2), lastStripped] : lastStripped && (/^(story|stories)([.][^.]+)$/i.test(last) || /^index$/i.test(lastStripped)) ? parts.slice(0, -1) : [...parts.slice(0, -1), lastStripped];\n};\nfunction pathJoin(paths) {\n return paths.flatMap((p) => p.split(\"/\")).filter(Boolean).join(\"/\");\n}\nvar userOrAutoTitleFromSpecifier = (fileName, entry, userTitle) => {\n let { directory, importPathMatcher, titlePrefix = \"\" } = entry || {};\n typeof fileName == \"number\" && once2.warn(dedent`\n CSF Auto-title received a numeric fileName. This typically happens when\n webpack is mis-configured in production mode. To force webpack to produce\n filenames, set optimization.moduleIds = \"named\" in your webpack config.\n `);\n let normalizedFileName = slash(String(fileName));\n if (importPathMatcher.exec(normalizedFileName)) {\n if (!userTitle) {\n let suffix = normalizedFileName.replace(directory, \"\"), parts = pathJoin([titlePrefix, suffix]).split(\"/\");\n return parts = sanitize2(parts), parts.join(\"/\");\n }\n return titlePrefix ? pathJoin([titlePrefix, userTitle]) : userTitle;\n }\n}, userOrAutoTitle = (fileName, storiesEntries, userTitle) => {\n for (let i = 0; i < storiesEntries.length; i += 1) {\n let title = userOrAutoTitleFromSpecifier(fileName, storiesEntries[i], userTitle);\n if (title)\n return title;\n }\n return userTitle || void 0;\n};\n\n// src/preview-api/modules/store/storySort.ts\nvar STORY_KIND_PATH_SEPARATOR = /\\s*\\/\\s*/, storySort = (options = {}) => (a, b) => {\n if (a.title === b.title && !options.includeNames)\n return 0;\n let method = options.method || \"configure\", order = options.order || [], storyTitleA = a.title.trim().split(STORY_KIND_PATH_SEPARATOR), storyTitleB = b.title.trim().split(STORY_KIND_PATH_SEPARATOR);\n options.includeNames && (storyTitleA.push(a.name), storyTitleB.push(b.name));\n let depth = 0;\n for (; storyTitleA[depth] || storyTitleB[depth]; ) {\n if (!storyTitleA[depth])\n return -1;\n if (!storyTitleB[depth])\n return 1;\n let nameA = storyTitleA[depth], nameB = storyTitleB[depth];\n if (nameA !== nameB) {\n let indexA = order.indexOf(nameA), indexB = order.indexOf(nameB), indexWildcard = order.indexOf(\"*\");\n return indexA !== -1 || indexB !== -1 ? (indexA === -1 && (indexWildcard !== -1 ? indexA = indexWildcard : indexA = order.length), indexB === -1 && (indexWildcard !== -1 ? indexB = indexWildcard : indexB = order.length), indexA - indexB) : method === \"configure\" ? 0 : nameA.localeCompare(nameB, options.locales ? options.locales : void 0, {\n numeric: !0,\n sensitivity: \"accent\"\n });\n }\n let index = order.indexOf(nameA);\n index === -1 && (index = order.indexOf(\"*\")), order = index !== -1 && Array.isArray(order[index + 1]) ? order[index + 1] : [], depth += 1;\n }\n return 0;\n};\n\n// src/preview-api/modules/store/sortStories.ts\nvar sortStoriesCommon = (stories, storySortParameter, fileNameOrder) => {\n if (storySortParameter) {\n let sortFn;\n typeof storySortParameter == \"function\" ? sortFn = storySortParameter : sortFn = storySort(storySortParameter), stories.sort(sortFn);\n } else\n stories.sort(\n (s1, s2) => fileNameOrder.indexOf(s1.importPath) - fileNameOrder.indexOf(s2.importPath)\n );\n return stories;\n}, sortStoriesV7 = (stories, storySortParameter, fileNameOrder) => {\n try {\n return sortStoriesCommon(stories, storySortParameter, fileNameOrder);\n } catch (err) {\n throw new Error(dedent`\n Error sorting stories with sort parameter ${storySortParameter}:\n\n > ${err.message}\n\n Are you using a V6-style sort function in V7 mode?\n\n More info: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#v7-style-story-sort\n `);\n }\n};\n\n// src/preview-api/modules/preview-web/Preview.tsx\nimport { deprecate as deprecate2, logger as logger7 } from \"storybook/internal/client-logger\";\nimport {\n ARGTYPES_INFO_REQUEST,\n ARGTYPES_INFO_RESPONSE,\n CONFIG_ERROR,\n FORCE_REMOUNT,\n FORCE_RE_RENDER as FORCE_RE_RENDER2,\n GLOBALS_UPDATED,\n PREVIEW_INITIALIZED,\n RESET_STORY_ARGS as RESET_STORY_ARGS2,\n SET_GLOBALS,\n STORY_ARGS_UPDATED,\n STORY_HOT_UPDATED,\n STORY_INDEX_INVALIDATED,\n UPDATE_GLOBALS as UPDATE_GLOBALS2,\n UPDATE_STORY_ARGS as UPDATE_STORY_ARGS2\n} from \"storybook/internal/core-events\";\nimport {\n CalledPreviewMethodBeforeInitializationError,\n MissingRenderToCanvasError,\n StoryIndexFetchError,\n StoryStoreAccessedBeforeInitializationError\n} from \"storybook/internal/preview-errors\";\nimport { global as global5 } from \"@storybook/global\";\n\n// src/preview-api/modules/preview-web/render/StoryRender.ts\nimport {\n PLAY_FUNCTION_THREW_EXCEPTION,\n STORY_FINISHED,\n STORY_RENDERED as STORY_RENDERED2,\n STORY_RENDER_PHASE_CHANGED,\n UNHANDLED_ERRORS_WHILE_PLAYING\n} from \"storybook/internal/core-events\";\nimport {\n MountMustBeDestructuredError as MountMustBeDestructuredError2,\n NoStoryMountedError\n} from \"storybook/internal/preview-errors\";\n\n// src/preview-api/modules/preview-web/render/Render.ts\nvar PREPARE_ABORTED = new Error(\"prepareAborted\");\n\n// src/preview-api/modules/preview-web/render/StoryRender.ts\nvar { AbortController: AbortController2 } = globalThis;\nfunction serializeError(error) {\n try {\n let { name = \"Error\", message = String(error), stack } = error;\n return { name, message, stack };\n } catch {\n return { name: \"Error\", message: String(error) };\n }\n}\nvar StoryRender = class {\n constructor(channel, store, renderToScreen, callbacks, id, viewMode, renderOptions = { autoplay: !0, forceInitialArgs: !1 }, story) {\n this.channel = channel;\n this.store = store;\n this.renderToScreen = renderToScreen;\n this.callbacks = callbacks;\n this.id = id;\n this.viewMode = viewMode;\n this.renderOptions = renderOptions;\n this.type = \"story\";\n this.notYetRendered = !0;\n this.rerenderEnqueued = !1;\n this.disableKeyListeners = !1;\n this.teardownRender = () => {\n };\n this.torndown = !1;\n this.abortController = new AbortController2(), this.renderId = Date.now(), story && (this.story = story, this.phase = \"preparing\");\n }\n async runPhase(signal, phase, phaseFn) {\n this.phase = phase, this.channel.emit(STORY_RENDER_PHASE_CHANGED, {\n newPhase: this.phase,\n renderId: this.renderId,\n storyId: this.id\n }), phaseFn && (await phaseFn(), this.checkIfAborted(signal));\n }\n checkIfAborted(signal) {\n return signal.aborted && ![\"finished\", \"aborted\", \"errored\"].includes(this.phase) && (this.phase = \"aborted\", this.channel.emit(STORY_RENDER_PHASE_CHANGED, {\n newPhase: this.phase,\n renderId: this.renderId,\n storyId: this.id\n })), signal.aborted;\n }\n async prepare() {\n if (await this.runPhase(this.abortController.signal, \"preparing\", async () => {\n this.story = await this.store.loadStory({ storyId: this.id });\n }), this.abortController.signal.aborted)\n throw await this.store.cleanupStory(this.story), PREPARE_ABORTED;\n }\n // The two story \"renders\" are equal and have both loaded the same story\n isEqual(other) {\n return !!(this.id === other.id && this.story && this.story === other.story);\n }\n isPreparing() {\n return [\"preparing\"].includes(this.phase);\n }\n isPending() {\n return [\"loading\", \"beforeEach\", \"rendering\", \"playing\", \"afterEach\"].includes(\n this.phase\n );\n }\n async renderToElement(canvasElement) {\n return this.canvasElement = canvasElement, this.render({ initial: !0, forceRemount: !0 });\n }\n storyContext() {\n if (!this.story)\n throw new Error(\"Cannot call storyContext before preparing\");\n let { forceInitialArgs } = this.renderOptions;\n return this.store.getStoryContext(this.story, { forceInitialArgs });\n }\n async render({\n initial = !1,\n forceRemount = !1\n } = {}) {\n let { canvasElement } = this;\n if (!this.story)\n throw new Error(\"cannot render when not prepared\");\n let story = this.story;\n if (!canvasElement)\n throw new Error(\"cannot render when canvasElement is unset\");\n let {\n id,\n componentId,\n title,\n name,\n tags,\n applyLoaders,\n applyBeforeEach,\n applyAfterEach,\n unboundStoryFn,\n playFunction,\n runStep\n } = story;\n forceRemount && !initial && (this.cancelRender(), this.abortController = new AbortController2());\n let abortSignal = this.abortController.signal, mounted = !1, isMountDestructured = story.usesMount;\n try {\n let context = {\n ...this.storyContext(),\n viewMode: this.viewMode,\n abortSignal,\n canvasElement,\n loaded: {},\n step: (label, play) => runStep(label, play, context),\n context: null,\n canvas: {},\n userEvent: {},\n renderToCanvas: async () => {\n let teardown = await this.renderToScreen(renderContext, canvasElement);\n this.teardownRender = teardown || (() => {\n }), mounted = !0;\n },\n // The story provides (set in a renderer) a mount function that is a higher order function\n // (context) => (...args) => Canvas\n //\n // Before assigning it to the context, we resolve the context dependency,\n // so that a user can just call it as await mount(...args) in their play function.\n mount: async (...args) => {\n this.callbacks.showStoryDuringRender?.();\n let mountReturn = null;\n return await this.runPhase(abortSignal, \"rendering\", async () => {\n mountReturn = await story.mount(context)(...args);\n }), isMountDestructured && await this.runPhase(abortSignal, \"playing\"), mountReturn;\n }\n };\n context.context = context;\n let renderContext = {\n componentId,\n title,\n kind: title,\n id,\n name,\n story: name,\n tags,\n ...this.callbacks,\n showError: (error) => (this.phase = \"errored\", this.callbacks.showError(error)),\n showException: (error) => (this.phase = \"errored\", this.callbacks.showException(error)),\n forceRemount: forceRemount || this.notYetRendered,\n storyContext: context,\n storyFn: () => unboundStoryFn(context),\n unboundStoryFn\n };\n if (await this.runPhase(abortSignal, \"loading\", async () => {\n context.loaded = await applyLoaders(context);\n }), abortSignal.aborted)\n return;\n let cleanupCallbacks = await applyBeforeEach(context);\n if (this.store.addCleanupCallbacks(story, ...cleanupCallbacks), this.checkIfAborted(abortSignal) || (!mounted && !isMountDestructured && await context.mount(), this.notYetRendered = !1, abortSignal.aborted))\n return;\n let ignoreUnhandledErrors = this.story.parameters?.test?.dangerouslyIgnoreUnhandledErrors === !0, unhandledErrors = /* @__PURE__ */ new Set(), onError = (event) => {\n event.error && unhandledErrors.add(event.error);\n }, onUnhandledRejection = (event) => {\n event.reason && unhandledErrors.add(event.reason);\n };\n if (this.renderOptions.autoplay && forceRemount && playFunction && this.phase !== \"errored\") {\n window?.addEventListener?.(\"error\", onError), window?.addEventListener?.(\"unhandledrejection\", onUnhandledRejection), this.disableKeyListeners = !0;\n try {\n if (isMountDestructured ? await playFunction(context) : (context.mount = async () => {\n throw new MountMustBeDestructuredError2({ playFunction: playFunction.toString() });\n }, await this.runPhase(abortSignal, \"playing\", async () => playFunction(context))), !mounted)\n throw new NoStoryMountedError();\n this.checkIfAborted(abortSignal), !ignoreUnhandledErrors && unhandledErrors.size > 0 ? await this.runPhase(abortSignal, \"errored\") : await this.runPhase(abortSignal, \"played\");\n } catch (error) {\n if (this.callbacks.showStoryDuringRender?.(), await this.runPhase(abortSignal, \"errored\", async () => {\n this.channel.emit(PLAY_FUNCTION_THREW_EXCEPTION, serializeError(error));\n }), this.story.parameters.throwPlayFunctionExceptions !== !1)\n throw error;\n console.error(error);\n }\n if (!ignoreUnhandledErrors && unhandledErrors.size > 0 && this.channel.emit(\n UNHANDLED_ERRORS_WHILE_PLAYING,\n Array.from(unhandledErrors).map(serializeError)\n ), this.disableKeyListeners = !1, window?.removeEventListener?.(\"unhandledrejection\", onUnhandledRejection), window?.removeEventListener?.(\"error\", onError), abortSignal.aborted)\n return;\n }\n await this.runPhase(abortSignal, \"completing\", async () => {\n isTestEnvironment() ? this.store.addCleanupCallbacks(story, pauseAnimations()) : await waitForAnimations(abortSignal);\n }), await this.runPhase(abortSignal, \"completed\", async () => {\n this.channel.emit(STORY_RENDERED2, id);\n }), this.phase !== \"errored\" && await this.runPhase(abortSignal, \"afterEach\", async () => {\n await applyAfterEach(context);\n });\n let hasUnhandledErrors = !ignoreUnhandledErrors && unhandledErrors.size > 0, hasSomeReportsFailed = context.reporting.reports.some(\n (report) => report.status === \"failed\"\n ), hasStoryErrored = hasUnhandledErrors || hasSomeReportsFailed;\n await this.runPhase(\n abortSignal,\n \"finished\",\n async () => this.channel.emit(STORY_FINISHED, {\n storyId: id,\n status: hasStoryErrored ? \"error\" : \"success\",\n reporters: context.reporting.reports\n })\n );\n } catch (err) {\n this.phase = \"errored\", this.callbacks.showException(err), await this.runPhase(\n abortSignal,\n \"finished\",\n async () => this.channel.emit(STORY_FINISHED, {\n storyId: id,\n status: \"error\",\n reporters: []\n })\n );\n }\n this.rerenderEnqueued && (this.rerenderEnqueued = !1, this.render());\n }\n /**\n * Rerender the story. If the story is currently pending (loading/rendering), the rerender will be\n * enqueued, and will be executed after the current render is completed. Rerendering while playing\n * will not be enqueued, and will be executed immediately, to support rendering args changes while\n * playing.\n */\n async rerender() {\n if (this.isPending() && this.phase !== \"playing\")\n this.rerenderEnqueued = !0;\n else\n return this.render();\n }\n async remount() {\n return await this.teardown(), this.render({ forceRemount: !0 });\n }\n // If the story is torn down (either a new story is rendered or the docs page removes it)\n // we need to consider the fact that the initial render may not be finished\n // (possibly the loaders or the play function are still running). We use the controller\n // as a method to abort them, ASAP, but this is not foolproof as we cannot control what\n // happens inside the user's code.\n cancelRender() {\n this.abortController.abort();\n }\n cancelPlayFunction() {\n this.phase === \"playing\" && (this.abortController.abort(), this.runPhase(this.abortController.signal, \"aborted\"));\n }\n async teardown() {\n this.torndown = !0, this.cancelRender(), this.story && await this.store.cleanupStory(this.story);\n for (let i = 0; i < 3; i += 1) {\n if (!this.isPending()) {\n await this.teardownRender();\n return;\n }\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n window?.location?.reload?.(), await new Promise(() => {\n });\n }\n};\n\n// src/preview-api/modules/preview-web/Preview.tsx\nvar { fetch } = global5, STORY_INDEX_PATH = \"./index.json\", Preview = class {\n constructor(importFn, getProjectAnnotations, channel = addons.getChannel(), shouldInitialize = !0) {\n this.importFn = importFn;\n this.getProjectAnnotations = getProjectAnnotations;\n this.channel = channel;\n this.storyRenders = [];\n this.storeInitializationPromise = new Promise((resolve, reject) => {\n this.resolveStoreInitializationPromise = resolve, this.rejectStoreInitializationPromise = reject;\n }), shouldInitialize && this.initialize();\n }\n // Create a proxy object for `__STORYBOOK_STORY_STORE__` and `__STORYBOOK_PREVIEW__.storyStore`\n // That proxies through to the store once ready, and errors beforehand. This means we can set\n // `__STORYBOOK_STORY_STORE__ = __STORYBOOK_PREVIEW__.storyStore` without having to wait, and\n // similarly integrators can access the `storyStore` on the preview at any time, although\n // it is considered deprecated and we will no longer allow access in 9.0\n get storyStore() {\n return new Proxy(\n {},\n {\n get: (_, method) => {\n if (this.storyStoreValue)\n return deprecate2(\"Accessing the Story Store is deprecated and will be removed in 9.0\"), this.storyStoreValue[method];\n throw new StoryStoreAccessedBeforeInitializationError();\n }\n }\n );\n }\n // INITIALIZATION\n async initialize() {\n this.setupListeners();\n try {\n let projectAnnotations = await this.getProjectAnnotationsOrRenderError();\n await this.runBeforeAllHook(projectAnnotations), await this.initializeWithProjectAnnotations(projectAnnotations);\n let userAgent = globalThis?.navigator?.userAgent;\n await this.channel.emit(PREVIEW_INITIALIZED, { userAgent });\n } catch (err) {\n this.rejectStoreInitializationPromise(err);\n }\n }\n ready() {\n return this.storeInitializationPromise;\n }\n setupListeners() {\n this.channel.on(STORY_INDEX_INVALIDATED, this.onStoryIndexChanged.bind(this)), this.channel.on(UPDATE_GLOBALS2, this.onUpdateGlobals.bind(this)), this.channel.on(UPDATE_STORY_ARGS2, this.onUpdateArgs.bind(this)), this.channel.on(ARGTYPES_INFO_REQUEST, this.onRequestArgTypesInfo.bind(this)), this.channel.on(RESET_STORY_ARGS2, this.onResetArgs.bind(this)), this.channel.on(FORCE_RE_RENDER2, this.onForceReRender.bind(this)), this.channel.on(FORCE_REMOUNT, this.onForceRemount.bind(this)), this.channel.on(STORY_HOT_UPDATED, this.onStoryHotUpdated.bind(this));\n }\n async getProjectAnnotationsOrRenderError() {\n try {\n let projectAnnotations = await this.getProjectAnnotations();\n if (this.renderToCanvas = projectAnnotations.renderToCanvas, !this.renderToCanvas)\n throw new MissingRenderToCanvasError();\n return projectAnnotations;\n } catch (err) {\n throw this.renderPreviewEntryError(\"Error reading preview.js:\", err), err;\n }\n }\n // If initialization gets as far as project annotations, this function runs.\n async initializeWithProjectAnnotations(projectAnnotations) {\n this.projectAnnotationsBeforeInitialization = projectAnnotations;\n try {\n let storyIndex = await this.getStoryIndexFromServer();\n return this.initializeWithStoryIndex(storyIndex);\n } catch (err) {\n throw this.renderPreviewEntryError(\"Error loading story index:\", err), err;\n }\n }\n async runBeforeAllHook(projectAnnotations) {\n try {\n await this.beforeAllCleanup?.(), this.beforeAllCleanup = await projectAnnotations.beforeAll?.();\n } catch (err) {\n throw this.renderPreviewEntryError(\"Error in beforeAll hook:\", err), err;\n }\n }\n async getStoryIndexFromServer() {\n let result = await fetch(STORY_INDEX_PATH);\n if (result.status === 200)\n return result.json();\n throw new StoryIndexFetchError({ text: await result.text() });\n }\n // If initialization gets as far as the story index, this function runs.\n initializeWithStoryIndex(storyIndex) {\n if (!this.projectAnnotationsBeforeInitialization)\n throw new Error(\"Cannot call initializeWithStoryIndex until project annotations resolve\");\n this.storyStoreValue = new StoryStore(\n storyIndex,\n this.importFn,\n this.projectAnnotationsBeforeInitialization\n ), delete this.projectAnnotationsBeforeInitialization, this.setInitialGlobals(), this.resolveStoreInitializationPromise();\n }\n async setInitialGlobals() {\n this.emitGlobals();\n }\n emitGlobals() {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"emitGlobals\" });\n let payload = {\n globals: this.storyStoreValue.userGlobals.get() || {},\n globalTypes: this.storyStoreValue.projectAnnotations.globalTypes || {}\n };\n this.channel.emit(SET_GLOBALS, payload);\n }\n // EVENT HANDLERS\n // This happens when a config file gets reloaded\n async onGetProjectAnnotationsChanged({\n getProjectAnnotations\n }) {\n delete this.previewEntryError, this.getProjectAnnotations = getProjectAnnotations;\n let projectAnnotations = await this.getProjectAnnotationsOrRenderError();\n if (await this.runBeforeAllHook(projectAnnotations), !this.storyStoreValue) {\n await this.initializeWithProjectAnnotations(projectAnnotations);\n return;\n }\n this.storyStoreValue.setProjectAnnotations(projectAnnotations), this.emitGlobals();\n }\n async onStoryIndexChanged() {\n if (delete this.previewEntryError, !(!this.storyStoreValue && !this.projectAnnotationsBeforeInitialization))\n try {\n let storyIndex = await this.getStoryIndexFromServer();\n if (this.projectAnnotationsBeforeInitialization) {\n this.initializeWithStoryIndex(storyIndex);\n return;\n }\n await this.onStoriesChanged({ storyIndex });\n } catch (err) {\n throw this.renderPreviewEntryError(\"Error loading story index:\", err), err;\n }\n }\n // This happens when a glob gets HMR-ed\n async onStoriesChanged({\n importFn,\n storyIndex\n }) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"onStoriesChanged\" });\n await this.storyStoreValue.onStoriesChanged({ importFn, storyIndex });\n }\n async onUpdateGlobals({\n globals: updatedGlobals,\n currentStory\n }) {\n if (this.storyStoreValue || await this.storeInitializationPromise, !this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"onUpdateGlobals\" });\n if (this.storyStoreValue.userGlobals.update(updatedGlobals), currentStory) {\n let { initialGlobals, storyGlobals, userGlobals, globals } = this.storyStoreValue.getStoryContext(currentStory);\n this.channel.emit(GLOBALS_UPDATED, {\n initialGlobals,\n userGlobals,\n storyGlobals,\n globals\n });\n } else {\n let { initialGlobals, globals } = this.storyStoreValue.userGlobals;\n this.channel.emit(GLOBALS_UPDATED, {\n initialGlobals,\n userGlobals: globals,\n storyGlobals: {},\n globals\n });\n }\n await Promise.all(this.storyRenders.map((r) => r.rerender()));\n }\n async onUpdateArgs({ storyId, updatedArgs }) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"onUpdateArgs\" });\n this.storyStoreValue.args.update(storyId, updatedArgs), await Promise.all(\n this.storyRenders.filter((r) => r.id === storyId && !r.renderOptions.forceInitialArgs).map(\n (r) => (\n // We only run the play function, with in a force remount.\n // But when mount is destructured, the rendering happens inside of the play function.\n r.story && r.story.usesMount ? r.remount() : r.rerender()\n )\n )\n ), this.channel.emit(STORY_ARGS_UPDATED, {\n storyId,\n args: this.storyStoreValue.args.get(storyId)\n });\n }\n async onRequestArgTypesInfo({ id, payload }) {\n try {\n await this.storeInitializationPromise;\n let story = await this.storyStoreValue?.loadStory(payload);\n this.channel.emit(ARGTYPES_INFO_RESPONSE, {\n id,\n success: !0,\n payload: { argTypes: story?.argTypes || {} },\n error: null\n });\n } catch (e) {\n this.channel.emit(ARGTYPES_INFO_RESPONSE, {\n id,\n success: !1,\n error: e?.message\n });\n }\n }\n async onResetArgs({ storyId, argNames }) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"onResetArgs\" });\n let story = this.storyRenders.find((r) => r.id === storyId)?.story || await this.storyStoreValue.loadStory({ storyId }), updatedArgs = (argNames || [\n .../* @__PURE__ */ new Set([\n ...Object.keys(story.initialArgs),\n ...Object.keys(this.storyStoreValue.args.get(storyId))\n ])\n ]).reduce((acc, argName) => (acc[argName] = story.initialArgs[argName], acc), {});\n await this.onUpdateArgs({ storyId, updatedArgs });\n }\n // ForceReRender does not include a story id, so we simply must\n // re-render all stories in case they are relevant\n async onForceReRender() {\n await Promise.all(this.storyRenders.map((r) => r.rerender()));\n }\n async onForceRemount({ storyId }) {\n await Promise.all(this.storyRenders.filter((r) => r.id === storyId).map((r) => r.remount()));\n }\n async onStoryHotUpdated() {\n await Promise.all(this.storyRenders.map((r) => r.cancelPlayFunction()));\n }\n // Used by docs to render a story to a given element\n // Note this short-circuits the `prepare()` phase of the StoryRender,\n // main to be consistent with the previous behaviour. In the future,\n // we will change it to go ahead and load the story, which will end up being\n // \"instant\", although async.\n renderStoryToElement(story, element, callbacks, options) {\n if (!this.renderToCanvas || !this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({\n methodName: \"renderStoryToElement\"\n });\n let render = new StoryRender(\n this.channel,\n this.storyStoreValue,\n this.renderToCanvas,\n callbacks,\n story.id,\n \"docs\",\n options,\n story\n );\n return render.renderToElement(element), this.storyRenders.push(render), async () => {\n await this.teardownRender(render);\n };\n }\n async teardownRender(render, { viewModeChanged } = {}) {\n this.storyRenders = this.storyRenders.filter((r) => r !== render), await render?.teardown?.({ viewModeChanged });\n }\n // API\n async loadStory({ storyId }) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"loadStory\" });\n return this.storyStoreValue.loadStory({ storyId });\n }\n getStoryContext(story, { forceInitialArgs = !1 } = {}) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"getStoryContext\" });\n return this.storyStoreValue.getStoryContext(story, { forceInitialArgs });\n }\n async extract(options) {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError({ methodName: \"extract\" });\n if (this.previewEntryError)\n throw this.previewEntryError;\n return await this.storyStoreValue.cacheAllCSFFiles(), this.storyStoreValue.extract(options);\n }\n // UTILITIES\n renderPreviewEntryError(reason, err) {\n this.previewEntryError = err, logger7.error(reason), logger7.error(err), this.channel.emit(CONFIG_ERROR, err);\n }\n};\n\n// src/preview-api/modules/preview-web/PreviewWeb.tsx\nimport { global as global8 } from \"@storybook/global\";\n\n// src/preview-api/modules/preview-web/PreviewWithSelection.tsx\nimport { logger as logger8 } from \"storybook/internal/client-logger\";\nimport {\n CURRENT_STORY_WAS_SET,\n DOCS_PREPARED,\n GLOBALS_UPDATED as GLOBALS_UPDATED2,\n PRELOAD_ENTRIES,\n PREVIEW_KEYDOWN,\n SET_CURRENT_STORY,\n STORY_CHANGED,\n STORY_ERRORED,\n STORY_MISSING,\n STORY_PREPARED,\n STORY_RENDER_PHASE_CHANGED as STORY_RENDER_PHASE_CHANGED2,\n STORY_SPECIFIED,\n STORY_THREW_EXCEPTION,\n STORY_UNCHANGED,\n UPDATE_QUERY_PARAMS\n} from \"storybook/internal/core-events\";\nimport {\n CalledPreviewMethodBeforeInitializationError as CalledPreviewMethodBeforeInitializationError2,\n EmptyIndexError,\n MdxFileWithNoCsfReferencesError,\n NoStoryMatchError\n} from \"storybook/internal/preview-errors\";\n\n// src/preview-api/modules/preview-web/render/CsfDocsRender.ts\nimport { DOCS_RENDERED } from \"storybook/internal/core-events\";\n\n// src/preview-api/modules/preview-web/docs-context/DocsContext.ts\nimport { isStory as isStory3 } from \"storybook/internal/csf\";\nvar DocsContext = class {\n constructor(channel, store, renderStoryToElement, csfFiles) {\n this.channel = channel;\n this.store = store;\n this.renderStoryToElement = renderStoryToElement;\n this.storyIdByName = (storyName) => {\n let storyId = this.nameToStoryId.get(storyName);\n if (storyId)\n return storyId;\n throw new Error(`No story found with that name: ${storyName}`);\n };\n this.componentStories = () => this.componentStoriesValue;\n this.componentStoriesFromCSFFile = (csfFile) => this.store.componentStoriesFromCSFFile({ csfFile });\n this.storyById = (storyId) => {\n if (!storyId) {\n if (!this.primaryStory)\n throw new Error(\n \"No primary story defined for docs entry. Did you forget to use `<Meta>`?\"\n );\n return this.primaryStory;\n }\n let csfFile = this.storyIdToCSFFile.get(storyId);\n if (!csfFile)\n throw new Error(`Called \\`storyById\\` for story that was never loaded: ${storyId}`);\n return this.store.storyFromCSFFile({ storyId, csfFile });\n };\n this.getStoryContext = (story) => ({\n ...this.store.getStoryContext(story),\n loaded: {},\n viewMode: \"docs\"\n });\n this.loadStory = (id) => this.store.loadStory({ storyId: id });\n this.componentStoriesValue = [], this.storyIdToCSFFile = /* @__PURE__ */ new Map(), this.exportToStory = /* @__PURE__ */ new Map(), this.exportsToCSFFile = /* @__PURE__ */ new Map(), this.nameToStoryId = /* @__PURE__ */ new Map(), this.attachedCSFFiles = /* @__PURE__ */ new Set(), csfFiles.forEach((csfFile, index) => {\n this.referenceCSFFile(csfFile);\n });\n }\n // This docs entry references this CSF file and can synchronously load the stories, as well\n // as reference them by module export. If the CSF is part of the \"component\" stories, they\n // can also be referenced by name and are in the componentStories list.\n referenceCSFFile(csfFile) {\n this.exportsToCSFFile.set(csfFile.moduleExports, csfFile), this.exportsToCSFFile.set(csfFile.moduleExports.default, csfFile), this.store.componentStoriesFromCSFFile({ csfFile }).forEach((story) => {\n let annotation = csfFile.stories[story.id];\n this.storyIdToCSFFile.set(annotation.id, csfFile), this.exportToStory.set(annotation.moduleExport, story);\n });\n }\n attachCSFFile(csfFile) {\n if (!this.exportsToCSFFile.has(csfFile.moduleExports))\n throw new Error(\"Cannot attach a CSF file that has not been referenced\");\n if (this.attachedCSFFiles.has(csfFile))\n return;\n this.attachedCSFFiles.add(csfFile), this.store.componentStoriesFromCSFFile({ csfFile }).forEach((story) => {\n this.nameToStoryId.set(story.name, story.id), this.componentStoriesValue.push(story), this.primaryStory || (this.primaryStory = story);\n });\n }\n referenceMeta(metaExports, attach) {\n let resolved = this.resolveModuleExport(metaExports);\n if (resolved.type !== \"meta\")\n throw new Error(\n \"<Meta of={} /> must reference a CSF file module export or meta export. Did you mistakenly reference your component instead of your CSF file?\"\n );\n attach && this.attachCSFFile(resolved.csfFile);\n }\n get projectAnnotations() {\n let { projectAnnotations } = this.store;\n if (!projectAnnotations)\n throw new Error(\"Can't get projectAnnotations from DocsContext before they are initialized\");\n return projectAnnotations;\n }\n resolveAttachedModuleExportType(moduleExportType) {\n if (moduleExportType === \"story\") {\n if (!this.primaryStory)\n throw new Error(\n \"No primary story attached to this docs file, did you forget to use <Meta of={} />?\"\n );\n return { type: \"story\", story: this.primaryStory };\n }\n if (this.attachedCSFFiles.size === 0)\n throw new Error(\n \"No CSF file attached to this docs file, did you forget to use <Meta of={} />?\"\n );\n let firstAttachedCSFFile = Array.from(this.attachedCSFFiles)[0];\n if (moduleExportType === \"meta\")\n return { type: \"meta\", csfFile: firstAttachedCSFFile };\n let { component } = firstAttachedCSFFile.meta;\n if (!component)\n throw new Error(\n \"Attached CSF file does not defined a component, did you forget to export one?\"\n );\n return { type: \"component\", component };\n }\n resolveModuleExport(moduleExportOrType) {\n let csfFile = this.exportsToCSFFile.get(moduleExportOrType);\n if (csfFile)\n return { type: \"meta\", csfFile };\n let story = this.exportToStory.get(\n isStory3(moduleExportOrType) ? moduleExportOrType.input : moduleExportOrType\n );\n return story ? { type: \"story\", story } : { type: \"component\", component: moduleExportOrType };\n }\n resolveOf(moduleExportOrType, validTypes = []) {\n let resolved;\n if ([\"component\", \"meta\", \"story\"].includes(moduleExportOrType)) {\n let type = moduleExportOrType;\n resolved = this.resolveAttachedModuleExportType(type);\n } else\n resolved = this.resolveModuleExport(moduleExportOrType);\n if (validTypes.length && !validTypes.includes(resolved.type)) {\n let prettyType = resolved.type === \"component\" ? \"component or unknown\" : resolved.type;\n throw new Error(dedent`Invalid value passed to the 'of' prop. The value was resolved to a '${prettyType}' type but the only types for this block are: ${validTypes.join(\n \", \"\n )}.\n - Did you pass a component to the 'of' prop when the block only supports a story or a meta?\n - ... or vice versa?\n - Did you pass a story, CSF file or meta to the 'of' prop that is not indexed, ie. is not targeted by the 'stories' globs in the main configuration?`);\n }\n switch (resolved.type) {\n case \"component\":\n return {\n ...resolved,\n projectAnnotations: this.projectAnnotations\n };\n case \"meta\":\n return {\n ...resolved,\n preparedMeta: this.store.preparedMetaFromCSFFile({ csfFile: resolved.csfFile })\n };\n case \"story\":\n default:\n return resolved;\n }\n }\n};\n\n// src/preview-api/modules/preview-web/render/CsfDocsRender.ts\nvar CsfDocsRender = class {\n constructor(channel, store, entry, callbacks) {\n this.channel = channel;\n this.store = store;\n this.entry = entry;\n this.callbacks = callbacks;\n this.type = \"docs\";\n this.subtype = \"csf\";\n this.torndown = !1;\n this.disableKeyListeners = !1;\n this.preparing = !1;\n this.id = entry.id, this.renderId = Date.now();\n }\n isPreparing() {\n return this.preparing;\n }\n async prepare() {\n this.preparing = !0;\n let { entryExports, csfFiles = [] } = await this.store.loadEntry(this.id);\n if (this.torndown)\n throw PREPARE_ABORTED;\n let { importPath, title } = this.entry, primaryCsfFile = this.store.processCSFFileWithCache(\n entryExports,\n importPath,\n title\n ), primaryStoryId = Object.keys(primaryCsfFile.stories)[0];\n this.story = this.store.storyFromCSFFile({ storyId: primaryStoryId, csfFile: primaryCsfFile }), this.csfFiles = [primaryCsfFile, ...csfFiles], this.preparing = !1;\n }\n isEqual(other) {\n return !!(this.id === other.id && this.story && this.story === other.story);\n }\n docsContext(renderStoryToElement) {\n if (!this.csfFiles)\n throw new Error(\"Cannot render docs before preparing\");\n let docsContext = new DocsContext(\n this.channel,\n this.store,\n renderStoryToElement,\n this.csfFiles\n );\n return this.csfFiles.forEach((csfFile) => docsContext.attachCSFFile(csfFile)), docsContext;\n }\n async renderToElement(canvasElement, renderStoryToElement) {\n if (!this.story || !this.csfFiles)\n throw new Error(\"Cannot render docs before preparing\");\n let docsContext = this.docsContext(renderStoryToElement), { docs: docsParameter } = this.story.parameters || {};\n if (!docsParameter)\n throw new Error(\n \"Cannot render a story in viewMode=docs if `@storybook/addon-docs` is not installed\"\n );\n let renderer = await docsParameter.renderer(), { render } = renderer, renderDocs = async () => {\n try {\n await render(docsContext, docsParameter, canvasElement), this.channel.emit(DOCS_RENDERED, this.id);\n } catch (err) {\n this.callbacks.showException(err);\n }\n };\n return this.rerender = async () => renderDocs(), this.teardownRender = async ({ viewModeChanged }) => {\n !viewModeChanged || !canvasElement || renderer.unmount(canvasElement);\n }, renderDocs();\n }\n async teardown({ viewModeChanged } = {}) {\n this.teardownRender?.({ viewModeChanged }), this.torndown = !0;\n }\n};\n\n// src/preview-api/modules/preview-web/render/MdxDocsRender.ts\nimport { DOCS_RENDERED as DOCS_RENDERED2 } from \"storybook/internal/core-events\";\nvar MdxDocsRender = class {\n constructor(channel, store, entry, callbacks) {\n this.channel = channel;\n this.store = store;\n this.entry = entry;\n this.callbacks = callbacks;\n this.type = \"docs\";\n this.subtype = \"mdx\";\n this.torndown = !1;\n this.disableKeyListeners = !1;\n this.preparing = !1;\n this.id = entry.id, this.renderId = Date.now();\n }\n isPreparing() {\n return this.preparing;\n }\n async prepare() {\n this.preparing = !0;\n let { entryExports, csfFiles = [] } = await this.store.loadEntry(this.id);\n if (this.torndown)\n throw PREPARE_ABORTED;\n this.csfFiles = csfFiles, this.exports = entryExports, this.preparing = !1;\n }\n isEqual(other) {\n return !!(this.id === other.id && this.exports && this.exports === other.exports);\n }\n docsContext(renderStoryToElement) {\n if (!this.csfFiles)\n throw new Error(\"Cannot render docs before preparing\");\n return new DocsContext(\n this.channel,\n this.store,\n renderStoryToElement,\n this.csfFiles\n );\n }\n async renderToElement(canvasElement, renderStoryToElement) {\n if (!this.exports || !this.csfFiles || !this.store.projectAnnotations)\n throw new Error(\"Cannot render docs before preparing\");\n let docsContext = this.docsContext(renderStoryToElement), { docs } = this.store.projectAnnotations.parameters ?? {};\n if (!docs)\n throw new Error(\n \"Cannot render a story in viewMode=docs if `@storybook/addon-docs` is not installed\"\n );\n let docsParameter = { ...docs, page: this.exports.default }, renderer = await docs.renderer(), { render } = renderer, renderDocs = async () => {\n try {\n await render(docsContext, docsParameter, canvasElement), this.channel.emit(DOCS_RENDERED2, this.id);\n } catch (err) {\n this.callbacks.showException(err);\n }\n };\n return this.rerender = async () => renderDocs(), this.teardownRender = async ({ viewModeChanged } = {}) => {\n !viewModeChanged || !canvasElement || (renderer.unmount(canvasElement), this.torndown = !0);\n }, renderDocs();\n }\n async teardown({ viewModeChanged } = {}) {\n this.teardownRender?.({ viewModeChanged }), this.torndown = !0;\n }\n};\n\n// src/preview-api/modules/preview-web/PreviewWithSelection.tsx\nvar globalWindow = globalThis;\nfunction focusInInput(event) {\n let target = event.composedPath && event.composedPath()[0] || event.target;\n return /input|textarea/i.test(target.tagName) || target.getAttribute(\"contenteditable\") !== null;\n}\nvar ATTACHED_MDX_TAG = \"attached-mdx\", UNATTACHED_MDX_TAG = \"unattached-mdx\";\nfunction isMdxEntry({ tags }) {\n return tags?.includes(UNATTACHED_MDX_TAG) || tags?.includes(ATTACHED_MDX_TAG);\n}\nfunction isStoryRender(r) {\n return r.type === \"story\";\n}\nfunction isDocsRender(r) {\n return r.type === \"docs\";\n}\nfunction isCsfDocsRender(r) {\n return isDocsRender(r) && r.subtype === \"csf\";\n}\nvar PreviewWithSelection = class extends Preview {\n constructor(importFn, getProjectAnnotations, selectionStore, view) {\n super(importFn, getProjectAnnotations, void 0, !1);\n this.importFn = importFn;\n this.getProjectAnnotations = getProjectAnnotations;\n this.selectionStore = selectionStore;\n this.view = view;\n this.initialize();\n }\n setupListeners() {\n super.setupListeners(), globalWindow.onkeydown = this.onKeydown.bind(this), this.channel.on(SET_CURRENT_STORY, this.onSetCurrentStory.bind(this)), this.channel.on(UPDATE_QUERY_PARAMS, this.onUpdateQueryParams.bind(this)), this.channel.on(PRELOAD_ENTRIES, this.onPreloadStories.bind(this));\n }\n async setInitialGlobals() {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError2({ methodName: \"setInitialGlobals\" });\n let { globals } = this.selectionStore.selectionSpecifier || {};\n globals && this.storyStoreValue.userGlobals.updateFromPersisted(globals), this.emitGlobals();\n }\n // If initialization gets as far as the story index, this function runs.\n async initializeWithStoryIndex(storyIndex) {\n return await super.initializeWithStoryIndex(storyIndex), this.selectSpecifiedStory();\n }\n // Use the selection specifier to choose a story, then render it\n async selectSpecifiedStory() {\n if (!this.storyStoreValue)\n throw new CalledPreviewMethodBeforeInitializationError2({\n methodName: \"selectSpecifiedStory\"\n });\n if (this.selectionStore.selection) {\n await this.renderSelection();\n return;\n }\n if (!this.selectionStore.selectionSpecifier) {\n this.renderMissingStory();\n return;\n }\n let { storySpecifier, args } = this.selectionStore.selectionSpecifier, entry = this.storyStoreValue.storyIndex.entryFromSpecifier(storySpecifier);\n if (!entry) {\n storySpecifier === \"*\" ? this.renderStoryLoadingException(storySpecifier, new EmptyIndexError()) : this.renderStoryLoadingException(\n storySpecifier,\n new NoStoryMatchError({ storySpecifier: storySpecifier.toString() })\n );\n return;\n }\n let { id: storyId, type: viewMode } = entry;\n this.selectionStore.setSelection({ storyId, viewMode }), this.channel.emit(STORY_SPECIFIED, this.selectionStore.selection), this.channel.emit(CURRENT_STORY_WAS_SET, this.selectionStore.selection), await this.renderSelection({ persistedArgs: args });\n }\n // EVENT HANDLERS\n // This happens when a config file gets reloaded\n async onGetProjectAnnotationsChanged({\n getProjectAnnotations\n }) {\n await super.onGetProjectAnnotationsChanged({ getProjectAnnotations }), this.selectionStore.selection && this.renderSelection();\n }\n // This happens when a glob gets HMR-ed\n async onStoriesChanged({\n importFn,\n storyIndex\n }) {\n await super.onStoriesChanged({ importFn, storyIndex }), this.selectionStore.selection ? await this.renderSelection() : await this.selectSpecifiedStory();\n }\n onKeydown(event) {\n if (!this.storyRenders.find((r) => r.disableKeyListeners) && !focusInInput(event)) {\n let { altKey, ctrlKey, metaKey, shiftKey, key, code, keyCode } = event;\n this.channel.emit(PREVIEW_KEYDOWN, {\n event: { altKey, ctrlKey, metaKey, shiftKey, key, code, keyCode }\n });\n }\n }\n async onSetCurrentStory(selection) {\n this.selectionStore.setSelection({ viewMode: \"story\", ...selection }), await this.storeInitializationPromise, this.channel.emit(CURRENT_STORY_WAS_SET, this.selectionStore.selection), this.renderSelection();\n }\n onUpdateQueryParams(queryParams) {\n this.selectionStore.setQueryParams(queryParams);\n }\n async onUpdateGlobals({ globals }) {\n let currentStory = this.currentRender instanceof StoryRender && this.currentRender.story || void 0;\n super.onUpdateGlobals({ globals, currentStory }), (this.currentRender instanceof MdxDocsRender || this.currentRender instanceof CsfDocsRender) && await this.currentRender.rerender?.();\n }\n async onUpdateArgs({ storyId, updatedArgs }) {\n super.onUpdateArgs({ storyId, updatedArgs });\n }\n async onPreloadStories({ ids }) {\n await this.storeInitializationPromise, this.storyStoreValue && await Promise.allSettled(ids.map((id) => this.storyStoreValue?.loadEntry(id)));\n }\n // RENDERING\n // We can either have:\n // - a story selected in \"story\" viewMode,\n // in which case we render it to the root element, OR\n // - a story selected in \"docs\" viewMode,\n // in which case we render the docsPage for that story\n async renderSelection({ persistedArgs } = {}) {\n let { renderToCanvas } = this;\n if (!this.storyStoreValue || !renderToCanvas)\n throw new CalledPreviewMethodBeforeInitializationError2({ methodName: \"renderSelection\" });\n let { selection } = this.selectionStore;\n if (!selection)\n throw new Error(\"Cannot call renderSelection as no selection was made\");\n let { storyId } = selection, entry;\n try {\n entry = await this.storyStoreValue.storyIdToEntry(storyId);\n } catch (err) {\n this.currentRender && await this.teardownRender(this.currentRender), this.renderStoryLoadingException(storyId, err);\n return;\n }\n let storyIdChanged = this.currentSelection?.storyId !== storyId, viewModeChanged = this.currentRender?.type !== entry.type;\n entry.type === \"story\" ? this.view.showPreparingStory({ immediate: viewModeChanged }) : this.view.showPreparingDocs({ immediate: viewModeChanged }), this.currentRender?.isPreparing() && await this.teardownRender(this.currentRender);\n let render;\n entry.type === \"story\" ? render = new StoryRender(\n this.channel,\n this.storyStoreValue,\n renderToCanvas,\n this.mainStoryCallbacks(storyId),\n storyId,\n \"story\"\n ) : isMdxEntry(entry) ? render = new MdxDocsRender(\n this.channel,\n this.storyStoreValue,\n entry,\n this.mainStoryCallbacks(storyId)\n ) : render = new CsfDocsRender(\n this.channel,\n this.storyStoreValue,\n entry,\n this.mainStoryCallbacks(storyId)\n );\n let lastSelection = this.currentSelection;\n this.currentSelection = selection;\n let lastRender = this.currentRender;\n this.currentRender = render;\n try {\n await render.prepare();\n } catch (err) {\n lastRender && await this.teardownRender(lastRender), err !== PREPARE_ABORTED && this.renderStoryLoadingException(storyId, err);\n return;\n }\n let implementationChanged = !storyIdChanged && lastRender && !render.isEqual(lastRender);\n if (persistedArgs && isStoryRender(render) && (invariant(!!render.story), this.storyStoreValue.args.updateFromPersisted(render.story, persistedArgs)), lastRender && !lastRender.torndown && !storyIdChanged && !implementationChanged && !viewModeChanged) {\n this.currentRender = lastRender, this.channel.emit(STORY_UNCHANGED, storyId), this.view.showMain();\n return;\n }\n if (lastRender && await this.teardownRender(lastRender, { viewModeChanged }), lastSelection && (storyIdChanged || viewModeChanged) && this.channel.emit(STORY_CHANGED, storyId), isStoryRender(render)) {\n invariant(!!render.story);\n let {\n parameters,\n initialArgs,\n argTypes,\n unmappedArgs,\n initialGlobals,\n userGlobals,\n storyGlobals,\n globals\n } = this.storyStoreValue.getStoryContext(render.story);\n this.channel.emit(STORY_PREPARED, {\n id: storyId,\n parameters,\n initialArgs,\n argTypes,\n args: unmappedArgs\n }), this.channel.emit(GLOBALS_UPDATED2, { userGlobals, storyGlobals, globals, initialGlobals });\n } else {\n let { parameters } = this.storyStoreValue.projectAnnotations, { initialGlobals, globals } = this.storyStoreValue.userGlobals;\n if (this.channel.emit(GLOBALS_UPDATED2, {\n globals,\n initialGlobals,\n storyGlobals: {},\n userGlobals: globals\n }), isCsfDocsRender(render) || render.entry.tags?.includes(ATTACHED_MDX_TAG)) {\n if (!render.csfFiles)\n throw new MdxFileWithNoCsfReferencesError({ storyId });\n ({ parameters } = this.storyStoreValue.preparedMetaFromCSFFile({\n csfFile: render.csfFiles[0]\n }));\n }\n this.channel.emit(DOCS_PREPARED, {\n id: storyId,\n parameters\n });\n }\n isStoryRender(render) ? (invariant(!!render.story), this.storyRenders.push(render), this.currentRender.renderToElement(\n this.view.prepareForStory(render.story)\n )) : this.currentRender.renderToElement(\n this.view.prepareForDocs(),\n // This argument is used for docs, which is currently only compatible with HTMLElements\n this.renderStoryToElement.bind(this)\n );\n }\n async teardownRender(render, { viewModeChanged = !1 } = {}) {\n this.storyRenders = this.storyRenders.filter((r) => r !== render), await render?.teardown?.({ viewModeChanged });\n }\n // UTILITIES\n mainStoryCallbacks(storyId) {\n return {\n showStoryDuringRender: () => this.view.showStoryDuringRender(),\n showMain: () => this.view.showMain(),\n showError: (err) => this.renderError(storyId, err),\n showException: (err) => this.renderException(storyId, err)\n };\n }\n renderPreviewEntryError(reason, err) {\n super.renderPreviewEntryError(reason, err), this.view.showErrorDisplay(err);\n }\n renderMissingStory() {\n this.view.showNoPreview(), this.channel.emit(STORY_MISSING);\n }\n renderStoryLoadingException(storySpecifier, err) {\n logger8.error(err), this.view.showErrorDisplay(err), this.channel.emit(STORY_MISSING, storySpecifier);\n }\n // renderException is used if we fail to render the story and it is uncaught by the app layer\n renderException(storyId, error) {\n let { name = \"Error\", message = String(error), stack } = error, renderId = this.currentRender?.renderId;\n this.channel.emit(STORY_THREW_EXCEPTION, { name, message, stack }), this.channel.emit(STORY_RENDER_PHASE_CHANGED2, { newPhase: \"errored\", renderId, storyId }), this.view.showErrorDisplay(error), logger8.error(`Error rendering story '${storyId}':`), logger8.error(error);\n }\n // renderError is used by the various app layers to inform the user they have done something\n // wrong -- for instance returned the wrong thing from a story\n renderError(storyId, { title, description }) {\n let renderId = this.currentRender?.renderId;\n this.channel.emit(STORY_ERRORED, { title, description }), this.channel.emit(STORY_RENDER_PHASE_CHANGED2, { newPhase: \"errored\", renderId, storyId }), this.view.showErrorDisplay({ message: title, stack: description }), logger8.error(`Error rendering story ${title}: ${description}`);\n }\n};\n\n// src/preview-api/modules/preview-web/UrlStore.ts\nvar import_picoquery2 = __toESM(require_main(), 1);\nimport { global as global6 } from \"@storybook/global\";\n\n// src/preview-api/modules/preview-web/parseArgsParam.ts\nimport { once as once3 } from \"storybook/internal/client-logger\";\nvar import_picoquery = __toESM(require_main(), 1);\nvar VALIDATION_REGEXP = /^[a-zA-Z0-9 _-]*$/, NUMBER_REGEXP = /^-?[0-9]+(\\.[0-9]+)?$/, HEX_REGEXP = /^#([a-f0-9]{3,4}|[a-f0-9]{6}|[a-f0-9]{8})$/i, COLOR_REGEXP = /^(rgba?|hsla?)\\(([0-9]{1,3}),\\s?([0-9]{1,3})%?,\\s?([0-9]{1,3})%?,?\\s?([0-9](\\.[0-9]{1,2})?)?\\)$/i, validateArgs = (key = \"\", value) => key === null || key === \"\" || !VALIDATION_REGEXP.test(key) ? !1 : value == null || value instanceof Date || typeof value == \"number\" || typeof value == \"boolean\" ? !0 : typeof value == \"string\" ? VALIDATION_REGEXP.test(value) || NUMBER_REGEXP.test(value) || HEX_REGEXP.test(value) || COLOR_REGEXP.test(value) : Array.isArray(value) ? value.every((v) => validateArgs(key, v)) : isPlainObject(value) ? Object.entries(value).every(([k, v]) => validateArgs(k, v)) : !1, QUERY_OPTIONS = {\n delimiter: \";\",\n // we're parsing a single query param\n nesting: !0,\n arrayRepeat: !0,\n arrayRepeatSyntax: \"bracket\",\n nestingSyntax: \"js\",\n // objects are encoded using dot notation\n valueDeserializer(str) {\n if (str.startsWith(\"!\")) {\n if (str === \"!undefined\")\n return;\n if (str === \"!null\")\n return null;\n if (str === \"!true\")\n return !0;\n if (str === \"!false\")\n return !1;\n if (str.startsWith(\"!date(\") && str.endsWith(\")\"))\n return new Date(str.replaceAll(\" \", \"+\").slice(6, -1));\n if (str.startsWith(\"!hex(\") && str.endsWith(\")\"))\n return `#${str.slice(5, -1)}`;\n let color = str.slice(1).match(COLOR_REGEXP);\n if (color)\n return str.startsWith(\"!rgba\") || str.startsWith(\"!RGBA\") ? `${color[1]}(${color[2]}, ${color[3]}, ${color[4]}, ${color[5]})` : str.startsWith(\"!hsla\") || str.startsWith(\"!HSLA\") ? `${color[1]}(${color[2]}, ${color[3]}%, ${color[4]}%, ${color[5]})` : str.startsWith(\"!rgb\") || str.startsWith(\"!RGB\") ? `${color[1]}(${color[2]}, ${color[3]}, ${color[4]})` : `${color[1]}(${color[2]}, ${color[3]}%, ${color[4]}%)`;\n }\n return NUMBER_REGEXP.test(str) ? Number(str) : str;\n }\n}, parseArgsParam = (argsString) => {\n let parts = argsString.split(\";\").map((part) => part.replace(\"=\", \"~\").replace(\":\", \"=\"));\n return Object.entries((0, import_picoquery.parse)(parts.join(\";\"), QUERY_OPTIONS)).reduce((acc, [key, value]) => validateArgs(key, value) ? Object.assign(acc, { [key]: value }) : (once3.warn(dedent`\n Omitted potentially unsafe URL args.\n\n More info: https://storybook.js.org/docs/writing-stories/args#setting-args-through-the-url?ref=error\n `), acc), {});\n};\n\n// src/preview-api/modules/preview-web/UrlStore.ts\nvar { history, document: document2 } = global6;\nfunction pathToId(path) {\n let match = (path || \"\").match(/^\\/story\\/(.+)/);\n if (!match)\n throw new Error(`Invalid path '${path}', must start with '/story/'`);\n return match[1];\n}\nvar getQueryString = ({\n selection,\n extraParams\n}) => {\n let search = document2?.location.search.slice(1), { path, selectedKind, selectedStory, ...rest } = (0, import_picoquery2.parse)(search);\n return `?${(0, import_picoquery2.stringify)({\n ...rest,\n ...extraParams,\n ...selection && { id: selection.storyId, viewMode: selection.viewMode }\n })}`;\n}, setPath = (selection) => {\n if (!selection)\n return;\n let query = getQueryString({ selection }), { hash = \"\" } = document2.location;\n document2.title = selection.storyId, history.replaceState({}, \"\", `${document2.location.pathname}${query}${hash}`);\n}, isObject = (val) => val != null && typeof val == \"object\" && Array.isArray(val) === !1, getFirstString = (v) => {\n if (v !== void 0) {\n if (typeof v == \"string\")\n return v;\n if (Array.isArray(v))\n return getFirstString(v[0]);\n if (isObject(v))\n return getFirstString(\n Object.values(v).filter(Boolean)\n );\n }\n}, getSelectionSpecifierFromPath = () => {\n if (typeof document2 < \"u\") {\n let queryStr = document2.location.search.slice(1), query = (0, import_picoquery2.parse)(queryStr), args = typeof query.args == \"string\" ? parseArgsParam(query.args) : void 0, globals = typeof query.globals == \"string\" ? parseArgsParam(query.globals) : void 0, viewMode = getFirstString(query.viewMode);\n if (typeof viewMode != \"string\" || !viewMode)\n viewMode = \"story\";\n else if (!viewMode.match(/docs|story/))\n return null;\n let path = getFirstString(query.path), storyId = path ? pathToId(path) : getFirstString(query.id);\n if (storyId)\n return { storySpecifier: storyId, args, globals, viewMode };\n }\n return null;\n}, UrlStore = class {\n constructor() {\n this.selectionSpecifier = getSelectionSpecifierFromPath();\n }\n setSelection(selection) {\n this.selection = selection, setPath(this.selection);\n }\n setQueryParams(queryParams) {\n let query = getQueryString({ extraParams: queryParams }), { hash = \"\" } = document2.location;\n history.replaceState({}, \"\", `${document2.location.pathname}${query}${hash}`);\n }\n};\n\n// src/preview-api/modules/preview-web/WebView.ts\nvar import_ansi_to_html = __toESM(require_ansi_to_html(), 1), import_picoquery3 = __toESM(require_main(), 1);\nimport { logger as logger9 } from \"storybook/internal/client-logger\";\nimport { global as global7 } from \"@storybook/global\";\nvar { document: document3 } = global7, PREPARING_DELAY = 100, Mode = /* @__PURE__ */ ((Mode2) => (Mode2.MAIN = \"MAIN\", Mode2.NOPREVIEW = \"NOPREVIEW\", Mode2.PREPARING_STORY = \"PREPARING_STORY\", Mode2.PREPARING_DOCS = \"PREPARING_DOCS\", Mode2.ERROR = \"ERROR\", Mode2))(Mode || {}), classes = {\n PREPARING_STORY: \"sb-show-preparing-story\",\n PREPARING_DOCS: \"sb-show-preparing-docs\",\n MAIN: \"sb-show-main\",\n NOPREVIEW: \"sb-show-nopreview\",\n ERROR: \"sb-show-errordisplay\"\n}, layoutClassMap = {\n centered: \"sb-main-centered\",\n fullscreen: \"sb-main-fullscreen\",\n padded: \"sb-main-padded\"\n}, ansiConverter = new import_ansi_to_html.default({\n escapeXML: !0\n}), WebView = class {\n constructor() {\n this.testing = !1;\n if (typeof document3 < \"u\") {\n let { __SPECIAL_TEST_PARAMETER__ } = (0, import_picoquery3.parse)(document3.location.search.slice(1));\n switch (__SPECIAL_TEST_PARAMETER__) {\n case \"preparing-story\": {\n this.showPreparingStory(), this.testing = !0;\n break;\n }\n case \"preparing-docs\": {\n this.showPreparingDocs(), this.testing = !0;\n break;\n }\n default:\n }\n }\n }\n // Get ready to render a story, returning the element to render to\n prepareForStory(story) {\n return this.showStory(), this.applyLayout(story.parameters.layout), document3.documentElement.scrollTop = 0, document3.documentElement.scrollLeft = 0, this.storyRoot();\n }\n storyRoot() {\n return document3.getElementById(\"storybook-root\");\n }\n prepareForDocs() {\n return this.showMain(), this.showDocs(), this.applyLayout(\"fullscreen\"), document3.documentElement.scrollTop = 0, document3.documentElement.scrollLeft = 0, this.docsRoot();\n }\n docsRoot() {\n return document3.getElementById(\"storybook-docs\");\n }\n applyLayout(layout = \"padded\") {\n if (layout === \"none\") {\n document3.body.classList.remove(this.currentLayoutClass), this.currentLayoutClass = null;\n return;\n }\n this.checkIfLayoutExists(layout);\n let layoutClass = layoutClassMap[layout];\n document3.body.classList.remove(this.currentLayoutClass), document3.body.classList.add(layoutClass), this.currentLayoutClass = layoutClass;\n }\n checkIfLayoutExists(layout) {\n layoutClassMap[layout] || logger9.warn(\n dedent`\n The desired layout: ${layout} is not a valid option.\n The possible options are: ${Object.keys(layoutClassMap).join(\", \")}, none.\n `\n );\n }\n showMode(mode) {\n clearTimeout(this.preparingTimeout), Object.keys(Mode).forEach((otherMode) => {\n otherMode === mode ? document3.body.classList.add(classes[otherMode]) : document3.body.classList.remove(classes[otherMode]);\n });\n }\n showErrorDisplay({ message = \"\", stack = \"\" }) {\n let header = message, detail = stack, parts = message.split(`\n`);\n parts.length > 1 && ([header] = parts, detail = parts.slice(1).join(`\n`).replace(/^\\n/, \"\")), document3.getElementById(\"error-message\").innerHTML = ansiConverter.toHtml(header), document3.getElementById(\"error-stack\").innerHTML = ansiConverter.toHtml(detail), this.showMode(\"ERROR\" /* ERROR */);\n }\n showNoPreview() {\n this.testing || (this.showMode(\"NOPREVIEW\" /* NOPREVIEW */), this.storyRoot()?.setAttribute(\"hidden\", \"true\"), this.docsRoot()?.setAttribute(\"hidden\", \"true\"));\n }\n showPreparingStory({ immediate = !1 } = {}) {\n clearTimeout(this.preparingTimeout), immediate ? this.showMode(\"PREPARING_STORY\" /* PREPARING_STORY */) : this.preparingTimeout = setTimeout(\n () => this.showMode(\"PREPARING_STORY\" /* PREPARING_STORY */),\n PREPARING_DELAY\n );\n }\n showPreparingDocs({ immediate = !1 } = {}) {\n clearTimeout(this.preparingTimeout), immediate ? this.showMode(\"PREPARING_DOCS\" /* PREPARING_DOCS */) : this.preparingTimeout = setTimeout(() => this.showMode(\"PREPARING_DOCS\" /* PREPARING_DOCS */), PREPARING_DELAY);\n }\n showMain() {\n this.showMode(\"MAIN\" /* MAIN */);\n }\n showDocs() {\n this.storyRoot().setAttribute(\"hidden\", \"true\"), this.docsRoot().removeAttribute(\"hidden\");\n }\n showStory() {\n this.docsRoot().setAttribute(\"hidden\", \"true\"), this.storyRoot().removeAttribute(\"hidden\");\n }\n showStoryDuringRender() {\n document3.body.classList.add(classes.MAIN);\n }\n};\n\n// src/preview-api/modules/preview-web/PreviewWeb.tsx\nvar PreviewWeb = class extends PreviewWithSelection {\n constructor(importFn, getProjectAnnotations) {\n super(importFn, getProjectAnnotations, new UrlStore(), new WebView());\n this.importFn = importFn;\n this.getProjectAnnotations = getProjectAnnotations;\n global8.__STORYBOOK_PREVIEW__ = this;\n }\n};\n\n// src/preview-api/modules/preview-web/simulate-pageload.ts\nimport { global as global9 } from \"@storybook/global\";\nvar { document: document4 } = global9, runScriptTypes = [\n \"application/javascript\",\n \"application/ecmascript\",\n \"application/x-ecmascript\",\n \"application/x-javascript\",\n \"text/ecmascript\",\n \"text/javascript\",\n \"text/javascript1.0\",\n \"text/javascript1.1\",\n \"text/javascript1.2\",\n \"text/javascript1.3\",\n \"text/javascript1.4\",\n \"text/javascript1.5\",\n \"text/jscript\",\n \"text/livescript\",\n \"text/x-ecmascript\",\n \"text/x-javascript\",\n // Support modern javascript\n \"module\"\n], SCRIPT = \"script\", SCRIPTS_ROOT_ID = \"scripts-root\";\nfunction simulateDOMContentLoaded() {\n let DOMContentLoadedEvent = document4.createEvent(\"Event\");\n DOMContentLoadedEvent.initEvent(\"DOMContentLoaded\", !0, !0), document4.dispatchEvent(DOMContentLoadedEvent);\n}\nfunction insertScript($script, callback, $scriptRoot) {\n let scriptEl = document4.createElement(\"script\");\n scriptEl.type = $script.type === \"module\" ? \"module\" : \"text/javascript\", $script.src ? (scriptEl.onload = callback, scriptEl.onerror = callback, scriptEl.src = $script.src) : scriptEl.textContent = $script.innerText, $scriptRoot ? $scriptRoot.appendChild(scriptEl) : document4.head.appendChild(scriptEl), $script.parentNode.removeChild($script), $script.src || callback();\n}\nfunction insertScriptsSequentially(scriptsToExecute, callback, index = 0) {\n scriptsToExecute[index](() => {\n index++, index === scriptsToExecute.length ? callback() : insertScriptsSequentially(scriptsToExecute, callback, index);\n });\n}\nfunction simulatePageLoad($container) {\n let $scriptsRoot = document4.getElementById(SCRIPTS_ROOT_ID);\n $scriptsRoot ? $scriptsRoot.innerHTML = \"\" : ($scriptsRoot = document4.createElement(\"div\"), $scriptsRoot.id = SCRIPTS_ROOT_ID, document4.body.appendChild($scriptsRoot));\n let $scripts = Array.from($container.querySelectorAll(SCRIPT));\n if ($scripts.length) {\n let scriptsToExecute = [];\n $scripts.forEach(($script) => {\n let typeAttr = $script.getAttribute(\"type\");\n (!typeAttr || runScriptTypes.includes(typeAttr)) && scriptsToExecute.push((callback) => insertScript($script, callback, $scriptsRoot));\n }), scriptsToExecute.length && insertScriptsSequentially(scriptsToExecute, simulateDOMContentLoaded, void 0);\n } else\n simulateDOMContentLoaded();\n}\n\n// src/preview-api/modules/preview-web/emitTransformCode.ts\nasync function emitTransformCode(source, context) {\n let transform = context.parameters?.docs?.source?.transform, { id, unmappedArgs } = context, transformed = transform && source ? transform?.(source, context) : source, result = transformed ? await transformed : void 0;\n addons.getChannel().emit(SNIPPET_RENDERED, {\n id,\n source: result,\n args: unmappedArgs\n });\n}\n\nexport {\n mockChannel,\n addons,\n HooksContext,\n applyHooks,\n useMemo,\n useCallback,\n useRef,\n useState,\n useReducer,\n useEffect,\n useChannel,\n useStoryContext,\n useParameter,\n useArgs,\n useGlobals,\n makeDecorator,\n combineArgs,\n normalizeArrays,\n normalizeStory,\n mountDestructured,\n decorateStory,\n sanitizeStoryContextUpdate,\n defaultDecorateStory,\n prepareStory,\n prepareMeta,\n filterArgTypes,\n inferControls,\n normalizeProjectAnnotations,\n composeStepRunners,\n composeConfigs,\n ReporterAPI,\n getCsfFactoryAnnotations,\n setDefaultProjectAnnotations,\n setProjectAnnotations,\n composeStory,\n composeStories,\n createPlaywrightTest,\n StoryStore,\n userOrAutoTitleFromSpecifier,\n userOrAutoTitle,\n sortStoriesV7,\n Preview,\n DocsContext,\n PreviewWithSelection,\n UrlStore,\n WebView,\n PreviewWeb,\n simulateDOMContentLoaded,\n simulatePageLoad,\n emitTransformCode\n};\n"],"names":["require_string_util","__commonJS","exports","encodeString","hexTable","_","noEscape","str","len","out","lastPos","i","outer","c","c2","require_shared","string_util_js_1","defaultValueSerializer","value","defaultShouldSerializeObject","val","identityFunc","v","require_object_util","getDeepObject","stringifyObject","shared_js_1","isPrototypeKey","obj","key","nextKey","forceObject","forceArray","currObj","MAX_DEPTH","strBracketPair","strBracketLeft","strBracketRight","strDot","options","depth","parentKey","isProbableArray","nestingSyntax","arrayRepeat","arrayRepeatSyntax","nesting","delimiter","valueSerializer","shouldSerializeObject","strDelimiter","useArrayRepeatKey","shouldUseDot","result","firstKey","valueIsProbableArray","path","require_decode_uri_component","decodeURIComponent","UTF8_ACCEPT","UTF8_REJECT","UTF8_DATA","uri","percentPosition","length","decoded","last","codepoint","startOfOctets","state","high","hexCodeToInt","low","byte","type","HEX","shift","require_parse","parse","object_util_js_1","decode_uri_component_js_1","numberKeyDeserializer","asNumber","numberValueDeserializer","regexPlus","Empty","computeKeySlice","input","startIndex","endIndex","keyHasPlus","shouldDecodeKey","chunk","valueDeserializer","keyDeserializer","charDelimiter","isJsNestingSyntax","inputLength","startingIndex","equalityIndex","keySeparatorIndex","currentObj","lastKey","currentKey","keyChunk","shouldDecodeValue","valueHasPlus","keyIsDot","hasBothKeyValuePair","arrayRepeatBracketIndex","prevIndex","prevChar","newValue","currentValue","require_stringify","stringify","optionsObj","require_main","__createBinding","o","m","k","k2","desc","__exportStar","exports2","p","parse_js_1","stringify_js_1","isPlainObject","proto","mapValues","object","getNewValue","keys","parseErrorCode","code","category","paddedCode","appendErrorRef","url","urlObj","StorybookError","_StorybookError","props","errorName","name","documentation","message","page","doc","ImplicitActionsDuringRendering","data","dedent","UnknownArgTypesError","require_dist","module","global","factory","tokenToString","token","NoParsletFoundError","EarlyEndOfParseError","UnexpectedTypeError","error","makePunctuationRule","text","getQuoted","position","char","mark","escaped","identifierStartRegex","identifierContinueRegex","getIdentifier","numberRegex","getNumber","_a","_b","identifierRule","makeKeyWordRule","prepends","stringValueRule","eofRule","numberRule","rules","breakingWhitespaceRegex","Lexer","current","next","previous","startOfLine","rule","partial","assertRootResult","assertPlainKeyValueOrRootResult","assertPlainKeyValueResult","assertPlainKeyValueOrNameResult","assertNumberOrVariadicNameResult","assertArrayOrTupleResult","isSquaredProperty","Precedence","Precedence2","Parser","grammar","textOrLexer","baseParser","precedence","left","parslet","types","parser","isQuestionMarkUnknownType","nullableParslet","composeParslet","curPrecedence","optionalParslet","numberParslet","parenthesisParslet","specialTypesParslet","notNullableParslet","createParameterListParslet","allowTrailingComma","elements","e","genericParslet","dot","objects","infer","left2","unionParslet","baseGrammar","createNamePathParslet","allowSquareBracketsOnAnyType","allowJsdocNamePaths","pathGrammar2","pathType","brackets","pathParser","parsed","right","createNameParslet","allowedAdditionalTokens","stringValueParslet","createSpecialNamePathParslet","allowedTypes","allowed","type2","moduleParser","moduleResult","basePathGrammar","pathGrammar","getParameters","parameters","getUnnamedParameters","createFunctionParslet","allowNamedParameters","allowNoReturnType","allowWithoutParenthesis","allowNewAsFunctionKeyword","newKeyword","hasParenthesis","createVariadicParslet","allowPostfix","allowEnclosingBrackets","element","symbolParslet","arrayBracketsParslet","createObjectParslet","objectFieldGrammar2","allowKeyTypes","separator","fieldParser","field","optional","quote2","createObjectFieldParslet","allowSquaredProperties","allowReadonly","allowOptional","readonlyProperty","parentParser","createKeyValueParslet","allowVariadic","variadic","jsdocBaseGrammar","jsdocGrammar","typeOfParslet","objectFieldGrammar$1","closureGrammar","assertsParslet","createTupleParslet","allowQuestionMark","typeList","keyOfParslet","importParslet","readonlyPropertyParslet","arrowFunctionParslet","genericArrowFunctionParslet","typeParameters","defaultValue","constraint","typeParameter","functionBase","intersectionParslet","predicateParslet","objectSquaredPropertyParslet","readonlyArrayParslet","conditionalParslet","extendsType","trueType","objectFieldGrammar","typescriptGrammar","parse3","expression","mode","tryParse","modes","transform","rules2","parseResult","aParseResult","notAvailableTransform","extractSpecialParams","source","param","applyPosition","target","quote","stringifyRules2","transform2","stringified","transformed","storedStringifyRules","stringify2","reservedWords","makeName","catharsisTransformRules","params","leftResult","rightValue","joiner","trailingDots","catharsisTransform","getQuoteStyle","getMemberType","nestResults","results","jtpRules","specialParams","entries","hasEventPrefix","quoteStyle","tModule","jtpTransform","identityTransformRules","visitorKeys","_traverse","node","parentNode","property","onEnter","onLeave","keysToVisit","traverse","isLiteral","toEnumOption","convertSig","values","prop","convert","raw","base","QUOTE_REGEX","trimQuotes","str2","includesQuotes","parseLiteral","trimmedValue","SIGNATURE_REGEXP","convert2","computed","values2","literalValues","otherVal","otherName","convertSig2","convert3","UnknownArgTypesError2","convert4","docgenInfo","tsType","flowType","err","TypeSystem","TypeSystem2","BLACKLIST","isDefaultValueBlacklisted","x","hasDocgen","component","isValidDocgenSection","docgenSection","getDocgenSection","section","getDocgenDescription","Markers","Markers2","isSpace","splitCR","matches","splitSpace","splitLines","seedSpec","spec","seedTokens","tokens","reTag","getParser","fence","fencer","getFencer","toggleFence","isFenced","sections","line","getParser2","startLine","markers","block","num","rest","isClosed","trimmed","getParser3","tokenizers","tokenize","tagTokenizer","match","typeTokenizer","spacing","join2","getJoiner","curlies","lines","ch","parts","offset","trim","t","isQuoted","s","nameTokenizer","typeEnd","quotedGroups","nameToken","descriptionTokenizer","getJoiner2","compactJoiner","preserveJoiner","description","lineNo","getDescription","lastLine","getParser4","parseSource","parseBlock","parseSpec","joinDescription","blocks","specs","acc","import_jsdoc_type_pratt_parser","__toESM","containsJsDoc","parse2","content","normalisedContent","ast","DEFAULT_OPTIONS","parseJsDoc","jsDocAst","extractedTags","extractJsDocTags","tags","tagSpec","paramTag","extractParam","deprecatedTag","extractDeprecated","returnsTag","extractReturns","normaliseParamName","tag","extractType","normaliseDescription","extractTypeName","joinNameAndDescription","joined","normalised","jsdocStringifyRules","originalJsdocStringifyObject","typeString","isTooLongForTypeSummary","isTooLongForDefaultValueSummary","createSummaryValue","summary","detail","createDefaultValue","generateUnionElement","generateUnion","generateFuncSignature","generateObjectSignature","generateSignature","generateDefault","createType","createFlowPropDef","propName","required","createDefaultValue2","createType2","typeName","createTsPropDef","createType3","isReactDocgenTypescript","func","isStringValued","tv","createDefaultValue3","createBasicPropDef","applyJsDocResult","propDef","jsDocParsingResult","javaScriptFactory","tsFactory","flowFactory","unknownFactory","getPropDefFactory","typeSystem","getTypeSystem","extractComponentSectionArray","createPropDef","item","sanitizedItem","extractProp","extractComponentSectionObject","docgenPropsKeys","extractComponentProps","extractComponentDescription","combineParameters","parameterSets","mergeKeys","definedParametersSets","combined","existing","mergeValues","enhanceArgTypes","context","userArgTypes","docs","extractArgTypes","extractedArgTypes","ADDON_ID","SNIPPET_RENDERED","SourceType","SourceType2","require_entities","require_legacy","require_xml","require_decode","require_decode_codepoint","__importDefault","mod","decode_json_1","fromCodePoint","codePoint","output","decodeCodePoint","require_decode2","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","strictEntityRe","getStrictDecoder","map","replace","getReplacer","sorter","a","b","legacy","j","re","replacer","secondChar","require_encode","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverseHTML","htmlReplacer","getInverse","inverse","single","multiple","_i","start","end","count","reNonASCII","getCodePoint","singleCharReplacer","reEscapeChars","escape","escapeUTF8","require_lib","decode_1","encode_1","decode","level","decodeStrict","encode","encode_2","decode_2","require_ansi_to_html","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","F","_e","normalCompletion","didErr","step","_e2","minLen","_arrayLikeToArray","n","arr","arr2","entities","defaults","getDefaultColors","colors","range","red","green","blue","setStyleColor","gray","l","toHexString","r","g","toColorHexString","ref","_iterator","_step","generateOutput","stack","pushText","handleDisplay","pushForegroundColor","pushBackgroundColor","handleRgb","operation","color","rgb","pushStyle","codeMap","resetStyles","pushTag","closeTag","stackClone","notCategory","categoryForCode","style","callback","ansiMatch","ansiHandler","remove","removeXterm256Foreground","g1","removeXterm256Background","newline","ansiMess","_iterator2","_step2","realText","process","handler2","i2","results1","_text","handler","updateStickyStack","stickyStack","Filter","Filter2","_this","buf","require_memoizerific","f","o2","u","__require","e2","n2","_dereq_","module3","exports3","forceSimilar","Similar","index","thisArg","val1","val2","MapOrSimilar","limit","cache","lru","fn","memoizerific","currentCache","newMap","fnResult","argsLengthMinusOne","lruPath","isMemoized","moveToMostRecentLru","removeCachedResult","lruLen","lruPathLen","isMatch","ii","isEqual","removedLru","removedLruLen","currentLru","tmp","isMulti","args","generateRandomId","Channel","event","eventName","listener","listeners","onceListener","document2","location","WebSocket","global2","CONFIG_TYPE","global3","mockChannel","transport","AddonStore","channel","res","KEY","getAddonsStore","addons","areDepsEqual","deps","nextDeps","dep","invalidHooksError","getHooksContextOrNull","getHooksContextOrThrow","hooks","useHook","logger","hook","useMemoLike","nextCreate","memoizedState","useRefLike","initialValue","useRef","useEffect","create","effect","import_memoizerific","entry","normalizeArrays","array","decorateStory","storyFn","decorator","bindWithContext","boundStoryFunction","sanitizeStoryContextUpdate","componentId","title","kind","id","story","initialArgs","argTypes","update","defaultDecorateStory","decorators","contextStore","decoratedStoryFn","decoratedWithContextStore","composeBeforeAllHooks","cleanups2","cleanup","composeStepRunners","stepRunners","label","play","playContext","innerPlay","stepRunner","getField","moduleExportList","xs","getArrayField","prev","cur","normalized","getObjectField","getSingletonField","composeConfigs","allArgTypeEnhancers","beforeAllHooks","global4","fetch","global5","history","global6","import_ansi_to_html","document3","global7","document4","global9","emitTransformCode","unmappedArgs"],"mappings":"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A;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAC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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|