@principal-ade/industry-themed-mdx-editor 0.1.14 → 0.1.16
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/index.mjs +24 -2
- package/dist/index.mjs.map +7 -0
- package/package.json +13 -10
- package/dist/index.css +0 -299
package/dist/index.mjs
CHANGED
|
@@ -2,7 +2,28 @@
|
|
|
2
2
|
import {
|
|
3
3
|
MDXEditor
|
|
4
4
|
} from "@mdxeditor/editor";
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
// node_modules/@mdxeditor/editor/dist/style.css
|
|
7
|
+
(function() {
|
|
8
|
+
if (typeof document === "undefined") return;
|
|
9
|
+
var id = "mdxeditor-base-styles-L1VzZXJz";
|
|
10
|
+
if (document.getElementById(id)) return;
|
|
11
|
+
var style = document.createElement("style");
|
|
12
|
+
style.id = id;
|
|
13
|
+
style.textContent = ":root, .light, .light-theme {\n --blue-1: #fbfdff;\n --blue-2: #f4faff;\n --blue-3: #e6f4fe;\n --blue-4: #d5efff;\n --blue-5: #c2e5ff;\n --blue-6: #acd8fc;\n --blue-7: #8ec8f6;\n --blue-8: #5eb1ef;\n --blue-9: #0090ff;\n --blue-10: #0588f0;\n --blue-11: #0d74ce;\n --blue-12: #113264;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --blue-1: color(display-p3 0.986 0.992 0.999);\n --blue-2: color(display-p3 0.96 0.979 0.998);\n --blue-3: color(display-p3 0.912 0.956 0.991);\n --blue-4: color(display-p3 0.853 0.932 1);\n --blue-5: color(display-p3 0.788 0.894 0.998);\n --blue-6: color(display-p3 0.709 0.843 0.976);\n --blue-7: color(display-p3 0.606 0.777 0.947);\n --blue-8: color(display-p3 0.451 0.688 0.917);\n --blue-9: color(display-p3 0.247 0.556 0.969);\n --blue-10: color(display-p3 0.234 0.523 0.912);\n --blue-11: color(display-p3 0.15 0.44 0.84);\n --blue-12: color(display-p3 0.102 0.193 0.379);\n }\n }\n}\n\n.dark, .dark-theme {\n --blue-1: #0d1520;\n --blue-2: #111927;\n --blue-3: #0d2847;\n --blue-4: #003362;\n --blue-5: #004074;\n --blue-6: #104d87;\n --blue-7: #205d9e;\n --blue-8: #2870bd;\n --blue-9: #0090ff;\n --blue-10: #3b9eff;\n --blue-11: #70b8ff;\n --blue-12: #c2e6ff;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n .dark, .dark-theme {\n --blue-1: color(display-p3 0.057 0.081 0.122);\n --blue-2: color(display-p3 0.072 0.098 0.147);\n --blue-3: color(display-p3 0.078 0.154 0.27);\n --blue-4: color(display-p3 0.033 0.197 0.37);\n --blue-5: color(display-p3 0.08 0.245 0.441);\n --blue-6: color(display-p3 0.14 0.298 0.511);\n --blue-7: color(display-p3 0.195 0.361 0.6);\n --blue-8: color(display-p3 0.239 0.434 0.72);\n --blue-9: color(display-p3 0.247 0.556 0.969);\n --blue-10: color(display-p3 0.344 0.612 0.973);\n --blue-11: color(display-p3 0.49 0.72 1);\n --blue-12: color(display-p3 0.788 0.898 0.99);\n }\n }\n}\n\n:root, .light, .light-theme {\n --slate-1: #fcfcfd;\n --slate-2: #f9f9fb;\n --slate-3: #f0f0f3;\n --slate-4: #e8e8ec;\n --slate-5: #e0e1e6;\n --slate-6: #d9d9e0;\n --slate-7: #cdced6;\n --slate-8: #b9bbc6;\n --slate-9: #8b8d98;\n --slate-10: #80838d;\n --slate-11: #60646c;\n --slate-12: #1c2024;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --slate-1: color(display-p3 0.988 0.988 0.992);\n --slate-2: color(display-p3 0.976 0.976 0.984);\n --slate-3: color(display-p3 0.94 0.941 0.953);\n --slate-4: color(display-p3 0.908 0.909 0.925);\n --slate-5: color(display-p3 0.88 0.881 0.901);\n --slate-6: color(display-p3 0.85 0.852 0.876);\n --slate-7: color(display-p3 0.805 0.808 0.838);\n --slate-8: color(display-p3 0.727 0.733 0.773);\n --slate-9: color(display-p3 0.547 0.553 0.592);\n --slate-10: color(display-p3 0.503 0.512 0.549);\n --slate-11: color(display-p3 0.379 0.392 0.421);\n --slate-12: color(display-p3 0.113 0.125 0.14);\n }\n }\n}\n\n.dark, .dark-theme {\n --slate-1: #111113;\n --slate-2: #18191b;\n --slate-3: #212225;\n --slate-4: #272a2d;\n --slate-5: #2e3135;\n --slate-6: #363a3f;\n --slate-7: #43484e;\n --slate-8: #5a6169;\n --slate-9: #696e77;\n --slate-10: #777b84;\n --slate-11: #b0b4ba;\n --slate-12: #edeef0;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n .dark, .dark-theme {\n --slate-1: color(display-p3 0.067 0.067 0.074);\n --slate-2: color(display-p3 0.095 0.098 0.105);\n --slate-3: color(display-p3 0.13 0.135 0.145);\n --slate-4: color(display-p3 0.156 0.163 0.176);\n --slate-5: color(display-p3 0.183 0.191 0.206);\n --slate-6: color(display-p3 0.215 0.226 0.244);\n --slate-7: color(display-p3 0.265 0.28 0.302);\n --slate-8: color(display-p3 0.357 0.381 0.409);\n --slate-9: color(display-p3 0.415 0.431 0.463);\n --slate-10: color(display-p3 0.469 0.483 0.514);\n --slate-11: color(display-p3 0.692 0.704 0.728);\n --slate-12: color(display-p3 0.93 0.933 0.94);\n }\n }\n}\n\n:root, .light, .light-theme {\n --grass-1: #fbfefb;\n --grass-2: #f5fbf5;\n --grass-3: #e9f6e9;\n --grass-4: #daf1db;\n --grass-5: #c9e8ca;\n --grass-6: #b2ddb5;\n --grass-7: #94ce9a;\n --grass-8: #65ba74;\n --grass-9: #46a758;\n --grass-10: #3e9b4f;\n --grass-11: #2a7e3b;\n --grass-12: #203c25;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --grass-1: color(display-p3 0.986 0.996 0.985);\n --grass-2: color(display-p3 0.966 0.983 0.964);\n --grass-3: color(display-p3 0.923 0.965 0.917);\n --grass-4: color(display-p3 0.872 0.94 0.865);\n --grass-5: color(display-p3 0.811 0.908 0.802);\n --grass-6: color(display-p3 0.733 0.864 0.724);\n --grass-7: color(display-p3 0.628 0.803 0.622);\n --grass-8: color(display-p3 0.477 0.72 0.482);\n --grass-9: color(display-p3 0.38 0.647 0.378);\n --grass-10: color(display-p3 0.344 0.598 0.342);\n --grass-11: color(display-p3 0.263 0.488 0.261);\n --grass-12: color(display-p3 0.151 0.233 0.153);\n }\n }\n}\n\n:root, .light, .light-theme {\n --cyan-1: #fafdfe;\n --cyan-2: #f2fafb;\n --cyan-3: #def7f9;\n --cyan-4: #caf1f6;\n --cyan-5: #b5e9f0;\n --cyan-6: #9ddde7;\n --cyan-7: #7dcedc;\n --cyan-8: #3db9cf;\n --cyan-9: #00a2c7;\n --cyan-10: #0797b9;\n --cyan-11: #107d98;\n --cyan-12: #0d3c48;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --cyan-1: color(display-p3 0.982 0.992 0.996);\n --cyan-2: color(display-p3 0.955 0.981 0.984);\n --cyan-3: color(display-p3 0.888 0.965 0.975);\n --cyan-4: color(display-p3 0.821 0.941 0.959);\n --cyan-5: color(display-p3 0.751 0.907 0.935);\n --cyan-6: color(display-p3 0.671 0.862 0.9);\n --cyan-7: color(display-p3 0.564 0.8 0.854);\n --cyan-8: color(display-p3 0.388 0.715 0.798);\n --cyan-9: color(display-p3 0.282 0.627 0.765);\n --cyan-10: color(display-p3 0.264 0.583 0.71);\n --cyan-11: color(display-p3 0.08 0.48 0.63);\n --cyan-12: color(display-p3 0.108 0.232 0.277);\n }\n }\n}\n\n:root, .light, .light-theme {\n --amber-1: #fefdfb;\n --amber-2: #fefbe9;\n --amber-3: #fff7c2;\n --amber-4: #ffee9c;\n --amber-5: #fbe577;\n --amber-6: #f3d673;\n --amber-7: #e9c162;\n --amber-8: #e2a336;\n --amber-9: #ffc53d;\n --amber-10: #ffba18;\n --amber-11: #ab6400;\n --amber-12: #4f3422;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --amber-1: color(display-p3 0.995 0.992 0.985);\n --amber-2: color(display-p3 0.994 0.986 0.921);\n --amber-3: color(display-p3 0.994 0.969 0.782);\n --amber-4: color(display-p3 0.989 0.937 0.65);\n --amber-5: color(display-p3 0.97 0.902 0.527);\n --amber-6: color(display-p3 0.936 0.844 0.506);\n --amber-7: color(display-p3 0.89 0.762 0.443);\n --amber-8: color(display-p3 0.85 0.65 0.3);\n --amber-9: color(display-p3 1 0.77 0.26);\n --amber-10: color(display-p3 0.959 0.741 0.274);\n --amber-11: color(display-p3 0.64 0.4 0);\n --amber-12: color(display-p3 0.294 0.208 0.145);\n }\n }\n}\n\n:root, .light, .light-theme {\n --red-1: #fffcfc;\n --red-2: #fff7f7;\n --red-3: #feebec;\n --red-4: #ffdbdc;\n --red-5: #ffcdce;\n --red-6: #fdbdbe;\n --red-7: #f4a9aa;\n --red-8: #eb8e90;\n --red-9: #e5484d;\n --red-10: #dc3e42;\n --red-11: #ce2c31;\n --red-12: #641723;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --red-1: color(display-p3 0.998 0.989 0.988);\n --red-2: color(display-p3 0.995 0.971 0.971);\n --red-3: color(display-p3 0.985 0.925 0.925);\n --red-4: color(display-p3 0.999 0.866 0.866);\n --red-5: color(display-p3 0.984 0.812 0.811);\n --red-6: color(display-p3 0.955 0.751 0.749);\n --red-7: color(display-p3 0.915 0.675 0.672);\n --red-8: color(display-p3 0.872 0.575 0.572);\n --red-9: color(display-p3 0.83 0.329 0.324);\n --red-10: color(display-p3 0.798 0.294 0.285);\n --red-11: color(display-p3 0.744 0.234 0.222);\n --red-12: color(display-p3 0.36 0.115 0.143);\n }\n }\n}\n\n/** Code mirror */\n\n.mdxeditor .cm-editor {\n --sp-font-mono: var(--font-mono);\n --sp-font-body: var(--font-body);\n padding: var(--sp-space-4) 0;\n }\n\n.mdxeditor .sp-editor .cm-editor {\n padding-bottom: 0;\n }\n\n.mdxeditor .cm-scroller {\n padding: 0 !important;\n }\n\n.mdxeditor .cm-focused {\n outline: none;\n }\n\n.mdxeditor .sp-wrapper {\n overflow: hidden;\n }\n\n.mdxeditor .sp-layout {\n border: none;\n }\n\n.mdxeditor .sp-cm pre {\n white-space: break-spaces;\n word-break: break-word;\n overflow-wrap: anywhere;\n flex-shrink: 1;\n }\n\n/** Diff viewer */\n\n.mdxeditor .cm-mergeView .cm-scroller {\n font-family: var(--font-mono);\n line-height: 1.3rem;\n font-size: var(--text-xs);\n }\n\n/** Diff viewer */\n\n.mdxeditor .cm-sourceView .cm-scroller {\n font-family: var(--font-mono);\n line-height: 1.3rem;\n font-size: var(--text-xs);\n }\n\n.mdxeditor .cm-gutters {\n background: transparent;\n font-size: var(--text-xxs);\n }\n\n.mdxeditor .cm-activeLine {\n background: transparent;\n }\n\n.mdxeditor .cm-tooltip-autocomplete {\n background: var(--baseBgSubtle);\n }\n\n.mdxeditor hr.selected[data-lexical-decorator=true] {\n outline: 2px solid highlight;\n }\n._editorRoot_1e2ox_53 {\n --accentBase: var(--blue-1);\n --accentBgSubtle: var(--blue-2);\n --accentBg: var(--blue-3);\n --accentBgHover: var(--blue-4);\n --accentBgActive: var(--blue-5);\n --accentLine: var(--blue-6);\n --accentBorder: var(--blue-7);\n --accentBorderHover: var(--blue-8);\n --accentSolid: var(--blue-9);\n --accentSolidHover: var(--blue-10);\n --accentText: var(--blue-11);\n --accentTextContrast: var(--blue-12);\n\n --basePageBg: white;\n --baseBase: var(--slate-1);\n --baseBgSubtle: var(--slate-2);\n --baseBg: var(--slate-3);\n --baseBgHover: var(--slate-4);\n --baseBgActive: var(--slate-5);\n --baseLine: var(--slate-6);\n --baseBorder: var(--slate-7);\n --baseBorderHover: var(--slate-8);\n --baseSolid: var(--slate-9);\n --baseSolidHover: var(--slate-10);\n --baseText: var(--slate-11);\n --baseTextContrast: var(--slate-12);\n\n --admonitionTipBg: var(--cyan-4);\n --admonitionTipBorder: var(--cyan-8);\n\n --admonitionInfoBg: var(--grass-4);\n --admonitionInfoBorder: var(--grass-8);\n\n --admonitionCautionBg: var(--amber-4);\n --admonitionCautionBorder: var(--amber-8);\n\n --admonitionDangerBg: var(--red-4);\n --admonitionDangerBorder: var(--red-8);\n\n --admonitionNoteBg: var(--slate-4);\n --admonitionNoteBorder: var(--slate-8);\n\n --error-color: var(--red-10);\n\n --spacing-0: 0px;\n --spacing-px: 1px;\n --spacing-0_5: 0.125rem;\n --spacing-1: 0.25rem;\n --spacing-1_5: 0.375rem;\n --spacing-2: 0.5rem;\n --spacing-2_5: 0.625rem;\n --spacing-3: 0.75rem;\n --spacing-3_5: 0.875rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-7: 1.75rem;\n --spacing-8: 2rem;\n --spacing-9: 2.25rem;\n --spacing-10: 2.5rem;\n --spacing-11: 2.75rem;\n --spacing-12: 3rem;\n --spacing-14: 3.5rem;\n --spacing-16: 4rem;\n --spacing-20: 5rem;\n --spacing-24: 6rem;\n --spacing-28: 7rem;\n --spacing-32: 8rem;\n --spacing-36: 9rem;\n --spacing-40: 10rem;\n --spacing-44: 11rem;\n --spacing-48: 12rem;\n --spacing-52: 13rem;\n --spacing-56: 14rem;\n --spacing-60: 15rem;\n --spacing-64: 16rem;\n --spacing-72: 18rem;\n --spacing-80: 20rem;\n --spacing-96: 24rem;\n\n --radius-none: 0px;\n --radius-small: var(--spacing-0_5);\n --radius-base: var(--spacing-1);\n --radius-medium: var(--spacing-1_5);\n --radius-large: var(--spacing-2);\n --radius-extra-large: var(--spacing-3);\n --radius-full: 9999px;\n\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue',\n sans-serif;\n\n --text-base: 1rem;\n --text-sm: 0.875rem;\n --text-xs: 0.75rem;\n --text-xxs: 0.6rem;\n\n font-family: var(--font-body);\n color: var(--baseText);\n}\n\n._editorWrapper_1e2ox_155 {\n}\n\n._nestedListItem_1e2ox_158 {\n list-style: none;\n}\n\n._toolbarRoot_1e2ox_162 {\n z-index: 2;\n display: flex;\n flex-direction: row;\n gap: var(--spacing-1);\n border-radius: var(--radius-medium);\n padding: var(--spacing-1_5);\n align-items: center;\n overflow-x: auto;\n position: sticky;\n top: 0;\n background-color: var(--baseBg);\n width: inherit;\n}\n\n._toolbarRoot_1e2ox_162 div[role='separator'] {\n margin: var(--spacing-2) var(--spacing-1);\n border-left: 1px solid var(--baseBorder);\n border-right: 1px solid var(--baseBase);\n height: var(--spacing-4);\n }\n\n._toolbarRoot_1e2ox_162 svg {\n color: var(--baseTextContrast);\n display: block;\n }\n\n._readOnlyToolbarRoot_1e2ox_189 {\n pointer-events: none;\n background: var(--baseBase);\n}\n\n._readOnlyToolbarRoot_1e2ox_189 > div {\n opacity: 0.5;\n }\n\n._toolbarModeSwitch_1e2ox_198 {\n opacity: 1 !important;\n margin-left: auto;\n align-self: stretch;\n align-items: stretch;\n display: flex;\n border: 1px solid var(--baseBg);\n border-radius: var(--radius-medium);\n font-size: var(--text-xs);\n}\n\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208 {\n padding-inline-end: var(--spacing-4);\n padding-inline-start: var(--spacing-4);\n }\n\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:active,\n ._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208[data-state='on'] {\n background-color: var(--baseBorder);\n }\n\n._toolbarGroupOfGroups_1e2ox_219 {\n display: flex;\n margin: 0 var(--spacing-1);\n}\n\n._toolbarToggleSingleGroup_1e2ox_224:first-of-type ._toolbarToggleItem_1e2ox_208:only-child,\n._toolbarToggleSingleGroup_1e2ox_224:only-child ._toolbarToggleItem_1e2ox_208:first-child,\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:first-child {\n border-top-left-radius: var(--radius-base);\n border-bottom-left-radius: var(--radius-base);\n}\n\n._toolbarToggleSingleGroup_1e2ox_224:last-of-type ._toolbarToggleItem_1e2ox_208:only-child,\n._toolbarToggleSingleGroup_1e2ox_224:only-child ._toolbarToggleItem_1e2ox_208:last-child,\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:last-child {\n border-top-right-radius: var(--radius-base);\n border-bottom-right-radius: var(--radius-base);\n}\n\n._toolbarToggleItem_1e2ox_208,\n._toolbarButton_1e2ox_239 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-0_5);\n}\n\n@media (hover: hover) {\n ._toolbarToggleItem_1e2ox_208:hover, ._toolbarButton_1e2ox_239:hover {\n background-color: var(--baseBgActive);\n }\n }\n\n._toolbarToggleItem_1e2ox_208:active svg, ._toolbarButton_1e2ox_239:active svg {\n transform: translate(1px, 1px);\n }\n\n._toolbarToggleItem_1e2ox_208[data-state='on'],\n ._toolbarButton_1e2ox_239[data-state='on'],\n ._toolbarToggleItem_1e2ox_208:active,\n ._toolbarButton_1e2ox_239:active {\n color: var(--baseTextContrast);\n background-color: var(--baseBgActive);\n }\n\n._toolbarToggleItem_1e2ox_208[data-disabled], ._toolbarButton_1e2ox_239[data-disabled] {\n pointer-events: none;\n }\n\n._toolbarToggleItem_1e2ox_208[data-disabled] svg, ._toolbarButton_1e2ox_239[data-disabled] svg {\n color: var(--baseBorderHover);\n }\n\n._toolbarButton_1e2ox_239 {\n border-radius: var(--radius-base);\n}\n\n._toolbarButton_1e2ox_239 + ._toolbarButton_1e2ox_239 {\n margin-left: var(--spacing-1);\n}\n\n._activeToolbarButton_1e2ox_275 {\n color: var(--accentText);\n}\n\n._toolbarToggleSingleGroup_1e2ox_224 {\n display: flex;\n align-items: center;\n white-space: nowrap;\n}\n\n._toolbarNodeKindSelectContainer_1e2ox_285,\n._toolbarButtonDropdownContainer_1e2ox_286,\n._toolbarCodeBlockLanguageSelectContent_1e2ox_287,\n._selectContainer_1e2ox_288 {\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\n z-index: 3;\n width: var(--spacing-36);\n border-bottom-left-radius: var(--radius-base);\n border-bottom-right-radius: var(--radius-base);\n background-color: var(--basePageBg);\n font-size: var(--text-sm);\n}\n\n._toolbarButtonDropdownContainer_1e2ox_286 {\n border-top-right-radius: var(--radius-base);\n}\n\n._toolbarButtonDropdownContainer_1e2ox_286 ._selectItem_1e2ox_301:first-child {\n border-top-right-radius: var(--radius-base);\n }\n\n._toolbarNodeKindSelectTrigger_1e2ox_306,\n._toolbarButtonSelectTrigger_1e2ox_307,\n._selectTrigger_1e2ox_308 {\n border: 0;\n background-color: transparent;\n display: flex;\n color: inherit;\n align-items: center;\n width: var(--spacing-36);\n padding: var(--spacing-0_5) var(--spacing-1);\n padding-inline-start: var(--spacing-2);\n border-radius: var(--radius-medium);\n white-space: nowrap;\n flex-wrap: nowrap;\n font-size: var(--text-sm);\n background-color: var(--basePageBg);\n margin: 0 var(--spacing-1);\n}\n\n._toolbarNodeKindSelectTrigger_1e2ox_306[data-state='open'], ._toolbarButtonSelectTrigger_1e2ox_307[data-state='open'], ._selectTrigger_1e2ox_308[data-state='open'] {\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\n border-bottom-right-radius: var(--radius-none);\n border-bottom-left-radius: var(--radius-none);\n }\n\n._selectTrigger_1e2ox_308[data-placeholder] > span:first-child {\n color: var(--baseBorderHover);\n}\n\n/** used in the sandpack */\n._toolbarButtonSelectTrigger_1e2ox_307 {\n width: auto;\n padding-inline-start: var(--spacing-2);\n padding-inline-end: var(--spacing-1);\n padding-block: var(--spacing-0_5);\n}\n\n._toolbarCodeBlockLanguageSelectTrigger_1e2ox_343,\n._toolbarCodeBlockLanguageSelectContent_1e2ox_287 {\n width: var(--spacing-48);\n}\n\n._toolbarNodeKindSelectItem_1e2ox_348,\n._selectItem_1e2ox_301 {\n cursor: default;\n display: flex;\n padding: var(--spacing-2);\n}\n\n._toolbarNodeKindSelectItem_1e2ox_348[data-highlighted], ._selectItem_1e2ox_301[data-highlighted] {\n background-color: var(--baseBg);\n }\n\n._toolbarNodeKindSelectItem_1e2ox_348[data-state='checked'], ._selectItem_1e2ox_301[data-state='checked'] {\n color: var(--baseTextContrast);\n background-color: var(--baseBg);\n }\n\n._toolbarNodeKindSelectItem_1e2ox_348[data-highlighted], ._selectItem_1e2ox_301[data-highlighted] {\n outline: none;\n }\n\n._toolbarNodeKindSelectItem_1e2ox_348:last-child, ._selectItem_1e2ox_301:last-child {\n border-bottom-left-radius: var(--radius-base);\n border-bottom-right-radius: var(--radius-base);\n }\n\n._toolbarNodeKindSelectDropdownArrow_1e2ox_373,\n._selectDropdownArrow_1e2ox_374 {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n._contentEditable_1e2ox_380 {\n box-sizing: border-box;\n width: 100%;\n color: var(--baseTextContrast);\n\n padding: var(--spacing-3);\n}\n\n._contentEditable_1e2ox_380:focus {\n outline: none;\n }\n\n._codeMirrorWrapper_1e2ox_392 {\n margin-bottom: var(--spacing-5);\n border: 1px solid var(--baseLine);\n border-radius: var(--radius-medium);\n overflow: hidden;\n padding: 0.8rem;\n position: relative;\n}\n\n._sandPackWrapper_1e2ox_401 {\n margin-bottom: var(--spacing-5);\n border: 1px solid var(--baseLine);\n border-radius: var(--radius-medium);\n overflow: hidden;\n position: relative;\n}\n\n._codeMirrorToolbar_1e2ox_409 {\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n gap: var(--spacing-1);\n padding: var(--spacing-1);\n z-index: 1;\n background-color: var(--baseBase);\n border-bottom-left-radius: var(--radius-base);\n}\n\n._frontmatterWrapper_1e2ox_413 {\n border-radius: var(--radius-medium);\n padding: var(--spacing-3);\n background-color: var(--baseBgSubtle);\n}\n\n._frontmatterWrapper_1e2ox_413[data-expanded='true'] {\n margin-bottom: var(--spacing-10);\n }\n\n._frontmatterToggleButton_1e2ox_423 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n display: flex;\n align-items: center;\n gap: var(--spacing-1);\n font-size: var(--text-sm);\n}\n\n._propertyPanelTitle_1e2ox_431 {\n font-size: var(--text-xs);\n font-weight: 400;\n margin: 0;\n padding-top: var(--spacing-2);\n padding-left: var(--spacing-2);\n}\n\n._propertyEditorTable_1e2ox_439 {\n table-layout: fixed;\n border-spacing: var(--spacing-2);\n}\n\n._propertyEditorTable_1e2ox_439 th {\n text-align: left;\n font-size: var(--text-sm);\n padding: var(--spacing-2) var(--spacing-3);\n }\n\n._propertyEditorTable_1e2ox_439 col:nth-child(1) {\n width: 30%;\n }\n\n._propertyEditorTable_1e2ox_439 col:nth-child(2) {\n width: 70%;\n }\n\n._propertyEditorTable_1e2ox_439 td:last-child ._iconButton_1e2ox_457 {\n margin-left: var(--spacing-4);\n margin-right: var(--spacing-4);\n }\n\n._propertyEditorTable_1e2ox_439 ._readOnlyColumnCell_1e2ox_462 {\n padding-left: 0;\n }\n\n._propertyEditorLabelCell_1e2ox_467 {\n font-weight: 400;\n}\n\n._readOnlyColumnCell_1e2ox_462 {\n padding-left: 0;\n}\n\n._buttonsFooter_1e2ox_475 {\n display: flex;\n justify-content: flex-end;\n gap: var(--spacing-2);\n}\n\n._propertyEditorInput_1e2ox_481 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n width: 100%;\n padding: var(--spacing-2) var(--spacing-3);\n border-radius: var(--radius-base);\n border: 1px solid var(--baseBorder);\n background-color: var(--baseBase);\n font-size: var(--text-sm);\n}\n\n._iconButton_1e2ox_457 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n color: var(--baseText);\n}\n\n@media (hover: hover) {\n ._iconButton_1e2ox_457:hover {\n color: var(--baseTextContrast);\n }\n }\n\n._iconButton_1e2ox_457:disabled,\n ._iconButton_1e2ox_457:disabled:hover {\n color: var(--baseLine);\n }\n\n._primaryButton_1e2ox_507,\n._secondaryButton_1e2ox_508 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-2) var(--spacing-3);\n border: 1px solid var(--accentBorder);\n background-color: var(--accentSolidHover);\n color: var(--baseBase);\n font-size: var(--text-xs);\n border-radius: var(--radius-medium);\n}\n\n._primaryButton_1e2ox_507:disabled, ._secondaryButton_1e2ox_508:disabled {\n background: var(--accentLine);\n border-color: var(--accentBg);\n }\n\n._smallButton_1e2ox_523 {\n font-size: var(--text-xs);\n padding: var(--spacing-1) var(--spacing-2);\n border-radius: var(--radius-base);\n}\n\n._secondaryButton_1e2ox_508 {\n border: 1px solid var(--baseBorder);\n background-color: var(--baseSolidHover);\n color: var(--baseBase);\n}\n\n._dialogForm_1e2ox_535 {\n display: flex;\n flex-direction: row;\n gap: var(--spacing-2);\n}\n\n._linkDialogEditForm_1e2ox_541 {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-2);\n padding: 0;\n}\n\n._linkDialogInputContainer_1e2ox_549 {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n._linkDialogInputWrapper_1e2ox_555 {\n display: flex;\n align-items: center;\n background-color: var(--baseBase);\n\n border-radius: var(--radius-base);\n border: 1px solid var(--baseBorder);\n}\n\n._linkDialogInputWrapper_1e2ox_555[data-visible-dropdown='true'] {\n border-bottom-left-radius: var(--radius-none);\n border-bottom-right-radius: var(--radius-none);\n border-bottom-width: 0;\n }\n\n._linkDialogInputWrapper_1e2ox_555 > button {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding-right: var(--spacing-2);\n }\n\n._linkDialogInput_1e2ox_549,\n._dialogInput_1e2ox_576 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n width: 20rem;\n padding: var(--spacing-2) var(--spacing-3);\n font-size: var(--text-sm);\n}\n\n._linkDialogInput_1e2ox_549::-moz-placeholder, ._dialogInput_1e2ox_576::-moz-placeholder {\n color: var(--baseBorder);\n }\n\n._linkDialogInput_1e2ox_549::placeholder, ._dialogInput_1e2ox_576::placeholder {\n color: var(--baseBorder);\n }\n\n._linkDialogAnchor_1e2ox_587 {\n position: fixed;\n background-color: highlight;\n z-index: -1;\n}\n\n._linkDialogAnchor_1e2ox_587[data-visible='true'] {\n visibility: visible;\n }\n\n._linkDialogAnchor_1e2ox_587[data-visible='false'] {\n visibility: hidden;\n }\n\n._linkDialogPopoverContent_1e2ox_601,\n._tableColumnEditorPopoverContent_1e2ox_602,\n._dialogContent_1e2ox_603 {\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\n display: flex;\n align-items: center;\n gap: var(--spacing-0_5);\n border-radius: var(--radius-medium);\n border: 1px solid var(--baseBg);\n background-color: var(--basePageBg);\n padding: var(--spacing-1) var(--spacing-1);\n font-size: var(--text-sm);\n}\n\n._largeDialogContent_1e2ox_615 {\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\n gap: var(--spacing-0_5);\n border-radius: var(--radius-medium);\n border: 1px solid var(--baseBorder);\n background-color: var(--baseBgSubtle);\n padding: var(--spacing-4);\n font-size: var(--text-sm);\n}\n\n._dialogTitle_1e2ox_625 {\n font-size: var(--text-base);\n font-weight: 600;\n padding-left: var(--spacing-2);\n}\n\n._dialogCloseButton_1e2ox_631 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n._popoverContent_1e2ox_638 {\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\n display: flex;\n align-items: center;\n gap: var(--spacing-0_5);\n border-radius: var(--radius-medium);\n background-color: var(--baseBgSubtle);\n padding: var(--spacing-2) var(--spacing-2);\n font-size: var(--text-sm);\n z-index: 1;\n}\n\n._popoverArrow_1e2ox_650 {\n fill: var(--basePageBg);\n}\n\n._linkDialogPreviewAnchor_1e2ox_654 {\n margin-right: var(--spacing-1);\n display: flex;\n align-items: center;\n color: var(--accentText);\n text-decoration: none;\n\n border: 1px solid transparent;\n}\n\n@media (hover: hover) {\n ._linkDialogPreviewAnchor_1e2ox_654:hover {\n color: var(--accentSolidHover);\n }\n }\n\n._linkDialogPreviewAnchor_1e2ox_654 span {\n max-width: 14rem;\n overflow-x: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n._tooltipTrigger_1e2ox_677 {\n align-self: center;\n}\n\n._tooltipContent_1e2ox_681 {\n z-index: 2;\n position: relative;\n border-radius: var(--radius-medium);\n padding: var(--spacing-1) var(--spacing-2);\n font-size: var(--text-xs);\n background-color: var(--baseText);\n color: var(--baseBase);\n}\n\n._tooltipContent_1e2ox_681 svg {\n fill: var(--baseText);\n }\n\n._actionButton_1e2ox_695 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-1);\n color: var(--baseTextContrast);\n padding: var(--spacing-1) var(--spacing-1);\n border-radius: var(--radius-medium);\n color: var(--baseTextContrast);\n}\n\n._actionButton_1e2ox_695 svg {\n display: block;\n }\n\n@media (hover: hover) {\n ._actionButton_1e2ox_695:hover {\n background-color: var(--baseBg);\n }\n }\n\n._actionButton_1e2ox_695:active svg {\n transform: translate(1px, 1px);\n }\n\n._actionButton_1e2ox_695[data-state='on'],\n ._actionButton_1e2ox_695:active {\n background-color: var(--baseBg);\n color: var(--baseTextContrast);\n }\n\n._primaryActionButton_1e2ox_702 {\n background-color: var(--accentSolid);\n color: var(--baseBase);\n}\n\n@media (hover: hover) {\n ._primaryActionButton_1e2ox_702:hover {\n background-color: var(--accentSolidHover);\n color: var(--baseBase);\n }\n }\n\n._tableEditor_1e2ox_714 {\n table-layout: fixed;\n width: 100%;\n height: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n}\n\n._tableEditor_1e2ox_714 thead > tr > th {\n text-align: right;\n }\n\n._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),\n ._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true']) {\n border: 1px solid var(--baseBgActive);\n padding: var(--spacing-1) var(--spacing-2);\n white-space: normal;\n }\n\n:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) > div {\n outline: none;\n }\n\n:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) > div > p {\n margin: 0;\n }\n\n[data-active='true']:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) {\n outline: solid 1px var(--baseSolid);\n }\n\n._tableEditor_1e2ox_714 ._tableColumnEditorTrigger_1e2ox_744,\n ._tableEditor_1e2ox_714 ._tableRowEditorTrigger_1e2ox_745,\n ._tableEditor_1e2ox_714 ._addRowButton_1e2ox_746,\n ._tableEditor_1e2ox_714 ._addColumnButton_1e2ox_747,\n ._tableEditor_1e2ox_714 ._iconButton_1e2ox_457 {\n opacity: 0.15;\n }\n\n@media (hover: hover) {\n ._tableEditor_1e2ox_714:hover ._tableColumnEditorTrigger_1e2ox_744,\n ._tableEditor_1e2ox_714:hover ._tableRowEditorTrigger_1e2ox_745,\n ._tableEditor_1e2ox_714:hover ._addRowButton_1e2ox_746,\n ._tableEditor_1e2ox_714:hover ._addColumnButton_1e2ox_747,\n ._tableEditor_1e2ox_714:hover ._iconButton_1e2ox_457 {\n opacity: 0.3;\n }\n\n ._tableEditor_1e2ox_714:hover ._tableColumnEditorTrigger_1e2ox_744:hover, ._tableEditor_1e2ox_714:hover ._tableRowEditorTrigger_1e2ox_745:hover, ._tableEditor_1e2ox_714:hover ._addRowButton_1e2ox_746:hover, ._tableEditor_1e2ox_714:hover ._addColumnButton_1e2ox_747:hover, ._tableEditor_1e2ox_714:hover ._iconButton_1e2ox_457:hover {\n opacity: 1;\n }\n }\n\n._toolCell_1e2ox_725 {\n text-align: right;\n}\n\n._toolCell_1e2ox_725 button {\n margin: auto;\n display: block;\n }\n\n._tableColumnEditorTrigger_1e2ox_744 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-1);\n color: var(--baseTextContrast);\n padding: var(--spacing-1);\n border-radius: var(--radius-full);\n opacity: 0.2;\n}\n\n._tableColumnEditorTrigger_1e2ox_744 svg {\n display: block;\n }\n\n@media (hover: hover) {\n ._tableColumnEditorTrigger_1e2ox_744:hover {\n background-color: var(--baseBg);\n }\n }\n\n._tableColumnEditorTrigger_1e2ox_744:active svg {\n transform: translate(1px, 1px);\n }\n\n._tableColumnEditorTrigger_1e2ox_744[data-state='on'],\n ._tableColumnEditorTrigger_1e2ox_744:active {\n background-color: var(--baseBg);\n color: var(--baseTextContrast);\n }\n\n._tableColumnEditorTrigger_1e2ox_744[data-active='true'] {\n opacity: 1 !important;\n }\n\n._tableColumnEditorToolbar_1e2ox_789 {\n display: flex;\n}\n\n._tableColumnEditorToolbar_1e2ox_789 > button {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-1);\n color: var(--baseTextContrast);\n }\n\n._tableColumnEditorToolbar_1e2ox_789 > button svg {\n display: block;\n }\n\n@media (hover: hover) {\n ._tableColumnEditorToolbar_1e2ox_789 > button:hover {\n background-color: var(--baseBg);\n }\n }\n\n._tableColumnEditorToolbar_1e2ox_789 > button:active svg {\n transform: translate(1px, 1px);\n }\n\n._tableColumnEditorToolbar_1e2ox_789 > button[data-state='on'],\n ._tableColumnEditorToolbar_1e2ox_789 > button:active {\n background-color: var(--baseBg);\n color: var(--baseTextContrast);\n }\n\n._tableColumnEditorToolbar_1e2ox_789 [role='separator'] {\n margin-left: var(--spacing-1);\n margin-right: var(--spacing-1);\n }\n\n._toggleGroupRoot_1e2ox_802 {\n display: inline-flex;\n}\n\n._toggleGroupRoot_1e2ox_802 button {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-1);\n color: var(--baseTextContrast);\n }\n\n._toggleGroupRoot_1e2ox_802 button svg {\n display: block;\n }\n\n@media (hover: hover) {\n ._toggleGroupRoot_1e2ox_802 button:hover {\n background-color: var(--baseBg);\n }\n }\n\n._toggleGroupRoot_1e2ox_802 button:active svg {\n transform: translate(1px, 1px);\n }\n\n._toggleGroupRoot_1e2ox_802 button[data-state='on'],\n ._toggleGroupRoot_1e2ox_802 button:active {\n background-color: var(--baseBg);\n color: var(--baseTextContrast);\n }\n\n._toggleGroupRoot_1e2ox_802 button:first-child {\n border-top-left-radius: var(--radius-base);\n border-bottom-left-radius: var(--radius-base);\n }\n\n._toggleGroupRoot_1e2ox_802 button:last-child {\n border-top-right-radius: var(--radius-base);\n border-bottom-right-radius: var(--radius-base);\n }\n\n._tableToolsColumn_1e2ox_820 {\n width: 2rem;\n}\n\n._tableToolsColumn_1e2ox_820 button {\n margin: auto;\n display: block;\n }\n\n._leftAlignedCell_1e2ox_829 {\n text-align: left;\n}\n\n._rightAlignedCell_1e2ox_833 {\n text-align: right;\n}\n\n._centeredCell_1e2ox_837 {\n text-align: center;\n}\n\n._addColumnButton_1e2ox_747,\n._addRowButton_1e2ox_746 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding: var(--spacing-1);\n color: var(--baseTextContrast);\n background-color: var(--baseBase);\n\n display: flex;\n align-items: center;\n}\n\n._addColumnButton_1e2ox_747 svg, ._addRowButton_1e2ox_746 svg {\n display: block;\n }\n\n@media (hover: hover) {\n ._addColumnButton_1e2ox_747:hover, ._addRowButton_1e2ox_746:hover {\n background-color: var(--baseBg);\n }\n }\n\n._addColumnButton_1e2ox_747:active svg, ._addRowButton_1e2ox_746:active svg {\n transform: translate(1px, 1px);\n }\n\n._addColumnButton_1e2ox_747[data-state='on'],\n ._addRowButton_1e2ox_746[data-state='on'],\n ._addColumnButton_1e2ox_747:active,\n ._addRowButton_1e2ox_746:active {\n background-color: var(--baseBg);\n color: var(--baseTextContrast);\n }\n\n._addColumnButton_1e2ox_747 svg, ._addRowButton_1e2ox_746 svg {\n margin: auto;\n }\n\n._addRowButton_1e2ox_746 {\n width: 100%;\n margin-top: var(--spacing-px);\n box-sizing: border-box;\n border-bottom-right-radius: var(--radius-medium);\n border-bottom-left-radius: var(--radius-medium);\n}\n\n._addColumnButton_1e2ox_747 {\n margin-left: var(--spacing-px);\n height: 100%;\n border-top-right-radius: var(--radius-medium);\n border-bottom-right-radius: var(--radius-medium);\n}\n\n/** Dialog */\n._dialogOverlay_1e2ox_870 {\n position: fixed;\n inset: 0;\n animation: _overlayShow_1e2ox_1 150ms cubic-bezier(0.16, 1, 0.3, 1);\n background-color: var(--baseBase);\n z-index: 51;\n opacity: 0.5;\n}\n\n._dialogContent_1e2ox_603,\n._largeDialogContent_1e2ox_615 {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n animation: _contentShow_1e2ox_1 150ms cubic-bezier(0.16, 1, 0.3, 1);\n z-index: 52;\n}\n\n._dialogContent_1e2ox_603:focus,\n._largeDialogContent_1e2ox_615:focus {\n outline: none;\n}\n\n@keyframes _overlayShow_1e2ox_1 {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 0.5;\n }\n}\n\n@keyframes _contentShow_1e2ox_1 {\n from {\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n }\n\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n._focusedImage_1e2ox_916 {\n outline: highlight solid 2px;\n}\n\n._imageWrapper_1e2ox_920 {\n display: inline-block;\n position: relative;\n}\n\n._imageWrapper_1e2ox_920[draggable='true'] {\n cursor: move;\n /* fallback if grab cursor is unsupported */\n cursor: grab;\n cursor: -webkit-grab;\n}\n\n._editImageToolbar_1e2ox_933 {\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n gap: var(--spacing-1);\n padding: var(--spacing-1);\n z-index: 1;\n background-color: var(--baseBase);\n border-bottom-left-radius: var(--radius-base);\n}\n\n._editImageButton_1e2ox_937 svg {\n display: block;\n }\n\n._inlineEditor_1e2ox_943 {\n display: inline-flex;\n border-radius: var(--radius-medium);\n padding: var(--spacing-1);\n gap: var(--spacing-2);\n align-items: center;\n background: var(--baseBg);\n}\n\n._blockEditor_1e2ox_952 {\n display: flex;\n justify-content: stretch;\n border-radius: var(--radius-medium);\n padding: var(--spacing-2);\n gap: var(--spacing-2);\n align-items: center;\n background: var(--baseBg);\n}\n\n._blockEditor_1e2ox_952 ._nestedEditor_1e2ox_961 {\n flex-grow: 1;\n }\n\n._nestedEditor_1e2ox_961 {\n background: var(--basePageBg);\n padding: var(--spacing-1) var(--spacing-2);\n border-radius: var(--radius-medium);\n}\n\n._nestedEditor_1e2ox_961 > p {\n margin: 0;\n }\n\n._nestedEditor_1e2ox_961:focus {\n outline: none;\n }\n\n._genericComponentName_1e2ox_980 {\n font-size: var(--text-sm);\n color: var(--baseText);\n padding-right: var(--spacing-2);\n}\n\n._diffSourceToggleWrapper_1e2ox_986 {\n margin-left: auto;\n pointer-events: auto;\n opacity: 1;\n position: sticky;\n right: 0;\n}\n\n._ggDiffSourceToggle_1e2ox_994 {\n}\n\n._diffSourceToggle_1e2ox_986 {\n border-radius: var(--radius-medium);\n background-color: var(--baseBase);\n display: flex;\n}\n\n._diffSourceToggle_1e2ox_986 ._toolbarToggleItem_1e2ox_208 {\n padding: 0;\n }\n\n._diffSourceToggle_1e2ox_986 ._toolbarToggleItem_1e2ox_208 > span {\n display: block;\n padding: var(--spacing-1) var(--spacing-1);\n }\n\n._selectWithLabel_1e2ox_1012 {\n display: flex;\n align-items: center;\n gap: var(--spacing-2);\n margin-left: var(--spacing-2);\n}\n\n._selectWithLabel_1e2ox_1012 > label {\n font-size: var(--text-sm);\n }\n\n._selectWithLabel_1e2ox_1012 ._selectTrigger_1e2ox_308 {\n border: 1px solid var(--baseBorder);\n }\n\n._toolbarTitleMode_1e2ox_1027 {\n font-size: var(--text-sm);\n margin-left: var(--spacing-2);\n}\n\n._imageControlWrapperResizing_1e2ox_1032 {\n touch-action: none;\n}\n\n._imageResizer_1e2ox_1036 {\n display: block;\n width: 7px;\n height: 7px;\n position: absolute;\n background-color: var(--accentText);\n border: 1px solid var(--baseBg);\n}\n\n._imageResizer_1e2ox_1036._imageResizerN_1e2ox_1045 {\n top: -6px;\n left: 48%;\n cursor: n-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerNe_1e2ox_1051 {\n top: -6px;\n right: -6px;\n cursor: ne-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerE_1e2ox_1057 {\n bottom: 48%;\n right: -6px;\n cursor: e-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerSe_1e2ox_1063 {\n bottom: -2px;\n right: -6px;\n cursor: nwse-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerS_1e2ox_1063 {\n bottom: -2px;\n left: 48%;\n cursor: s-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerSw_1e2ox_1075 {\n bottom: -2px;\n left: -6px;\n cursor: sw-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerW_1e2ox_1081 {\n bottom: 48%;\n left: -6px;\n cursor: w-resize;\n}\n\n._imageResizer_1e2ox_1036._imageResizerNw_1e2ox_1087 {\n top: -6px;\n left: -6px;\n cursor: nw-resize;\n}\n\n._imagePlaceholder_1e2ox_1093 {\n border: 2px dashed;\n padding: 48px;\n margin: 12px;\n width: -moz-fit-content;\n width: fit-content;\n height: -moz-fit-content;\n height: fit-content;\n}\n\n._imageDimensionsContainer_1e2ox_1101 {\n display: flex;\n gap: var(--spacing-4);\n}\n\n._placeholder_1e2ox_1106 {\n color: var(--baseSolid);\n overflow: hidden;\n position: absolute;\n top: 0;\n padding: var(--spacing-3);\n text-overflow: ellipsis;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n display: inline-block;\n pointer-events: none;\n}\n\n._rootContentEditableWrapper_1e2ox_1119 {\n position: relative;\n}\n\n._downshiftContainer_1e2ox_1123 {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n._downshiftInputWrapper_1e2ox_1129 {\n display: flex;\n align-items: center;\n background-color: var(--baseBase);\n\n border-radius: var(--radius-base);\n border: 1px solid var(--baseBorder);\n}\n\n._downshiftInputWrapper_1e2ox_1129[data-visible-dropdown='true'] {\n border-bottom-left-radius: var(--radius-none);\n border-bottom-right-radius: var(--radius-none);\n border-bottom-width: 0;\n }\n\n._downshiftInputWrapper_1e2ox_1129 > button {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n padding-right: var(--spacing-2);\n }\n\n._downshiftInput_1e2ox_1129 {\n border: 0;\n background-color: transparent;\n font-size: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n all: unset;\n box-sizing: border-box;\n cursor: default;\n width: 20rem;\n padding: var(--spacing-2) var(--spacing-3);\n font-size: var(--text-sm);\n}\n\n._downshiftInput_1e2ox_1129::-moz-placeholder {\n color: var(--baseBorder);\n }\n\n._downshiftInput_1e2ox_1129::placeholder {\n color: var(--baseBorder);\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 {\n position: relative;\n}\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul {\n all: unset;\n box-sizing: border-box;\n position: absolute;\n font-size: var(--text-sm);\n width: 100%;\n display: none;\n border-bottom-left-radius: var(--radius-medium);\n border-bottom-right-radius: var(--radius-medium);\n max-height: var(--spacing-48);\n overflow-x: hidden;\n overflow-y: auto;\n border: 1px solid var(--baseBorder);\n border-top-width: 0;\n background-color: var(--baseBase);\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul[data-visible='true'] {\n display: block;\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul li {\n padding: var(--spacing-2) var(--spacing-3);\n white-space: nowrap;\n margin-bottom: var(--spacing-1);\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul li[data-selected='true'] {\n background-color: var(--baseBgSubtle);\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul li[data-highlighted='true'] {\n background-color: var(--baseBgHover);\n }\n\n._downshiftAutocompleteContainer_1e2ox_1160 ul li:last-of-type {\n border-bottom-left-radius: var(--radius-medium);\n border-bottom-right-radius: var(--radius-medium);\n }\n\n._textInput_1e2ox_1206 {\n all: unset;\n border-radius: var(--radius-base);\n border: 1px solid var(--baseBorder);\n background-color: var(--baseBase);\n padding: var(--spacing-2) var(--spacing-3);\n}\n\nform._multiFieldForm_1e2ox_1214 {\n display: flex;\n flex-direction: column;\n padding: var(--spacing-2);\n gap: var(--spacing-2);\n}\n\nform._multiFieldForm_1e2ox_1214 ._formField_1e2ox_1220 {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-2);\n }\n\nform._multiFieldForm_1e2ox_1214 ._formField_1e2ox_1220 label {\n font-size: var(--text-xs);\n }\n\n._markdownParseError_1e2ox_1231 {\n border-radius: var(--radius-base);\n border: 1px solid var(--error-color);\n padding: var(--spacing-2);\n margin-block: var(--spacing-2);\n color: var(--error-color);\n font-size: var(--text-xs);\n}\n\n._popupContainer_1e2ox_1240 {\n position: relative;\n z-index: 2;\n}\n\n._inputSizer_1e2ox_1245 {\n display: inline-grid;\n vertical-align: baseline;\n align-items: center;\n position: relative;\n}\n\n._inputSizer_1e2ox_1245::after,\n ._inputSizer_1e2ox_1245 input {\n width: auto;\n min-width: 1rem;\n grid-area: 1 / 2;\n font: inherit;\n margin: 0;\n padding: 0 2px;\n resize: none;\n background: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n color: inherit;\n }\n\n._inputSizer_1e2ox_1245 span {\n padding: 0.25em;\n }\n\n._inputSizer_1e2ox_1245::after {\n content: attr(data-value);\n white-space: pre-wrap;\n }\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --blue-1: #fbfdff;\n --blue-2: #f4faff;\n --blue-3: #e6f4fe;\n --blue-4: #d5efff;\n --blue-5: #c2e5ff;\n --blue-6: #acd8fc;\n --blue-7: #8ec8f6;\n --blue-8: #5eb1ef;\n --blue-9: #0090ff;\n --blue-10: #0588f0;\n --blue-11: #0d74ce;\n --blue-12: #113264;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --blue-1: color(display-p3 0.986 0.992 0.999);\n --blue-2: color(display-p3 0.96 0.979 0.998);\n --blue-3: color(display-p3 0.912 0.956 0.991);\n --blue-4: color(display-p3 0.853 0.932 1);\n --blue-5: color(display-p3 0.788 0.894 0.998);\n --blue-6: color(display-p3 0.709 0.843 0.976);\n --blue-7: color(display-p3 0.606 0.777 0.947);\n --blue-8: color(display-p3 0.451 0.688 0.917);\n --blue-9: color(display-p3 0.247 0.556 0.969);\n --blue-10: color(display-p3 0.234 0.523 0.912);\n --blue-11: color(display-p3 0.15 0.44 0.84);\n --blue-12: color(display-p3 0.102 0.193 0.379);\n }\n }\n}\n\n._dark_1tncs_1, ._dark-theme_1tncs_1 {\n --blue-1: #0d1520;\n --blue-2: #111927;\n --blue-3: #0d2847;\n --blue-4: #003362;\n --blue-5: #004074;\n --blue-6: #104d87;\n --blue-7: #205d9e;\n --blue-8: #2870bd;\n --blue-9: #0090ff;\n --blue-10: #3b9eff;\n --blue-11: #70b8ff;\n --blue-12: #c2e6ff;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n ._dark_1tncs_1, ._dark-theme_1tncs_1 {\n --blue-1: color(display-p3 0.057 0.081 0.122);\n --blue-2: color(display-p3 0.072 0.098 0.147);\n --blue-3: color(display-p3 0.078 0.154 0.27);\n --blue-4: color(display-p3 0.033 0.197 0.37);\n --blue-5: color(display-p3 0.08 0.245 0.441);\n --blue-6: color(display-p3 0.14 0.298 0.511);\n --blue-7: color(display-p3 0.195 0.361 0.6);\n --blue-8: color(display-p3 0.239 0.434 0.72);\n --blue-9: color(display-p3 0.247 0.556 0.969);\n --blue-10: color(display-p3 0.344 0.612 0.973);\n --blue-11: color(display-p3 0.49 0.72 1);\n --blue-12: color(display-p3 0.788 0.898 0.99);\n }\n }\n}\n\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --slate-1: #fcfcfd;\n --slate-2: #f9f9fb;\n --slate-3: #f0f0f3;\n --slate-4: #e8e8ec;\n --slate-5: #e0e1e6;\n --slate-6: #d9d9e0;\n --slate-7: #cdced6;\n --slate-8: #b9bbc6;\n --slate-9: #8b8d98;\n --slate-10: #80838d;\n --slate-11: #60646c;\n --slate-12: #1c2024;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --slate-1: color(display-p3 0.988 0.988 0.992);\n --slate-2: color(display-p3 0.976 0.976 0.984);\n --slate-3: color(display-p3 0.94 0.941 0.953);\n --slate-4: color(display-p3 0.908 0.909 0.925);\n --slate-5: color(display-p3 0.88 0.881 0.901);\n --slate-6: color(display-p3 0.85 0.852 0.876);\n --slate-7: color(display-p3 0.805 0.808 0.838);\n --slate-8: color(display-p3 0.727 0.733 0.773);\n --slate-9: color(display-p3 0.547 0.553 0.592);\n --slate-10: color(display-p3 0.503 0.512 0.549);\n --slate-11: color(display-p3 0.379 0.392 0.421);\n --slate-12: color(display-p3 0.113 0.125 0.14);\n }\n }\n}\n\n._dark_1tncs_1, ._dark-theme_1tncs_1 {\n --slate-1: #111113;\n --slate-2: #18191b;\n --slate-3: #212225;\n --slate-4: #272a2d;\n --slate-5: #2e3135;\n --slate-6: #363a3f;\n --slate-7: #43484e;\n --slate-8: #5a6169;\n --slate-9: #696e77;\n --slate-10: #777b84;\n --slate-11: #b0b4ba;\n --slate-12: #edeef0;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n ._dark_1tncs_1, ._dark-theme_1tncs_1 {\n --slate-1: color(display-p3 0.067 0.067 0.074);\n --slate-2: color(display-p3 0.095 0.098 0.105);\n --slate-3: color(display-p3 0.13 0.135 0.145);\n --slate-4: color(display-p3 0.156 0.163 0.176);\n --slate-5: color(display-p3 0.183 0.191 0.206);\n --slate-6: color(display-p3 0.215 0.226 0.244);\n --slate-7: color(display-p3 0.265 0.28 0.302);\n --slate-8: color(display-p3 0.357 0.381 0.409);\n --slate-9: color(display-p3 0.415 0.431 0.463);\n --slate-10: color(display-p3 0.469 0.483 0.514);\n --slate-11: color(display-p3 0.692 0.704 0.728);\n --slate-12: color(display-p3 0.93 0.933 0.94);\n }\n }\n}\n\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --grass-1: #fbfefb;\n --grass-2: #f5fbf5;\n --grass-3: #e9f6e9;\n --grass-4: #daf1db;\n --grass-5: #c9e8ca;\n --grass-6: #b2ddb5;\n --grass-7: #94ce9a;\n --grass-8: #65ba74;\n --grass-9: #46a758;\n --grass-10: #3e9b4f;\n --grass-11: #2a7e3b;\n --grass-12: #203c25;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --grass-1: color(display-p3 0.986 0.996 0.985);\n --grass-2: color(display-p3 0.966 0.983 0.964);\n --grass-3: color(display-p3 0.923 0.965 0.917);\n --grass-4: color(display-p3 0.872 0.94 0.865);\n --grass-5: color(display-p3 0.811 0.908 0.802);\n --grass-6: color(display-p3 0.733 0.864 0.724);\n --grass-7: color(display-p3 0.628 0.803 0.622);\n --grass-8: color(display-p3 0.477 0.72 0.482);\n --grass-9: color(display-p3 0.38 0.647 0.378);\n --grass-10: color(display-p3 0.344 0.598 0.342);\n --grass-11: color(display-p3 0.263 0.488 0.261);\n --grass-12: color(display-p3 0.151 0.233 0.153);\n }\n }\n}\n\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --cyan-1: #fafdfe;\n --cyan-2: #f2fafb;\n --cyan-3: #def7f9;\n --cyan-4: #caf1f6;\n --cyan-5: #b5e9f0;\n --cyan-6: #9ddde7;\n --cyan-7: #7dcedc;\n --cyan-8: #3db9cf;\n --cyan-9: #00a2c7;\n --cyan-10: #0797b9;\n --cyan-11: #107d98;\n --cyan-12: #0d3c48;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --cyan-1: color(display-p3 0.982 0.992 0.996);\n --cyan-2: color(display-p3 0.955 0.981 0.984);\n --cyan-3: color(display-p3 0.888 0.965 0.975);\n --cyan-4: color(display-p3 0.821 0.941 0.959);\n --cyan-5: color(display-p3 0.751 0.907 0.935);\n --cyan-6: color(display-p3 0.671 0.862 0.9);\n --cyan-7: color(display-p3 0.564 0.8 0.854);\n --cyan-8: color(display-p3 0.388 0.715 0.798);\n --cyan-9: color(display-p3 0.282 0.627 0.765);\n --cyan-10: color(display-p3 0.264 0.583 0.71);\n --cyan-11: color(display-p3 0.08 0.48 0.63);\n --cyan-12: color(display-p3 0.108 0.232 0.277);\n }\n }\n}\n\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --amber-1: #fefdfb;\n --amber-2: #fefbe9;\n --amber-3: #fff7c2;\n --amber-4: #ffee9c;\n --amber-5: #fbe577;\n --amber-6: #f3d673;\n --amber-7: #e9c162;\n --amber-8: #e2a336;\n --amber-9: #ffc53d;\n --amber-10: #ffba18;\n --amber-11: #ab6400;\n --amber-12: #4f3422;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --amber-1: color(display-p3 0.995 0.992 0.985);\n --amber-2: color(display-p3 0.994 0.986 0.921);\n --amber-3: color(display-p3 0.994 0.969 0.782);\n --amber-4: color(display-p3 0.989 0.937 0.65);\n --amber-5: color(display-p3 0.97 0.902 0.527);\n --amber-6: color(display-p3 0.936 0.844 0.506);\n --amber-7: color(display-p3 0.89 0.762 0.443);\n --amber-8: color(display-p3 0.85 0.65 0.3);\n --amber-9: color(display-p3 1 0.77 0.26);\n --amber-10: color(display-p3 0.959 0.741 0.274);\n --amber-11: color(display-p3 0.64 0.4 0);\n --amber-12: color(display-p3 0.294 0.208 0.145);\n }\n }\n}\n\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --red-1: #fffcfc;\n --red-2: #fff7f7;\n --red-3: #feebec;\n --red-4: #ffdbdc;\n --red-5: #ffcdce;\n --red-6: #fdbdbe;\n --red-7: #f4a9aa;\n --red-8: #eb8e90;\n --red-9: #e5484d;\n --red-10: #dc3e42;\n --red-11: #ce2c31;\n --red-12: #641723;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\n --red-1: color(display-p3 0.998 0.989 0.988);\n --red-2: color(display-p3 0.995 0.971 0.971);\n --red-3: color(display-p3 0.985 0.925 0.925);\n --red-4: color(display-p3 0.999 0.866 0.866);\n --red-5: color(display-p3 0.984 0.812 0.811);\n --red-6: color(display-p3 0.955 0.751 0.749);\n --red-7: color(display-p3 0.915 0.675 0.672);\n --red-8: color(display-p3 0.872 0.575 0.572);\n --red-9: color(display-p3 0.83 0.329 0.324);\n --red-10: color(display-p3 0.798 0.294 0.285);\n --red-11: color(display-p3 0.744 0.234 0.222);\n --red-12: color(display-p3 0.36 0.115 0.143);\n }\n }\n}\n\n._bold_1tncs_10 {\n font-weight: bold;\n}\n\n._italic_1tncs_14 {\n font-style: italic;\n}\n\n._underline_1tncs_18 {\n text-decoration: underline;\n}\n\n._bold_1tncs_10 {\n font-weight: 700;\n}\n\n._italic_1tncs_14 {\n font-style: italic;\n}\n\n._underline_1tncs_18 {\n text-decoration: underline\n}\n\n._strikethrough_1tncs_34 {\n text-decoration: line-through\n}\n\n._underlineStrikethrough_1tncs_38 {\n text-decoration: underline line-through\n}\n\n._subscript_1tncs_42 {\n font-size: .8em;\n vertical-align: sub !important\n}\n\n._superscript_1tncs_47 {\n font-size: .8em;\n vertical-align: super\n}\n\n._code_1tncs_52 {\n background-color: var(--baseBg);\n padding: 1px .25rem;\n font-family: var(--font-mono);\n font-size: 94%\n}\n\n._nestedListItem_1tncs_59 {\n list-style: none;\n list-style-type: none;\n}\n\n._nestedListItem_1tncs_59:before,\n._nestedListItem_1tncs_59:after {\n display: none;\n}\n\n._listitem_1tncs_69 {\n margin: var(--spacing-2) 0;\n}\n\n._listItemChecked_1tncs_73,\n._listItemUnchecked_1tncs_74 {\n position: relative;\n margin-left: 0;\n margin-right: 0;\n margin-inline-start: -1rem;\n padding-left: var(--spacing-6);\n padding-right: var(--spacing-6);\n list-style-type: none;\n outline: none;\n}\n\n._listItemChecked_1tncs_73 {\n text-decoration: line-through;\n}\n\n._listItemUnchecked_1tncs_74:before,\n._listItemChecked_1tncs_73:before {\n content: '';\n width: var(--spacing-4);\n height: var(--spacing-4);\n top: 0;\n left: 0;\n cursor: pointer;\n display: block;\n background-size: cover;\n position: absolute;\n}\n\n._listItemUnchecked_1tncs_74[dir='rtl']:before,\n._listItemChecked_1tncs_73[dir='rtl']:before {\n left: auto;\n right: 0;\n}\n\n._listItemUnchecked_1tncs_74:focus:before,\n._listItemChecked_1tncs_73:focus:before {\n box-shadow: 0 0 0 2px var(--accentBgActive);\n border-radius: var(--radius-small);\n}\n\n._listItemUnchecked_1tncs_74:before {\n border: 1px solid var(--baseBorder);\n border-radius: var(--radius-small);\n}\n\n._listItemChecked_1tncs_73:before {\n border: 1px solid var(--accentBorder);\n border-radius: var(--radius-small);\n background-color: var(--accentSolid);\n background-repeat: no-repeat;\n}\n\n._listItemChecked_1tncs_73:after {\n content: '';\n cursor: pointer;\n border-color: var(--baseBase);\n border-style: solid;\n position: absolute;\n display: block;\n top: var(--spacing-0_5);\n width: var(--spacing-1);\n left: var(--spacing-1_5);\n right: var(--spacing-1_5);\n height: var(--spacing-2);\n transform: rotate(45deg);\n border-width: 0 var(--spacing-0_5) var(--spacing-0_5) 0;\n}\n\n._nestedListItem_1tncs_59 {\n list-style-type: none;\n}\n\n._nestedListItem_1tncs_59:before,\n._nestedListItem_1tncs_59:after {\n display: none;\n}\n\n._admonitionDanger_1tncs_151,\n._admonitionInfo_1tncs_152,\n._admonitionNote_1tncs_153,\n._admonitionTip_1tncs_154,\n._admonitionCaution_1tncs_155 {\n padding: var(--spacing-2);\n margin-top: var(--spacing-2);\n margin-bottom: var(--spacing-2);\n border-left: 3px solid var(--admonitionBorder);\n background-color: var(--admonitionBg);\n}\n\n._admonitionInfo_1tncs_152 {\n --admonitionBorder: var(--admonitionInfoBorder);\n --admonitionBg: var(--admonitionInfoBg);\n}\n\n._admonitionTip_1tncs_154 {\n --admonitionBorder: var(--admonitionTipBorder);\n --admonitionBg: var(--admonitionTipBg);\n}\n\n._admonitionCaution_1tncs_155 {\n --admonitionBorder: var(--admonitionCautionBorder);\n --admonitionBg: var(--admonitionCautionBg);\n}\n\n._admonitionDanger_1tncs_151 {\n --admonitionBorder: var(--admonitionDangerBorder);\n --admonitionBg: var(--admonitionDangerBg);\n}\n\n._admonitionNote_1tncs_153 {\n --admonitionBorder: var(--admonitionNoteBorder);\n --admonitionBg: var(--admonitionNoteBg);\n}\n\n._mdxExpression_1tncs_188 {\n font-family: var(--font-mono);\n font-size: 84%;\n color: var(--accentText);\n}\n\n._mdxExpression_1tncs_188 input:focus-visible {\n outline: none;\n }\n";
|
|
14
|
+
document.head.appendChild(style);
|
|
15
|
+
})();
|
|
16
|
+
|
|
17
|
+
// src/styles/mdx-editor-theme.css
|
|
18
|
+
(function() {
|
|
19
|
+
if (typeof document === "undefined") return;
|
|
20
|
+
var id = "industry-mdx-editor-styles-L1VzZXJz";
|
|
21
|
+
if (document.getElementById(id)) return;
|
|
22
|
+
var style = document.createElement("style");
|
|
23
|
+
style.id = id;
|
|
24
|
+
style.textContent = "/**\n * Industry-themed MDX Editor styles\n * These CSS custom properties integrate MDXEditor with the industry-theme system\n * Based on Radix UI theming system used by MDXEditor\n *\n * Note: All Radix color variables are set directly by the component\n * This file provides additional content styling and customizations\n */\n\n/* Override MDXEditor's default CSS variables with our theme */\n.themed-mdx-editor [class*='editorRoot'] {\n --accentBase: var(--accentBase) !important;\n --accentBgSubtle: var(--accentBgSubtle) !important;\n --accentBg: var(--accentBg) !important;\n --accentBgHover: var(--accentBgHover) !important;\n --accentBgActive: var(--accentBgActive) !important;\n --accentLine: var(--accentLine) !important;\n --accentBorder: var(--accentBorder) !important;\n --accentBorderHover: var(--accentBorderHover) !important;\n --accentSolid: var(--accentSolid) !important;\n --accentSolidHover: var(--accentSolidHover) !important;\n --accentText: var(--accentText) !important;\n --accentTextContrast: var(--accentTextContrast) !important;\n\n --basePageBg: var(--mdx-editor-bg) !important;\n --baseBase: var(--baseBase) !important;\n --baseBgSubtle: var(--baseBgSubtle) !important;\n --baseBg: var(--baseBg) !important;\n --baseBgHover: var(--baseBgHover) !important;\n --baseBgActive: var(--baseBgActive) !important;\n --baseLine: var(--baseLine) !important;\n --baseBorder: var(--baseBorder) !important;\n --baseBorderHover: var(--baseBorderHover) !important;\n --baseSolid: var(--baseSolid) !important;\n --baseSolidHover: var(--baseSolidHover) !important;\n --baseText: var(--baseText) !important;\n --baseTextContrast: var(--baseTextContrast) !important;\n}\n\n/* MDXEditor content styling */\n.themed-mdx-editor .mdx-editor-content {\n font-family: var(--mdx-editor-font-family);\n font-size: var(--mdx-editor-font-size);\n color: var(--mdx-editor-fg);\n line-height: 1.6;\n\n /* Document padding - similar to Google Docs margins */\n padding-top: var(--mdx-editor-padding-top, 0);\n padding-right: var(--mdx-editor-padding-right, 0);\n padding-bottom: var(--mdx-editor-padding-bottom, 0);\n padding-left: var(--mdx-editor-padding-left, 0);\n\n /* Ensure content is properly contained */\n box-sizing: border-box;\n}\n\n/* Headings */\n.themed-mdx-editor .mdx-editor-content h1,\n.themed-mdx-editor .mdx-editor-content h2,\n.themed-mdx-editor .mdx-editor-content h3,\n.themed-mdx-editor .mdx-editor-content h4,\n.themed-mdx-editor .mdx-editor-content h5,\n.themed-mdx-editor .mdx-editor-content h6 {\n color: var(--mdx-editor-heading-color);\n}\n\n/* Links */\n.themed-mdx-editor .mdx-editor-content a {\n color: var(--mdx-editor-link-color);\n}\n\n/* Inline code */\n.themed-mdx-editor .mdx-editor-content code {\n background-color: var(--mdx-editor-code-bg);\n font-family: var(--mdx-editor-font-family);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n/* Code blocks - target the CodeMirror editor wrapper */\n.themed-mdx-editor .cm-editor {\n background-color: var(--mdx-editor-code-bg) !important;\n}\n\n.themed-mdx-editor .cm-editor .cm-scroller {\n font-family: var(--mdx-editor-font-family);\n background-color: var(--mdx-editor-code-bg);\n}\n\n.themed-mdx-editor .cm-editor .cm-gutters {\n background-color: var(--mdx-editor-code-bg);\n border-right: 1px solid var(--mdx-editor-border);\n color: var(--mdx-editor-fg);\n}\n\n.themed-mdx-editor .cm-editor .cm-content {\n background-color: var(--mdx-editor-code-bg);\n color: var(--mdx-editor-fg);\n}\n\n.themed-mdx-editor .cm-editor .cm-line {\n background-color: var(--mdx-editor-code-bg);\n}\n\n.themed-mdx-editor .cm-editor .cm-activeLineGutter {\n background-color: var(--baseBgHover);\n}\n\n.themed-mdx-editor .cm-editor .cm-activeLine {\n background-color: var(--baseBgHover);\n}\n\n/* Selection */\n.themed-mdx-editor .mdx-editor-content ::selection {\n background-color: var(--mdx-editor-selection-bg);\n}\n\n/* Toolbar container */\n.themed-mdx-editor [class*='toolbarRoot'] {\n background-color: var(--mdx-editor-toolbar-bg);\n border-bottom: 1px solid var(--mdx-editor-border);\n}\n\n/* Toolbar buttons */\n.themed-mdx-editor [class*='toolbarRoot'] button:not([class*='selectTrigger']) {\n color: var(--mdx-editor-fg);\n}\n\n.themed-mdx-editor [class*='toolbarRoot'] button:not([class*='selectTrigger']):hover {\n background-color: var(--mdx-editor-selection-bg);\n}\n\n/* Fix toolbar SVG icon colors - override MDXEditor's baseTextContrast usage */\n.themed-mdx-editor [class*='toolbarRoot'] svg {\n color: var(--baseText) !important;\n}\n\n/* Toolbar select dropdowns (BlockTypeSelect, etc.) */\n.themed-mdx-editor button[role='combobox'][class*='selectTrigger'],\n.themed-mdx-editor [data-toolbar-item='true'][class*='selectTrigger'],\nbutton[role='combobox'][class*='selectTrigger'][data-toolbar-item='true'] {\n background-color: var(--baseBg) !important;\n color: var(--baseText) !important;\n border: 1px solid var(--baseBorder) !important;\n padding: 4px 8px !important;\n border-radius: 4px !important;\n}\n\n.themed-mdx-editor button[role='combobox'][class*='selectTrigger']:hover,\n.themed-mdx-editor [data-toolbar-item='true'][class*='selectTrigger']:hover,\nbutton[role='combobox'][class*='selectTrigger'][data-toolbar-item='true']:hover {\n background-color: var(--baseBgHover) !important;\n border-color: var(--baseBorderHover) !important;\n}\n\n.themed-mdx-editor button[class*='selectTrigger'] span,\nbutton[class*='selectTrigger'][data-toolbar-item='true'] span {\n color: var(--baseText) !important;\n}\n\n.themed-mdx-editor button[class*='selectTrigger'] [class*='selectDropdownArrow'] svg,\nbutton[class*='selectTrigger'][data-toolbar-item='true'] [class*='selectDropdownArrow'] svg {\n color: var(--baseText) !important;\n}\n\n/* Select dropdown content - Note: These are often portaled outside the editor */\n[class*='selectContent'] {\n background-color: var(--baseBg) !important;\n border: 1px solid var(--baseBorder) !important;\n color: var(--baseText) !important;\n z-index: 9999 !important;\n}\n\n[class*='selectItem'] {\n color: var(--baseText) !important;\n}\n\n[class*='selectItem']:hover {\n background-color: var(--baseBgHover) !important;\n}\n\n[class*='selectItem'][data-state='checked'] {\n background-color: var(--accentBg) !important;\n color: var(--accentText) !important;\n}\n\n/* Table borders - use accent color for visibility */\n.themed-mdx-editor [class*='tableEditor'] > tbody > tr > td:not([class*='toolCell']),\n.themed-mdx-editor [class*='tableEditor'] > tbody > tr > th:not([class*='toolCell']):not([data-tool-cell='true']) {\n border: 1px solid var(--mdx-editor-table-border) !important;\n padding: var(--spacing-1) var(--spacing-2);\n white-space: normal;\n}\n\n.themed-mdx-editor [class*='tableEditor'] > thead > tr > th {\n border: 1px solid var(--mdx-editor-table-border) !important;\n}\n\n/* Source mode editor */\n.themed-mdx-editor [class*='sourceEditor'] {\n font-family: var(--mdx-editor-font-family);\n font-size: var(--mdx-editor-font-size);\n background-color: var(--mdx-editor-bg);\n color: var(--mdx-editor-fg);\n}\n\n/* Scrollbars */\n.themed-mdx-editor ::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n.themed-mdx-editor ::-webkit-scrollbar-track {\n background: var(--mdx-editor-bg);\n}\n\n.themed-mdx-editor ::-webkit-scrollbar-thumb {\n background: var(--mdx-editor-border);\n border-radius: 6px;\n}\n\n.themed-mdx-editor ::-webkit-scrollbar-thumb:hover {\n background: var(--mdx-editor-fg);\n opacity: 0.5;\n}\n\n/*\n * Tailwind CSS Compatibility Styles\n * Tailwind's Preflight resets all default HTML styles, but MDXEditor expects them.\n * These styles restore necessary defaults for proper content rendering.\n */\n\n/* Restore default heading styles */\n.themed-mdx-editor h1 {\n font-size: 2em;\n font-weight: 700;\n margin-top: 0.67em;\n margin-bottom: 0.67em;\n line-height: 1.2;\n}\n\n.themed-mdx-editor h2 {\n font-size: 1.5em;\n font-weight: 600;\n margin-top: 0.83em;\n margin-bottom: 0.83em;\n line-height: 1.3;\n}\n\n.themed-mdx-editor h3 {\n font-size: 1.17em;\n font-weight: 600;\n margin-top: 1em;\n margin-bottom: 1em;\n line-height: 1.4;\n}\n\n.themed-mdx-editor h4 {\n font-size: 1em;\n font-weight: 600;\n margin-top: 1.33em;\n margin-bottom: 1.33em;\n line-height: 1.5;\n}\n\n.themed-mdx-editor h5 {\n font-size: 0.83em;\n font-weight: 600;\n margin-top: 1.67em;\n margin-bottom: 1.67em;\n line-height: 1.5;\n}\n\n.themed-mdx-editor h6 {\n font-size: 0.67em;\n font-weight: 600;\n margin-top: 2.33em;\n margin-bottom: 2.33em;\n line-height: 1.5;\n}\n\n/* Restore default paragraph spacing */\n.themed-mdx-editor p {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\n/* Restore default list styles */\n.themed-mdx-editor ul {\n list-style-type: disc;\n margin-top: 1em;\n margin-bottom: 1em;\n padding-left: 2.5em;\n}\n\n.themed-mdx-editor ul ul {\n list-style-type: circle;\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.themed-mdx-editor ul ul ul {\n list-style-type: square;\n}\n\n.themed-mdx-editor ol {\n list-style-type: decimal;\n margin-top: 1em;\n margin-bottom: 1em;\n padding-left: 2.5em;\n}\n\n.themed-mdx-editor ol ol {\n list-style-type: lower-alpha;\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.themed-mdx-editor ol ol ol {\n list-style-type: lower-roman;\n}\n\n.themed-mdx-editor li {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n/* Restore default blockquote styles */\n.themed-mdx-editor blockquote {\n margin-top: 1em;\n margin-bottom: 1em;\n margin-left: 2.5em;\n margin-right: 2.5em;\n padding-left: 1em;\n border-left: 4px solid currentColor;\n opacity: 0.8;\n}\n\n/* Restore default code styles */\n.themed-mdx-editor code {\n font-family: monospace;\n font-size: 0.9em;\n}\n\n.themed-mdx-editor pre {\n margin-top: 1em;\n margin-bottom: 1em;\n padding: 1em;\n overflow: auto;\n}\n\n.themed-mdx-editor pre code {\n font-size: inherit;\n}\n\n/* Restore default table styles */\n.themed-mdx-editor table {\n border-collapse: collapse;\n margin-top: 1em;\n margin-bottom: 1em;\n width: 100%;\n}\n\n.themed-mdx-editor th,\n.themed-mdx-editor td {\n padding: 0.5em;\n text-align: left;\n}\n\n.themed-mdx-editor th {\n font-weight: 600;\n}\n\n/* Restore default emphasis styles */\n.themed-mdx-editor strong,\n.themed-mdx-editor b {\n font-weight: 700;\n}\n\n.themed-mdx-editor em,\n.themed-mdx-editor i {\n font-style: italic;\n}\n\n/* Restore default link styles */\n.themed-mdx-editor a {\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* Restore default hr styles */\n.themed-mdx-editor hr {\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n border: 0;\n border-top: 1px solid currentColor;\n opacity: 0.3;\n}\n";
|
|
25
|
+
document.head.appendChild(style);
|
|
26
|
+
})();
|
|
6
27
|
|
|
7
28
|
// src/plugins/mdx-auto-fix/preprocessor.ts
|
|
8
29
|
var defaultPreprocessRules = [
|
|
@@ -658,7 +679,7 @@ var ThemedMDXEditor = forwardRef((props, ref) => {
|
|
|
658
679
|
containerClassName = "",
|
|
659
680
|
containerStyle = {},
|
|
660
681
|
showLoadingState = false,
|
|
661
|
-
documentPadding,
|
|
682
|
+
documentPadding = { top: "0.25in", right: "0.5in", bottom: "0.5in", left: "0.5in" },
|
|
662
683
|
autoFixMDX = true,
|
|
663
684
|
markdown: controlledMarkdown,
|
|
664
685
|
onChange: externalOnChange,
|
|
@@ -1168,3 +1189,4 @@ export {
|
|
|
1168
1189
|
preprocessMDX,
|
|
1169
1190
|
useThemedMDXEditor
|
|
1170
1191
|
};
|
|
1192
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/ThemedMDXEditor.tsx", "../node_modules/@mdxeditor/editor/dist/style.css", "../src/styles/mdx-editor-theme.css", "../src/plugins/mdx-auto-fix/preprocessor.ts", "../src/plugins/mdx-auto-fix/transformers/less-than-digit.ts", "../src/plugins/mdx-auto-fix/transformers/greater-than-digit.ts", "../src/plugins/mdx-auto-fix/transformers/invalid-tag-names.ts", "../src/plugins/mdx-auto-fix/transformers/code-block-language.ts", "../src/plugins/mdx-auto-fix/transformers/index.ts", "../src/plugins/mdx-auto-fix/plugin.ts", "../src/components/ThemedMDXEditorWithProvider.tsx", "../src/hooks/useThemedMDXEditor.ts", "../src/utils/codeMirrorTheme.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Theme } from '@principal-ade/industry-theme';\nimport {\n MDXEditor,\n type MDXEditorMethods,\n type MDXEditorProps,\n} from '@mdxeditor/editor';\nimport '@mdxeditor/editor/style.css';\nimport '../styles/mdx-editor-theme.css';\nimport { preprocessMDX } from '../plugins/mdx-auto-fix';\nimport React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n useMemo,\n forwardRef,\n useImperativeHandle,\n} from 'react';\n\n/**\n * Document padding configuration\n * Similar to Google Docs margin settings\n */\nexport type DocumentPadding =\n | number // Single value for all sides\n | string // CSS value like \"1in\" or \"2.54cm\"\n | {\n top?: number | string;\n right?: number | string;\n bottom?: number | string;\n left?: number | string;\n }\n | 'none' // 0 padding\n | 'narrow' // 0.5in / 12.7mm\n | 'normal' // 1in / 25.4mm (Google Docs default)\n | 'moderate' // 0.75in / 19.05mm\n | 'wide'; // 2in / 50.8mm\n\nexport interface ThemedMDXEditorProps extends Omit<MDXEditorProps, 'className' | 'contentEditableClassName'> {\n /**\n * Industry theme object to use for theming the editor\n */\n theme: Theme;\n /**\n * Custom loading component\n */\n loadingComponent?: React.ReactNode;\n /**\n * Initial value to seed the editor with when used in uncontrolled mode\n */\n initialValue?: string;\n /**\n * Callback invoked when the editor content should be saved (e.g., via Ctrl/Cmd+S)\n */\n onSave?: (value: string, context: { filePath?: string }) => void | Promise<void>;\n /**\n * Optional file path used to provide additional context to save handlers\n */\n filePath?: string;\n /**\n * Enable the Ctrl/Cmd+S save shortcut (defaults to true)\n */\n enableSaveShortcut?: boolean;\n /**\n * Optional callback that is notified when the dirty state changes\n */\n onDirtyChange?: (isDirty: boolean) => void;\n /**\n * Hide the built-in status bar (for save indicators)\n * Useful when the parent component wants to show its own UI\n */\n hideStatusBar?: boolean;\n /**\n * Additional CSS class names to apply to the editor container\n */\n containerClassName?: string;\n /**\n * Additional styles to apply to the editor container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Show loading state initially\n */\n showLoadingState?: boolean;\n /**\n * Document padding/margin configuration\n * Similar to Google Docs margin settings\n *\n * @example\n * // Preset margins\n * documentPadding=\"normal\" // 1in on all sides (Google Docs default)\n * documentPadding=\"narrow\" // 0.5in on all sides\n * documentPadding=\"wide\" // 2in on all sides\n *\n * @example\n * // Custom uniform padding\n * documentPadding={48} // 48px on all sides\n * documentPadding=\"1in\" // 1 inch on all sides\n *\n * @example\n * // Custom per-side padding\n * documentPadding={{ top: \"1in\", right: \"0.75in\", bottom: \"1in\", left: \"0.75in\" }}\n */\n documentPadding?: DocumentPadding;\n /**\n * Automatically fix common MDX parsing issues\n * Fixes patterns like \"<5 minutes\", \">90%\", etc. that cause parsing errors\n *\n * @default true\n *\n * @example\n * // Enable auto-fixing (default)\n * autoFixMDX={true}\n *\n * @example\n * // Disable auto-fixing\n * autoFixMDX={false}\n */\n autoFixMDX?: boolean;\n}\n\n/**\n * Converts DocumentPadding to CSS padding values\n */\nfunction getPaddingStyles(padding?: DocumentPadding): React.CSSProperties {\n if (!padding) {\n return {};\n }\n\n // Preset values (matching Google Docs)\n const presets: Record<string, string> = {\n none: '0',\n narrow: '0.5in',\n moderate: '0.75in',\n normal: '1in',\n wide: '2in',\n };\n\n if (typeof padding === 'string' && padding in presets) {\n const value = presets[padding];\n return {\n paddingTop: value,\n paddingRight: value,\n paddingBottom: value,\n paddingLeft: value,\n };\n }\n\n if (typeof padding === 'number') {\n return { padding: `${padding}px` };\n }\n\n if (typeof padding === 'string') {\n return { padding };\n }\n\n // Object with individual sides\n const styles: React.CSSProperties = {};\n if (padding.top !== undefined) {\n styles.paddingTop = typeof padding.top === 'number' ? `${padding.top}px` : padding.top;\n }\n if (padding.right !== undefined) {\n styles.paddingRight = typeof padding.right === 'number' ? `${padding.right}px` : padding.right;\n }\n if (padding.bottom !== undefined) {\n styles.paddingBottom = typeof padding.bottom === 'number' ? `${padding.bottom}px` : padding.bottom;\n }\n if (padding.left !== undefined) {\n styles.paddingLeft = typeof padding.left === 'number' ? `${padding.left}px` : padding.left;\n }\n\n return styles;\n}\n\n/**\n * Validates that all required theme properties are present\n * Throws an error if any required properties are missing\n */\nfunction validateTheme(theme: Theme): void {\n const requiredColors = [\n 'primary',\n 'text',\n 'background',\n 'backgroundSecondary',\n 'border',\n ] as const;\n\n const missingColors: string[] = [];\n\n for (const colorKey of requiredColors) {\n if (!theme.colors[colorKey]) {\n missingColors.push(`theme.colors.${colorKey}`);\n }\n }\n\n if (missingColors.length > 0) {\n throw new Error(\n `ThemedMDXEditor: Missing required theme properties:\\n - ${missingColors.join('\\n - ')}\\n\\n` +\n `Please ensure your theme object includes all required color properties.`\n );\n }\n}\n\n/**\n * A MDX editor component that integrates with industry-theme\n */\nexport const ThemedMDXEditor = forwardRef<MDXEditorMethods, ThemedMDXEditorProps>((props, ref) => {\n const {\n theme,\n loadingComponent,\n initialValue,\n onSave,\n filePath,\n enableSaveShortcut = true,\n onDirtyChange,\n hideStatusBar = false,\n containerClassName = '',\n containerStyle = {},\n showLoadingState = false,\n documentPadding = { top: '0.25in', right: '0.5in', bottom: '0.5in', left: '0.5in' },\n autoFixMDX = true,\n markdown: controlledMarkdown,\n onChange: externalOnChange,\n ...restEditorProps\n } = props;\n\n const editorRef = useRef<MDXEditorMethods>(null);\n const [isMounted, setIsMounted] = useState(false);\n const [isLoading, setIsLoading] = useState(showLoadingState);\n const prevFilePathRef = useRef<string | undefined>(filePath);\n const prevInitialValueRef = useRef<string | undefined>(initialValue);\n\n const isControlled = controlledMarkdown !== undefined;\n\n const computeInitialValue = useCallback(() => {\n if (initialValue !== undefined) return initialValue;\n if (typeof controlledMarkdown === 'string') return controlledMarkdown;\n return '';\n }, [controlledMarkdown, initialValue]);\n\n const [internalValue, setInternalValue] = useState<string>(() => computeInitialValue());\n const [savedValue, setSavedValue] = useState<string>(() => computeInitialValue());\n const [isDirty, setIsDirty] = useState<boolean>(false);\n\n const currentValue = isControlled\n ? (controlledMarkdown as string | undefined) ?? ''\n : internalValue;\n\n // Apply MDX auto-fix preprocessing if enabled\n const processedMarkdown = useMemo(() => {\n if (!autoFixMDX) {\n return currentValue;\n }\n\n return preprocessMDX(currentValue, {\n preserveCodeBlocks: true,\n });\n }, [currentValue, autoFixMDX]);\n\n // Handle client-side only rendering (MDXEditor doesn't support SSR)\n useEffect(() => {\n setIsMounted(true);\n if (showLoadingState) {\n setIsLoading(false);\n }\n }, [showLoadingState]);\n\n // Expose editor methods via ref\n useImperativeHandle(ref, () => editorRef.current!);\n\n useEffect(() => {\n if (!isControlled && initialValue !== undefined && initialValue !== prevInitialValueRef.current) {\n setInternalValue(initialValue);\n setSavedValue(initialValue);\n setIsDirty(false);\n prevInitialValueRef.current = initialValue;\n }\n }, [initialValue, isControlled]);\n\n useEffect(() => {\n if (filePath !== prevFilePathRef.current) {\n const baseline = initialValue ?? currentValue;\n if (!isControlled && initialValue !== undefined) {\n setInternalValue(initialValue);\n }\n setSavedValue(baseline);\n setIsDirty(false);\n prevFilePathRef.current = filePath;\n }\n }, [currentValue, filePath, initialValue, isControlled]);\n\n useEffect(() => {\n const dirty = currentValue !== savedValue;\n setIsDirty((prev) => (prev === dirty ? prev : dirty));\n }, [currentValue, savedValue]);\n\n useEffect(() => {\n onDirtyChange?.(isDirty);\n }, [isDirty, onDirtyChange]);\n\n const updateSavedState = useCallback(\n (nextSavedValue: string) => {\n setSavedValue(nextSavedValue);\n setIsDirty(false);\n },\n []\n );\n\n const handleChange = useCallback(\n (value: string, initialMarkdownNormalize: boolean) => {\n const nextValue = value ?? '';\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n const dirty = nextValue !== savedValue;\n setIsDirty((prev) => (prev === dirty ? prev : dirty));\n externalOnChange?.(value, initialMarkdownNormalize);\n },\n [externalOnChange, isControlled, savedValue]\n );\n\n const handleSave = useCallback(async () => {\n if (onSave) {\n try {\n const latestValue = editorRef.current?.getMarkdown() ?? currentValue;\n const result = onSave(latestValue, { filePath });\n if (result && typeof (result as Promise<void>).then === 'function') {\n await result;\n }\n updateSavedState(latestValue);\n } catch (error) {\n console.error('Failed to save editor contents', error);\n }\n }\n }, [onSave, currentValue, filePath, updateSavedState]);\n\n // Handle save shortcut\n useEffect(() => {\n if (!enableSaveShortcut || !onSave) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 's') {\n e.preventDefault();\n handleSave();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [enableSaveShortcut, handleSave, onSave]);\n\n const editorStyles = useMemo(() => {\n // Validate theme on every render (will throw if invalid)\n validateTheme(theme);\n\n // Helper to convert hex to rgba\n const hexToRgba = (hex: string, alpha: number): string => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (result) {\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n return hex;\n };\n\n // No fallbacks - these are guaranteed to exist after validation\n const primaryColor = theme.colors.primary;\n const textColor = theme.colors.text;\n const background = theme.colors.background;\n const backgroundSecondary = theme.colors.backgroundSecondary;\n const border = theme.colors.border;\n\n // Optional with computed fallback\n const backgroundTertiary = theme.colors.backgroundTertiary || backgroundSecondary;\n\n // Use theme border for most UI, but make table borders more visible\n const accentColor = theme.colors.accent || textColor;\n\n // Get document padding styles\n const paddingStyles = getPaddingStyles(documentPadding);\n\n return {\n // Radix Accent Colors (computed from primary color with different opacities)\n // These are used by MDXEditor's internal UI components (toolbar, dialogs, etc.)\n '--accentBase': primaryColor,\n '--accentBgSubtle': hexToRgba(primaryColor, 0.05),\n '--accentBg': hexToRgba(primaryColor, 0.1),\n '--accentBgHover': hexToRgba(primaryColor, 0.15),\n '--accentBgActive': hexToRgba(primaryColor, 0.2),\n '--accentLine': hexToRgba(primaryColor, 0.3),\n '--accentBorder': hexToRgba(primaryColor, 0.4),\n '--accentBorderHover': hexToRgba(primaryColor, 0.5),\n '--accentSolid': primaryColor,\n '--accentSolidHover': primaryColor,\n '--accentText': primaryColor,\n '--accentTextContrast': background,\n\n // Radix Base Colors (computed from background/text colors)\n // These are used by MDXEditor's internal UI components (toolbar, dialogs, etc.)\n '--baseBase': background,\n '--baseBgSubtle': backgroundSecondary,\n '--baseBg': background,\n '--baseBgHover': backgroundSecondary,\n '--baseBgActive': backgroundTertiary,\n '--baseLine': hexToRgba(textColor, 0.15),\n '--baseBorder': border,\n '--baseBorderHover': hexToRgba(textColor, 0.3),\n '--baseSolid': textColor,\n '--baseSolidHover': textColor,\n '--baseText': textColor,\n '--baseTextContrast': background,\n\n // Spacing scale - maps to theme.space array or uses defaults\n '--spacing-0': '0px',\n '--spacing-px': '1px',\n '--spacing-0_5': '0.125rem',\n '--spacing-1': `${theme.space?.[1] || 4}px`,\n '--spacing-1_5': '0.375rem',\n '--spacing-2': `${theme.space?.[2] || 8}px`,\n '--spacing-2_5': '0.625rem',\n '--spacing-3': '0.75rem',\n '--spacing-3_5': '0.875rem',\n '--spacing-4': `${theme.space?.[3] || 16}px`,\n '--spacing-5': '1.25rem',\n '--spacing-6': '1.5rem',\n '--spacing-7': '1.75rem',\n '--spacing-8': `${theme.space?.[4] || 32}px`,\n '--spacing-9': '2.25rem',\n '--spacing-10': '2.5rem',\n '--spacing-11': '2.75rem',\n '--spacing-12': '3rem',\n '--spacing-14': '3.5rem',\n '--spacing-16': `${theme.space?.[5] || 64}px`,\n\n // Our custom variables for content styling (used in mdx-editor-theme.css)\n '--mdx-editor-bg': background,\n '--mdx-editor-fg': textColor,\n '--mdx-editor-border': border,\n '--mdx-editor-table-border': accentColor,\n '--mdx-editor-toolbar-bg': backgroundSecondary,\n '--mdx-editor-code-bg': backgroundTertiary,\n '--mdx-editor-selection-bg': hexToRgba(primaryColor, 0.2),\n '--mdx-editor-link-color': primaryColor,\n '--mdx-editor-heading-color': textColor,\n '--mdx-editor-font-family': theme.fonts?.monospace || 'monospace',\n '--mdx-editor-font-size': `${theme.fontSizes?.[2] || 14}px`,\n\n // Document padding CSS variables\n '--mdx-editor-padding-top': paddingStyles.paddingTop || paddingStyles.padding || '0',\n '--mdx-editor-padding-right': paddingStyles.paddingRight || paddingStyles.padding || '0',\n '--mdx-editor-padding-bottom': paddingStyles.paddingBottom || paddingStyles.padding || '0',\n '--mdx-editor-padding-left': paddingStyles.paddingLeft || paddingStyles.padding || '0',\n\n ...containerStyle,\n } as React.CSSProperties;\n }, [theme, containerStyle, documentPadding]);\n\n // Apply CSS variables to document root for portaled elements (like select dropdowns)\n useEffect(() => {\n const root = document.documentElement;\n const styles = editorStyles;\n\n // Store original values to restore on unmount\n const originalValues: Record<string, string> = {};\n\n Object.entries(styles).forEach(([key, value]) => {\n if (key.startsWith('--')) {\n originalValues[key] = root.style.getPropertyValue(key);\n root.style.setProperty(key, String(value));\n }\n });\n\n return () => {\n // Restore original values on unmount\n Object.entries(originalValues).forEach(([key, value]) => {\n if (value) {\n root.style.setProperty(key, value);\n } else {\n root.style.removeProperty(key);\n }\n });\n };\n }, [editorStyles]);\n\n if (!isMounted || isLoading) {\n const loading = loadingComponent || (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n color: theme.colors.textSecondary,\n fontFamily: theme.fonts?.body || 'system-ui',\n }}\n >\n Loading editor...\n </div>\n );\n return <div style={{ height: '100%', ...containerStyle }}>{loading}</div>;\n }\n\n return (\n <div\n className={`themed-mdx-editor ${containerClassName}`.trim()}\n style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n backgroundColor: theme.colors.background,\n color: theme.colors.text,\n fontFamily: theme.fonts?.body || 'system-ui',\n ...editorStyles,\n }}\n >\n <div style={{ flex: 1, overflow: 'auto' }}>\n <MDXEditor\n ref={editorRef}\n markdown={processedMarkdown}\n onChange={handleChange}\n contentEditableClassName=\"mdx-editor-content\"\n {...restEditorProps}\n />\n </div>\n {!hideStatusBar && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '4px 12px',\n backgroundColor: theme.colors.backgroundSecondary,\n color: theme.colors.text,\n fontFamily: theme.fonts?.monospace || 'monospace',\n fontSize: theme.fontSizes?.[1] || 12,\n borderTop: `1px solid ${theme.colors.border}`,\n }}\n >\n <div style={{ flex: 1 }}>\n {filePath && (\n <span\n style={{\n color: theme.colors.textSecondary,\n fontSize: theme.fontSizes?.[0] || 11,\n }}\n >\n {filePath}\n </span>\n )}\n </div>\n <div\n style={{\n padding: '2px 8px',\n borderRadius: 4,\n border: `1px solid ${isDirty ? theme.colors.warning : theme.colors.border}`,\n backgroundColor: isDirty\n ? theme.colors.backgroundTertiary || theme.colors.backgroundSecondary\n : theme.colors.background,\n color: isDirty ? theme.colors.warning : theme.colors.textSecondary,\n fontWeight: 600,\n fontSize: theme.fontSizes?.[0] || 11,\n }}\n >\n {isDirty ? 'Modified' : 'Saved'}\n </div>\n </div>\n )}\n </div>\n );\n});\n\nThemedMDXEditor.displayName = 'ThemedMDXEditor';\n", "\n(function() {\n if (typeof document === 'undefined') return;\n var id = 'mdxeditor-base-styles-L1VzZXJz';\n if (document.getElementById(id)) return;\n var style = document.createElement('style');\n style.id = id;\n style.textContent = \":root, .light, .light-theme {\\n --blue-1: #fbfdff;\\n --blue-2: #f4faff;\\n --blue-3: #e6f4fe;\\n --blue-4: #d5efff;\\n --blue-5: #c2e5ff;\\n --blue-6: #acd8fc;\\n --blue-7: #8ec8f6;\\n --blue-8: #5eb1ef;\\n --blue-9: #0090ff;\\n --blue-10: #0588f0;\\n --blue-11: #0d74ce;\\n --blue-12: #113264;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --blue-1: color(display-p3 0.986 0.992 0.999);\\n --blue-2: color(display-p3 0.96 0.979 0.998);\\n --blue-3: color(display-p3 0.912 0.956 0.991);\\n --blue-4: color(display-p3 0.853 0.932 1);\\n --blue-5: color(display-p3 0.788 0.894 0.998);\\n --blue-6: color(display-p3 0.709 0.843 0.976);\\n --blue-7: color(display-p3 0.606 0.777 0.947);\\n --blue-8: color(display-p3 0.451 0.688 0.917);\\n --blue-9: color(display-p3 0.247 0.556 0.969);\\n --blue-10: color(display-p3 0.234 0.523 0.912);\\n --blue-11: color(display-p3 0.15 0.44 0.84);\\n --blue-12: color(display-p3 0.102 0.193 0.379);\\n }\\n }\\n}\\n\\n.dark, .dark-theme {\\n --blue-1: #0d1520;\\n --blue-2: #111927;\\n --blue-3: #0d2847;\\n --blue-4: #003362;\\n --blue-5: #004074;\\n --blue-6: #104d87;\\n --blue-7: #205d9e;\\n --blue-8: #2870bd;\\n --blue-9: #0090ff;\\n --blue-10: #3b9eff;\\n --blue-11: #70b8ff;\\n --blue-12: #c2e6ff;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n .dark, .dark-theme {\\n --blue-1: color(display-p3 0.057 0.081 0.122);\\n --blue-2: color(display-p3 0.072 0.098 0.147);\\n --blue-3: color(display-p3 0.078 0.154 0.27);\\n --blue-4: color(display-p3 0.033 0.197 0.37);\\n --blue-5: color(display-p3 0.08 0.245 0.441);\\n --blue-6: color(display-p3 0.14 0.298 0.511);\\n --blue-7: color(display-p3 0.195 0.361 0.6);\\n --blue-8: color(display-p3 0.239 0.434 0.72);\\n --blue-9: color(display-p3 0.247 0.556 0.969);\\n --blue-10: color(display-p3 0.344 0.612 0.973);\\n --blue-11: color(display-p3 0.49 0.72 1);\\n --blue-12: color(display-p3 0.788 0.898 0.99);\\n }\\n }\\n}\\n\\n:root, .light, .light-theme {\\n --slate-1: #fcfcfd;\\n --slate-2: #f9f9fb;\\n --slate-3: #f0f0f3;\\n --slate-4: #e8e8ec;\\n --slate-5: #e0e1e6;\\n --slate-6: #d9d9e0;\\n --slate-7: #cdced6;\\n --slate-8: #b9bbc6;\\n --slate-9: #8b8d98;\\n --slate-10: #80838d;\\n --slate-11: #60646c;\\n --slate-12: #1c2024;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --slate-1: color(display-p3 0.988 0.988 0.992);\\n --slate-2: color(display-p3 0.976 0.976 0.984);\\n --slate-3: color(display-p3 0.94 0.941 0.953);\\n --slate-4: color(display-p3 0.908 0.909 0.925);\\n --slate-5: color(display-p3 0.88 0.881 0.901);\\n --slate-6: color(display-p3 0.85 0.852 0.876);\\n --slate-7: color(display-p3 0.805 0.808 0.838);\\n --slate-8: color(display-p3 0.727 0.733 0.773);\\n --slate-9: color(display-p3 0.547 0.553 0.592);\\n --slate-10: color(display-p3 0.503 0.512 0.549);\\n --slate-11: color(display-p3 0.379 0.392 0.421);\\n --slate-12: color(display-p3 0.113 0.125 0.14);\\n }\\n }\\n}\\n\\n.dark, .dark-theme {\\n --slate-1: #111113;\\n --slate-2: #18191b;\\n --slate-3: #212225;\\n --slate-4: #272a2d;\\n --slate-5: #2e3135;\\n --slate-6: #363a3f;\\n --slate-7: #43484e;\\n --slate-8: #5a6169;\\n --slate-9: #696e77;\\n --slate-10: #777b84;\\n --slate-11: #b0b4ba;\\n --slate-12: #edeef0;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n .dark, .dark-theme {\\n --slate-1: color(display-p3 0.067 0.067 0.074);\\n --slate-2: color(display-p3 0.095 0.098 0.105);\\n --slate-3: color(display-p3 0.13 0.135 0.145);\\n --slate-4: color(display-p3 0.156 0.163 0.176);\\n --slate-5: color(display-p3 0.183 0.191 0.206);\\n --slate-6: color(display-p3 0.215 0.226 0.244);\\n --slate-7: color(display-p3 0.265 0.28 0.302);\\n --slate-8: color(display-p3 0.357 0.381 0.409);\\n --slate-9: color(display-p3 0.415 0.431 0.463);\\n --slate-10: color(display-p3 0.469 0.483 0.514);\\n --slate-11: color(display-p3 0.692 0.704 0.728);\\n --slate-12: color(display-p3 0.93 0.933 0.94);\\n }\\n }\\n}\\n\\n:root, .light, .light-theme {\\n --grass-1: #fbfefb;\\n --grass-2: #f5fbf5;\\n --grass-3: #e9f6e9;\\n --grass-4: #daf1db;\\n --grass-5: #c9e8ca;\\n --grass-6: #b2ddb5;\\n --grass-7: #94ce9a;\\n --grass-8: #65ba74;\\n --grass-9: #46a758;\\n --grass-10: #3e9b4f;\\n --grass-11: #2a7e3b;\\n --grass-12: #203c25;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --grass-1: color(display-p3 0.986 0.996 0.985);\\n --grass-2: color(display-p3 0.966 0.983 0.964);\\n --grass-3: color(display-p3 0.923 0.965 0.917);\\n --grass-4: color(display-p3 0.872 0.94 0.865);\\n --grass-5: color(display-p3 0.811 0.908 0.802);\\n --grass-6: color(display-p3 0.733 0.864 0.724);\\n --grass-7: color(display-p3 0.628 0.803 0.622);\\n --grass-8: color(display-p3 0.477 0.72 0.482);\\n --grass-9: color(display-p3 0.38 0.647 0.378);\\n --grass-10: color(display-p3 0.344 0.598 0.342);\\n --grass-11: color(display-p3 0.263 0.488 0.261);\\n --grass-12: color(display-p3 0.151 0.233 0.153);\\n }\\n }\\n}\\n\\n:root, .light, .light-theme {\\n --cyan-1: #fafdfe;\\n --cyan-2: #f2fafb;\\n --cyan-3: #def7f9;\\n --cyan-4: #caf1f6;\\n --cyan-5: #b5e9f0;\\n --cyan-6: #9ddde7;\\n --cyan-7: #7dcedc;\\n --cyan-8: #3db9cf;\\n --cyan-9: #00a2c7;\\n --cyan-10: #0797b9;\\n --cyan-11: #107d98;\\n --cyan-12: #0d3c48;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --cyan-1: color(display-p3 0.982 0.992 0.996);\\n --cyan-2: color(display-p3 0.955 0.981 0.984);\\n --cyan-3: color(display-p3 0.888 0.965 0.975);\\n --cyan-4: color(display-p3 0.821 0.941 0.959);\\n --cyan-5: color(display-p3 0.751 0.907 0.935);\\n --cyan-6: color(display-p3 0.671 0.862 0.9);\\n --cyan-7: color(display-p3 0.564 0.8 0.854);\\n --cyan-8: color(display-p3 0.388 0.715 0.798);\\n --cyan-9: color(display-p3 0.282 0.627 0.765);\\n --cyan-10: color(display-p3 0.264 0.583 0.71);\\n --cyan-11: color(display-p3 0.08 0.48 0.63);\\n --cyan-12: color(display-p3 0.108 0.232 0.277);\\n }\\n }\\n}\\n\\n:root, .light, .light-theme {\\n --amber-1: #fefdfb;\\n --amber-2: #fefbe9;\\n --amber-3: #fff7c2;\\n --amber-4: #ffee9c;\\n --amber-5: #fbe577;\\n --amber-6: #f3d673;\\n --amber-7: #e9c162;\\n --amber-8: #e2a336;\\n --amber-9: #ffc53d;\\n --amber-10: #ffba18;\\n --amber-11: #ab6400;\\n --amber-12: #4f3422;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --amber-1: color(display-p3 0.995 0.992 0.985);\\n --amber-2: color(display-p3 0.994 0.986 0.921);\\n --amber-3: color(display-p3 0.994 0.969 0.782);\\n --amber-4: color(display-p3 0.989 0.937 0.65);\\n --amber-5: color(display-p3 0.97 0.902 0.527);\\n --amber-6: color(display-p3 0.936 0.844 0.506);\\n --amber-7: color(display-p3 0.89 0.762 0.443);\\n --amber-8: color(display-p3 0.85 0.65 0.3);\\n --amber-9: color(display-p3 1 0.77 0.26);\\n --amber-10: color(display-p3 0.959 0.741 0.274);\\n --amber-11: color(display-p3 0.64 0.4 0);\\n --amber-12: color(display-p3 0.294 0.208 0.145);\\n }\\n }\\n}\\n\\n:root, .light, .light-theme {\\n --red-1: #fffcfc;\\n --red-2: #fff7f7;\\n --red-3: #feebec;\\n --red-4: #ffdbdc;\\n --red-5: #ffcdce;\\n --red-6: #fdbdbe;\\n --red-7: #f4a9aa;\\n --red-8: #eb8e90;\\n --red-9: #e5484d;\\n --red-10: #dc3e42;\\n --red-11: #ce2c31;\\n --red-12: #641723;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, .light, .light-theme {\\n --red-1: color(display-p3 0.998 0.989 0.988);\\n --red-2: color(display-p3 0.995 0.971 0.971);\\n --red-3: color(display-p3 0.985 0.925 0.925);\\n --red-4: color(display-p3 0.999 0.866 0.866);\\n --red-5: color(display-p3 0.984 0.812 0.811);\\n --red-6: color(display-p3 0.955 0.751 0.749);\\n --red-7: color(display-p3 0.915 0.675 0.672);\\n --red-8: color(display-p3 0.872 0.575 0.572);\\n --red-9: color(display-p3 0.83 0.329 0.324);\\n --red-10: color(display-p3 0.798 0.294 0.285);\\n --red-11: color(display-p3 0.744 0.234 0.222);\\n --red-12: color(display-p3 0.36 0.115 0.143);\\n }\\n }\\n}\\n\\n/** Code mirror */\\n\\n.mdxeditor .cm-editor {\\n --sp-font-mono: var(--font-mono);\\n --sp-font-body: var(--font-body);\\n padding: var(--sp-space-4) 0;\\n }\\n\\n.mdxeditor .sp-editor .cm-editor {\\n padding-bottom: 0;\\n }\\n\\n.mdxeditor .cm-scroller {\\n padding: 0 !important;\\n }\\n\\n.mdxeditor .cm-focused {\\n outline: none;\\n }\\n\\n.mdxeditor .sp-wrapper {\\n overflow: hidden;\\n }\\n\\n.mdxeditor .sp-layout {\\n border: none;\\n }\\n\\n.mdxeditor .sp-cm pre {\\n white-space: break-spaces;\\n word-break: break-word;\\n overflow-wrap: anywhere;\\n flex-shrink: 1;\\n }\\n\\n/** Diff viewer */\\n\\n.mdxeditor .cm-mergeView .cm-scroller {\\n font-family: var(--font-mono);\\n line-height: 1.3rem;\\n font-size: var(--text-xs);\\n }\\n\\n/** Diff viewer */\\n\\n.mdxeditor .cm-sourceView .cm-scroller {\\n font-family: var(--font-mono);\\n line-height: 1.3rem;\\n font-size: var(--text-xs);\\n }\\n\\n.mdxeditor .cm-gutters {\\n background: transparent;\\n font-size: var(--text-xxs);\\n }\\n\\n.mdxeditor .cm-activeLine {\\n background: transparent;\\n }\\n\\n.mdxeditor .cm-tooltip-autocomplete {\\n background: var(--baseBgSubtle);\\n }\\n\\n.mdxeditor hr.selected[data-lexical-decorator=true] {\\n outline: 2px solid highlight;\\n }\\n._editorRoot_1e2ox_53 {\\n --accentBase: var(--blue-1);\\n --accentBgSubtle: var(--blue-2);\\n --accentBg: var(--blue-3);\\n --accentBgHover: var(--blue-4);\\n --accentBgActive: var(--blue-5);\\n --accentLine: var(--blue-6);\\n --accentBorder: var(--blue-7);\\n --accentBorderHover: var(--blue-8);\\n --accentSolid: var(--blue-9);\\n --accentSolidHover: var(--blue-10);\\n --accentText: var(--blue-11);\\n --accentTextContrast: var(--blue-12);\\n\\n --basePageBg: white;\\n --baseBase: var(--slate-1);\\n --baseBgSubtle: var(--slate-2);\\n --baseBg: var(--slate-3);\\n --baseBgHover: var(--slate-4);\\n --baseBgActive: var(--slate-5);\\n --baseLine: var(--slate-6);\\n --baseBorder: var(--slate-7);\\n --baseBorderHover: var(--slate-8);\\n --baseSolid: var(--slate-9);\\n --baseSolidHover: var(--slate-10);\\n --baseText: var(--slate-11);\\n --baseTextContrast: var(--slate-12);\\n\\n --admonitionTipBg: var(--cyan-4);\\n --admonitionTipBorder: var(--cyan-8);\\n\\n --admonitionInfoBg: var(--grass-4);\\n --admonitionInfoBorder: var(--grass-8);\\n\\n --admonitionCautionBg: var(--amber-4);\\n --admonitionCautionBorder: var(--amber-8);\\n\\n --admonitionDangerBg: var(--red-4);\\n --admonitionDangerBorder: var(--red-8);\\n\\n --admonitionNoteBg: var(--slate-4);\\n --admonitionNoteBorder: var(--slate-8);\\n\\n --error-color: var(--red-10);\\n\\n --spacing-0: 0px;\\n --spacing-px: 1px;\\n --spacing-0_5: 0.125rem;\\n --spacing-1: 0.25rem;\\n --spacing-1_5: 0.375rem;\\n --spacing-2: 0.5rem;\\n --spacing-2_5: 0.625rem;\\n --spacing-3: 0.75rem;\\n --spacing-3_5: 0.875rem;\\n --spacing-4: 1rem;\\n --spacing-5: 1.25rem;\\n --spacing-6: 1.5rem;\\n --spacing-7: 1.75rem;\\n --spacing-8: 2rem;\\n --spacing-9: 2.25rem;\\n --spacing-10: 2.5rem;\\n --spacing-11: 2.75rem;\\n --spacing-12: 3rem;\\n --spacing-14: 3.5rem;\\n --spacing-16: 4rem;\\n --spacing-20: 5rem;\\n --spacing-24: 6rem;\\n --spacing-28: 7rem;\\n --spacing-32: 8rem;\\n --spacing-36: 9rem;\\n --spacing-40: 10rem;\\n --spacing-44: 11rem;\\n --spacing-48: 12rem;\\n --spacing-52: 13rem;\\n --spacing-56: 14rem;\\n --spacing-60: 15rem;\\n --spacing-64: 16rem;\\n --spacing-72: 18rem;\\n --spacing-80: 20rem;\\n --spacing-96: 24rem;\\n\\n --radius-none: 0px;\\n --radius-small: var(--spacing-0_5);\\n --radius-base: var(--spacing-1);\\n --radius-medium: var(--spacing-1_5);\\n --radius-large: var(--spacing-2);\\n --radius-extra-large: var(--spacing-3);\\n --radius-full: 9999px;\\n\\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\\n --font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue',\\n sans-serif;\\n\\n --text-base: 1rem;\\n --text-sm: 0.875rem;\\n --text-xs: 0.75rem;\\n --text-xxs: 0.6rem;\\n\\n font-family: var(--font-body);\\n color: var(--baseText);\\n}\\n\\n._editorWrapper_1e2ox_155 {\\n}\\n\\n._nestedListItem_1e2ox_158 {\\n list-style: none;\\n}\\n\\n._toolbarRoot_1e2ox_162 {\\n z-index: 2;\\n display: flex;\\n flex-direction: row;\\n gap: var(--spacing-1);\\n border-radius: var(--radius-medium);\\n padding: var(--spacing-1_5);\\n align-items: center;\\n overflow-x: auto;\\n position: sticky;\\n top: 0;\\n background-color: var(--baseBg);\\n width: inherit;\\n}\\n\\n._toolbarRoot_1e2ox_162 div[role='separator'] {\\n margin: var(--spacing-2) var(--spacing-1);\\n border-left: 1px solid var(--baseBorder);\\n border-right: 1px solid var(--baseBase);\\n height: var(--spacing-4);\\n }\\n\\n._toolbarRoot_1e2ox_162 svg {\\n color: var(--baseTextContrast);\\n display: block;\\n }\\n\\n._readOnlyToolbarRoot_1e2ox_189 {\\n pointer-events: none;\\n background: var(--baseBase);\\n}\\n\\n._readOnlyToolbarRoot_1e2ox_189 > div {\\n opacity: 0.5;\\n }\\n\\n._toolbarModeSwitch_1e2ox_198 {\\n opacity: 1 !important;\\n margin-left: auto;\\n align-self: stretch;\\n align-items: stretch;\\n display: flex;\\n border: 1px solid var(--baseBg);\\n border-radius: var(--radius-medium);\\n font-size: var(--text-xs);\\n}\\n\\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208 {\\n padding-inline-end: var(--spacing-4);\\n padding-inline-start: var(--spacing-4);\\n }\\n\\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:active,\\n ._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208[data-state='on'] {\\n background-color: var(--baseBorder);\\n }\\n\\n._toolbarGroupOfGroups_1e2ox_219 {\\n display: flex;\\n margin: 0 var(--spacing-1);\\n}\\n\\n._toolbarToggleSingleGroup_1e2ox_224:first-of-type ._toolbarToggleItem_1e2ox_208:only-child,\\n._toolbarToggleSingleGroup_1e2ox_224:only-child ._toolbarToggleItem_1e2ox_208:first-child,\\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:first-child {\\n border-top-left-radius: var(--radius-base);\\n border-bottom-left-radius: var(--radius-base);\\n}\\n\\n._toolbarToggleSingleGroup_1e2ox_224:last-of-type ._toolbarToggleItem_1e2ox_208:only-child,\\n._toolbarToggleSingleGroup_1e2ox_224:only-child ._toolbarToggleItem_1e2ox_208:last-child,\\n._toolbarModeSwitch_1e2ox_198 ._toolbarToggleItem_1e2ox_208:last-child {\\n border-top-right-radius: var(--radius-base);\\n border-bottom-right-radius: var(--radius-base);\\n}\\n\\n._toolbarToggleItem_1e2ox_208,\\n._toolbarButton_1e2ox_239 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-0_5);\\n}\\n\\n@media (hover: hover) {\\n ._toolbarToggleItem_1e2ox_208:hover, ._toolbarButton_1e2ox_239:hover {\\n background-color: var(--baseBgActive);\\n }\\n }\\n\\n._toolbarToggleItem_1e2ox_208:active svg, ._toolbarButton_1e2ox_239:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._toolbarToggleItem_1e2ox_208[data-state='on'],\\n ._toolbarButton_1e2ox_239[data-state='on'],\\n ._toolbarToggleItem_1e2ox_208:active,\\n ._toolbarButton_1e2ox_239:active {\\n color: var(--baseTextContrast);\\n background-color: var(--baseBgActive);\\n }\\n\\n._toolbarToggleItem_1e2ox_208[data-disabled], ._toolbarButton_1e2ox_239[data-disabled] {\\n pointer-events: none;\\n }\\n\\n._toolbarToggleItem_1e2ox_208[data-disabled] svg, ._toolbarButton_1e2ox_239[data-disabled] svg {\\n color: var(--baseBorderHover);\\n }\\n\\n._toolbarButton_1e2ox_239 {\\n border-radius: var(--radius-base);\\n}\\n\\n._toolbarButton_1e2ox_239 + ._toolbarButton_1e2ox_239 {\\n margin-left: var(--spacing-1);\\n}\\n\\n._activeToolbarButton_1e2ox_275 {\\n color: var(--accentText);\\n}\\n\\n._toolbarToggleSingleGroup_1e2ox_224 {\\n display: flex;\\n align-items: center;\\n white-space: nowrap;\\n}\\n\\n._toolbarNodeKindSelectContainer_1e2ox_285,\\n._toolbarButtonDropdownContainer_1e2ox_286,\\n._toolbarCodeBlockLanguageSelectContent_1e2ox_287,\\n._selectContainer_1e2ox_288 {\\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\\n z-index: 3;\\n width: var(--spacing-36);\\n border-bottom-left-radius: var(--radius-base);\\n border-bottom-right-radius: var(--radius-base);\\n background-color: var(--basePageBg);\\n font-size: var(--text-sm);\\n}\\n\\n._toolbarButtonDropdownContainer_1e2ox_286 {\\n border-top-right-radius: var(--radius-base);\\n}\\n\\n._toolbarButtonDropdownContainer_1e2ox_286 ._selectItem_1e2ox_301:first-child {\\n border-top-right-radius: var(--radius-base);\\n }\\n\\n._toolbarNodeKindSelectTrigger_1e2ox_306,\\n._toolbarButtonSelectTrigger_1e2ox_307,\\n._selectTrigger_1e2ox_308 {\\n border: 0;\\n background-color: transparent;\\n display: flex;\\n color: inherit;\\n align-items: center;\\n width: var(--spacing-36);\\n padding: var(--spacing-0_5) var(--spacing-1);\\n padding-inline-start: var(--spacing-2);\\n border-radius: var(--radius-medium);\\n white-space: nowrap;\\n flex-wrap: nowrap;\\n font-size: var(--text-sm);\\n background-color: var(--basePageBg);\\n margin: 0 var(--spacing-1);\\n}\\n\\n._toolbarNodeKindSelectTrigger_1e2ox_306[data-state='open'], ._toolbarButtonSelectTrigger_1e2ox_307[data-state='open'], ._selectTrigger_1e2ox_308[data-state='open'] {\\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\\n border-bottom-right-radius: var(--radius-none);\\n border-bottom-left-radius: var(--radius-none);\\n }\\n\\n._selectTrigger_1e2ox_308[data-placeholder] > span:first-child {\\n color: var(--baseBorderHover);\\n}\\n\\n/** used in the sandpack */\\n._toolbarButtonSelectTrigger_1e2ox_307 {\\n width: auto;\\n padding-inline-start: var(--spacing-2);\\n padding-inline-end: var(--spacing-1);\\n padding-block: var(--spacing-0_5);\\n}\\n\\n._toolbarCodeBlockLanguageSelectTrigger_1e2ox_343,\\n._toolbarCodeBlockLanguageSelectContent_1e2ox_287 {\\n width: var(--spacing-48);\\n}\\n\\n._toolbarNodeKindSelectItem_1e2ox_348,\\n._selectItem_1e2ox_301 {\\n cursor: default;\\n display: flex;\\n padding: var(--spacing-2);\\n}\\n\\n._toolbarNodeKindSelectItem_1e2ox_348[data-highlighted], ._selectItem_1e2ox_301[data-highlighted] {\\n background-color: var(--baseBg);\\n }\\n\\n._toolbarNodeKindSelectItem_1e2ox_348[data-state='checked'], ._selectItem_1e2ox_301[data-state='checked'] {\\n color: var(--baseTextContrast);\\n background-color: var(--baseBg);\\n }\\n\\n._toolbarNodeKindSelectItem_1e2ox_348[data-highlighted], ._selectItem_1e2ox_301[data-highlighted] {\\n outline: none;\\n }\\n\\n._toolbarNodeKindSelectItem_1e2ox_348:last-child, ._selectItem_1e2ox_301:last-child {\\n border-bottom-left-radius: var(--radius-base);\\n border-bottom-right-radius: var(--radius-base);\\n }\\n\\n._toolbarNodeKindSelectDropdownArrow_1e2ox_373,\\n._selectDropdownArrow_1e2ox_374 {\\n margin-left: auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n._contentEditable_1e2ox_380 {\\n box-sizing: border-box;\\n width: 100%;\\n color: var(--baseTextContrast);\\n\\n padding: var(--spacing-3);\\n}\\n\\n._contentEditable_1e2ox_380:focus {\\n outline: none;\\n }\\n\\n._codeMirrorWrapper_1e2ox_392 {\\n margin-bottom: var(--spacing-5);\\n border: 1px solid var(--baseLine);\\n border-radius: var(--radius-medium);\\n overflow: hidden;\\n padding: 0.8rem;\\n position: relative;\\n}\\n\\n._sandPackWrapper_1e2ox_401 {\\n margin-bottom: var(--spacing-5);\\n border: 1px solid var(--baseLine);\\n border-radius: var(--radius-medium);\\n overflow: hidden;\\n position: relative;\\n}\\n\\n._codeMirrorToolbar_1e2ox_409 {\\n position: absolute;\\n right: 0;\\n top: 0;\\n display: flex;\\n gap: var(--spacing-1);\\n padding: var(--spacing-1);\\n z-index: 1;\\n background-color: var(--baseBase);\\n border-bottom-left-radius: var(--radius-base);\\n}\\n\\n._frontmatterWrapper_1e2ox_413 {\\n border-radius: var(--radius-medium);\\n padding: var(--spacing-3);\\n background-color: var(--baseBgSubtle);\\n}\\n\\n._frontmatterWrapper_1e2ox_413[data-expanded='true'] {\\n margin-bottom: var(--spacing-10);\\n }\\n\\n._frontmatterToggleButton_1e2ox_423 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n display: flex;\\n align-items: center;\\n gap: var(--spacing-1);\\n font-size: var(--text-sm);\\n}\\n\\n._propertyPanelTitle_1e2ox_431 {\\n font-size: var(--text-xs);\\n font-weight: 400;\\n margin: 0;\\n padding-top: var(--spacing-2);\\n padding-left: var(--spacing-2);\\n}\\n\\n._propertyEditorTable_1e2ox_439 {\\n table-layout: fixed;\\n border-spacing: var(--spacing-2);\\n}\\n\\n._propertyEditorTable_1e2ox_439 th {\\n text-align: left;\\n font-size: var(--text-sm);\\n padding: var(--spacing-2) var(--spacing-3);\\n }\\n\\n._propertyEditorTable_1e2ox_439 col:nth-child(1) {\\n width: 30%;\\n }\\n\\n._propertyEditorTable_1e2ox_439 col:nth-child(2) {\\n width: 70%;\\n }\\n\\n._propertyEditorTable_1e2ox_439 td:last-child ._iconButton_1e2ox_457 {\\n margin-left: var(--spacing-4);\\n margin-right: var(--spacing-4);\\n }\\n\\n._propertyEditorTable_1e2ox_439 ._readOnlyColumnCell_1e2ox_462 {\\n padding-left: 0;\\n }\\n\\n._propertyEditorLabelCell_1e2ox_467 {\\n font-weight: 400;\\n}\\n\\n._readOnlyColumnCell_1e2ox_462 {\\n padding-left: 0;\\n}\\n\\n._buttonsFooter_1e2ox_475 {\\n display: flex;\\n justify-content: flex-end;\\n gap: var(--spacing-2);\\n}\\n\\n._propertyEditorInput_1e2ox_481 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n width: 100%;\\n padding: var(--spacing-2) var(--spacing-3);\\n border-radius: var(--radius-base);\\n border: 1px solid var(--baseBorder);\\n background-color: var(--baseBase);\\n font-size: var(--text-sm);\\n}\\n\\n._iconButton_1e2ox_457 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n color: var(--baseText);\\n}\\n\\n@media (hover: hover) {\\n ._iconButton_1e2ox_457:hover {\\n color: var(--baseTextContrast);\\n }\\n }\\n\\n._iconButton_1e2ox_457:disabled,\\n ._iconButton_1e2ox_457:disabled:hover {\\n color: var(--baseLine);\\n }\\n\\n._primaryButton_1e2ox_507,\\n._secondaryButton_1e2ox_508 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-2) var(--spacing-3);\\n border: 1px solid var(--accentBorder);\\n background-color: var(--accentSolidHover);\\n color: var(--baseBase);\\n font-size: var(--text-xs);\\n border-radius: var(--radius-medium);\\n}\\n\\n._primaryButton_1e2ox_507:disabled, ._secondaryButton_1e2ox_508:disabled {\\n background: var(--accentLine);\\n border-color: var(--accentBg);\\n }\\n\\n._smallButton_1e2ox_523 {\\n font-size: var(--text-xs);\\n padding: var(--spacing-1) var(--spacing-2);\\n border-radius: var(--radius-base);\\n}\\n\\n._secondaryButton_1e2ox_508 {\\n border: 1px solid var(--baseBorder);\\n background-color: var(--baseSolidHover);\\n color: var(--baseBase);\\n}\\n\\n._dialogForm_1e2ox_535 {\\n display: flex;\\n flex-direction: row;\\n gap: var(--spacing-2);\\n}\\n\\n._linkDialogEditForm_1e2ox_541 {\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n gap: var(--spacing-2);\\n padding: 0;\\n}\\n\\n._linkDialogInputContainer_1e2ox_549 {\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n}\\n\\n._linkDialogInputWrapper_1e2ox_555 {\\n display: flex;\\n align-items: center;\\n background-color: var(--baseBase);\\n\\n border-radius: var(--radius-base);\\n border: 1px solid var(--baseBorder);\\n}\\n\\n._linkDialogInputWrapper_1e2ox_555[data-visible-dropdown='true'] {\\n border-bottom-left-radius: var(--radius-none);\\n border-bottom-right-radius: var(--radius-none);\\n border-bottom-width: 0;\\n }\\n\\n._linkDialogInputWrapper_1e2ox_555 > button {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding-right: var(--spacing-2);\\n }\\n\\n._linkDialogInput_1e2ox_549,\\n._dialogInput_1e2ox_576 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n width: 20rem;\\n padding: var(--spacing-2) var(--spacing-3);\\n font-size: var(--text-sm);\\n}\\n\\n._linkDialogInput_1e2ox_549::-moz-placeholder, ._dialogInput_1e2ox_576::-moz-placeholder {\\n color: var(--baseBorder);\\n }\\n\\n._linkDialogInput_1e2ox_549::placeholder, ._dialogInput_1e2ox_576::placeholder {\\n color: var(--baseBorder);\\n }\\n\\n._linkDialogAnchor_1e2ox_587 {\\n position: fixed;\\n background-color: highlight;\\n z-index: -1;\\n}\\n\\n._linkDialogAnchor_1e2ox_587[data-visible='true'] {\\n visibility: visible;\\n }\\n\\n._linkDialogAnchor_1e2ox_587[data-visible='false'] {\\n visibility: hidden;\\n }\\n\\n._linkDialogPopoverContent_1e2ox_601,\\n._tableColumnEditorPopoverContent_1e2ox_602,\\n._dialogContent_1e2ox_603 {\\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\\n display: flex;\\n align-items: center;\\n gap: var(--spacing-0_5);\\n border-radius: var(--radius-medium);\\n border: 1px solid var(--baseBg);\\n background-color: var(--basePageBg);\\n padding: var(--spacing-1) var(--spacing-1);\\n font-size: var(--text-sm);\\n}\\n\\n._largeDialogContent_1e2ox_615 {\\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\\n gap: var(--spacing-0_5);\\n border-radius: var(--radius-medium);\\n border: 1px solid var(--baseBorder);\\n background-color: var(--baseBgSubtle);\\n padding: var(--spacing-4);\\n font-size: var(--text-sm);\\n}\\n\\n._dialogTitle_1e2ox_625 {\\n font-size: var(--text-base);\\n font-weight: 600;\\n padding-left: var(--spacing-2);\\n}\\n\\n._dialogCloseButton_1e2ox_631 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n position: absolute;\\n top: 10px;\\n right: 10px;\\n}\\n\\n._popoverContent_1e2ox_638 {\\n filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.2));\\n display: flex;\\n align-items: center;\\n gap: var(--spacing-0_5);\\n border-radius: var(--radius-medium);\\n background-color: var(--baseBgSubtle);\\n padding: var(--spacing-2) var(--spacing-2);\\n font-size: var(--text-sm);\\n z-index: 1;\\n}\\n\\n._popoverArrow_1e2ox_650 {\\n fill: var(--basePageBg);\\n}\\n\\n._linkDialogPreviewAnchor_1e2ox_654 {\\n margin-right: var(--spacing-1);\\n display: flex;\\n align-items: center;\\n color: var(--accentText);\\n text-decoration: none;\\n\\n border: 1px solid transparent;\\n}\\n\\n@media (hover: hover) {\\n ._linkDialogPreviewAnchor_1e2ox_654:hover {\\n color: var(--accentSolidHover);\\n }\\n }\\n\\n._linkDialogPreviewAnchor_1e2ox_654 span {\\n max-width: 14rem;\\n overflow-x: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n\\n._tooltipTrigger_1e2ox_677 {\\n align-self: center;\\n}\\n\\n._tooltipContent_1e2ox_681 {\\n z-index: 2;\\n position: relative;\\n border-radius: var(--radius-medium);\\n padding: var(--spacing-1) var(--spacing-2);\\n font-size: var(--text-xs);\\n background-color: var(--baseText);\\n color: var(--baseBase);\\n}\\n\\n._tooltipContent_1e2ox_681 svg {\\n fill: var(--baseText);\\n }\\n\\n._actionButton_1e2ox_695 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-1);\\n color: var(--baseTextContrast);\\n padding: var(--spacing-1) var(--spacing-1);\\n border-radius: var(--radius-medium);\\n color: var(--baseTextContrast);\\n}\\n\\n._actionButton_1e2ox_695 svg {\\n display: block;\\n }\\n\\n@media (hover: hover) {\\n ._actionButton_1e2ox_695:hover {\\n background-color: var(--baseBg);\\n }\\n }\\n\\n._actionButton_1e2ox_695:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._actionButton_1e2ox_695[data-state='on'],\\n ._actionButton_1e2ox_695:active {\\n background-color: var(--baseBg);\\n color: var(--baseTextContrast);\\n }\\n\\n._primaryActionButton_1e2ox_702 {\\n background-color: var(--accentSolid);\\n color: var(--baseBase);\\n}\\n\\n@media (hover: hover) {\\n ._primaryActionButton_1e2ox_702:hover {\\n background-color: var(--accentSolidHover);\\n color: var(--baseBase);\\n }\\n }\\n\\n._tableEditor_1e2ox_714 {\\n table-layout: fixed;\\n width: 100%;\\n height: 100%;\\n border-spacing: 0;\\n border-collapse: collapse;\\n}\\n\\n._tableEditor_1e2ox_714 thead > tr > th {\\n text-align: right;\\n }\\n\\n._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),\\n ._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true']) {\\n border: 1px solid var(--baseBgActive);\\n padding: var(--spacing-1) var(--spacing-2);\\n white-space: normal;\\n }\\n\\n:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) > div {\\n outline: none;\\n }\\n\\n:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) > div > p {\\n margin: 0;\\n }\\n\\n[data-active='true']:is(._tableEditor_1e2ox_714 > tbody > tr > td:not(._toolCell_1e2ox_725),._tableEditor_1e2ox_714 > tbody > tr > th:not(._toolCell_1e2ox_725):not([data-tool-cell='true'])) {\\n outline: solid 1px var(--baseSolid);\\n }\\n\\n._tableEditor_1e2ox_714 ._tableColumnEditorTrigger_1e2ox_744,\\n ._tableEditor_1e2ox_714 ._tableRowEditorTrigger_1e2ox_745,\\n ._tableEditor_1e2ox_714 ._addRowButton_1e2ox_746,\\n ._tableEditor_1e2ox_714 ._addColumnButton_1e2ox_747,\\n ._tableEditor_1e2ox_714 ._iconButton_1e2ox_457 {\\n opacity: 0.15;\\n }\\n\\n@media (hover: hover) {\\n ._tableEditor_1e2ox_714:hover ._tableColumnEditorTrigger_1e2ox_744,\\n ._tableEditor_1e2ox_714:hover ._tableRowEditorTrigger_1e2ox_745,\\n ._tableEditor_1e2ox_714:hover ._addRowButton_1e2ox_746,\\n ._tableEditor_1e2ox_714:hover ._addColumnButton_1e2ox_747,\\n ._tableEditor_1e2ox_714:hover ._iconButton_1e2ox_457 {\\n opacity: 0.3;\\n }\\n\\n ._tableEditor_1e2ox_714:hover ._tableColumnEditorTrigger_1e2ox_744:hover, ._tableEditor_1e2ox_714:hover ._tableRowEditorTrigger_1e2ox_745:hover, ._tableEditor_1e2ox_714:hover ._addRowButton_1e2ox_746:hover, ._tableEditor_1e2ox_714:hover ._addColumnButton_1e2ox_747:hover, ._tableEditor_1e2ox_714:hover ._iconButton_1e2ox_457:hover {\\n opacity: 1;\\n }\\n }\\n\\n._toolCell_1e2ox_725 {\\n text-align: right;\\n}\\n\\n._toolCell_1e2ox_725 button {\\n margin: auto;\\n display: block;\\n }\\n\\n._tableColumnEditorTrigger_1e2ox_744 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-1);\\n color: var(--baseTextContrast);\\n padding: var(--spacing-1);\\n border-radius: var(--radius-full);\\n opacity: 0.2;\\n}\\n\\n._tableColumnEditorTrigger_1e2ox_744 svg {\\n display: block;\\n }\\n\\n@media (hover: hover) {\\n ._tableColumnEditorTrigger_1e2ox_744:hover {\\n background-color: var(--baseBg);\\n }\\n }\\n\\n._tableColumnEditorTrigger_1e2ox_744:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._tableColumnEditorTrigger_1e2ox_744[data-state='on'],\\n ._tableColumnEditorTrigger_1e2ox_744:active {\\n background-color: var(--baseBg);\\n color: var(--baseTextContrast);\\n }\\n\\n._tableColumnEditorTrigger_1e2ox_744[data-active='true'] {\\n opacity: 1 !important;\\n }\\n\\n._tableColumnEditorToolbar_1e2ox_789 {\\n display: flex;\\n}\\n\\n._tableColumnEditorToolbar_1e2ox_789 > button {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-1);\\n color: var(--baseTextContrast);\\n }\\n\\n._tableColumnEditorToolbar_1e2ox_789 > button svg {\\n display: block;\\n }\\n\\n@media (hover: hover) {\\n ._tableColumnEditorToolbar_1e2ox_789 > button:hover {\\n background-color: var(--baseBg);\\n }\\n }\\n\\n._tableColumnEditorToolbar_1e2ox_789 > button:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._tableColumnEditorToolbar_1e2ox_789 > button[data-state='on'],\\n ._tableColumnEditorToolbar_1e2ox_789 > button:active {\\n background-color: var(--baseBg);\\n color: var(--baseTextContrast);\\n }\\n\\n._tableColumnEditorToolbar_1e2ox_789 [role='separator'] {\\n margin-left: var(--spacing-1);\\n margin-right: var(--spacing-1);\\n }\\n\\n._toggleGroupRoot_1e2ox_802 {\\n display: inline-flex;\\n}\\n\\n._toggleGroupRoot_1e2ox_802 button {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-1);\\n color: var(--baseTextContrast);\\n }\\n\\n._toggleGroupRoot_1e2ox_802 button svg {\\n display: block;\\n }\\n\\n@media (hover: hover) {\\n ._toggleGroupRoot_1e2ox_802 button:hover {\\n background-color: var(--baseBg);\\n }\\n }\\n\\n._toggleGroupRoot_1e2ox_802 button:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._toggleGroupRoot_1e2ox_802 button[data-state='on'],\\n ._toggleGroupRoot_1e2ox_802 button:active {\\n background-color: var(--baseBg);\\n color: var(--baseTextContrast);\\n }\\n\\n._toggleGroupRoot_1e2ox_802 button:first-child {\\n border-top-left-radius: var(--radius-base);\\n border-bottom-left-radius: var(--radius-base);\\n }\\n\\n._toggleGroupRoot_1e2ox_802 button:last-child {\\n border-top-right-radius: var(--radius-base);\\n border-bottom-right-radius: var(--radius-base);\\n }\\n\\n._tableToolsColumn_1e2ox_820 {\\n width: 2rem;\\n}\\n\\n._tableToolsColumn_1e2ox_820 button {\\n margin: auto;\\n display: block;\\n }\\n\\n._leftAlignedCell_1e2ox_829 {\\n text-align: left;\\n}\\n\\n._rightAlignedCell_1e2ox_833 {\\n text-align: right;\\n}\\n\\n._centeredCell_1e2ox_837 {\\n text-align: center;\\n}\\n\\n._addColumnButton_1e2ox_747,\\n._addRowButton_1e2ox_746 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding: var(--spacing-1);\\n color: var(--baseTextContrast);\\n background-color: var(--baseBase);\\n\\n display: flex;\\n align-items: center;\\n}\\n\\n._addColumnButton_1e2ox_747 svg, ._addRowButton_1e2ox_746 svg {\\n display: block;\\n }\\n\\n@media (hover: hover) {\\n ._addColumnButton_1e2ox_747:hover, ._addRowButton_1e2ox_746:hover {\\n background-color: var(--baseBg);\\n }\\n }\\n\\n._addColumnButton_1e2ox_747:active svg, ._addRowButton_1e2ox_746:active svg {\\n transform: translate(1px, 1px);\\n }\\n\\n._addColumnButton_1e2ox_747[data-state='on'],\\n ._addRowButton_1e2ox_746[data-state='on'],\\n ._addColumnButton_1e2ox_747:active,\\n ._addRowButton_1e2ox_746:active {\\n background-color: var(--baseBg);\\n color: var(--baseTextContrast);\\n }\\n\\n._addColumnButton_1e2ox_747 svg, ._addRowButton_1e2ox_746 svg {\\n margin: auto;\\n }\\n\\n._addRowButton_1e2ox_746 {\\n width: 100%;\\n margin-top: var(--spacing-px);\\n box-sizing: border-box;\\n border-bottom-right-radius: var(--radius-medium);\\n border-bottom-left-radius: var(--radius-medium);\\n}\\n\\n._addColumnButton_1e2ox_747 {\\n margin-left: var(--spacing-px);\\n height: 100%;\\n border-top-right-radius: var(--radius-medium);\\n border-bottom-right-radius: var(--radius-medium);\\n}\\n\\n/** Dialog */\\n._dialogOverlay_1e2ox_870 {\\n position: fixed;\\n inset: 0;\\n animation: _overlayShow_1e2ox_1 150ms cubic-bezier(0.16, 1, 0.3, 1);\\n background-color: var(--baseBase);\\n z-index: 51;\\n opacity: 0.5;\\n}\\n\\n._dialogContent_1e2ox_603,\\n._largeDialogContent_1e2ox_615 {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n animation: _contentShow_1e2ox_1 150ms cubic-bezier(0.16, 1, 0.3, 1);\\n z-index: 52;\\n}\\n\\n._dialogContent_1e2ox_603:focus,\\n._largeDialogContent_1e2ox_615:focus {\\n outline: none;\\n}\\n\\n@keyframes _overlayShow_1e2ox_1 {\\n from {\\n opacity: 0;\\n }\\n\\n to {\\n opacity: 0.5;\\n }\\n}\\n\\n@keyframes _contentShow_1e2ox_1 {\\n from {\\n opacity: 0;\\n transform: translate(-50%, -48%) scale(0.96);\\n }\\n\\n to {\\n opacity: 1;\\n transform: translate(-50%, -50%) scale(1);\\n }\\n}\\n\\n._focusedImage_1e2ox_916 {\\n outline: highlight solid 2px;\\n}\\n\\n._imageWrapper_1e2ox_920 {\\n display: inline-block;\\n position: relative;\\n}\\n\\n._imageWrapper_1e2ox_920[draggable='true'] {\\n cursor: move;\\n /* fallback if grab cursor is unsupported */\\n cursor: grab;\\n cursor: -webkit-grab;\\n}\\n\\n._editImageToolbar_1e2ox_933 {\\n position: absolute;\\n right: 0;\\n top: 0;\\n display: flex;\\n gap: var(--spacing-1);\\n padding: var(--spacing-1);\\n z-index: 1;\\n background-color: var(--baseBase);\\n border-bottom-left-radius: var(--radius-base);\\n}\\n\\n._editImageButton_1e2ox_937 svg {\\n display: block;\\n }\\n\\n._inlineEditor_1e2ox_943 {\\n display: inline-flex;\\n border-radius: var(--radius-medium);\\n padding: var(--spacing-1);\\n gap: var(--spacing-2);\\n align-items: center;\\n background: var(--baseBg);\\n}\\n\\n._blockEditor_1e2ox_952 {\\n display: flex;\\n justify-content: stretch;\\n border-radius: var(--radius-medium);\\n padding: var(--spacing-2);\\n gap: var(--spacing-2);\\n align-items: center;\\n background: var(--baseBg);\\n}\\n\\n._blockEditor_1e2ox_952 ._nestedEditor_1e2ox_961 {\\n flex-grow: 1;\\n }\\n\\n._nestedEditor_1e2ox_961 {\\n background: var(--basePageBg);\\n padding: var(--spacing-1) var(--spacing-2);\\n border-radius: var(--radius-medium);\\n}\\n\\n._nestedEditor_1e2ox_961 > p {\\n margin: 0;\\n }\\n\\n._nestedEditor_1e2ox_961:focus {\\n outline: none;\\n }\\n\\n._genericComponentName_1e2ox_980 {\\n font-size: var(--text-sm);\\n color: var(--baseText);\\n padding-right: var(--spacing-2);\\n}\\n\\n._diffSourceToggleWrapper_1e2ox_986 {\\n margin-left: auto;\\n pointer-events: auto;\\n opacity: 1;\\n position: sticky;\\n right: 0;\\n}\\n\\n._ggDiffSourceToggle_1e2ox_994 {\\n}\\n\\n._diffSourceToggle_1e2ox_986 {\\n border-radius: var(--radius-medium);\\n background-color: var(--baseBase);\\n display: flex;\\n}\\n\\n._diffSourceToggle_1e2ox_986 ._toolbarToggleItem_1e2ox_208 {\\n padding: 0;\\n }\\n\\n._diffSourceToggle_1e2ox_986 ._toolbarToggleItem_1e2ox_208 > span {\\n display: block;\\n padding: var(--spacing-1) var(--spacing-1);\\n }\\n\\n._selectWithLabel_1e2ox_1012 {\\n display: flex;\\n align-items: center;\\n gap: var(--spacing-2);\\n margin-left: var(--spacing-2);\\n}\\n\\n._selectWithLabel_1e2ox_1012 > label {\\n font-size: var(--text-sm);\\n }\\n\\n._selectWithLabel_1e2ox_1012 ._selectTrigger_1e2ox_308 {\\n border: 1px solid var(--baseBorder);\\n }\\n\\n._toolbarTitleMode_1e2ox_1027 {\\n font-size: var(--text-sm);\\n margin-left: var(--spacing-2);\\n}\\n\\n._imageControlWrapperResizing_1e2ox_1032 {\\n touch-action: none;\\n}\\n\\n._imageResizer_1e2ox_1036 {\\n display: block;\\n width: 7px;\\n height: 7px;\\n position: absolute;\\n background-color: var(--accentText);\\n border: 1px solid var(--baseBg);\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerN_1e2ox_1045 {\\n top: -6px;\\n left: 48%;\\n cursor: n-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerNe_1e2ox_1051 {\\n top: -6px;\\n right: -6px;\\n cursor: ne-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerE_1e2ox_1057 {\\n bottom: 48%;\\n right: -6px;\\n cursor: e-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerSe_1e2ox_1063 {\\n bottom: -2px;\\n right: -6px;\\n cursor: nwse-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerS_1e2ox_1063 {\\n bottom: -2px;\\n left: 48%;\\n cursor: s-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerSw_1e2ox_1075 {\\n bottom: -2px;\\n left: -6px;\\n cursor: sw-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerW_1e2ox_1081 {\\n bottom: 48%;\\n left: -6px;\\n cursor: w-resize;\\n}\\n\\n._imageResizer_1e2ox_1036._imageResizerNw_1e2ox_1087 {\\n top: -6px;\\n left: -6px;\\n cursor: nw-resize;\\n}\\n\\n._imagePlaceholder_1e2ox_1093 {\\n border: 2px dashed;\\n padding: 48px;\\n margin: 12px;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n}\\n\\n._imageDimensionsContainer_1e2ox_1101 {\\n display: flex;\\n gap: var(--spacing-4);\\n}\\n\\n._placeholder_1e2ox_1106 {\\n color: var(--baseSolid);\\n overflow: hidden;\\n position: absolute;\\n top: 0;\\n padding: var(--spacing-3);\\n text-overflow: ellipsis;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n white-space: nowrap;\\n display: inline-block;\\n pointer-events: none;\\n}\\n\\n._rootContentEditableWrapper_1e2ox_1119 {\\n position: relative;\\n}\\n\\n._downshiftContainer_1e2ox_1123 {\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n}\\n\\n._downshiftInputWrapper_1e2ox_1129 {\\n display: flex;\\n align-items: center;\\n background-color: var(--baseBase);\\n\\n border-radius: var(--radius-base);\\n border: 1px solid var(--baseBorder);\\n}\\n\\n._downshiftInputWrapper_1e2ox_1129[data-visible-dropdown='true'] {\\n border-bottom-left-radius: var(--radius-none);\\n border-bottom-right-radius: var(--radius-none);\\n border-bottom-width: 0;\\n }\\n\\n._downshiftInputWrapper_1e2ox_1129 > button {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n padding-right: var(--spacing-2);\\n }\\n\\n._downshiftInput_1e2ox_1129 {\\n border: 0;\\n background-color: transparent;\\n font-size: inherit;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n all: unset;\\n box-sizing: border-box;\\n cursor: default;\\n width: 20rem;\\n padding: var(--spacing-2) var(--spacing-3);\\n font-size: var(--text-sm);\\n}\\n\\n._downshiftInput_1e2ox_1129::-moz-placeholder {\\n color: var(--baseBorder);\\n }\\n\\n._downshiftInput_1e2ox_1129::placeholder {\\n color: var(--baseBorder);\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 {\\n position: relative;\\n}\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul {\\n all: unset;\\n box-sizing: border-box;\\n position: absolute;\\n font-size: var(--text-sm);\\n width: 100%;\\n display: none;\\n border-bottom-left-radius: var(--radius-medium);\\n border-bottom-right-radius: var(--radius-medium);\\n max-height: var(--spacing-48);\\n overflow-x: hidden;\\n overflow-y: auto;\\n border: 1px solid var(--baseBorder);\\n border-top-width: 0;\\n background-color: var(--baseBase);\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul[data-visible='true'] {\\n display: block;\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul li {\\n padding: var(--spacing-2) var(--spacing-3);\\n white-space: nowrap;\\n margin-bottom: var(--spacing-1);\\n overflow-x: hidden;\\n text-overflow: ellipsis;\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul li[data-selected='true'] {\\n background-color: var(--baseBgSubtle);\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul li[data-highlighted='true'] {\\n background-color: var(--baseBgHover);\\n }\\n\\n._downshiftAutocompleteContainer_1e2ox_1160 ul li:last-of-type {\\n border-bottom-left-radius: var(--radius-medium);\\n border-bottom-right-radius: var(--radius-medium);\\n }\\n\\n._textInput_1e2ox_1206 {\\n all: unset;\\n border-radius: var(--radius-base);\\n border: 1px solid var(--baseBorder);\\n background-color: var(--baseBase);\\n padding: var(--spacing-2) var(--spacing-3);\\n}\\n\\nform._multiFieldForm_1e2ox_1214 {\\n display: flex;\\n flex-direction: column;\\n padding: var(--spacing-2);\\n gap: var(--spacing-2);\\n}\\n\\nform._multiFieldForm_1e2ox_1214 ._formField_1e2ox_1220 {\\n display: flex;\\n flex-direction: column;\\n gap: var(--spacing-2);\\n }\\n\\nform._multiFieldForm_1e2ox_1214 ._formField_1e2ox_1220 label {\\n font-size: var(--text-xs);\\n }\\n\\n._markdownParseError_1e2ox_1231 {\\n border-radius: var(--radius-base);\\n border: 1px solid var(--error-color);\\n padding: var(--spacing-2);\\n margin-block: var(--spacing-2);\\n color: var(--error-color);\\n font-size: var(--text-xs);\\n}\\n\\n._popupContainer_1e2ox_1240 {\\n position: relative;\\n z-index: 2;\\n}\\n\\n._inputSizer_1e2ox_1245 {\\n display: inline-grid;\\n vertical-align: baseline;\\n align-items: center;\\n position: relative;\\n}\\n\\n._inputSizer_1e2ox_1245::after,\\n ._inputSizer_1e2ox_1245 input {\\n width: auto;\\n min-width: 1rem;\\n grid-area: 1 / 2;\\n font: inherit;\\n margin: 0;\\n padding: 0 2px;\\n resize: none;\\n background: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n border: none;\\n color: inherit;\\n }\\n\\n._inputSizer_1e2ox_1245 span {\\n padding: 0.25em;\\n }\\n\\n._inputSizer_1e2ox_1245::after {\\n content: attr(data-value);\\n white-space: pre-wrap;\\n }\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --blue-1: #fbfdff;\\n --blue-2: #f4faff;\\n --blue-3: #e6f4fe;\\n --blue-4: #d5efff;\\n --blue-5: #c2e5ff;\\n --blue-6: #acd8fc;\\n --blue-7: #8ec8f6;\\n --blue-8: #5eb1ef;\\n --blue-9: #0090ff;\\n --blue-10: #0588f0;\\n --blue-11: #0d74ce;\\n --blue-12: #113264;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --blue-1: color(display-p3 0.986 0.992 0.999);\\n --blue-2: color(display-p3 0.96 0.979 0.998);\\n --blue-3: color(display-p3 0.912 0.956 0.991);\\n --blue-4: color(display-p3 0.853 0.932 1);\\n --blue-5: color(display-p3 0.788 0.894 0.998);\\n --blue-6: color(display-p3 0.709 0.843 0.976);\\n --blue-7: color(display-p3 0.606 0.777 0.947);\\n --blue-8: color(display-p3 0.451 0.688 0.917);\\n --blue-9: color(display-p3 0.247 0.556 0.969);\\n --blue-10: color(display-p3 0.234 0.523 0.912);\\n --blue-11: color(display-p3 0.15 0.44 0.84);\\n --blue-12: color(display-p3 0.102 0.193 0.379);\\n }\\n }\\n}\\n\\n._dark_1tncs_1, ._dark-theme_1tncs_1 {\\n --blue-1: #0d1520;\\n --blue-2: #111927;\\n --blue-3: #0d2847;\\n --blue-4: #003362;\\n --blue-5: #004074;\\n --blue-6: #104d87;\\n --blue-7: #205d9e;\\n --blue-8: #2870bd;\\n --blue-9: #0090ff;\\n --blue-10: #3b9eff;\\n --blue-11: #70b8ff;\\n --blue-12: #c2e6ff;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n ._dark_1tncs_1, ._dark-theme_1tncs_1 {\\n --blue-1: color(display-p3 0.057 0.081 0.122);\\n --blue-2: color(display-p3 0.072 0.098 0.147);\\n --blue-3: color(display-p3 0.078 0.154 0.27);\\n --blue-4: color(display-p3 0.033 0.197 0.37);\\n --blue-5: color(display-p3 0.08 0.245 0.441);\\n --blue-6: color(display-p3 0.14 0.298 0.511);\\n --blue-7: color(display-p3 0.195 0.361 0.6);\\n --blue-8: color(display-p3 0.239 0.434 0.72);\\n --blue-9: color(display-p3 0.247 0.556 0.969);\\n --blue-10: color(display-p3 0.344 0.612 0.973);\\n --blue-11: color(display-p3 0.49 0.72 1);\\n --blue-12: color(display-p3 0.788 0.898 0.99);\\n }\\n }\\n}\\n\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --slate-1: #fcfcfd;\\n --slate-2: #f9f9fb;\\n --slate-3: #f0f0f3;\\n --slate-4: #e8e8ec;\\n --slate-5: #e0e1e6;\\n --slate-6: #d9d9e0;\\n --slate-7: #cdced6;\\n --slate-8: #b9bbc6;\\n --slate-9: #8b8d98;\\n --slate-10: #80838d;\\n --slate-11: #60646c;\\n --slate-12: #1c2024;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --slate-1: color(display-p3 0.988 0.988 0.992);\\n --slate-2: color(display-p3 0.976 0.976 0.984);\\n --slate-3: color(display-p3 0.94 0.941 0.953);\\n --slate-4: color(display-p3 0.908 0.909 0.925);\\n --slate-5: color(display-p3 0.88 0.881 0.901);\\n --slate-6: color(display-p3 0.85 0.852 0.876);\\n --slate-7: color(display-p3 0.805 0.808 0.838);\\n --slate-8: color(display-p3 0.727 0.733 0.773);\\n --slate-9: color(display-p3 0.547 0.553 0.592);\\n --slate-10: color(display-p3 0.503 0.512 0.549);\\n --slate-11: color(display-p3 0.379 0.392 0.421);\\n --slate-12: color(display-p3 0.113 0.125 0.14);\\n }\\n }\\n}\\n\\n._dark_1tncs_1, ._dark-theme_1tncs_1 {\\n --slate-1: #111113;\\n --slate-2: #18191b;\\n --slate-3: #212225;\\n --slate-4: #272a2d;\\n --slate-5: #2e3135;\\n --slate-6: #363a3f;\\n --slate-7: #43484e;\\n --slate-8: #5a6169;\\n --slate-9: #696e77;\\n --slate-10: #777b84;\\n --slate-11: #b0b4ba;\\n --slate-12: #edeef0;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n ._dark_1tncs_1, ._dark-theme_1tncs_1 {\\n --slate-1: color(display-p3 0.067 0.067 0.074);\\n --slate-2: color(display-p3 0.095 0.098 0.105);\\n --slate-3: color(display-p3 0.13 0.135 0.145);\\n --slate-4: color(display-p3 0.156 0.163 0.176);\\n --slate-5: color(display-p3 0.183 0.191 0.206);\\n --slate-6: color(display-p3 0.215 0.226 0.244);\\n --slate-7: color(display-p3 0.265 0.28 0.302);\\n --slate-8: color(display-p3 0.357 0.381 0.409);\\n --slate-9: color(display-p3 0.415 0.431 0.463);\\n --slate-10: color(display-p3 0.469 0.483 0.514);\\n --slate-11: color(display-p3 0.692 0.704 0.728);\\n --slate-12: color(display-p3 0.93 0.933 0.94);\\n }\\n }\\n}\\n\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --grass-1: #fbfefb;\\n --grass-2: #f5fbf5;\\n --grass-3: #e9f6e9;\\n --grass-4: #daf1db;\\n --grass-5: #c9e8ca;\\n --grass-6: #b2ddb5;\\n --grass-7: #94ce9a;\\n --grass-8: #65ba74;\\n --grass-9: #46a758;\\n --grass-10: #3e9b4f;\\n --grass-11: #2a7e3b;\\n --grass-12: #203c25;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --grass-1: color(display-p3 0.986 0.996 0.985);\\n --grass-2: color(display-p3 0.966 0.983 0.964);\\n --grass-3: color(display-p3 0.923 0.965 0.917);\\n --grass-4: color(display-p3 0.872 0.94 0.865);\\n --grass-5: color(display-p3 0.811 0.908 0.802);\\n --grass-6: color(display-p3 0.733 0.864 0.724);\\n --grass-7: color(display-p3 0.628 0.803 0.622);\\n --grass-8: color(display-p3 0.477 0.72 0.482);\\n --grass-9: color(display-p3 0.38 0.647 0.378);\\n --grass-10: color(display-p3 0.344 0.598 0.342);\\n --grass-11: color(display-p3 0.263 0.488 0.261);\\n --grass-12: color(display-p3 0.151 0.233 0.153);\\n }\\n }\\n}\\n\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --cyan-1: #fafdfe;\\n --cyan-2: #f2fafb;\\n --cyan-3: #def7f9;\\n --cyan-4: #caf1f6;\\n --cyan-5: #b5e9f0;\\n --cyan-6: #9ddde7;\\n --cyan-7: #7dcedc;\\n --cyan-8: #3db9cf;\\n --cyan-9: #00a2c7;\\n --cyan-10: #0797b9;\\n --cyan-11: #107d98;\\n --cyan-12: #0d3c48;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --cyan-1: color(display-p3 0.982 0.992 0.996);\\n --cyan-2: color(display-p3 0.955 0.981 0.984);\\n --cyan-3: color(display-p3 0.888 0.965 0.975);\\n --cyan-4: color(display-p3 0.821 0.941 0.959);\\n --cyan-5: color(display-p3 0.751 0.907 0.935);\\n --cyan-6: color(display-p3 0.671 0.862 0.9);\\n --cyan-7: color(display-p3 0.564 0.8 0.854);\\n --cyan-8: color(display-p3 0.388 0.715 0.798);\\n --cyan-9: color(display-p3 0.282 0.627 0.765);\\n --cyan-10: color(display-p3 0.264 0.583 0.71);\\n --cyan-11: color(display-p3 0.08 0.48 0.63);\\n --cyan-12: color(display-p3 0.108 0.232 0.277);\\n }\\n }\\n}\\n\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --amber-1: #fefdfb;\\n --amber-2: #fefbe9;\\n --amber-3: #fff7c2;\\n --amber-4: #ffee9c;\\n --amber-5: #fbe577;\\n --amber-6: #f3d673;\\n --amber-7: #e9c162;\\n --amber-8: #e2a336;\\n --amber-9: #ffc53d;\\n --amber-10: #ffba18;\\n --amber-11: #ab6400;\\n --amber-12: #4f3422;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --amber-1: color(display-p3 0.995 0.992 0.985);\\n --amber-2: color(display-p3 0.994 0.986 0.921);\\n --amber-3: color(display-p3 0.994 0.969 0.782);\\n --amber-4: color(display-p3 0.989 0.937 0.65);\\n --amber-5: color(display-p3 0.97 0.902 0.527);\\n --amber-6: color(display-p3 0.936 0.844 0.506);\\n --amber-7: color(display-p3 0.89 0.762 0.443);\\n --amber-8: color(display-p3 0.85 0.65 0.3);\\n --amber-9: color(display-p3 1 0.77 0.26);\\n --amber-10: color(display-p3 0.959 0.741 0.274);\\n --amber-11: color(display-p3 0.64 0.4 0);\\n --amber-12: color(display-p3 0.294 0.208 0.145);\\n }\\n }\\n}\\n\\n:root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --red-1: #fffcfc;\\n --red-2: #fff7f7;\\n --red-3: #feebec;\\n --red-4: #ffdbdc;\\n --red-5: #ffcdce;\\n --red-6: #fdbdbe;\\n --red-7: #f4a9aa;\\n --red-8: #eb8e90;\\n --red-9: #e5484d;\\n --red-10: #dc3e42;\\n --red-11: #ce2c31;\\n --red-12: #641723;\\n}\\n\\n@supports (color: color(display-p3 1 1 1)) {\\n @media (color-gamut: p3) {\\n :root, ._light_1tncs_1, ._light-theme_1tncs_1 {\\n --red-1: color(display-p3 0.998 0.989 0.988);\\n --red-2: color(display-p3 0.995 0.971 0.971);\\n --red-3: color(display-p3 0.985 0.925 0.925);\\n --red-4: color(display-p3 0.999 0.866 0.866);\\n --red-5: color(display-p3 0.984 0.812 0.811);\\n --red-6: color(display-p3 0.955 0.751 0.749);\\n --red-7: color(display-p3 0.915 0.675 0.672);\\n --red-8: color(display-p3 0.872 0.575 0.572);\\n --red-9: color(display-p3 0.83 0.329 0.324);\\n --red-10: color(display-p3 0.798 0.294 0.285);\\n --red-11: color(display-p3 0.744 0.234 0.222);\\n --red-12: color(display-p3 0.36 0.115 0.143);\\n }\\n }\\n}\\n\\n._bold_1tncs_10 {\\n font-weight: bold;\\n}\\n\\n._italic_1tncs_14 {\\n font-style: italic;\\n}\\n\\n._underline_1tncs_18 {\\n text-decoration: underline;\\n}\\n\\n._bold_1tncs_10 {\\n font-weight: 700;\\n}\\n\\n._italic_1tncs_14 {\\n font-style: italic;\\n}\\n\\n._underline_1tncs_18 {\\n text-decoration: underline\\n}\\n\\n._strikethrough_1tncs_34 {\\n text-decoration: line-through\\n}\\n\\n._underlineStrikethrough_1tncs_38 {\\n text-decoration: underline line-through\\n}\\n\\n._subscript_1tncs_42 {\\n font-size: .8em;\\n vertical-align: sub !important\\n}\\n\\n._superscript_1tncs_47 {\\n font-size: .8em;\\n vertical-align: super\\n}\\n\\n._code_1tncs_52 {\\n background-color: var(--baseBg);\\n padding: 1px .25rem;\\n font-family: var(--font-mono);\\n font-size: 94%\\n}\\n\\n._nestedListItem_1tncs_59 {\\n list-style: none;\\n list-style-type: none;\\n}\\n\\n._nestedListItem_1tncs_59:before,\\n._nestedListItem_1tncs_59:after {\\n display: none;\\n}\\n\\n._listitem_1tncs_69 {\\n margin: var(--spacing-2) 0;\\n}\\n\\n._listItemChecked_1tncs_73,\\n._listItemUnchecked_1tncs_74 {\\n position: relative;\\n margin-left: 0;\\n margin-right: 0;\\n margin-inline-start: -1rem;\\n padding-left: var(--spacing-6);\\n padding-right: var(--spacing-6);\\n list-style-type: none;\\n outline: none;\\n}\\n\\n._listItemChecked_1tncs_73 {\\n text-decoration: line-through;\\n}\\n\\n._listItemUnchecked_1tncs_74:before,\\n._listItemChecked_1tncs_73:before {\\n content: '';\\n width: var(--spacing-4);\\n height: var(--spacing-4);\\n top: 0;\\n left: 0;\\n cursor: pointer;\\n display: block;\\n background-size: cover;\\n position: absolute;\\n}\\n\\n._listItemUnchecked_1tncs_74[dir='rtl']:before,\\n._listItemChecked_1tncs_73[dir='rtl']:before {\\n left: auto;\\n right: 0;\\n}\\n\\n._listItemUnchecked_1tncs_74:focus:before,\\n._listItemChecked_1tncs_73:focus:before {\\n box-shadow: 0 0 0 2px var(--accentBgActive);\\n border-radius: var(--radius-small);\\n}\\n\\n._listItemUnchecked_1tncs_74:before {\\n border: 1px solid var(--baseBorder);\\n border-radius: var(--radius-small);\\n}\\n\\n._listItemChecked_1tncs_73:before {\\n border: 1px solid var(--accentBorder);\\n border-radius: var(--radius-small);\\n background-color: var(--accentSolid);\\n background-repeat: no-repeat;\\n}\\n\\n._listItemChecked_1tncs_73:after {\\n content: '';\\n cursor: pointer;\\n border-color: var(--baseBase);\\n border-style: solid;\\n position: absolute;\\n display: block;\\n top: var(--spacing-0_5);\\n width: var(--spacing-1);\\n left: var(--spacing-1_5);\\n right: var(--spacing-1_5);\\n height: var(--spacing-2);\\n transform: rotate(45deg);\\n border-width: 0 var(--spacing-0_5) var(--spacing-0_5) 0;\\n}\\n\\n._nestedListItem_1tncs_59 {\\n list-style-type: none;\\n}\\n\\n._nestedListItem_1tncs_59:before,\\n._nestedListItem_1tncs_59:after {\\n display: none;\\n}\\n\\n._admonitionDanger_1tncs_151,\\n._admonitionInfo_1tncs_152,\\n._admonitionNote_1tncs_153,\\n._admonitionTip_1tncs_154,\\n._admonitionCaution_1tncs_155 {\\n padding: var(--spacing-2);\\n margin-top: var(--spacing-2);\\n margin-bottom: var(--spacing-2);\\n border-left: 3px solid var(--admonitionBorder);\\n background-color: var(--admonitionBg);\\n}\\n\\n._admonitionInfo_1tncs_152 {\\n --admonitionBorder: var(--admonitionInfoBorder);\\n --admonitionBg: var(--admonitionInfoBg);\\n}\\n\\n._admonitionTip_1tncs_154 {\\n --admonitionBorder: var(--admonitionTipBorder);\\n --admonitionBg: var(--admonitionTipBg);\\n}\\n\\n._admonitionCaution_1tncs_155 {\\n --admonitionBorder: var(--admonitionCautionBorder);\\n --admonitionBg: var(--admonitionCautionBg);\\n}\\n\\n._admonitionDanger_1tncs_151 {\\n --admonitionBorder: var(--admonitionDangerBorder);\\n --admonitionBg: var(--admonitionDangerBg);\\n}\\n\\n._admonitionNote_1tncs_153 {\\n --admonitionBorder: var(--admonitionNoteBorder);\\n --admonitionBg: var(--admonitionNoteBg);\\n}\\n\\n._mdxExpression_1tncs_188 {\\n font-family: var(--font-mono);\\n font-size: 84%;\\n color: var(--accentText);\\n}\\n\\n._mdxExpression_1tncs_188 input:focus-visible {\\n outline: none;\\n }\\n\";\n document.head.appendChild(style);\n})();\n", "\n(function() {\n if (typeof document === 'undefined') return;\n var id = 'industry-mdx-editor-styles-L1VzZXJz';\n if (document.getElementById(id)) return;\n var style = document.createElement('style');\n style.id = id;\n style.textContent = \"/**\\n * Industry-themed MDX Editor styles\\n * These CSS custom properties integrate MDXEditor with the industry-theme system\\n * Based on Radix UI theming system used by MDXEditor\\n *\\n * Note: All Radix color variables are set directly by the component\\n * This file provides additional content styling and customizations\\n */\\n\\n/* Override MDXEditor's default CSS variables with our theme */\\n.themed-mdx-editor [class*='editorRoot'] {\\n --accentBase: var(--accentBase) !important;\\n --accentBgSubtle: var(--accentBgSubtle) !important;\\n --accentBg: var(--accentBg) !important;\\n --accentBgHover: var(--accentBgHover) !important;\\n --accentBgActive: var(--accentBgActive) !important;\\n --accentLine: var(--accentLine) !important;\\n --accentBorder: var(--accentBorder) !important;\\n --accentBorderHover: var(--accentBorderHover) !important;\\n --accentSolid: var(--accentSolid) !important;\\n --accentSolidHover: var(--accentSolidHover) !important;\\n --accentText: var(--accentText) !important;\\n --accentTextContrast: var(--accentTextContrast) !important;\\n\\n --basePageBg: var(--mdx-editor-bg) !important;\\n --baseBase: var(--baseBase) !important;\\n --baseBgSubtle: var(--baseBgSubtle) !important;\\n --baseBg: var(--baseBg) !important;\\n --baseBgHover: var(--baseBgHover) !important;\\n --baseBgActive: var(--baseBgActive) !important;\\n --baseLine: var(--baseLine) !important;\\n --baseBorder: var(--baseBorder) !important;\\n --baseBorderHover: var(--baseBorderHover) !important;\\n --baseSolid: var(--baseSolid) !important;\\n --baseSolidHover: var(--baseSolidHover) !important;\\n --baseText: var(--baseText) !important;\\n --baseTextContrast: var(--baseTextContrast) !important;\\n}\\n\\n/* MDXEditor content styling */\\n.themed-mdx-editor .mdx-editor-content {\\n font-family: var(--mdx-editor-font-family);\\n font-size: var(--mdx-editor-font-size);\\n color: var(--mdx-editor-fg);\\n line-height: 1.6;\\n\\n /* Document padding - similar to Google Docs margins */\\n padding-top: var(--mdx-editor-padding-top, 0);\\n padding-right: var(--mdx-editor-padding-right, 0);\\n padding-bottom: var(--mdx-editor-padding-bottom, 0);\\n padding-left: var(--mdx-editor-padding-left, 0);\\n\\n /* Ensure content is properly contained */\\n box-sizing: border-box;\\n}\\n\\n/* Headings */\\n.themed-mdx-editor .mdx-editor-content h1,\\n.themed-mdx-editor .mdx-editor-content h2,\\n.themed-mdx-editor .mdx-editor-content h3,\\n.themed-mdx-editor .mdx-editor-content h4,\\n.themed-mdx-editor .mdx-editor-content h5,\\n.themed-mdx-editor .mdx-editor-content h6 {\\n color: var(--mdx-editor-heading-color);\\n}\\n\\n/* Links */\\n.themed-mdx-editor .mdx-editor-content a {\\n color: var(--mdx-editor-link-color);\\n}\\n\\n/* Inline code */\\n.themed-mdx-editor .mdx-editor-content code {\\n background-color: var(--mdx-editor-code-bg);\\n font-family: var(--mdx-editor-font-family);\\n padding: 2px 6px;\\n border-radius: 3px;\\n}\\n\\n/* Code blocks - target the CodeMirror editor wrapper */\\n.themed-mdx-editor .cm-editor {\\n background-color: var(--mdx-editor-code-bg) !important;\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-scroller {\\n font-family: var(--mdx-editor-font-family);\\n background-color: var(--mdx-editor-code-bg);\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-gutters {\\n background-color: var(--mdx-editor-code-bg);\\n border-right: 1px solid var(--mdx-editor-border);\\n color: var(--mdx-editor-fg);\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-content {\\n background-color: var(--mdx-editor-code-bg);\\n color: var(--mdx-editor-fg);\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-line {\\n background-color: var(--mdx-editor-code-bg);\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-activeLineGutter {\\n background-color: var(--baseBgHover);\\n}\\n\\n.themed-mdx-editor .cm-editor .cm-activeLine {\\n background-color: var(--baseBgHover);\\n}\\n\\n/* Selection */\\n.themed-mdx-editor .mdx-editor-content ::selection {\\n background-color: var(--mdx-editor-selection-bg);\\n}\\n\\n/* Toolbar container */\\n.themed-mdx-editor [class*='toolbarRoot'] {\\n background-color: var(--mdx-editor-toolbar-bg);\\n border-bottom: 1px solid var(--mdx-editor-border);\\n}\\n\\n/* Toolbar buttons */\\n.themed-mdx-editor [class*='toolbarRoot'] button:not([class*='selectTrigger']) {\\n color: var(--mdx-editor-fg);\\n}\\n\\n.themed-mdx-editor [class*='toolbarRoot'] button:not([class*='selectTrigger']):hover {\\n background-color: var(--mdx-editor-selection-bg);\\n}\\n\\n/* Fix toolbar SVG icon colors - override MDXEditor's baseTextContrast usage */\\n.themed-mdx-editor [class*='toolbarRoot'] svg {\\n color: var(--baseText) !important;\\n}\\n\\n/* Toolbar select dropdowns (BlockTypeSelect, etc.) */\\n.themed-mdx-editor button[role='combobox'][class*='selectTrigger'],\\n.themed-mdx-editor [data-toolbar-item='true'][class*='selectTrigger'],\\nbutton[role='combobox'][class*='selectTrigger'][data-toolbar-item='true'] {\\n background-color: var(--baseBg) !important;\\n color: var(--baseText) !important;\\n border: 1px solid var(--baseBorder) !important;\\n padding: 4px 8px !important;\\n border-radius: 4px !important;\\n}\\n\\n.themed-mdx-editor button[role='combobox'][class*='selectTrigger']:hover,\\n.themed-mdx-editor [data-toolbar-item='true'][class*='selectTrigger']:hover,\\nbutton[role='combobox'][class*='selectTrigger'][data-toolbar-item='true']:hover {\\n background-color: var(--baseBgHover) !important;\\n border-color: var(--baseBorderHover) !important;\\n}\\n\\n.themed-mdx-editor button[class*='selectTrigger'] span,\\nbutton[class*='selectTrigger'][data-toolbar-item='true'] span {\\n color: var(--baseText) !important;\\n}\\n\\n.themed-mdx-editor button[class*='selectTrigger'] [class*='selectDropdownArrow'] svg,\\nbutton[class*='selectTrigger'][data-toolbar-item='true'] [class*='selectDropdownArrow'] svg {\\n color: var(--baseText) !important;\\n}\\n\\n/* Select dropdown content - Note: These are often portaled outside the editor */\\n[class*='selectContent'] {\\n background-color: var(--baseBg) !important;\\n border: 1px solid var(--baseBorder) !important;\\n color: var(--baseText) !important;\\n z-index: 9999 !important;\\n}\\n\\n[class*='selectItem'] {\\n color: var(--baseText) !important;\\n}\\n\\n[class*='selectItem']:hover {\\n background-color: var(--baseBgHover) !important;\\n}\\n\\n[class*='selectItem'][data-state='checked'] {\\n background-color: var(--accentBg) !important;\\n color: var(--accentText) !important;\\n}\\n\\n/* Table borders - use accent color for visibility */\\n.themed-mdx-editor [class*='tableEditor'] > tbody > tr > td:not([class*='toolCell']),\\n.themed-mdx-editor [class*='tableEditor'] > tbody > tr > th:not([class*='toolCell']):not([data-tool-cell='true']) {\\n border: 1px solid var(--mdx-editor-table-border) !important;\\n padding: var(--spacing-1) var(--spacing-2);\\n white-space: normal;\\n}\\n\\n.themed-mdx-editor [class*='tableEditor'] > thead > tr > th {\\n border: 1px solid var(--mdx-editor-table-border) !important;\\n}\\n\\n/* Source mode editor */\\n.themed-mdx-editor [class*='sourceEditor'] {\\n font-family: var(--mdx-editor-font-family);\\n font-size: var(--mdx-editor-font-size);\\n background-color: var(--mdx-editor-bg);\\n color: var(--mdx-editor-fg);\\n}\\n\\n/* Scrollbars */\\n.themed-mdx-editor ::-webkit-scrollbar {\\n width: 12px;\\n height: 12px;\\n}\\n\\n.themed-mdx-editor ::-webkit-scrollbar-track {\\n background: var(--mdx-editor-bg);\\n}\\n\\n.themed-mdx-editor ::-webkit-scrollbar-thumb {\\n background: var(--mdx-editor-border);\\n border-radius: 6px;\\n}\\n\\n.themed-mdx-editor ::-webkit-scrollbar-thumb:hover {\\n background: var(--mdx-editor-fg);\\n opacity: 0.5;\\n}\\n\\n/*\\n * Tailwind CSS Compatibility Styles\\n * Tailwind's Preflight resets all default HTML styles, but MDXEditor expects them.\\n * These styles restore necessary defaults for proper content rendering.\\n */\\n\\n/* Restore default heading styles */\\n.themed-mdx-editor h1 {\\n font-size: 2em;\\n font-weight: 700;\\n margin-top: 0.67em;\\n margin-bottom: 0.67em;\\n line-height: 1.2;\\n}\\n\\n.themed-mdx-editor h2 {\\n font-size: 1.5em;\\n font-weight: 600;\\n margin-top: 0.83em;\\n margin-bottom: 0.83em;\\n line-height: 1.3;\\n}\\n\\n.themed-mdx-editor h3 {\\n font-size: 1.17em;\\n font-weight: 600;\\n margin-top: 1em;\\n margin-bottom: 1em;\\n line-height: 1.4;\\n}\\n\\n.themed-mdx-editor h4 {\\n font-size: 1em;\\n font-weight: 600;\\n margin-top: 1.33em;\\n margin-bottom: 1.33em;\\n line-height: 1.5;\\n}\\n\\n.themed-mdx-editor h5 {\\n font-size: 0.83em;\\n font-weight: 600;\\n margin-top: 1.67em;\\n margin-bottom: 1.67em;\\n line-height: 1.5;\\n}\\n\\n.themed-mdx-editor h6 {\\n font-size: 0.67em;\\n font-weight: 600;\\n margin-top: 2.33em;\\n margin-bottom: 2.33em;\\n line-height: 1.5;\\n}\\n\\n/* Restore default paragraph spacing */\\n.themed-mdx-editor p {\\n margin-top: 1em;\\n margin-bottom: 1em;\\n}\\n\\n/* Restore default list styles */\\n.themed-mdx-editor ul {\\n list-style-type: disc;\\n margin-top: 1em;\\n margin-bottom: 1em;\\n padding-left: 2.5em;\\n}\\n\\n.themed-mdx-editor ul ul {\\n list-style-type: circle;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n}\\n\\n.themed-mdx-editor ul ul ul {\\n list-style-type: square;\\n}\\n\\n.themed-mdx-editor ol {\\n list-style-type: decimal;\\n margin-top: 1em;\\n margin-bottom: 1em;\\n padding-left: 2.5em;\\n}\\n\\n.themed-mdx-editor ol ol {\\n list-style-type: lower-alpha;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n}\\n\\n.themed-mdx-editor ol ol ol {\\n list-style-type: lower-roman;\\n}\\n\\n.themed-mdx-editor li {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n\\n/* Restore default blockquote styles */\\n.themed-mdx-editor blockquote {\\n margin-top: 1em;\\n margin-bottom: 1em;\\n margin-left: 2.5em;\\n margin-right: 2.5em;\\n padding-left: 1em;\\n border-left: 4px solid currentColor;\\n opacity: 0.8;\\n}\\n\\n/* Restore default code styles */\\n.themed-mdx-editor code {\\n font-family: monospace;\\n font-size: 0.9em;\\n}\\n\\n.themed-mdx-editor pre {\\n margin-top: 1em;\\n margin-bottom: 1em;\\n padding: 1em;\\n overflow: auto;\\n}\\n\\n.themed-mdx-editor pre code {\\n font-size: inherit;\\n}\\n\\n/* Restore default table styles */\\n.themed-mdx-editor table {\\n border-collapse: collapse;\\n margin-top: 1em;\\n margin-bottom: 1em;\\n width: 100%;\\n}\\n\\n.themed-mdx-editor th,\\n.themed-mdx-editor td {\\n padding: 0.5em;\\n text-align: left;\\n}\\n\\n.themed-mdx-editor th {\\n font-weight: 600;\\n}\\n\\n/* Restore default emphasis styles */\\n.themed-mdx-editor strong,\\n.themed-mdx-editor b {\\n font-weight: 700;\\n}\\n\\n.themed-mdx-editor em,\\n.themed-mdx-editor i {\\n font-style: italic;\\n}\\n\\n/* Restore default link styles */\\n.themed-mdx-editor a {\\n text-decoration: underline;\\n cursor: pointer;\\n}\\n\\n/* Restore default hr styles */\\n.themed-mdx-editor hr {\\n margin-top: 1.5em;\\n margin-bottom: 1.5em;\\n border: 0;\\n border-top: 1px solid currentColor;\\n opacity: 0.3;\\n}\\n\";\n document.head.appendChild(style);\n})();\n", "/**\n * MDX Auto-Fix Preprocessor\n *\n * Transforms raw markdown strings before they are parsed by MDX.\n * This is necessary because the MDX parser will fail before remark plugins can run.\n */\n\nimport type { TransformerStats } from './types';\n\n/**\n * Rule for text-based transformation\n */\nexport interface PreprocessRule {\n name: string;\n description: string;\n pattern: RegExp;\n replacement: string | ((match: string, ...args: any[]) => string);\n}\n\n/**\n * Convert transformers to preprocessing rules\n */\nexport const defaultPreprocessRules: PreprocessRule[] = [\n {\n name: 'normalize-code-block-language',\n description: 'Normalize unknown or missing code block language identifiers',\n pattern: /^(\\s*)```([^\\n`]*?)\\n/gim,\n replacement: (_match, indent, lang) => {\n const trimmedLang = lang.trim();\n\n // List of known/valid languages that should NOT be normalized\n const knownLanguages = [\n 'javascript', 'js', 'typescript', 'ts', 'jsx', 'tsx',\n 'python', 'py', 'java', 'c', 'cpp', 'csharp', 'cs',\n 'html', 'css', 'scss', 'sass', 'less',\n 'json', 'yaml', 'yml', 'xml', 'toml',\n 'bash', 'sh', 'shell', 'powershell',\n 'sql', 'graphql', 'markdown', 'md',\n 'rust', 'go', 'ruby', 'php', 'swift',\n 'kotlin', 'dart', 'r', 'matlab',\n 'diff', 'text', 'plaintext',\n ];\n\n // If it's a known language, don't change it\n if (knownLanguages.includes(trimmedLang.toLowerCase())) {\n return _match; // Return original match unchanged\n }\n\n // Handle missing/empty language identifier\n if (!trimmedLang || trimmedLang === '') {\n return `${indent}\\`\\`\\`markdown\\n`;\n }\n\n // Handle specific unrecognized languages\n const langLower = trimmedLang.toLowerCase();\n if (langLower === 'n/a') {\n return `${indent}\\`\\`\\`markdown\\n`;\n }\n if (langLower === 'argdown') {\n return `${indent}\\`\\`\\`markdown\\n`; // Map argdown to markdown for better highlighting\n }\n\n // For any other unrecognized language, keep it as-is\n // (don't force to text - let the parser handle it)\n return _match;\n },\n },\n {\n name: 'less-than-digit',\n description: 'Escape < followed by digit',\n pattern: /<(?=\\d)/g,\n replacement: '<',\n },\n {\n name: 'less-than-space-digit',\n description: 'Escape < followed by space and digit',\n pattern: /<(\\s+)(?=\\d)/g,\n replacement: (_match, spaces) => `<${spaces}`,\n },\n {\n name: 'greater-than-digit',\n description: 'Escape > followed by digit',\n pattern: /(?<![-\\w])>(?=\\s?\\d)/g,\n replacement: '>',\n },\n {\n name: 'invalid-tag-opening',\n description: 'Escape invalid opening tags starting with digit',\n pattern: /<(\\/?(?:\\d[^>\\s]*))/g,\n replacement: (_match, tagContent) => `<${tagContent}`,\n },\n {\n name: 'numeric-only-tag',\n description: 'Escape tags that are only numbers',\n pattern: /<(\\d+)>/g,\n replacement: (_match, number) => `<${number}>`,\n },\n];\n\n/**\n * Preserves code blocks and inline code during transformation\n */\nfunction preserveCode(markdown: string, transform: (text: string) => string): string {\n const parts: { type: 'code' | 'text'; content: string; }[] = [];\n\n // Match code blocks and inline code\n const codeRegex = /(```[\\s\\S]*?```|`[^`\\n]+`)/g;\n let lastIndex = 0;\n let match;\n\n while ((match = codeRegex.exec(markdown)) !== null) {\n // Add text before code\n if (match.index > lastIndex) {\n parts.push({\n type: 'text',\n content: markdown.slice(lastIndex, match.index),\n });\n }\n\n // Add code as-is\n parts.push({\n type: 'code',\n content: match[0],\n });\n\n lastIndex = match.index + match[0].length;\n }\n\n // Add remaining text\n if (lastIndex < markdown.length) {\n parts.push({\n type: 'text',\n content: markdown.slice(lastIndex),\n });\n }\n\n // Transform only text parts\n return parts\n .map(part => part.type === 'code' ? part.content : transform(part.content))\n .join('');\n}\n\n/**\n * Preprocess markdown to fix common MDX parsing issues\n */\nexport function preprocessMDX(\n markdown: string,\n options: {\n rules?: PreprocessRule[];\n enable?: string[];\n disable?: string[];\n preserveCodeBlocks?: boolean;\n onStats?: (stats: TransformerStats) => void;\n debug?: boolean;\n } = {}\n): string {\n const {\n rules = defaultPreprocessRules,\n enable,\n disable,\n preserveCodeBlocks = true,\n onStats,\n debug = false,\n } = options;\n\n // Filter rules based on enable/disable\n let activeRules = rules;\n\n if (Array.isArray(enable) && enable.length > 0) {\n activeRules = rules.filter(r => enable.includes(r.name));\n }\n\n if (Array.isArray(disable) && disable.length > 0) {\n activeRules = activeRules.filter(r => !disable.includes(r.name));\n }\n\n if (debug) {\n console.log('[mdx-auto-fix] Active preprocessing rules:', activeRules.map(r => r.name));\n }\n\n const stats: TransformerStats = {\n totalFixes: 0,\n byTransformer: {},\n };\n\n // First, normalize code block language identifiers (runs on full markdown)\n // This must happen before preserveCode to avoid the language part being protected\n let result = markdown;\n const codeBlockLangRule = activeRules.find(r => r.name === 'normalize-code-block-language');\n if (codeBlockLangRule) {\n let fixCount = 0;\n let insideCodeBlock = false; // Track if we're inside a code block\n\n if (typeof codeBlockLangRule.replacement === 'function') {\n result = result.replace(codeBlockLangRule.pattern, (...args) => {\n // Toggle state - if we're inside, this is a closing ```, skip it\n if (insideCodeBlock) {\n insideCodeBlock = false;\n return args[0]; // Return original match (closing ```)\n }\n\n // This is an opening ```, process it\n insideCodeBlock = true;\n const originalMatch = args[0];\n const replacement = (codeBlockLangRule.replacement as Function)(...args);\n\n // Only count as a fix if we actually changed something\n if (replacement !== originalMatch) {\n fixCount++;\n }\n\n return replacement;\n });\n } else {\n result = result.replace(codeBlockLangRule.pattern, (match) => {\n // Toggle state - if we're inside, this is a closing ```, skip it\n if (insideCodeBlock) {\n insideCodeBlock = false;\n return match; // Return original match (closing ```)\n }\n\n // This is an opening ```, process it\n insideCodeBlock = true;\n const replacement = codeBlockLangRule.replacement as string;\n\n // Only count as a fix if we actually changed something\n if (replacement !== match) {\n fixCount++;\n }\n\n return replacement;\n });\n }\n\n if (fixCount > 0) {\n stats.byTransformer[codeBlockLangRule.name] = fixCount;\n stats.totalFixes += fixCount;\n\n if (debug) {\n console.log(`[mdx-auto-fix] ${codeBlockLangRule.name}: ${fixCount} fixes`);\n }\n }\n }\n\n // Then apply other transformations (excluding the code block language rule)\n const otherRules = activeRules.filter(r => r.name !== 'normalize-code-block-language');\n\n const transform = (text: string): string => {\n let transformed = text;\n\n for (const rule of otherRules) {\n let fixCount = 0;\n\n if (typeof rule.replacement === 'function') {\n transformed = transformed.replace(rule.pattern, (...args) => {\n fixCount++;\n return (rule.replacement as Function)(...args);\n });\n } else {\n transformed = transformed.replace(rule.pattern, () => {\n fixCount++;\n return rule.replacement as string;\n });\n }\n\n if (fixCount > 0) {\n stats.byTransformer[rule.name] = (stats.byTransformer[rule.name] || 0) + fixCount;\n stats.totalFixes += fixCount;\n\n if (debug) {\n console.log(`[mdx-auto-fix] ${rule.name}: ${fixCount} fixes`);\n }\n }\n }\n\n return transformed;\n };\n\n result = preserveCodeBlocks\n ? preserveCode(result, transform)\n : transform(result);\n\n if (onStats && stats.totalFixes > 0) {\n onStats(stats);\n }\n\n if (debug && stats.totalFixes > 0) {\n console.log(`[mdx-auto-fix] Total preprocessing fixes: ${stats.totalFixes}`);\n }\n\n return result;\n}\n", "/**\n * Transformer: Auto-escape < followed by digits\n *\n * Fixes the common pattern where technical documentation uses < for comparisons:\n * - \"<5 minutes\" \u2192 \"<5 minutes\"\n * - \"<10MB\" \u2192 \"<10MB\"\n * - \"<100ms\" \u2192 \"<100ms\"\n *\n * MDX parsers interpret < as the start of a JSX tag, but tag names cannot\n * start with digits, causing parsing errors.\n */\n\nimport { visit } from 'unist-util-visit';\nimport type { Text } from 'mdast';\nimport type { Transformer, TransformerContext } from '../types';\n\n/**\n * Transform < followed by a digit to HTML entity\n */\nexport const lessThanDigitTransformer: Transformer = {\n name: 'less-than-digit',\n description: 'Escapes < when followed by a digit (e.g., \"<5 minutes\" \u2192 \"<5 minutes\")',\n defaultEnabled: true,\n\n transform: (context: TransformerContext) => {\n let fixCount = 0;\n\n visit(context.tree, 'text', (node: Text) => {\n // Replace < followed by digit with HTML entity\n node.value = node.value.replace(/<(?=\\d)/g, () => {\n fixCount++;\n return '<';\n });\n\n // Also handle < followed by space then digit (e.g., \"< 5 minutes\")\n node.value = node.value.replace(/<\\s+(?=\\d)/g, (match) => {\n fixCount++;\n return match.replace('<', '<');\n });\n });\n\n context.stats.byTransformer[lessThanDigitTransformer.name] = fixCount;\n context.stats.totalFixes += fixCount;\n },\n\n testCases: [\n {\n description: 'Basic less-than with digit',\n input: '- <5 minutes to complete',\n expected: '- <5 minutes to complete',\n shouldFix: 'Should escape < immediately followed by digit',\n },\n {\n description: 'Less-than with space and digit',\n input: '- < 5 minutes to complete',\n expected: '- < 5 minutes to complete',\n shouldFix: 'Should escape < followed by space and digit',\n },\n {\n description: 'Multiple occurrences',\n input: 'Metrics: <5ms latency, <10MB memory, <2% error rate',\n expected: 'Metrics: <5ms latency, <10MB memory, <2% error rate',\n shouldFix: 'Should fix all occurrences in a line',\n },\n {\n description: 'Percentage comparisons',\n input: '- <5% configuration error rate',\n expected: '- <5% configuration error rate',\n shouldFix: 'Should fix percentage comparisons',\n },\n {\n description: 'Size comparisons',\n input: 'Bundle size: <20MB',\n expected: 'Bundle size: <20MB',\n shouldFix: 'Should fix size comparisons',\n },\n {\n description: 'Time estimates in lists',\n input: `**Target**:\n- 90%+ setup completion rate\n- <5 minutes to first workflow\n- <5% configuration error rate`,\n expected: `**Target**:\n- 90%+ setup completion rate\n- <5 minutes to first workflow\n- <5% configuration error rate`,\n shouldFix: 'Should fix real-world documentation patterns',\n },\n {\n description: 'Should not affect valid JSX',\n input: '<Component prop={5} />',\n expected: '<Component prop={5} />',\n shouldFix: 'Should preserve valid JSX tags',\n },\n ],\n};\n", "/**\n * Transformer: Auto-escape > followed by text that might be confused with closing tags\n *\n * Fixes patterns where > is used for comparisons:\n * - \">5 users\" \u2192 \">5 users\"\n * - \">90% uptime\" \u2192 \">90% uptime\"\n */\n\nimport { visit } from 'unist-util-visit';\nimport type { Text } from 'mdast';\nimport type { Transformer, TransformerContext } from '../types';\n\n/**\n * Transform > followed by a digit to HTML entity\n */\nexport const greaterThanDigitTransformer: Transformer = {\n name: 'greater-than-digit',\n description: 'Escapes > when followed by a digit (e.g., \">5 users\" \u2192 \">5 users\")',\n defaultEnabled: true,\n\n transform: (context: TransformerContext) => {\n let fixCount = 0;\n\n visit(context.tree, 'text', (node: Text) => {\n // Replace > followed by digit with HTML entity\n // But be careful not to match valid JSX closing tags\n node.value = node.value.replace(/(?<![-\\w])>(?=\\s?\\d)/g, () => {\n fixCount++;\n return '>';\n });\n });\n\n context.stats.byTransformer[greaterThanDigitTransformer.name] = fixCount;\n context.stats.totalFixes += fixCount;\n },\n\n testCases: [\n {\n description: 'Basic greater-than with digit',\n input: '- >90% completion rate',\n expected: '- >90% completion rate',\n shouldFix: 'Should escape > immediately followed by digit',\n },\n {\n description: 'Greater-than with space and digit',\n input: '- > 5 users online',\n expected: '- > 5 users online',\n shouldFix: 'Should escape > followed by space and digit',\n },\n {\n description: 'Multiple occurrences',\n input: 'Requirements: >5GB RAM, >10 cores, >100GB storage',\n expected: 'Requirements: >5GB RAM, >10 cores, >100GB storage',\n shouldFix: 'Should fix all occurrences',\n },\n {\n description: 'Should not affect valid JSX closing tags',\n input: '<Component>content</Component>',\n expected: '<Component>content</Component>',\n shouldFix: 'Should preserve valid JSX closing tags',\n },\n ],\n};\n", "/**\n * Transformer: Auto-escape invalid HTML/JSX tag names\n *\n * Detects and escapes malformed tags that start with invalid characters:\n * - \"<5Column>\" \u2192 \"<5Column>\"\n * - \"<123>\" \u2192 \"<123>\"\n *\n * HTML/JSX tag names must start with a letter, _, or $\n */\n\nimport { visit } from 'unist-util-visit';\nimport type { Text } from 'mdast';\nimport type { Transformer, TransformerContext } from '../types';\n\n/**\n * Transform invalid tag names to escaped entities\n */\nexport const invalidTagNamesTransformer: Transformer = {\n name: 'invalid-tag-names',\n description: 'Escapes tags with invalid names (e.g., \"<5Column>\" \u2192 \"<5Column>\")',\n defaultEnabled: true,\n\n transform: (context: TransformerContext) => {\n let fixCount = 0;\n\n visit(context.tree, 'text', (node: Text) => {\n // Match patterns like <5Something> or </5Something>\n // Tag names must start with letter, $, or _\n node.value = node.value.replace(/<\\/?(\\d[^>\\s]*)/g, (match) => {\n fixCount++;\n return match.replace('<', '<');\n });\n\n // Also catch standalone invalid tags like <5>\n node.value = node.value.replace(/<(\\d+)>/g, (match) => {\n fixCount++;\n return match.replace('<', '<');\n });\n });\n\n context.stats.byTransformer[invalidTagNamesTransformer.name] = fixCount;\n context.stats.totalFixes += fixCount;\n },\n\n testCases: [\n {\n description: 'Tag starting with number',\n input: '<5Column>Content</5Column>',\n expected: '<5Column>Content</5Column>',\n shouldFix: 'Should escape opening and closing tags that start with numbers',\n },\n {\n description: 'Numeric-only tag',\n input: '<123>',\n expected: '<123>',\n shouldFix: 'Should escape tags that are only numbers',\n },\n {\n description: 'Tag with number prefix',\n input: '<3DModel src=\"path\" />',\n expected: '<3DModel src=\"path\" />',\n shouldFix: 'Should escape self-closing tags that start with numbers',\n },\n {\n description: 'Should preserve valid tags',\n input: '<Component5>Content</Component5>',\n expected: '<Component5>Content</Component5>',\n shouldFix: 'Should not affect tags that start with valid characters',\n },\n ],\n};\n", "/**\n * Transformer: Normalize code block language identifiers\n *\n * Handles code blocks with unrecognized or problematic language identifiers\n * by mapping them to known alternatives or \"text\" as a fallback.\n *\n * This prevents parsing errors when MDX encounters code blocks with\n * language identifiers it doesn't recognize.\n */\n\nimport { visit } from 'unist-util-visit';\nimport type { Code } from 'mdast';\nimport type { Transformer, TransformerContext } from '../types';\n\n/**\n * Map of problematic or custom language identifiers to safe alternatives\n */\nconst LANGUAGE_MAP: Record<string, string> = {\n 'N/A': 'text',\n 'n/a': 'text',\n 'argdown': 'markdown', // Map argdown to markdown for better syntax highlighting\n // Add more mappings as needed\n};\n\n/**\n * List of known safe language identifiers that don't need transformation\n */\nconst KNOWN_LANGUAGES = new Set([\n 'javascript', 'js', 'typescript', 'ts', 'jsx', 'tsx',\n 'python', 'py', 'java', 'c', 'cpp', 'csharp', 'cs',\n 'html', 'css', 'scss', 'sass', 'less',\n 'json', 'yaml', 'yml', 'xml', 'toml',\n 'bash', 'sh', 'shell', 'powershell',\n 'sql', 'graphql', 'markdown', 'md',\n 'rust', 'go', 'ruby', 'php', 'swift',\n 'kotlin', 'dart', 'r', 'matlab',\n 'diff', 'text', 'plaintext',\n 'mermaid', // For mermaid diagram syntax\n]);\n\n/**\n * Normalize code block language identifiers to prevent parsing errors\n */\nexport const codeBlockLanguageTransformer: Transformer = {\n name: 'code-block-language',\n description: 'Normalizes unrecognized code block language identifiers to safe alternatives',\n defaultEnabled: true,\n\n transform: (context: TransformerContext) => {\n let fixCount = 0;\n\n visit(context.tree, 'code', (node: Code) => {\n const lang = node.lang?.toLowerCase().trim();\n\n // Handle missing language\n if (!lang) {\n node.lang = 'text';\n fixCount++;\n return;\n }\n\n // Check if language is in our mapping\n if (LANGUAGE_MAP[lang]) {\n node.lang = LANGUAGE_MAP[lang];\n fixCount++;\n return;\n }\n\n // If language is unknown and not in our safe list, map to text\n if (!KNOWN_LANGUAGES.has(lang)) {\n // Keep the original as-is but you can uncomment below to force to text\n // node.lang = 'text';\n // fixCount++;\n }\n });\n\n context.stats.byTransformer[codeBlockLanguageTransformer.name] = fixCount;\n context.stats.totalFixes += fixCount;\n },\n\n testCases: [\n {\n description: 'Code block with N/A language',\n input: '```N/A\\ncode here\\n```',\n expected: '```text\\ncode here\\n```',\n shouldFix: 'Should convert N/A to text',\n },\n {\n description: 'Code block with argdown language',\n input: '```argdown\\n[Claim]: Statement\\n```',\n expected: '```markdown\\n[Claim]: Statement\\n```',\n shouldFix: 'Should convert argdown to markdown',\n },\n {\n description: 'Code block without language',\n input: '```\\ncode here\\n```',\n expected: '```text\\ncode here\\n```',\n shouldFix: 'Should add text language to blocks without one',\n },\n {\n description: 'Should preserve known languages',\n input: '```javascript\\nconst x = 1;\\n```',\n expected: '```javascript\\nconst x = 1;\\n```',\n shouldFix: 'Should not modify known languages',\n },\n ],\n};\n", "/**\n * All available transformers for MDX Auto-Fix\n */\n\nexport { lessThanDigitTransformer } from './less-than-digit';\nexport { greaterThanDigitTransformer } from './greater-than-digit';\nexport { invalidTagNamesTransformer } from './invalid-tag-names';\nexport { codeBlockLanguageTransformer } from './code-block-language';\n\nimport { lessThanDigitTransformer } from './less-than-digit';\nimport { greaterThanDigitTransformer } from './greater-than-digit';\nimport { invalidTagNamesTransformer } from './invalid-tag-names';\nimport { codeBlockLanguageTransformer } from './code-block-language';\nimport type { Transformer } from '../types';\n\n/**\n * Default transformers that are enabled by default\n */\nexport const defaultTransformers: Transformer[] = [\n lessThanDigitTransformer,\n greaterThanDigitTransformer,\n invalidTagNamesTransformer,\n codeBlockLanguageTransformer,\n];\n\n/**\n * All available transformers (including opt-in ones)\n */\nexport const allTransformers: Transformer[] = [\n lessThanDigitTransformer,\n greaterThanDigitTransformer,\n invalidTagNamesTransformer,\n codeBlockLanguageTransformer,\n];\n", "/**\n * MDX Auto-Fix Remark Plugin\n *\n * A remark plugin that automatically fixes common MDX parsing issues\n * by applying configurable transformers to the markdown AST.\n *\n * @example\n * ```typescript\n * import { mdxAutoFix } from './plugins/mdx-auto-fix';\n *\n * <MDXEditor\n * remarkPlugins={[mdxAutoFix]}\n * markdown={content}\n * />\n * ```\n *\n * @example With options\n * ```typescript\n * <MDXEditor\n * remarkPlugins={[\n * [mdxAutoFix, {\n * disable: ['greater-than-digit'], // Disable specific transformers\n * onStats: (stats) => console.log('Fixes applied:', stats),\n * debug: true\n * }]\n * ]}\n * markdown={content}\n * />\n * ```\n */\n\nimport type { Root } from 'mdast';\nimport type { Transformer, TransformerStats } from './types';\nimport { defaultTransformers } from './transformers';\nimport type { Plugin } from 'unified';\n\n/**\n * Configuration options for the MDX Auto-Fix plugin\n */\nexport interface MDXAutoFixOptions {\n /**\n * List of transformers to use\n */\n transformers?: Transformer[];\n\n /**\n * Enable specific transformers by name\n */\n enable?: string[];\n\n /**\n * Disable specific transformers by name\n */\n disable?: string[];\n\n /**\n * Callback to receive statistics about fixes applied\n */\n onStats?: (stats: TransformerStats) => void;\n\n /**\n * Enable debug logging\n */\n debug?: boolean;\n}\n\n/**\n * Creates the MDX Auto-Fix remark plugin\n */\nexport const mdxAutoFix: Plugin<[MDXAutoFixOptions?], Root> = (options = {}) => {\n const {\n transformers = defaultTransformers,\n enable,\n disable,\n onStats,\n debug = false,\n } = options;\n\n return (tree: Root) => {\n // Initialize stats\n const stats: TransformerStats = {\n totalFixes: 0,\n byTransformer: {},\n };\n\n // Determine which transformers to use\n let activeTransformers: Transformer[] = transformers.filter(t => t.defaultEnabled);\n\n // Apply enable/disable filters\n if (Array.isArray(enable) && enable.length > 0) {\n activeTransformers = transformers.filter(t => enable.includes(t.name));\n }\n\n if (Array.isArray(disable) && disable.length > 0) {\n activeTransformers = activeTransformers.filter(t => !disable.includes(t.name));\n }\n\n if (debug) {\n console.log('[mdx-auto-fix] Active transformers:', activeTransformers.map(t => t.name));\n }\n\n // Apply each transformer\n for (const transformer of activeTransformers) {\n try {\n transformer.transform({\n tree,\n stats,\n });\n\n if (debug && stats.byTransformer[transformer.name] > 0) {\n console.log(\n `[mdx-auto-fix] ${transformer.name}: ${stats.byTransformer[transformer.name]} fixes`\n );\n }\n } catch (error) {\n console.error(`[mdx-auto-fix] Error in transformer \"${transformer.name}\":`, error);\n }\n }\n\n if (debug && stats.totalFixes > 0) {\n console.log(`[mdx-auto-fix] Total fixes applied: ${stats.totalFixes}`);\n }\n\n // Report stats\n if (onStats && stats.totalFixes > 0) {\n onStats(stats);\n }\n };\n};\n\n// Note: The preprocessor approach (preprocessMDX) is recommended over the remark plugin\n// because it runs before the MDX parser, preventing parsing errors.\n", "import { useTheme } from '@principal-ade/industry-theme';\nimport React from 'react';\nimport { ThemedMDXEditor, type ThemedMDXEditorProps } from './ThemedMDXEditor';\n\nexport type ThemedMDXEditorWithProviderProps = Omit<ThemedMDXEditorProps, 'theme'>;\n\n/**\n * A MDXEditor component that automatically uses the theme from context\n * Use this when you already have a ThemeProvider wrapping your app\n */\nexport const ThemedMDXEditorWithProvider = React.forwardRef<\n React.ElementRef<typeof ThemedMDXEditor>,\n ThemedMDXEditorWithProviderProps\n>((props, ref) => {\n const { theme } = useTheme();\n return <ThemedMDXEditor ref={ref} theme={theme} {...props} />;\n});\n\nThemedMDXEditorWithProvider.displayName = 'ThemedMDXEditorWithProvider';\n", "import { useTheme } from '@principal-ade/industry-theme';\nimport { useCallback, useMemo } from 'react';\nimport { createAutoCodeMirrorTheme } from '../utils/codeMirrorTheme';\nimport type { Extension } from '@codemirror/state';\n\n/**\n * Hook that provides MDX editor theme configuration from industry-theme\n * Use this when you need to access theme values for custom MDX editor plugins or configuration\n */\nexport function useThemedMDXEditor() {\n const { theme } = useTheme();\n\n const editorTheme = useMemo(\n () => ({\n colors: {\n background: theme.colors.background,\n text: theme.colors.text,\n textSecondary: theme.colors.textSecondary,\n backgroundSecondary: theme.colors.backgroundSecondary,\n backgroundTertiary: theme.colors.backgroundTertiary || theme.colors.backgroundSecondary,\n border: theme.colors.border,\n primary: theme.colors.primary,\n warning: theme.colors.warning,\n highlight: theme.colors.highlight,\n },\n fonts: {\n body: theme.fonts?.body || 'system-ui',\n monospace: theme.fonts?.monospace || 'monospace',\n },\n fontSizes: {\n small: theme.fontSizes?.[0] || 11,\n normal: theme.fontSizes?.[1] || 12,\n medium: theme.fontSizes?.[2] || 14,\n large: theme.fontSizes?.[3] || 16,\n },\n }),\n [theme]\n );\n\n const getCSSVariables = useCallback(() => {\n return {\n '--mdx-editor-bg': editorTheme.colors.background,\n '--mdx-editor-fg': editorTheme.colors.text,\n '--mdx-editor-border': editorTheme.colors.border,\n '--mdx-editor-toolbar-bg': editorTheme.colors.backgroundSecondary,\n '--mdx-editor-font-family': editorTheme.fonts.monospace,\n '--mdx-editor-font-size': `${editorTheme.fontSizes.medium}px`,\n '--mdx-editor-code-bg': editorTheme.colors.backgroundTertiary,\n '--mdx-editor-selection-bg': editorTheme.colors.highlight,\n '--mdx-editor-link-color': editorTheme.colors.primary,\n '--mdx-editor-heading-color': editorTheme.colors.text,\n } as Record<string, string>;\n }, [editorTheme]);\n\n const getCodeMirrorExtensions = useCallback((): Extension[] => {\n return [createAutoCodeMirrorTheme(theme)];\n }, [theme]);\n\n return {\n theme: editorTheme,\n getCSSVariables,\n getCodeMirrorExtensions,\n };\n}\n", "import type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport type { Theme } from '@principal-ade/industry-theme';\n\n/**\n * Creates a CodeMirror theme extension based on an industry-theme Theme object\n * This ensures code blocks in the editor match the overall theme\n */\nexport function createCodeMirrorTheme(theme: Theme): Extension {\n const bgColor = theme.colors.backgroundTertiary || theme.colors.backgroundSecondary || '#f5f5f5';\n const textColor = theme.colors.text || '#1a1a1a';\n const borderColor = theme.colors.border || '#e0e0e0';\n const selectionBg = theme.colors.highlight || 'rgba(0, 102, 204, 0.2)';\n const activeLine = theme.colors.backgroundSecondary || '#f0f0f0';\n const fontFamily = theme.fonts?.monospace || 'monospace';\n\n return EditorView.theme(\n {\n '&': {\n backgroundColor: bgColor,\n color: textColor,\n fontFamily,\n },\n '.cm-content': {\n caretColor: textColor,\n fontFamily,\n },\n '.cm-scroller': {\n fontFamily,\n },\n '&.cm-focused .cm-cursor': {\n borderLeftColor: textColor,\n },\n '&.cm-focused .cm-selectionBackground, ::selection': {\n backgroundColor: selectionBg,\n },\n '.cm-selectionBackground': {\n backgroundColor: selectionBg,\n },\n '.cm-gutters': {\n backgroundColor: bgColor,\n color: textColor,\n border: 'none',\n borderRight: `1px solid ${borderColor}`,\n },\n '.cm-activeLineGutter': {\n backgroundColor: activeLine,\n },\n '.cm-activeLine': {\n backgroundColor: activeLine,\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: theme.colors.textSecondary || textColor,\n padding: '0 8px 0 8px',\n },\n '.cm-foldGutter .cm-gutterElement': {\n color: theme.colors.textSecondary || textColor,\n },\n },\n { dark: false } // Set to true if you want dark theme support\n );\n}\n\n/**\n * Helper to determine if a theme is dark based on its background color\n */\nfunction isDarkTheme(theme: Theme): boolean {\n const bg = theme.colors.background || '#ffffff';\n // Simple heuristic: check if background is dark\n const rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(bg);\n if (rgb) {\n const r = parseInt(rgb[1], 16);\n const g = parseInt(rgb[2], 16);\n const b = parseInt(rgb[3], 16);\n const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;\n return luminance < 0.5;\n }\n return false;\n}\n\n/**\n * Creates a CodeMirror theme extension with automatic dark mode detection\n */\nexport function createAutoCodeMirrorTheme(theme: Theme): Extension {\n const bgColor = theme.colors.backgroundTertiary || theme.colors.backgroundSecondary || '#f5f5f5';\n const textColor = theme.colors.text || '#1a1a1a';\n const borderColor = theme.colors.border || '#e0e0e0';\n const selectionBg = theme.colors.highlight || 'rgba(0, 102, 204, 0.2)';\n const activeLine = theme.colors.backgroundSecondary || '#f0f0f0';\n const fontFamily = theme.fonts?.monospace || 'monospace';\n const dark = isDarkTheme(theme);\n\n return EditorView.theme(\n {\n '&': {\n backgroundColor: bgColor,\n color: textColor,\n fontFamily,\n },\n '.cm-content': {\n caretColor: textColor,\n fontFamily,\n },\n '.cm-scroller': {\n fontFamily,\n },\n '&.cm-focused .cm-cursor': {\n borderLeftColor: textColor,\n },\n '&.cm-focused .cm-selectionBackground, ::selection': {\n backgroundColor: selectionBg,\n },\n '.cm-selectionBackground': {\n backgroundColor: selectionBg,\n },\n '.cm-gutters': {\n backgroundColor: bgColor,\n color: textColor,\n border: 'none',\n borderRight: `1px solid ${borderColor}`,\n },\n '.cm-activeLineGutter': {\n backgroundColor: activeLine,\n },\n '.cm-activeLine': {\n backgroundColor: activeLine,\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: theme.colors.textSecondary || textColor,\n padding: '0 8px 0 8px',\n },\n '.cm-foldGutter .cm-gutterElement': {\n color: theme.colors.textSecondary || textColor,\n },\n },\n { dark }\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["visit", "visit", "visit", "React", "jsx", "React", "useTheme", "useCallback", "useMemo", "useTheme", "useMemo", "useCallback"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ade/industry-themed-mdx-editor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "Industry-themed MDX editor wrapper with integrated theming",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "bun run clean && bun run build:esm && bun run build:types && bun run build:styles",
|
|
21
|
-
"build:esm": "
|
|
21
|
+
"build:esm": "node scripts/build.mjs",
|
|
22
22
|
"build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declaration --declarationMap",
|
|
23
23
|
"build:styles": "cp src/styles/mdx-editor-theme.css dist/styles.css",
|
|
24
24
|
"dev": "bun run build --watch",
|
|
@@ -68,12 +68,13 @@
|
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
+
"@chromatic-com/storybook": "^4.1.3",
|
|
71
72
|
"@eslint/js": "^9.32.0",
|
|
72
|
-
"@mdxeditor/editor": "^3.
|
|
73
|
-
"@storybook/addon-docs": "
|
|
74
|
-
"@storybook/addon-
|
|
75
|
-
"@storybook/addon-
|
|
76
|
-
"@storybook/react-
|
|
73
|
+
"@mdxeditor/editor": "^3.52.1",
|
|
74
|
+
"@storybook/addon-docs": "10.1.2",
|
|
75
|
+
"@storybook/addon-links": "10.1.2",
|
|
76
|
+
"@storybook/addon-onboarding": "10.1.2",
|
|
77
|
+
"@storybook/react-vite": "10.1.2",
|
|
77
78
|
"@types/bun": "latest",
|
|
78
79
|
"@types/mdast": "^4.0.4",
|
|
79
80
|
"@types/node": "^22.15.26",
|
|
@@ -81,22 +82,24 @@
|
|
|
81
82
|
"@types/react-dom": "^19.1.8",
|
|
82
83
|
"@typescript-eslint/eslint-plugin": "^8.38.0",
|
|
83
84
|
"@typescript-eslint/parser": "^8.38.0",
|
|
85
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
84
86
|
"esbuild": "^0.25.8",
|
|
85
87
|
"eslint": "^9.32.0",
|
|
86
88
|
"eslint-config-prettier": "^10.1.8",
|
|
87
89
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
88
90
|
"eslint-plugin-import": "^2.32.0",
|
|
89
|
-
"eslint-plugin-storybook": "
|
|
91
|
+
"eslint-plugin-storybook": "10.1.2",
|
|
90
92
|
"mdast": "^3.0.0",
|
|
91
93
|
"prettier": "^3.6.2",
|
|
92
94
|
"react": "^19.1.1",
|
|
93
95
|
"react-dom": "^19.1.1",
|
|
94
96
|
"remark": "^15.0.1",
|
|
95
97
|
"remark-mdx": "^3.1.1",
|
|
96
|
-
"storybook": "
|
|
98
|
+
"storybook": "10.1.2",
|
|
97
99
|
"typescript": "^5.0.4",
|
|
98
100
|
"typescript-eslint": "^8.38.0",
|
|
99
|
-
"unist-util-visit": "^5.0.0"
|
|
101
|
+
"unist-util-visit": "^5.0.0",
|
|
102
|
+
"vite": "^6.0.7"
|
|
100
103
|
},
|
|
101
104
|
"files": [
|
|
102
105
|
"dist",
|
package/dist/index.css
DELETED
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
/* src/styles/mdx-editor-theme.css */
|
|
2
|
-
.themed-mdx-editor [class*=editorRoot] {
|
|
3
|
-
--accentBase: var(--accentBase) !important;
|
|
4
|
-
--accentBgSubtle: var(--accentBgSubtle) !important;
|
|
5
|
-
--accentBg: var(--accentBg) !important;
|
|
6
|
-
--accentBgHover: var(--accentBgHover) !important;
|
|
7
|
-
--accentBgActive: var(--accentBgActive) !important;
|
|
8
|
-
--accentLine: var(--accentLine) !important;
|
|
9
|
-
--accentBorder: var(--accentBorder) !important;
|
|
10
|
-
--accentBorderHover: var(--accentBorderHover) !important;
|
|
11
|
-
--accentSolid: var(--accentSolid) !important;
|
|
12
|
-
--accentSolidHover: var(--accentSolidHover) !important;
|
|
13
|
-
--accentText: var(--accentText) !important;
|
|
14
|
-
--accentTextContrast: var(--accentTextContrast) !important;
|
|
15
|
-
--basePageBg: var(--mdx-editor-bg) !important;
|
|
16
|
-
--baseBase: var(--baseBase) !important;
|
|
17
|
-
--baseBgSubtle: var(--baseBgSubtle) !important;
|
|
18
|
-
--baseBg: var(--baseBg) !important;
|
|
19
|
-
--baseBgHover: var(--baseBgHover) !important;
|
|
20
|
-
--baseBgActive: var(--baseBgActive) !important;
|
|
21
|
-
--baseLine: var(--baseLine) !important;
|
|
22
|
-
--baseBorder: var(--baseBorder) !important;
|
|
23
|
-
--baseBorderHover: var(--baseBorderHover) !important;
|
|
24
|
-
--baseSolid: var(--baseSolid) !important;
|
|
25
|
-
--baseSolidHover: var(--baseSolidHover) !important;
|
|
26
|
-
--baseText: var(--baseText) !important;
|
|
27
|
-
--baseTextContrast: var(--baseTextContrast) !important;
|
|
28
|
-
}
|
|
29
|
-
.themed-mdx-editor .mdx-editor-content {
|
|
30
|
-
font-family: var(--mdx-editor-font-family);
|
|
31
|
-
font-size: var(--mdx-editor-font-size);
|
|
32
|
-
color: var(--mdx-editor-fg);
|
|
33
|
-
line-height: 1.6;
|
|
34
|
-
padding-top: var(--mdx-editor-padding-top, 0);
|
|
35
|
-
padding-right: var(--mdx-editor-padding-right, 0);
|
|
36
|
-
padding-bottom: var(--mdx-editor-padding-bottom, 0);
|
|
37
|
-
padding-left: var(--mdx-editor-padding-left, 0);
|
|
38
|
-
box-sizing: border-box;
|
|
39
|
-
}
|
|
40
|
-
.themed-mdx-editor .mdx-editor-content h1,
|
|
41
|
-
.themed-mdx-editor .mdx-editor-content h2,
|
|
42
|
-
.themed-mdx-editor .mdx-editor-content h3,
|
|
43
|
-
.themed-mdx-editor .mdx-editor-content h4,
|
|
44
|
-
.themed-mdx-editor .mdx-editor-content h5,
|
|
45
|
-
.themed-mdx-editor .mdx-editor-content h6 {
|
|
46
|
-
color: var(--mdx-editor-heading-color);
|
|
47
|
-
}
|
|
48
|
-
.themed-mdx-editor .mdx-editor-content a {
|
|
49
|
-
color: var(--mdx-editor-link-color);
|
|
50
|
-
}
|
|
51
|
-
.themed-mdx-editor .mdx-editor-content code {
|
|
52
|
-
background-color: var(--mdx-editor-code-bg);
|
|
53
|
-
font-family: var(--mdx-editor-font-family);
|
|
54
|
-
padding: 2px 6px;
|
|
55
|
-
border-radius: 3px;
|
|
56
|
-
}
|
|
57
|
-
.themed-mdx-editor .cm-editor {
|
|
58
|
-
background-color: var(--mdx-editor-code-bg) !important;
|
|
59
|
-
}
|
|
60
|
-
.themed-mdx-editor .cm-editor .cm-scroller {
|
|
61
|
-
font-family: var(--mdx-editor-font-family);
|
|
62
|
-
background-color: var(--mdx-editor-code-bg);
|
|
63
|
-
}
|
|
64
|
-
.themed-mdx-editor .cm-editor .cm-gutters {
|
|
65
|
-
background-color: var(--mdx-editor-code-bg);
|
|
66
|
-
border-right: 1px solid var(--mdx-editor-border);
|
|
67
|
-
color: var(--mdx-editor-fg);
|
|
68
|
-
}
|
|
69
|
-
.themed-mdx-editor .cm-editor .cm-content {
|
|
70
|
-
background-color: var(--mdx-editor-code-bg);
|
|
71
|
-
color: var(--mdx-editor-fg);
|
|
72
|
-
}
|
|
73
|
-
.themed-mdx-editor .cm-editor .cm-line {
|
|
74
|
-
background-color: var(--mdx-editor-code-bg);
|
|
75
|
-
}
|
|
76
|
-
.themed-mdx-editor .cm-editor .cm-activeLineGutter {
|
|
77
|
-
background-color: var(--baseBgHover);
|
|
78
|
-
}
|
|
79
|
-
.themed-mdx-editor .cm-editor .cm-activeLine {
|
|
80
|
-
background-color: var(--baseBgHover);
|
|
81
|
-
}
|
|
82
|
-
.themed-mdx-editor .mdx-editor-content ::selection {
|
|
83
|
-
background-color: var(--mdx-editor-selection-bg);
|
|
84
|
-
}
|
|
85
|
-
.themed-mdx-editor [class*=toolbarRoot] {
|
|
86
|
-
background-color: var(--mdx-editor-toolbar-bg);
|
|
87
|
-
border-bottom: 1px solid var(--mdx-editor-border);
|
|
88
|
-
}
|
|
89
|
-
.themed-mdx-editor [class*=toolbarRoot] button:not([class*=selectTrigger]) {
|
|
90
|
-
color: var(--mdx-editor-fg);
|
|
91
|
-
}
|
|
92
|
-
.themed-mdx-editor [class*=toolbarRoot] button:not([class*=selectTrigger]):hover {
|
|
93
|
-
background-color: var(--mdx-editor-selection-bg);
|
|
94
|
-
}
|
|
95
|
-
.themed-mdx-editor [class*=toolbarRoot] svg {
|
|
96
|
-
color: var(--baseText) !important;
|
|
97
|
-
}
|
|
98
|
-
.themed-mdx-editor button[role=combobox][class*=selectTrigger],
|
|
99
|
-
.themed-mdx-editor [data-toolbar-item=true][class*=selectTrigger],
|
|
100
|
-
button[role=combobox][class*=selectTrigger][data-toolbar-item=true] {
|
|
101
|
-
background-color: var(--baseBg) !important;
|
|
102
|
-
color: var(--baseText) !important;
|
|
103
|
-
border: 1px solid var(--baseBorder) !important;
|
|
104
|
-
padding: 4px 8px !important;
|
|
105
|
-
border-radius: 4px !important;
|
|
106
|
-
}
|
|
107
|
-
.themed-mdx-editor button[role=combobox][class*=selectTrigger]:hover,
|
|
108
|
-
.themed-mdx-editor [data-toolbar-item=true][class*=selectTrigger]:hover,
|
|
109
|
-
button[role=combobox][class*=selectTrigger][data-toolbar-item=true]:hover {
|
|
110
|
-
background-color: var(--baseBgHover) !important;
|
|
111
|
-
border-color: var(--baseBorderHover) !important;
|
|
112
|
-
}
|
|
113
|
-
.themed-mdx-editor button[class*=selectTrigger] span,
|
|
114
|
-
button[class*=selectTrigger][data-toolbar-item=true] span {
|
|
115
|
-
color: var(--baseText) !important;
|
|
116
|
-
}
|
|
117
|
-
.themed-mdx-editor button[class*=selectTrigger] [class*=selectDropdownArrow] svg,
|
|
118
|
-
button[class*=selectTrigger][data-toolbar-item=true] [class*=selectDropdownArrow] svg {
|
|
119
|
-
color: var(--baseText) !important;
|
|
120
|
-
}
|
|
121
|
-
[class*=selectContent] {
|
|
122
|
-
background-color: var(--baseBg) !important;
|
|
123
|
-
border: 1px solid var(--baseBorder) !important;
|
|
124
|
-
color: var(--baseText) !important;
|
|
125
|
-
z-index: 9999 !important;
|
|
126
|
-
}
|
|
127
|
-
[class*=selectItem] {
|
|
128
|
-
color: var(--baseText) !important;
|
|
129
|
-
}
|
|
130
|
-
[class*=selectItem]:hover {
|
|
131
|
-
background-color: var(--baseBgHover) !important;
|
|
132
|
-
}
|
|
133
|
-
[class*=selectItem][data-state=checked] {
|
|
134
|
-
background-color: var(--accentBg) !important;
|
|
135
|
-
color: var(--accentText) !important;
|
|
136
|
-
}
|
|
137
|
-
.themed-mdx-editor [class*=tableEditor] > tbody > tr > td:not([class*=toolCell]),
|
|
138
|
-
.themed-mdx-editor [class*=tableEditor] > tbody > tr > th:not([class*=toolCell]):not([data-tool-cell=true]) {
|
|
139
|
-
border: 1px solid var(--mdx-editor-table-border) !important;
|
|
140
|
-
padding: var(--spacing-1) var(--spacing-2);
|
|
141
|
-
white-space: normal;
|
|
142
|
-
}
|
|
143
|
-
.themed-mdx-editor [class*=tableEditor] > thead > tr > th {
|
|
144
|
-
border: 1px solid var(--mdx-editor-table-border) !important;
|
|
145
|
-
}
|
|
146
|
-
.themed-mdx-editor [class*=sourceEditor] {
|
|
147
|
-
font-family: var(--mdx-editor-font-family);
|
|
148
|
-
font-size: var(--mdx-editor-font-size);
|
|
149
|
-
background-color: var(--mdx-editor-bg);
|
|
150
|
-
color: var(--mdx-editor-fg);
|
|
151
|
-
}
|
|
152
|
-
.themed-mdx-editor ::-webkit-scrollbar {
|
|
153
|
-
width: 12px;
|
|
154
|
-
height: 12px;
|
|
155
|
-
}
|
|
156
|
-
.themed-mdx-editor ::-webkit-scrollbar-track {
|
|
157
|
-
background: var(--mdx-editor-bg);
|
|
158
|
-
}
|
|
159
|
-
.themed-mdx-editor ::-webkit-scrollbar-thumb {
|
|
160
|
-
background: var(--mdx-editor-border);
|
|
161
|
-
border-radius: 6px;
|
|
162
|
-
}
|
|
163
|
-
.themed-mdx-editor ::-webkit-scrollbar-thumb:hover {
|
|
164
|
-
background: var(--mdx-editor-fg);
|
|
165
|
-
opacity: 0.5;
|
|
166
|
-
}
|
|
167
|
-
.themed-mdx-editor h1 {
|
|
168
|
-
font-size: 2em;
|
|
169
|
-
font-weight: 700;
|
|
170
|
-
margin-top: 0.67em;
|
|
171
|
-
margin-bottom: 0.67em;
|
|
172
|
-
line-height: 1.2;
|
|
173
|
-
}
|
|
174
|
-
.themed-mdx-editor h2 {
|
|
175
|
-
font-size: 1.5em;
|
|
176
|
-
font-weight: 600;
|
|
177
|
-
margin-top: 0.83em;
|
|
178
|
-
margin-bottom: 0.83em;
|
|
179
|
-
line-height: 1.3;
|
|
180
|
-
}
|
|
181
|
-
.themed-mdx-editor h3 {
|
|
182
|
-
font-size: 1.17em;
|
|
183
|
-
font-weight: 600;
|
|
184
|
-
margin-top: 1em;
|
|
185
|
-
margin-bottom: 1em;
|
|
186
|
-
line-height: 1.4;
|
|
187
|
-
}
|
|
188
|
-
.themed-mdx-editor h4 {
|
|
189
|
-
font-size: 1em;
|
|
190
|
-
font-weight: 600;
|
|
191
|
-
margin-top: 1.33em;
|
|
192
|
-
margin-bottom: 1.33em;
|
|
193
|
-
line-height: 1.5;
|
|
194
|
-
}
|
|
195
|
-
.themed-mdx-editor h5 {
|
|
196
|
-
font-size: 0.83em;
|
|
197
|
-
font-weight: 600;
|
|
198
|
-
margin-top: 1.67em;
|
|
199
|
-
margin-bottom: 1.67em;
|
|
200
|
-
line-height: 1.5;
|
|
201
|
-
}
|
|
202
|
-
.themed-mdx-editor h6 {
|
|
203
|
-
font-size: 0.67em;
|
|
204
|
-
font-weight: 600;
|
|
205
|
-
margin-top: 2.33em;
|
|
206
|
-
margin-bottom: 2.33em;
|
|
207
|
-
line-height: 1.5;
|
|
208
|
-
}
|
|
209
|
-
.themed-mdx-editor p {
|
|
210
|
-
margin-top: 1em;
|
|
211
|
-
margin-bottom: 1em;
|
|
212
|
-
}
|
|
213
|
-
.themed-mdx-editor ul {
|
|
214
|
-
list-style-type: disc;
|
|
215
|
-
margin-top: 1em;
|
|
216
|
-
margin-bottom: 1em;
|
|
217
|
-
padding-left: 2.5em;
|
|
218
|
-
}
|
|
219
|
-
.themed-mdx-editor ul ul {
|
|
220
|
-
list-style-type: circle;
|
|
221
|
-
margin-top: 0.5em;
|
|
222
|
-
margin-bottom: 0.5em;
|
|
223
|
-
}
|
|
224
|
-
.themed-mdx-editor ul ul ul {
|
|
225
|
-
list-style-type: square;
|
|
226
|
-
}
|
|
227
|
-
.themed-mdx-editor ol {
|
|
228
|
-
list-style-type: decimal;
|
|
229
|
-
margin-top: 1em;
|
|
230
|
-
margin-bottom: 1em;
|
|
231
|
-
padding-left: 2.5em;
|
|
232
|
-
}
|
|
233
|
-
.themed-mdx-editor ol ol {
|
|
234
|
-
list-style-type: lower-alpha;
|
|
235
|
-
margin-top: 0.5em;
|
|
236
|
-
margin-bottom: 0.5em;
|
|
237
|
-
}
|
|
238
|
-
.themed-mdx-editor ol ol ol {
|
|
239
|
-
list-style-type: lower-roman;
|
|
240
|
-
}
|
|
241
|
-
.themed-mdx-editor li {
|
|
242
|
-
margin-top: 0.25em;
|
|
243
|
-
margin-bottom: 0.25em;
|
|
244
|
-
}
|
|
245
|
-
.themed-mdx-editor blockquote {
|
|
246
|
-
margin-top: 1em;
|
|
247
|
-
margin-bottom: 1em;
|
|
248
|
-
margin-left: 2.5em;
|
|
249
|
-
margin-right: 2.5em;
|
|
250
|
-
padding-left: 1em;
|
|
251
|
-
border-left: 4px solid currentColor;
|
|
252
|
-
opacity: 0.8;
|
|
253
|
-
}
|
|
254
|
-
.themed-mdx-editor code {
|
|
255
|
-
font-family: monospace;
|
|
256
|
-
font-size: 0.9em;
|
|
257
|
-
}
|
|
258
|
-
.themed-mdx-editor pre {
|
|
259
|
-
margin-top: 1em;
|
|
260
|
-
margin-bottom: 1em;
|
|
261
|
-
padding: 1em;
|
|
262
|
-
overflow: auto;
|
|
263
|
-
}
|
|
264
|
-
.themed-mdx-editor pre code {
|
|
265
|
-
font-size: inherit;
|
|
266
|
-
}
|
|
267
|
-
.themed-mdx-editor table {
|
|
268
|
-
border-collapse: collapse;
|
|
269
|
-
margin-top: 1em;
|
|
270
|
-
margin-bottom: 1em;
|
|
271
|
-
width: 100%;
|
|
272
|
-
}
|
|
273
|
-
.themed-mdx-editor th,
|
|
274
|
-
.themed-mdx-editor td {
|
|
275
|
-
padding: 0.5em;
|
|
276
|
-
text-align: left;
|
|
277
|
-
}
|
|
278
|
-
.themed-mdx-editor th {
|
|
279
|
-
font-weight: 600;
|
|
280
|
-
}
|
|
281
|
-
.themed-mdx-editor strong,
|
|
282
|
-
.themed-mdx-editor b {
|
|
283
|
-
font-weight: 700;
|
|
284
|
-
}
|
|
285
|
-
.themed-mdx-editor em,
|
|
286
|
-
.themed-mdx-editor i {
|
|
287
|
-
font-style: italic;
|
|
288
|
-
}
|
|
289
|
-
.themed-mdx-editor a {
|
|
290
|
-
text-decoration: underline;
|
|
291
|
-
cursor: pointer;
|
|
292
|
-
}
|
|
293
|
-
.themed-mdx-editor hr {
|
|
294
|
-
margin-top: 1.5em;
|
|
295
|
-
margin-bottom: 1.5em;
|
|
296
|
-
border: 0;
|
|
297
|
-
border-top: 1px solid currentColor;
|
|
298
|
-
opacity: 0.3;
|
|
299
|
-
}
|